<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>7118</bug_id>
          
          <creation_ts>2006-02-06 18:36:30 -0800</creation_ts>
          <short_desc>Property values with extra items do not get treated as invalid (they should)</short_desc>
          <delta_ts>2006-04-04 12:00:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://mingw.org/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>joost</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31657</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-02-06 18:36:30 -0800</bug_when>
    <thetext>www.mingw.org looks very bad in Safari.  The middle column is way too narrow.  It looks fine in Konq, FFX and WinIE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31658</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-02-06 18:42:31 -0800</bug_when>
    <thetext>This may be a problem of margin + float left width instead of MAX(float left width, margin).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31659</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-02-06 18:44:28 -0800</bug_when>
    <thetext>This bug scares me, since I think it might be a regression from 1.2.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31665</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-06 21:56:27 -0800</bug_when>
    <thetext>I see the same problem with Safari 1.2.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31692</commentid>
    <comment_count>4</comment_count>
      <attachid>6318</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 00:01:09 -0800</bug_when>
    <thetext>Created attachment 6318
Testcase

We do something wrong here....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31694</commentid>
    <comment_count>5</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 00:04:00 -0800</bug_when>
    <thetext>The testcase i just attached shows that the 14em auto; on #Content is the faulty one here. We seem to simply ignore the &quot;auto&quot; part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31695</commentid>
    <comment_count>6</comment_count>
      <attachid>6320</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 00:05:24 -0800</bug_when>
    <thetext>Created attachment 6320
Even further reduced testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31697</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-02-07 01:20:07 -0800</bug_when>
    <thetext>So this is technically illegal but I guess we should match FFX and WinIE and use the last value.  AlthA, can you verify that if 3, 4, 5, etc. values are given that FFX and WinIE always pick the last one?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31698</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-02-07 01:23:29 -0800</bug_when>
    <thetext>Never mind, I get it now.  We&apos;re incorrectly accepting this invalid property.  If we rejected it, then we&apos;d use auto for margin-left.  This is our bug.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31699</commentid>
    <comment_count>9</comment_count>
      <attachid>6321</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 01:39:50 -0800</bug_when>
    <thetext>Created attachment 6321
testcase to show bug

Ok the bug is simple, we do not invalidate wrong css values correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31706</commentid>
    <comment_count>10</comment_count>
      <attachid>6323</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 02:20:24 -0800</bug_when>
    <thetext>Created attachment 6323
Newer testcase

This shows that some values get properly invalidated and others do not...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31713</commentid>
    <comment_count>11</comment_count>
      <attachid>6326</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 03:50:22 -0800</bug_when>
    <thetext>Created attachment 6326
&quot;final&quot; version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31730</commentid>
    <comment_count>12</comment_count>
      <attachid>6330</attachid>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-07 09:29:05 -0800</bug_when>
    <thetext>Created attachment 6330
Easier to understand version

As ap commented &quot;is auto garbage here?&quot; now it&apos;s garbage all over ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38199</commentid>
    <comment_count>13</comment_count>
      <attachid>7446</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-01 13:37:06 -0800</bug_when>
    <thetext>Created attachment 7446
proposed fix

Couldn&apos;t come up with any smart fix, so just checking the number of values in each case. As for layout tests, I think that both &apos;&quot;final&quot; version&apos; and &apos;Easier to understand version&apos; should be landed, as &quot;garbage&quot; and &quot;auto&quot; are quite different values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38218</commentid>
    <comment_count>14</comment_count>
      <attachid>7446</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-01 15:19:57 -0800</bug_when>
    <thetext>Comment on attachment 7446
proposed fix

Since most properties take one value, we could make this nicer by creating table of the properties that accept a number of values other than 1. Then we could do the check against 1 at the top of the function rather than sprinkling the entire thing with if (num != 1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38270</commentid>
    <comment_count>15</comment_count>
      <attachid>7459</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-02 06:59:07 -0700</bug_when>
    <thetext>Created attachment 7459
revised fix

For cases that only set valid_primitive, moved the num==1 check to the end of the function, where parsedValue is created. This has made the patch much nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38300</commentid>
    <comment_count>16</comment_count>
      <attachid>7459</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-02 16:28:43 -0700</bug_when>
    <thetext>Comment on attachment 7459
revised fix

I think this patch is great; headed in the right direction, but not ready to land yet.

Why is there any need to check &quot;num&quot; in functions that call parseShorthand? It seems to me that parseShorthand is already guaranteed to do the right thing; it can&apos;t possibly return true if there are more values than properties.

Could we perhaps fix the whole bug another way? Instead of looking at valueList-&gt;size(), could we look at valueList-&gt;current() at the end of the function to see if it&apos;s 0? That seems to go more with the flow of the code. Seems like that would work for everything except for the very few places that explicitly call return true.

What about the CSS_VAL_INHERIT and CSS_VAL_INITIAL cases? Don&apos;t those need one of these checks?

What about the SVG properties? Those should have the same issue, but they&apos;re in a different source file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38414</commentid>
    <comment_count>17</comment_count>
      <attachid>7490</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-03 13:06:02 -0700</bug_when>
    <thetext>Created attachment 7490
revised fix

&gt; Why is there any need to check &quot;num&quot; in functions that call parseShorthand? It
&gt; seems to me that parseShorthand is already guaranteed to do the right thing; it
&gt; can&apos;t possibly return true if there are more values than properties.

  Indeed, but turns out that it has a slightly different bug - it returns false, but the properties stay applied. Thanks for noticing! Added a fix (in CSSGrammar.y) and a test.

  Also added a class to automatically match enterShortcut/exitShortcut pairs; hopefully there&apos;s no hidden drawback in doing so.

&gt; Could we perhaps fix the whole bug another way? Instead of looking at
&gt; valueList-&gt;size(), could we look at valueList-&gt;current() at the end of the
&gt; function to see if it&apos;s 0? That seems to go more with the flow of the code.

  Ok, done.

&gt; What about the CSS_VAL_INHERIT and CSS_VAL_INITIAL cases? Don&apos;t those need one
&gt; of these checks?

  Fixed (a num == 1 check seemed more appropriate here).

&gt; What about the SVG properties? Those should have the same issue, but they&apos;re in
&gt; a different source file.

  The fix would be similar, but there&apos;s no test case to validate it, so I was going to open a new bug for SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38424</commentid>
    <comment_count>18</comment_count>
      <attachid>7490</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-03 14:59:25 -0700</bug_when>
    <thetext>Comment on attachment 7490
revised fix

Looks great.

+    int num = inShorthand() ? 1 : valueList-&gt;size();

It&apos;s a little strange here -- people never really want to know the size, they just want to know if it&apos;s greater than 1, 2, or greater. But if the value list happened to be huge we&apos;d walk the entire list. On the one hand, I don&apos;t think this is the only n^2 algorithm here, but on the other it would be slightly better not to do this (here or the other places in the file where we already do this). It&apos;s faster to check 1 vs. not-1 than it is to get num, etc.

ShorthandScope is a great idea. I&apos;d like ShorthandScope to be private to the .cpp file if possible. The only reason to have it in the .h file would be if we need to share with some other source file.

+                if (!(m_parser-&gt;m_inParseShorthand++))
+                    m_parser-&gt;m_currentShorthand = propId;

I think the way this works is strange. Should it really just leave m_currentShorthand alone if we&apos;re already in a shorthand? It seems to me that either we need to change this to save and restore m_currentShorthand (which is easy now that you have the ShorthandScope object) or maybe just change m_inParseShorthand to a boolean or something. This is sloppy the way it is right now, although it&apos;s not your fault. You made things better, not worse, with your patch.

I think I&apos;ll r+ even though I have these comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38471</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-03 22:30:14 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; But if the value list happened to be huge we&apos;d walk the entire list.

  ValueList is implemented with a Vector, does it really have this problem?

&gt; ShorthandScope is a great idea. I&apos;d like ShorthandScope to be private to the
&gt; .cpp file if possible.

  Ok, putting it in an anonymous namespace.

&gt; +                if (!(m_parser-&gt;m_inParseShorthand++))
&gt; +                    m_parser-&gt;m_currentShorthand = propId;
&gt; 
&gt; I think the way this works is strange. 

  I have convinced myself that this is actually correct behavior :). For example, when parsing CSS_PROP_BORDER, we descend into CSS_PROP_BORDER_WIDTH, which is also a shorthand - but the actual shorthand that needs to be passed to CSSProperty constructor is still the former.

  Filed bug 8170 for SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38532</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-04 12:00:27 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; But if the value list happened to be huge we&apos;d walk the entire list.
&gt; 
&gt;   ValueList is implemented with a Vector, does it really have this problem?

No. It doesn&apos;t. My mistake. ValueList is a terrible name.

&gt; &gt; ShorthandScope is a great idea. I&apos;d like ShorthandScope to be private to the
&gt; &gt; .cpp file if possible.
&gt; 
&gt;   Ok, putting it in an anonymous namespace.

I don&apos;t think that&apos;s a good idea. It makes debugging harder and has little benefit since we&apos;re already inside the WebCore namespace.

&gt; &gt; +                if (!(m_parser-&gt;m_inParseShorthand++))
&gt; &gt; +                    m_parser-&gt;m_currentShorthand = propId;
&gt; &gt; 
&gt; &gt; I think the way this works is strange. 
&gt; 
&gt;   I have convinced myself that this is actually correct behavior :). For
&gt; example, when parsing CSS_PROP_BORDER, we descend into CSS_PROP_BORDER_WIDTH,
&gt; which is also a shorthand - but the actual shorthand that needs to be passed to
&gt; CSSProperty constructor is still the former.

Sounds good.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6318</attachid>
            <date>2006-02-07 00:01:09 -0800</date>
            <delta_ts>2006-02-07 00:05:24 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>MinGW - Home.html</filename>
            <type>text/html</type>
            <size>451</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI0NvbnRlbnQgewoJCW1hcmdpbi1sZWZ0
OiAxNGVtIGF1dG87Cgl9CglwIHsKCQlwYWRkaW5nLWxlZnQ6IDE1ZW07Cgl9Cgk8L3N0eWxlPgo8
L2hlYWQ+Cgo8Ym9keT4KCjxkaXYgaWQ9IkNvbnRlbnQiPgogICAgICA8cD4KICAgICAgCU1pbkdX
OiBBIGNvbGxlY3Rpb24gb2YgZnJlZWx5IGF2YWlsYWJsZSBhbmQgZnJlZWx5IGRpc3RyaWJ1dGFi
bGUgV2luZG93cyBzcGVjaWZpYyAKICAgICAgCWhlYWRlciBmaWxlcyBhbmQgaW1wb3J0IGxpYnJh
cmllcyBjb21iaW5lZCB3aXRoIEdOVSB0b29sc2V0cyB0aGF0IGFsbG93IG9uZSB0byAKICAgICAg
CXByb2R1Y2UgbmF0aXZlIFdpbmRvd3MgcHJvZ3JhbXMgdGhhdCBkbyBub3QgcmVseSBvbiBhbnkg
M3JkLXBhcnR5IEMgcnVudGltZSBETExzLgogICAgICA8L3A+CjwvZGl2PgoKPC9ib2R5Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6320</attachid>
            <date>2006-02-07 00:05:24 -0800</date>
            <delta_ts>2006-02-07 01:39:50 -0800</delta_ts>
            <desc>Even further reduced testcase</desc>
            <filename>MinGW - Home.html</filename>
            <type>text/html</type>
            <size>382</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI0NvbnRlbnQgewoJCW1hcmdpbi1sZWZ0
OiAxNGVtIGF1dG87Cgl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KCjxkaXYgaWQ9IkNvbnRl
bnQiPgoJTWluR1c6IEEgY29sbGVjdGlvbiBvZiBmcmVlbHkgYXZhaWxhYmxlIGFuZCBmcmVlbHkg
ZGlzdHJpYnV0YWJsZSBXaW5kb3dzIHNwZWNpZmljIAoJaGVhZGVyIGZpbGVzIGFuZCBpbXBvcnQg
bGlicmFyaWVzIGNvbWJpbmVkIHdpdGggR05VIHRvb2xzZXRzIHRoYXQgYWxsb3cgb25lIHRvIAoJ
cHJvZHVjZSBuYXRpdmUgV2luZG93cyBwcm9ncmFtcyB0aGF0IGRvIG5vdCByZWx5IG9uIGFueSAz
cmQtcGFydHkgQyBydW50aW1lIERMTHMuCjwvZGl2PgoKPC9ib2R5Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6321</attachid>
            <date>2006-02-07 01:39:50 -0800</date>
            <delta_ts>2006-02-07 02:20:24 -0800</delta_ts>
            <desc>testcase to show bug</desc>
            <filename>invalidation-errors.html</filename>
            <type>text/html</type>
            <size>1122</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI3Rlc3RibG9jayB7CgkJd2lkdGg6IDIw
MHB4OwoJCWhlaWdodDogMjAwcHg7CgkJLyogVHJ5aW5nIGNvbG9ycyAqLwoJCWNvbG9yOiB3aGl0
ZTsKCQliYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JlZW47CgkJLyogdGhlIGNvbG9yIGFuZCBiYWNr
Z3JvdW5kLWNvbG9yIGJlbG93IHNob3VsZCBiZSBpbnZhbGlkYXRlZCwgCgkJc28gdGhlIHRleHQg
c2hvdWxkIGJlIGdyZWVuICovCgkJY29sb3I6IGJsYWNrIGF1dG87CgkJYmFja2dyb3VuZC1jb2xv
cjogZGFya3JlZCBhdXRvOwoJCS8qIFRyeWluZyBib2xkICovCgkJZm9udC13ZWlnaHQ6IDkwMDsK
CQkvKiBUcnlpbmcgaWYgdGhpcyBnZXQncyBpbnZhbGlkYXRlZCAqLwoJCWZvbnQtd2VpZ2h0OiA1
MDAgNTAwOwoJfQoJI0NvbnRlbnQgewoJCS8qIEFsbCBtYXJnaW5zIGFuZCBwYWRkaW5ncyB1bnRp
bCB0aGUgbmV4dCBjb21tZW50IGFyZSBpbmNvcnJlY3QgYW5kIAoJCXNob3VsZCBiZSBpbnZhbGlk
YXRlZCwgcmVzdWx0aW5nIGluIHBhZGRpbmcgYW5kIG1hcmdpbiAwICovCgkJbWFyZ2luLWxlZnQ6
IDEwMHB4IGF1dG87CgkJbWFyZ2luLXJpZ2h0OiAxMDBweCBhdXRvOwoJCW1hcmdpbi10b3A6IDEw
MHB4IGF1dG87CgkJbWFyZ2luLWJvdHRvbTogMTAwcHggYXV0bzsKCQlwYWRkaW5nLWxlZnQ6IDEw
MHB4IGF1dG87CgkJcGFkZGluZy1yaWdodDogMTAwcHggYXV0bzsKCQlwYWRkaW5nLXRvcDogMTAw
cHggYXV0bzsKCQlwYWRkaW5nLWJvdHRvbTogMTAwcHggYXV0bzsgCgkJLyogVGhlIHZhbHVlcyBi
ZWxvdyBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGJ1dCBhcmUgaW4gaGVyZSAKCQlmb3IgY29t
cGxldGVuZXNzLiAqLwoJCW1hcmdpbjogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsgCgkJ
cGFkZGluZzogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsKCX0KCTwvc3R5bGU+CjwvaGVh
ZD4KCjxib2R5PgoKPGRpdiBpZD0iQ29udGVudCI+Cgk8ZGl2IGlkPSJ0ZXN0YmxvY2siPlRoaXMg
dGV4dCBzaG91bGQgYmUgd2hpdGUsIG9uIGEgZGFya2dyZWVuIGJhY2tncm91bmQgYW5kIGluIHRo
ZSB0b3AgbGVmdCBjb3JuZXI8L2Rpdj4KPC9kaXY+Cgo8L2JvZHk+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6323</attachid>
            <date>2006-02-07 02:20:24 -0800</date>
            <delta_ts>2006-02-07 03:50:22 -0800</delta_ts>
            <desc>Newer testcase</desc>
            <filename>invalidation-errors.html</filename>
            <type>text/html</type>
            <size>1772</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI3Rlc3RibG9jayB7CgkJd2lkdGg6IDEw
MHB4OwoJCWhlaWdodDogMTAwcHg7CgkJLyogaW52YWxpZCB3aWR0aCBhbmQgaGVpZ2h0ICovCgkJ
d2lkdGg6IDUwMHB4IGF1dG87CgkJaGVpZ2h0OiA1MDBweCBhdXRvOwoKCQkvKiBGb250LXNpemUg
Ki8KCQlmb250LXNpemU6IDE0cHg7CgkJLyogSW52YWxpZCBmb250LXNpemVzICovCgkJZm9udC1z
aXplOiAzNnB4IGF1dG87CgkJCgkJLyogVHJ5aW5nIGNvbG9ycyAqLwoJCS8qIFRoZSAhaW1wb3J0
YW50IGlzIGhlcmUgc28geW91IGRvbid0IGJyZWFrIHRoaXMgd2hpbGUgZml4aW5nIHRoaXMgYnVn
ICovCgkJY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7CgkJY29sb3I6IGJsYWNrOwoJCWJhY2tncm91
bmQ6IGRhcmtncmVlbjsKCQkvKiB0aGUgY29sb3IgYW5kIGJhY2tncm91bmQtY29sb3IgYmVsb3cg
c2hvdWxkIGJlIGludmFsaWRhdGVkLCAKCQlzbyB0aGUgdGV4dCBzaG91bGQgYmUgZ3JlZW4gKi8K
CQljb2xvcjogYmxhY2sgYXV0byAhaW1wb3J0YW50OwoJCWJhY2tncm91bmQtY29sb3I6IGRhcmty
ZWQgYXV0bzsKCgkJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCQkvKiBUaGVzZSBvbmVz
IGFjdHVhbGx5IGdldCBpbnZhbGlkYXRlZCBjb3JyZWN0bHkgKi8KCQliYWNrZ3JvdW5kOiB1cmwo
J2h0dHA6Ly93ZWJraXQub3BlbmRhcndpbi5vcmcvaW1hZ2VzL3dlbGNvbWVvcGVuLmdpZicpIGF1
dG87CgkJYmFja2dyb3VuZC1yZXBlYXQ6IGF1dG8gcmVwZWF0LXg7CgoJCS8qIFRyeWluZyBib2xk
ICovCgkJZm9udC13ZWlnaHQ6IDkwMDsKCQkvKiBUcnlpbmcgaWYgdGhpcyBnZXQncyBpbnZhbGlk
YXRlZCAqLwoJCWZvbnQtd2VpZ2h0OiA1MDAgNTAwOwoJfQoJI0NvbnRlbnQgewoJCS8qIEFsbCBt
YXJnaW5zLCBwYWRkaW5ncyBhbmQgYm9yZGVycyB1bnRpbCB0aGUgbmV4dCBjb21tZW50IGFyZSBp
bmNvcnJlY3QgYW5kIAoJCXNob3VsZCBiZSBpbnZhbGlkYXRlZCwgcmVzdWx0aW5nIGluIHBhZGRp
bmcgYW5kIG1hcmdpbiAwICovCgkJbWFyZ2luLWxlZnQ6IDUwcHggYXV0bzsKCQltYXJnaW4tcmln
aHQ6IDUwcHggYXV0bzsKCQltYXJnaW4tdG9wOiA1MHB4IGF1dG87CgkJbWFyZ2luLWJvdHRvbTog
NTBweCBhdXRvOwoJCXBhZGRpbmctbGVmdDogNTBweCBhdXRvOwoJCXBhZGRpbmctcmlnaHQ6IDUw
cHggYXV0bzsKCQlwYWRkaW5nLXRvcDogNTBweCBhdXRvOwoJCXBhZGRpbmctYm90dG9tOiA1MHB4
IGF1dG87IAoJCWJvcmRlcjogMXB4IHNvbGlkIGF1dG87CgkJYm9yZGVyLXRvcDogeWVsbG93IGF1
dG87CQkKCQlib3JkZXItcmlnaHQ6IGJsdWUgYXV0bzsKCQlib3JkZXItYm90dG9tOiB5ZWxsb3cg
YXV0bzsJCQoJCWJvcmRlci1sZWZ0OiBibHVlIGF1dG87CgkJLyogVGhlIHZhbHVlcyBiZWxvdyBn
ZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGJ1dCBhcmUgaW4gaGVyZSAKCQlmb3IgY29tcGxldGVu
ZXNzLiAqLwoJCW1hcmdpbjogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsgCgkJcGFkZGlu
ZzogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsKCX0KCTwvc3R5bGU+CjwvaGVhZD4KCjxi
b2R5PgoKPGRpdiBpZD0iQ29udGVudCI+Cgk8ZGl2IGlkPSJ0ZXN0YmxvY2siPgoJCVRoaXMgdGV4
dCBzaG91bGQgYmUgd2hpdGUsIDE0cHgsIGluIGEgZGFya2dyZWVuIDEwMHgxMDBweCBkaXYgaW4g
dGhlIHRvcCAKCQlsZWZ0IGNvcm5lciB3aXRoIG5vIGJvcmRlcnMKCTwvZGl2Pgo8L2Rpdj4KCjwv
Ym9keT4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6326</attachid>
            <date>2006-02-07 03:50:22 -0800</date>
            <delta_ts>2006-02-07 09:29:05 -0800</delta_ts>
            <desc>&quot;final&quot; version</desc>
            <filename>invalidation-errors.html</filename>
            <type>text/html</type>
            <size>2668</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI3Rlc3RibG9jayB7CgkJd2lkdGg6IDIw
MHB4OwoJCWhlaWdodDogMjAwcHg7CgkJLyogaW52YWxpZCB3aWR0aCBhbmQgaGVpZ2h0ICovCgkJ
d2lkdGg6IDUwMHB4IGF1dG87CgkJaGVpZ2h0OiA1MDBweCAyMDBweDsKCQkKCQkvKiBGb250LXNp
emUgKi8KCQlmb250LXNpemU6IDE0cHg7CgkJLyogSW52YWxpZCBmb250LXNpemVzICovCgkJZm9u
dC1zaXplOiAzNnB4IGF1dG87CgkJCgkJZmxvYXQ6IGxlZnQ7CgkJZmxvYXQ6IHJpZ2h0IGF1dG87
CgkJLyogVHJ5aW5nIGNvbG9ycyAqLwoJCS8qIFRoZSAhaW1wb3J0YW50IGlzIGhlcmUgc28geW91
IGRvbid0IGJyZWFrIHRoaXMgd2hpbGUgZml4aW5nIHRoaXMgYnVnICovCgkJY29sb3I6IHdoaXRl
ICFpbXBvcnRhbnQ7CgkJY29sb3I6IGJsYWNrOwoJCWJhY2tncm91bmQ6IGRhcmtncmVlbjsKCQkv
KiB0aGUgY29sb3IgYW5kIGJhY2tncm91bmQtY29sb3IgYmVsb3cgc2hvdWxkIGJlIGludmFsaWRh
dGVkLCAKCQlzbyB0aGUgdGV4dCBzaG91bGQgYmUgZ3JlZW4gKi8KCQljb2xvcjogYmxhY2sgYXV0
byAhaW1wb3J0YW50OwoJCWJhY2tncm91bmQtY29sb3I6IGRhcmtyZWQgYXV0bzsKCQliYWNrZ3Jv
dW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJCQoJCS8qIFRoZXNlIG9uZXMgYWN0dWFsbHkgZ2V0IGlu
dmFsaWRhdGVkIGNvcnJlY3RseSAqLwoJCWJhY2tncm91bmQ6IHVybCgnaHR0cDovL3dlYmtpdC5v
cGVuZGFyd2luLm9yZy9pbWFnZXMvd2VsY29tZW9wZW4uZ2lmJykgYXV0bzsKCQliYWNrZ3JvdW5k
LXJlcGVhdDogYXV0byByZXBlYXQteDsKCgkJLyogVHJ5aW5nIHRleHQgYW5kIGZvbnQgcHJvcGVy
dGllcyAqLwoJCWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwoJCWZvbnQtd2VpZ2h0OiA5MDA7CgkJ
dGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCXdvcmQtc3BhY2luZzogbm9ybWFsOwoJCWxldHRlci1z
cGFjaW5nOiBub3JtYWw7CgkJdGV4dC1hbGlnbjogbGVmdDsgCgkJZGlyZWN0aW9uOiBsdHI7CgkJ
dGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKCQlmb250LXZhcmlhbnQ6IG5vcm1hbDsKCQl3aGl0
ZS1zcGFjZTogbm9ybWFsOwoJCQoJCS8qIEludmFsaWQgdGV4dCBhbmQgZm9udCBwcm9wZXJ0aWVz
ICovCgkJLyogVGhpcyBvbmUgYWN0dWFsbHkgRE9FUyBnZXQgaW52YWxpZGF0ZWQgKi8KCQlmb250
OiAiQ29taWMgU2FucyBNUyIgd29vcGRpZG9vOwoJCWZvbnQtd2VpZ2h0OiA1MDAgNTAwOwoJCS8q
IFRoaXMgb25lIGFjdHVhbGx5IERPRVMgZ2V0IGludmFsaWRhdGVkICovCgkJdGV4dC1kZWNvcmF0
aW9uOiBsaW5lLXRocm91Z2ggYXV0bzsKCQl3b3JkLXNwYWNpbmc6IDEwcHggYXV0bzsKCQlsZXR0
ZXItc3BhY2luZzogNXB4IGF1dG87CgkJdGV4dC1hbGlnbjogcmlnaHQgbGVmdDsgCgkJZGlyZWN0
aW9uOiBydGwgYXV0bzsgCgkJdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgYXV0bzsJIAoJCWZv
bnQtdmFyaWFudDogc21hbGwtY2FwcyBhdXRvOwoJCXdoaXRlLXNwYWNlOiBwcmUgYXV0bzsKCQoJ
CW91dGxpbmU6IG5vbmU7CgkJb3V0bGluZTogcmVkIDNweCBkb3R0ZWQgYXV0bzsKCgkJb3ZlcmZs
b3c6IGhpZGRlbjsKCQlvdmVyZmxvdzogdmlzaWJsZSBzY3JvbGw7Cgl9CgkjQ29udGVudCB7CgkJ
ZGlzcGxheTogaW5saW5lOwoJCS8qIGludmFsaWQgKi8KCQlkaXNwbGF5OiBibG9jayBhdXRvOwoJ
CQoJCS8qIEFsbCBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgYm9yZGVycyB1bnRpbCB0aGUgbmV4dCBj
b21tZW50IGFyZSBpbmNvcnJlY3QgYW5kIAoJCXNob3VsZCBiZSBpbnZhbGlkYXRlZCwgcmVzdWx0
aW5nIGluIHBhZGRpbmcgYW5kIG1hcmdpbiAwICovCgkJbWFyZ2luLWxlZnQ6IDUwcHggYXV0bzsK
CQltYXJnaW4tcmlnaHQ6IDUwcHggYXV0bzsKCQltYXJnaW4tdG9wOiA1MHB4IGF1dG87CgkJbWFy
Z2luLWJvdHRvbTogNTBweCBhdXRvOwoJCXBhZGRpbmctbGVmdDogNTBweCBhdXRvOwoJCXBhZGRp
bmctcmlnaHQ6IDUwcHggYXV0bzsKCQlwYWRkaW5nLXRvcDogNTBweCBhdXRvOwoJCXBhZGRpbmct
Ym90dG9tOiA1MHB4IGF1dG87IAoJCWJvcmRlcjogMXB4IHNvbGlkIGF1dG87CgkJYm9yZGVyLXRv
cDogeWVsbG93IGF1dG87CQkKCQlib3JkZXItcmlnaHQ6IGJsdWUgYXV0bzsKCQlib3JkZXItYm90
dG9tOiB5ZWxsb3cgYXV0bzsJCQoJCWJvcmRlci1sZWZ0OiBibHVlIGF1dG87CgkJLyogVGhlIHZh
bHVlcyBiZWxvdyBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGJ1dCBhcmUgaW4gaGVyZSAKCQlm
b3IgY29tcGxldGVuZXNzLiAqLwoJCW1hcmdpbjogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0
bzsgCgkJcGFkZGluZzogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsKCX0KCTwvc3R5bGU+
CjwvaGVhZD4KCjxib2R5PgoKPGRpdiBpZD0iQ29udGVudCI+Cgk8ZGl2IGlkPSJ0ZXN0YmxvY2si
PgpUaGlzIHRleHQgc2hvdWxkIGJlCmxlZnQtYWxpZ25lZCwgYWxsIGxvd2VyLWNhc2UsCm5vcm1h
bCBmb250LCB3aGl0ZSwgMTRweCwKYm9sZCwgbm9ybWFsbHkgc3BhY2VkCmFuZCB3cmFwcGVkLCBp
biBhCmRhcmtncmVlbiAyMDB4MjAwcHggZGl2IAppbiB0aGUgdG9wIGxlZnQgY29ybmVyCndpdGgg
bm8gYm9yZGVycyBvcgpvdXRsaW5lcy4KPC9kaXY+CjwvZGl2PgoKPC9ib2R5Pg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6330</attachid>
            <date>2006-02-07 09:29:05 -0800</date>
            <delta_ts>2006-02-07 09:29:05 -0800</delta_ts>
            <desc>Easier to understand version</desc>
            <filename>invalidation-errors.html</filename>
            <type>text/html</type>
            <size>2761</size>
            <attacher name="Joost de Valk (AlthA)">joost</attacher>
            
              <data encoding="base64">PGhlYWQ+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJI3Rlc3RibG9jayB7CgkJd2lkdGg6IDIw
MHB4OwoJCWhlaWdodDogMjAwcHg7CgkJLyogaW52YWxpZCB3aWR0aCBhbmQgaGVpZ2h0ICovCgkJ
d2lkdGg6IDUwMHB4IGdhcmJhZ2U7CgkJaGVpZ2h0OiA1MDBweCAyMDBweDsKCQkKCQkvKiBGb250
LXNpemUgKi8KCQlmb250LXNpemU6IDE0cHg7CgkJLyogSW52YWxpZCBmb250LXNpemVzICovCgkJ
Zm9udC1zaXplOiAzNnB4IGdhcmJhZ2U7CgkJCgkJZmxvYXQ6IGxlZnQ7CgkJZmxvYXQ6IHJpZ2h0
IGdhcmJhZ2U7CgkJLyogVHJ5aW5nIGNvbG9ycyAqLwoJCS8qIFRoZSAhaW1wb3J0YW50IGlzIGhl
cmUgc28geW91IGRvbid0IGJyZWFrIHRoaXMgd2hpbGUgZml4aW5nIHRoaXMgYnVnICovCgkJY29s
b3I6IHdoaXRlICFpbXBvcnRhbnQ7CgkJY29sb3I6IGJsYWNrOwoJCWJhY2tncm91bmQ6IGRhcmtn
cmVlbjsKCQkvKiB0aGUgY29sb3IgYW5kIGJhY2tncm91bmQtY29sb3IgYmVsb3cgc2hvdWxkIGJl
IGludmFsaWRhdGVkLCAKCQlzbyB0aGUgdGV4dCBzaG91bGQgYmUgZ3JlZW4gKi8KCQljb2xvcjog
YmxhY2sgZ2FyYmFnZSAhaW1wb3J0YW50OwoJCWJhY2tncm91bmQtY29sb3I6IGRhcmtyZWQgZ2Fy
YmFnZTsKCQliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJCQoJCS8qIFRoZXNlIG9uZXMg
YWN0dWFsbHkgZ2V0IGludmFsaWRhdGVkIGNvcnJlY3RseSAqLwoJCWJhY2tncm91bmQ6IHVybCgn
aHR0cDovL3dlYmtpdC5vcGVuZGFyd2luLm9yZy9pbWFnZXMvd2VsY29tZW9wZW4uZ2lmJykgZ2Fy
YmFnZTsKCQliYWNrZ3JvdW5kLXJlcGVhdDogZ2FyYmFnZSByZXBlYXQteDsKCgkJLyogVHJ5aW5n
IHRleHQgYW5kIGZvbnQgcHJvcGVydGllcyAqLwoJCWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwoJ
CWZvbnQtd2VpZ2h0OiA5MDA7CgkJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCXdvcmQtc3BhY2lu
Zzogbm9ybWFsOwoJCWxldHRlci1zcGFjaW5nOiBub3JtYWw7CgkJdGV4dC1hbGlnbjogbGVmdDsg
CgkJZGlyZWN0aW9uOiBsdHI7CgkJdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKCQlmb250LXZh
cmlhbnQ6IG5vcm1hbDsKCQl3aGl0ZS1zcGFjZTogbm9ybWFsOwoJCQoJCS8qIEludmFsaWQgdGV4
dCBhbmQgZm9udCBwcm9wZXJ0aWVzICovCgkJLyogVGhpcyBvbmUgYWN0dWFsbHkgRE9FUyBnZXQg
aW52YWxpZGF0ZWQgKi8KCQlmb250OiAiQ29taWMgU2FucyBNUyIgd29vcGRpZG9vOwoJCWZvbnQt
d2VpZ2h0OiA1MDAgNTAwOwoJCS8qIFRoaXMgb25lIGFjdHVhbGx5IERPRVMgZ2V0IGludmFsaWRh
dGVkICovCgkJdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggZ2FyYmFnZTsKCQl3b3JkLXNw
YWNpbmc6IDEwcHggZ2FyYmFnZTsKCQlsZXR0ZXItc3BhY2luZzogNXB4IGdhcmJhZ2U7CgkJdGV4
dC1hbGlnbjogcmlnaHQgbGVmdDsgCgkJZGlyZWN0aW9uOiBydGwgZ2FyYmFnZTsgCgkJdGV4dC10
cmFuc2Zvcm06IGNhcGl0YWxpemUgZ2FyYmFnZTsJIAoJCWZvbnQtdmFyaWFudDogc21hbGwtY2Fw
cyBnYXJiYWdlOwoJCXdoaXRlLXNwYWNlOiBwcmUgZ2FyYmFnZTsKCQoJCW91dGxpbmU6IG5vbmU7
CgkJb3V0bGluZTogcmVkIDNweCBkb3R0ZWQgZ2FyYmFnZTsKCgkJb3ZlcmZsb3c6IGhpZGRlbjsK
CQlvdmVyZmxvdzogdmlzaWJsZSBzY3JvbGw7Cgl9CgkjQ29udGVudCB7CgkJZGlzcGxheTogaW5s
aW5lOwoJCS8qIGludmFsaWQgKi8KCQlkaXNwbGF5OiBibG9jayBnYXJiYWdlOwoJCQoJCS8qIEFs
bCBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgYm9yZGVycyB1bnRpbCB0aGUgbmV4dCBjb21tZW50IGFy
ZSBpbmNvcnJlY3QgYW5kIAoJCXNob3VsZCBiZSBpbnZhbGlkYXRlZCwgcmVzdWx0aW5nIGluIHBh
ZGRpbmcgYW5kIG1hcmdpbiAwICovCgkJbWFyZ2luLWxlZnQ6IDUwcHggZ2FyYmFnZTsKCQltYXJn
aW4tcmlnaHQ6IDUwcHggZ2FyYmFnZTsKCQltYXJnaW4tdG9wOiA1MHB4IGdhcmJhZ2U7CgkJbWFy
Z2luLWJvdHRvbTogNTBweCBnYXJiYWdlOwoJCXBhZGRpbmctbGVmdDogNTBweCBnYXJiYWdlOwoJ
CXBhZGRpbmctcmlnaHQ6IDUwcHggZ2FyYmFnZTsKCQlwYWRkaW5nLXRvcDogNTBweCBnYXJiYWdl
OwoJCXBhZGRpbmctYm90dG9tOiA1MHB4IGdhcmJhZ2U7IAoJCWJvcmRlcjogMXB4IHNvbGlkIGdh
cmJhZ2U7CgkJYm9yZGVyLXRvcDogeWVsbG93IGdhcmJhZ2U7CQkKCQlib3JkZXItcmlnaHQ6IGJs
dWUgZ2FyYmFnZTsKCQlib3JkZXItYm90dG9tOiB5ZWxsb3cgZ2FyYmFnZTsJCQoJCWJvcmRlci1s
ZWZ0OiBibHVlIGdhcmJhZ2U7CgkJLyogVGhlIHZhbHVlcyBiZWxvdyBnZXQgaW52YWxpZGF0ZWQg
Y29ycmVjdGx5IGJ1dCBhcmUgaW4gaGVyZSAKCQlmb3IgY29tcGxldGVuZXNzLiAqLwoJCW1hcmdp
bjogMTAwcHggMTAwcHggMTAwcHggMTAwcHggZ2FyYmFnZTsgCgkJcGFkZGluZzogMTAwcHggMTAw
cHggMTAwcHggMTAwcHggZ2FyYmFnZTsKCX0KCTwvc3R5bGU+CjwvaGVhZD4KCjxib2R5PgoKPGRp
diBpZD0iQ29udGVudCI+Cgk8ZGl2IGlkPSJ0ZXN0YmxvY2siPgpUaGlzIHRleHQgc2hvdWxkIGJl
CmxlZnQtYWxpZ25lZCwgYWxsIGxvd2VyLWNhc2UsCm5vcm1hbCBmb250LCB3aGl0ZSwgMTRweCwK
Ym9sZCwgbm9ybWFsbHkgc3BhY2VkCmFuZCB3cmFwcGVkLCBpbiBhCmRhcmtncmVlbiAyMDB4MjAw
cHggZGl2IAppbiB0aGUgdG9wIGxlZnQgY29ybmVyCndpdGggbm8gYm9yZGVycyBvcgpvdXRsaW5l
cy4KPC9kaXY+CjwvZGl2PgoKPC9ib2R5Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7446</attachid>
            <date>2006-04-01 13:37:06 -0800</date>
            <delta_ts>2006-04-02 06:59:07 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>7118r1_patch.txt</filename>
            <type>text/plain</type>
            <size>31199</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvY3NzL2Nzc3BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvY3NzcGFyc2VyLmNwcAkocmV2aXNpb24gMTM2MjcpCisrKyBXZWJDb3JlL2Nzcy9jc3NwYXJz
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNiArMzM3LDggQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogCiAgICAgaW50IGlkID0gdmFsdWUtPmlkOwogCisg
ICAgaW50IG51bSA9IGluU2hvcnRoYW5kKCkgPyAxIDogdmFsdWVMaXN0LT5zaXplKCk7CisKICAg
ICBpZiAoaWQgPT0gQ1NTX1ZBTF9JTkhFUklUKSB7CiAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJ
ZCwgbmV3IENTU0luaGVyaXRlZFZhbHVlKCksIGltcG9ydGFudCk7CiAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMzY3LDYgKzM2OSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGIKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTX1BST1BfVU5JQ09ERV9CSURJOiAgICAgICAgIC8vIG5vcm1hbCB8
IGVtYmVkIHwgYmlkaS1vdmVycmlkZSB8IGluaGVyaXQKKyAgICAgICAgaWYgKG51bSAhPSAxKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JN
QUwgfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX0VNQkVEIHx8CiAgICAgICAgICAgICAg
aWQgPT0gQ1NTX1ZBTF9CSURJX09WRVJSSURFKQpAQCAtMzc0LDYgKzM3OCw4IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBj
YXNlIENTU19QUk9QX1BPU0lUSU9OOiAgICAgICAgICAgICAvLyBzdGF0aWMgfCByZWxhdGl2ZSB8
IGFic29sdXRlIHwgZml4ZWQgfCBpbmhlcml0CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfU1RBVElDIHx8
CiAgICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9SRUxBVElWRSB8fAogICAgICAgICAgICAgIGlk
ID09IENTU19WQUxfQUJTT0xVVEUgfHwKQEAgLTM4Myw2ICszODksOCBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAKICAgICBjYXNlIENTU19QUk9QX1BBR0VfQlJF
QUtfQUZURVI6ICAgICAvLyBhdXRvIHwgYWx3YXlzIHwgYXZvaWQgfCBsZWZ0IHwgcmlnaHQgfCBp
bmhlcml0CiAgICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0JFRk9SRTogICAgLy8gYXV0byB8
IGFsd2F5cyB8IGF2b2lkIHwgbGVmdCB8IHJpZ2h0IHwgaW5oZXJpdAorICAgICAgICBpZiAobnVt
ICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1Nf
VkFMX0FVVE8gfHwKICAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX0FMV0FZUyB8fAogICAgICAg
ICAgICAgIGlkID09IENTU19WQUxfQVZPSUQgfHwKQEAgLTM5MiwxMiArNDAwLDE2IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIENTU19QUk9QX1BBR0VfQlJFQUtfSU5TSURFOiAgICAvLyBhdm9pZCB8IGF1dG8gfCBp
bmhlcml0CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTyB8fAogICAgICAgICAgICAgIGlkID09IENT
U19WQUxfQVZPSUQpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQ1NTX1BST1BfRU1QVFlfQ0VMTFM6ICAgICAgICAgIC8vIHNo
b3cgfCBoaWRlIHwgaW5oZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX1NIT1cgfHwKICAgICAgICAg
ICAgICBpZCA9PSBDU1NfVkFMX0hJREUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOwpAQCAtNDA5LDYgKzQyMSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX1dISVRFX1NQQUNF
OiAgICAgICAgICAvLyBub3JtYWwgfCBwcmUgfCBub3dyYXAgfCBpbmhlcml0CisgICAgICAgIGlm
IChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09
IENTU19WQUxfTk9STUFMIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX1BSRSB8fAogICAg
ICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9QUkVfV1JBUCB8fApAQCAtNDE4LDcgKzQzMiw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU19QUk9QX0NMSVA6ICAgICAgICAgICAgICAgICAvLyA8c2hhcGU+IHwgYXV0
byB8IGluaGVyaXQKLSAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVUTykKKyAgICAgICAgaWYg
KGlkID09IENTU19WQUxfQVVUTyAmJiBudW0gPT0gMSkKICAgICAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IFZhbHVlOjpGdW5j
dGlvbikKICAgICAgICAgICAgIHJldHVybiBwYXJzZVNoYXBlKHByb3BJZCwgaW1wb3J0YW50KTsK
QEAgLTQzNSwzMyArNDQ5LDQ1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGIKICAgICAgKiBjb3JyZWN0bHkgYW5kIGFsbG93cyBvcHRpbWl6YXRpb24gaW4gV2ViQ29y
ZTo6YXBwbHlSdWxlKC4uKQogICAgICAqLwogICAgIGNhc2UgQ1NTX1BST1BfQ0FQVElPTl9TSURF
OiAgICAgICAgIC8vIHRvcCB8IGJvdHRvbSB8IGxlZnQgfCByaWdodCB8IGluaGVyaXQKKyAgICAg
ICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9MRUZUIHx8IGlkID09IENTU19WQUxfUklHSFQgfHwKICAgICAgICAgICAg
IGlkID09IENTU19WQUxfVE9QIHx8IGlkID09IENTU19WQUxfQk9UVE9NKQogICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19Q
Uk9QX0JPUkRFUl9DT0xMQVBTRTogICAgICAvLyBjb2xsYXBzZSB8IHNlcGFyYXRlIHwgaW5oZXJp
dAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGlmIChpZCA9PSBDU1NfVkFMX0NPTExBUFNFIHx8IGlkID09IENTU19WQUxfU0VQQVJBVEUp
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ1NTX1BST1BfVklTSUJJTElUWTogICAgICAgICAgIC8vIHZpc2libGUgfCBoaWRk
ZW4gfCBjb2xsYXBzZSB8IGluaGVyaXQKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9WSVNJQkxFIHx8IGlk
ID09IENTU19WQUxfSElEREVOIHx8IGlkID09IENTU19WQUxfQ09MTEFQU0UpCiAgICAgICAgICAg
ICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NT
X1BST1BfT1ZFUkZMT1c6ICAgICAgICAgICAgIC8vIHZpc2libGUgfCBoaWRkZW4gfCBzY3JvbGwg
fCBhdXRvIHwgbWFycXVlZSB8IG92ZXJsYXkgfCBpbmhlcml0CisgICAgICAgIGlmIChudW0gIT0g
MSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxf
VklTSUJMRSB8fCBpZCA9PSBDU1NfVkFMX0hJRERFTiB8fCBpZCA9PSBDU1NfVkFMX1NDUk9MTCB8
fCBpZCA9PSBDU1NfVkFMX0FVVE8gfHwKICAgICAgICAgICAgIGlkID09IENTU19WQUxfTUFSUVVF
RSB8fCBpZCA9PSBDU1NfVkFMX09WRVJMQVkpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTX1BST1BfTElTVF9TVFlMRV9Q
T1NJVElPTjogIC8vIGluc2lkZSB8IG91dHNpZGUgfCBpbmhlcml0CisgICAgICAgIGlmIChudW0g
IT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19W
QUxfSU5TSURFIHx8IGlkID09IENTU19WQUxfT1VUU0lERSkKICAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9MSVNU
X1NUWUxFX1RZUEU6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgLy8gZGlzYyB8IGNpcmNsZSB8IHNxdWFyZSB8IGRlY2ltYWwgfCBkZWNp
bWFsLWxlYWRpbmctemVybyB8IGxvd2VyLXJvbWFuIHwKICAgICAgICAgLy8gdXBwZXItcm9tYW4g
fCBsb3dlci1ncmVlayB8IGxvd2VyLWFscGhhIHwgbG93ZXItbGF0aW4gfCB1cHBlci1hbHBoYSB8
CiAgICAgICAgIC8vIHVwcGVyLWxhdGluIHwgaGVicmV3IHwgYXJtZW5pYW4gfCBnZW9yZ2lhbiB8
IGNqay1pZGVvZ3JhcGhpYyB8IGhpcmFnYW5hIHwKQEAgLTQ3NCwyNyArNTAwLDM3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgLy8gaW5saW5lIHwg
YmxvY2sgfCBsaXN0LWl0ZW0gfCBydW4taW4gfCBpbmxpbmUtYmxvY2sgfCB0YWJsZSB8CiAgICAg
ICAgIC8vIGlubGluZS10YWJsZSB8IHRhYmxlLXJvdy1ncm91cCB8IHRhYmxlLWhlYWRlci1ncm91
cCB8IHRhYmxlLWZvb3Rlci1ncm91cCB8IHRhYmxlLXJvdyB8CiAgICAgICAgIC8vIHRhYmxlLWNv
bHVtbi1ncm91cCB8IHRhYmxlLWNvbHVtbiB8IHRhYmxlLWNlbGwgfCB0YWJsZS1jYXB0aW9uIHwg
Ym94IHwgaW5saW5lLWJveCB8IG5vbmUgfCBpbmhlcml0CisgICAgICAgIGlmIChudW0gIT0gMSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKChpZCA+PSBDU1NfVkFMX0lO
TElORSAmJiBpZCA8PSBDU1NfVkFMX19LSFRNTF9JTkxJTkVfQk9YKSB8fCBpZCA9PSBDU1NfVkFM
X05PTkUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTX1BST1BfRElSRUNUSU9OOiAgICAgICAgICAgIC8vIGx0ciB8IHJ0
bCB8IGluaGVyaXQKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9MVFIgfHwgaWQgPT0gQ1NTX1ZBTF9SVEwp
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9UUkFOU0ZPUk06ICAgICAgIC8vIGNhcGl0YWxpemUgfCB1
cHBlcmNhc2UgfCBsb3dlcmNhc2UgfCBub25lIHwgaW5oZXJpdAorICAgICAgICBpZiAobnVtICE9
IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICgoaWQgPj0gQ1NTX1ZB
TF9DQVBJVEFMSVpFICYmIGlkIDw9IENTU19WQUxfTE9XRVJDQVNFKSB8fCBpZCA9PSBDU1NfVkFM
X05PTkUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTX1BST1BfRkxPQVQ6ICAgICAgICAgICAgICAgIC8vIGxlZnQgfCBy
aWdodCB8IG5vbmUgfCBpbmhlcml0ICsgY2VudGVyIGZvciBidWdneSBDU1MKKyAgICAgICAgaWYg
KG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0g
Q1NTX1ZBTF9MRUZUIHx8IGlkID09IENTU19WQUxfUklHSFQgfHwKICAgICAgICAgICAgICBpZCA9
PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9DRU5URVIpCiAgICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTX1BST1Bf
Q0xFQVI6ICAgICAgICAgICAgICAgIC8vIG5vbmUgfCBsZWZ0IHwgcmlnaHQgfCBib3RoIHwgaW5o
ZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9MRUZUIHx8CiAg
ICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9SSUdIVHx8IGlkID09IENTU19WQUxfQk9USCkKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CkBAIC01MDIsNiArNTM4LDggQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogCiAgICAgY2FzZSBDU1NfUFJP
UF9URVhUX0FMSUdOOgogICAgICAgICAvLyBsZWZ0IHwgcmlnaHQgfCBjZW50ZXIgfCBqdXN0aWZ5
IHwga2h0bWxfbGVmdCB8IGtodG1sX3JpZ2h0IHwga2h0bWxfY2VudGVyIHwgPHN0cmluZz4gfCBp
bmhlcml0CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKChpZCA+PSBDU1NfVkFMX19LSFRNTF9BVVRPICYmIGlkIDw9IENTU19WQUxf
X0tIVE1MX0NFTlRFUikgfHwKICAgICAgICAgICAgICB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1NUUklORykKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7
CkBAIC01MDksMTkgKzU0NywyNCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBiCiAKICAgICBjYXNlIENTU19QUk9QX09VVExJTkVfU1RZTEU6ICAgICAgICAvLyA8Ym9y
ZGVyLXN0eWxlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FV
VE8pIHsKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICBp
ZiAobnVtID09IDEpCisgICAgICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IC8vIEZhbGwgdGhyb3VnaCEKICAgICBjYXNlIENT
U19QUk9QX0JPUkRFUl9UT1BfU1RZTEU6ICAgICAvLy8vIDxib3JkZXItc3R5bGU+IHwgaW5oZXJp
dAogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX1JJR0hUX1NUWUxFOiAgIC8vICAgRGVmaW5lZCBh
czogICAgbm9uZSB8IGhpZGRlbiB8IGRvdHRlZCB8IGRhc2hlZCB8CiAgICAgY2FzZSBDU1NfUFJP
UF9CT1JERVJfQk9UVE9NX1NUWUxFOiAgLy8gICBzb2xpZCB8IGRvdWJsZSB8IGdyb292ZSB8IHJp
ZGdlIHwgaW5zZXQgfCBvdXRzZXQKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1NUWUxF
OiAgICAvLy8vCisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgaWYgKGlkID49IENTU19WQUxfTk9ORSAmJiBpZCA8PSBDU1NfVkFMX0RPVUJM
RSkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NfUFJPUF9GT05UX1dFSUdIVDogIC8vIG5vcm1hbCB8IGJvbGQgfCBib2xk
ZXIgfCBsaWdodGVyIHwgMTAwIHwgMjAwIHwgMzAwIHwgNDAwIHwKICAgICAgICAgLy8gNTAwIHwg
NjAwIHwgNzAwIHwgODAwIHwgOTAwIHwgaW5oZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA+PSBDU1NfVkFMX05PUk1B
TCAmJiBpZCA8PSBDU1NfVkFMXzkwMCkgewogICAgICAgICAgICAgLy8gQWxscmVhZHkgY29ycmVj
dCBpZAogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTU0MCw3ICs1ODMs
NiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBD
U1NfUFJPUF9CT1JERVJfU1BBQ0lORzogewogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1sy
XSA9IHsgQ1NTX1BST1BfX0tIVE1MX0JPUkRFUl9IT1JJWk9OVEFMX1NQQUNJTkcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9fS0hUTUxfQk9SREVSX1ZFUlRJ
Q0FMX1NQQUNJTkcgfTsKLSAgICAgICAgaW50IG51bSA9IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAg
ICAgICBpZiAobnVtID09IDEpIHsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0
aWVzWzBdLCBpbXBvcnRhbnQpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSog
dmFsdWUgPSBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3BlcnRpZXMtMV0tPnZhbHVlKCk7
CkBAIC01NDgsMTQgKzU5MCwyMCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBiCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBlbHNl
IGlmIChudW0gPT0gMikgewotICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNb
MF0sIGltcG9ydGFudCkpIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghcGFyc2VWYWx1
ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBl
bnRlclNob3J0aGFuZChDU1NfUFJPUF9CT1JERVJfU1BBQ0lORyk7CisgICAgICAgICAgICBpZiAo
IXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKSB7CisgICAgICAgICAgICAgICAgZXhpdFNob3J0aGFuZCgp
OworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGV4aXRTaG9ydGhhbmQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxf
Qk9SREVSX0hPUklaT05UQUxfU1BBQ0lORzoKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9CT1JE
RVJfVkVSVElDQUxfU1BBQ0lORzoKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUs
IEZMZW5ndGh8Rk5vbk5lZywgc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1Nf
UFJPUF9TQ1JPTExCQVJfRkFDRV9DT0xPUjogICAgICAgICAvLyBJRTUuNQpAQCAtNTcwLDYgKzYx
OCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAg
Lyogbm9icmVhayAqLwogICAgIGNhc2UgQ1NTX1BST1BfT1VUTElORV9DT0xPUjogICAgICAgIC8v
IDxjb2xvcj4gfCBpbnZlcnQgfCBpbmhlcml0CiAgICAgICAgIC8vIG91dGxpbmUgaGFzICJpbnZl
cnQiIGFzIGFkZGl0aW9uYWwga2V5d29yZC4KKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAocHJvcElkID09IENTU19QUk9QX09VVExJ
TkVfQ09MT1IgJiYgaWQgPT0gQ1NTX1ZBTF9JTlZFUlQpIHsKICAgICAgICAgICAgIHZhbGlkX3By
aW1pdGl2ZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKQEAgLTU4NCw2ICs2MzQsOCBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJP
UF9URVhUX0xJTkVfVEhST1VHSF9DT0xPUjogLy8gQ1NTMyB0ZXh0IGRlY29yYXRpb24gY29sb3Jz
CiAgICAgY2FzZSBDU1NfUFJPUF9URVhUX1VOREVSTElORV9DT0xPUjoKICAgICBjYXNlIENTU19Q
Uk9QX1RFWFRfT1ZFUkxJTkVfQ09MT1I6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfX0tIVE1MX1RFWFQp
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOyAvLyBBbHdheXMgYWxsb3cgdGhp
cywgZXZlbiB3aGVuIHN0cmljdCBwYXJzaW5nIGlzIG9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgdXNlIHRoaXMgaW4gb3VyIFVBIHNoZWV0cy4KQEAg
LTYwMSw2ICs2NTMsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBi
CiAgICAgICAgIC8vICBbIGF1dG8gfCBjcm9zc2hhaXIgfCBkZWZhdWx0IHwgcG9pbnRlciB8IHBy
b2dyZXNzIHwgbW92ZSB8IGUtcmVzaXplIHwgbmUtcmVzaXplIHwKICAgICAgICAgLy8gbnctcmVz
aXplIHwgbi1yZXNpemUgfCBzZS1yZXNpemUgfCBzdy1yZXNpemUgfCBzLXJlc2l6ZSB8IHctcmVz
aXplIHwgdGV4dCB8CiAgICAgICAgIC8vIHdhaXQgfCBoZWxwIF0gXSB8IGluaGVyaXQKKyAgICAg
ICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
IXN0cmljdCAmJiBpZCA9PSBDU1NfVkFMX0hBTkQpIHsgLy8gTVNJRSA1IGNvbXBhdGliaWxpdHkg
Oi8KICAgICAgICAgICAgIGlkID0gQ1NTX1ZBTF9QT0lOVEVSOwogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTYzNCw2ICs2ODgsOCBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAg
Y2FzZSBDU1NfUFJPUF9MSVNUX1NUWUxFX0lNQUdFOiAgICAgLy8gPHVyaT4gfCBub25lIHwgaW5o
ZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUpIHsKICAgICAgICAgICAgIHBhcnNlZFZhbHVl
ID0gbmV3IENTU0ltYWdlVmFsdWUoKTsKICAgICAgICAgICAgIHZhbHVlTGlzdC0+bmV4dCgpOwpA
QCAtNjU1LDYgKzcxMSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGIKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9SSUdIVF9XSURUSDogICAvLyAgIFdoaWNoIGlz
IGRlZmluZWQgYXMKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9CT1RUT01fV0lEVEg6ICAvLyAg
IHRoaW4gfCBtZWRpdW0gfCB0aGljayB8IDxsZW5ndGg+CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JE
RVJfTEVGVF9XSURUSDogICAgLy8vLworICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX1RISU4gfHwgaWQgPT0g
Q1NTX1ZBTF9NRURJVU0gfHwgaWQgPT0gQ1NTX1ZBTF9USElDSykKICAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKQEAgLTY2Myw2ICs3MjEsOCBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAKICAgICBjYXNlIENTU19QUk9Q
X0xFVFRFUl9TUEFDSU5HOiAgICAgICAvLyBub3JtYWwgfCA8bGVuZ3RoPiB8IGluaGVyaXQKICAg
ICBjYXNlIENTU19QUk9QX1dPUkRfU1BBQ0lORzogICAgICAgICAvLyBub3JtYWwgfCA8bGVuZ3Ro
PiB8IGluaGVyaXQKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JNQUwpCiAgICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCkBAIC02NzAsMjUgKzczMCwzNSBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NfUFJPUF9XT1JEX1dSQVA6ICAgICAgICAgICAvLyBub3JtYWwgfCBicmVh
ay13b3JkCisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKGlkID09IENTU19WQUxfTk9STUFMIHx8IGlkID09IENTU19WQUxfQlJFQUtf
V09SRCkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxfRk9OVF9TSVpFX0RFTFRBOiAgICAgICAgICAg
Ly8gPGxlbmd0aD4KLSAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVl
LCBGTGVuZ3RoLCBzdHJpY3QpOworICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aCwgc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX19L
SFRNTF9OQlNQX01PREU6ICAgICAvLyBub3JtYWwgfCBzcGFjZQorICAgICAgICBpZiAobnVtICE9
IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X05PUk1BTCB8fCBpZCA9PSBDU1NfVkFMX1NQQUNFKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9M
SU5FX0JSRUFLOiAgIC8vIG5vcm1hbCB8IGFmdGVyLXdoaXRlLXNwYWNlCisgICAgICAgIGlmIChu
dW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENT
U19WQUxfTk9STUFMIHx8IGlkID09IENTU19WQUxfQUZURVJfV0hJVEVfU1BBQ0UpCiAgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
Q1NTX1BST1BfX0tIVE1MX01BVENIX05FQVJFU1RfTUFJTF9CTE9DS1FVT1RFX0NPTE9SOiAgIC8v
IG5vcm1hbCB8IG1hdGNoCisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfTk9STUFMIHx8IGlkID09IENTU19W
QUxfTUFUQ0gpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKQEAgLTY5OSwxOCArNzY5LDIzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX1BBRERJTkdfQk9UVE9NOiAgICAgICAvLyAg
IDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+CiAgICAgY2FzZSBDU1NfUFJPUF9QQURESU5HX0xFRlQ6
ICAgICAgICAgLy8vLwogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX1BBRERJTkdfU1RBUlQ6Cisg
ICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGh8RlBlcmNl
bnQsIHN0cmljdCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTX1BST1BfTUFYX0hF
SUdIVDogICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgbm9uZSB8IGluaGVy
aXQKICAgICBjYXNlIENTU19QUk9QX01BWF9XSURUSDogICAgICAgICAgICAvLyA8bGVuZ3RoPiB8
IDxwZXJjZW50YWdlPiB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9JTlRSSU5TSUMgfHwgaWQgPT0gQ1NTX1ZBTF9NSU5fSU5U
UklOU0lDKSB7Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKG51bSA9PSAxKQorICAgICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvKiBub2JyZWFrICovCiAg
ICAgY2FzZSBDU1NfUFJPUF9NSU5fSEVJR0hUOiAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVy
Y2VudGFnZT4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NfUFJPUF9NSU5fV0lEVEg6ICAgICAgICAg
ICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CisgICAgICAgIGlmIChudW0g
IT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19W
QUxfSU5UUklOU0lDIHx8IGlkID09IENTU19WQUxfTUlOX0lOVFJJTlNJQykKICAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UKQEAgLTcxOSw2ICs3OTQsOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAKICAgICBjYXNlIENT
U19QUk9QX0ZPTlRfU0laRToKICAgICAgICAgLy8gPGFic29sdXRlLXNpemU+IHwgPHJlbGF0aXZl
LXNpemU+IHwgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CisgICAgICAgIGlmIChu
dW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID49IENT
U19WQUxfWFhfU01BTEwgJiYgaWQgPD0gQ1NTX1ZBTF9MQVJHRVIpCiAgICAgICAgICAgICB2YWxp
ZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCkBAIC03MjYsMTEgKzgwMywxNSBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NfUFJPUF9GT05UX1NUWUxFOiAgICAgICAgICAgLy8gbm9ybWFsIHwgaXRh
bGljIHwgb2JsaXF1ZSB8IGluaGVyaXQKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JNQUwgfHwgaWQg
PT0gQ1NTX1ZBTF9JVEFMSUMgfHwgaWQgPT0gQ1NTX1ZBTF9PQkxJUVVFKQogICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19Q
Uk9QX0ZPTlRfVkFSSUFOVDogICAgICAgICAvLyBub3JtYWwgfCBzbWFsbC1jYXBzIHwgaW5oZXJp
dAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGlmIChpZCA9PSBDU1NfVkFMX05PUk1BTCB8fCBpZCA9PSBDU1NfVkFMX1NNQUxMX0NBUFMp
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAg
LTczOCw3ICs4MTksOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBi
CiAgICAgY2FzZSBDU1NfUFJPUF9WRVJUSUNBTF9BTElHTjoKICAgICAgICAgLy8gYmFzZWxpbmUg
fCBzdWIgfCBzdXBlciB8IHRvcCB8IHRleHQtdG9wIHwgbWlkZGxlIHwgYm90dG9tIHwgdGV4dC1i
b3R0b20gfAogICAgICAgICAvLyA8cGVyY2VudGFnZT4gfCA8bGVuZ3RoPiB8IGluaGVyaXQKLQor
ICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGlmIChpZCA+PSBDU1NfVkFMX0JBU0VMSU5FICYmIGlkIDw9IENTU19WQUxfX0tIVE1MX0JBU0VM
SU5FX01JRERMRSkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGVsc2UKQEAgLTc0Nyw2ICs4MjksOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQg
cHJvcElkLCBiCiAKICAgICBjYXNlIENTU19QUk9QX0hFSUdIVDogICAgICAgICAgICAgICAvLyA8
bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGF1dG8gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NfUFJP
UF9XSURUSDogICAgICAgICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBhdXRv
IHwgaW5oZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NTX1ZBTF9JTlRS
SU5TSUMgfHwgaWQgPT0gQ1NTX1ZBTF9NSU5fSU5UUklOU0lDKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQpAQCAtNzYzLDYgKzg0Nyw4IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX01B
UkdJTl9CT1RUT006ICAgICAgICAvLyAgIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgYXV0byB8
IGluaGVyaXQKICAgICBjYXNlIENTU19QUk9QX01BUkdJTl9MRUZUOiAgICAgICAgICAvLy8vCiAg
ICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxfTUFSR0lOX1NUQVJUOgorICAgICAgICBpZiAobnVtICE9
IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFM
X0FVVE8pCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNl
CkBAIC03NzEsMTcgKzg1NywyMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBiCiAKICAgICBjYXNlIENTU19QUk9QX1pfSU5ERVg6ICAgICAgICAgICAgICAvLyBhdXRv
IHwgPGludGVnZXI+IHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9BVVRPKSB7
Ci0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgaWYgKG51
bSA9PSAxKQorICAgICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvKiBub2JyZWFrICovCiAgICAgY2FzZSBD
U1NfUFJPUF9PUlBIQU5TOiAgICAgICAgICAgICAgLy8gPGludGVnZXI+IHwgaW5oZXJpdAogICAg
IGNhc2UgQ1NTX1BST1BfV0lET1dTOiAgICAgICAgICAgICAgIC8vIDxpbnRlZ2VyPiB8IGluaGVy
aXQKICAgICAgICAgLy8gIyMjIG5vdCBzdXBwb3J0ZWQgbGF0ZXIgb24KKyAgICAgICAgaWYgKG51
bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIsIGZhbHNlKSk7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDU1NfUFJPUF9MSU5FX0hFSUdIVDogICAgICAgICAgLy8gbm9y
bWFsIHwgPG51bWJlcj4gfCA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGluaGVyaXQKKyAgICAg
ICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9OT1JNQUwpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBlbHNlCkBAIC03OTgsNyArODg5LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX1RFWFRfREVDT1JB
VElPTlNfSU5fRUZGRUNUOgogICAgICAgICAvLyBub25lIHwgWyB1bmRlcmxpbmUgfHwgb3Zlcmxp
bmUgfHwgbGluZS10aHJvdWdoIHx8IGJsaW5rIF0gfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9
PSBDU1NfVkFMX05PTkUpIHsKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAobnVtID09IDEpCisgICAgICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIENTU1ZhbHVlTGlzdCAqbGlz
dCA9IG5ldyBDU1NWYWx1ZUxpc3Q7CiAgICAgICAgICAgICBib29sIGlzX3ZhbGlkID0gdHJ1ZTsK
QEAgLTgyNSwxMiArOTE3LDE2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9w
SWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX1RBQkxFX0xBWU9VVDog
ICAgICAgICAvLyBhdXRvIHwgZml4ZWQgfCBpbmhlcml0CisgICAgICAgIGlmIChudW0gIT0gMSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfQVVU
TyB8fCBpZCA9PSBDU1NfVkFMX0ZJWEVEKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICAvKiBDU1MzIHByb3BlcnRpZXMgKi8KICAgICBj
YXNlIENTU19QUk9QX19LSFRNTF9BUFBFQVJBTkNFOgorICAgICAgICBpZiAobnVtICE9IDEpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICgoaWQgPj0gQ1NTX1ZBTF9DSEVD
S0JPWCAmJiBpZCA8PSBDU1NfVkFMX1RFWFRGSUVMRCkgfHwgaWQgPT0gQ1NTX1ZBTF9OT05FKQog
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC04
MzgsNyArOTM0LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgog
ICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX0JJTkRJTkc6CiAjaWZuZGVmIEtIVE1MX05PX1hCTAog
ICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT05FKQotICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IChudW0gPT0gMSk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZXMgPSBuZXcgQ1NT
VmFsdWVMaXN0KCk7CiAgICAgICAgICAgICBWYWx1ZSogdmFsOwpAQCAtODY5LDcgKzk2NSw3IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfSU1BR0U6CiAgICAgICAgIGlmIChpZCA9PSBDU1Nf
VkFMX05PTkUpCi0gICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gKG51bSA9PSAxKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlQm9yZGVySW1hZ2UocHJvcElkLCBpbXBvcnRhbnQpOwogICAgICAgICBi
cmVhazsKQEAgLTg3OCw3ICs5NzQsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQg
cHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfQk9UVE9NX0xFRlRfUkFESVVTOgog
ICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9SSUdIVF9SQURJVVM6CiAgICAgY2FzZSBD
U1NfUFJPUF9CT1JERVJfUkFESVVTOiB7Ci0gICAgICAgIGludCBudW0gPSB2YWx1ZUxpc3QtPnNp
emUoKTsKICAgICAgICAgaWYgKG51bSAhPSAxICYmIG51bSAhPSAyKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZM
ZW5ndGgsIHN0cmljdCk7CkBAIC05MDUsNTEgKzEwMDAsNzEgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
Y2FzZSBDU1NfUFJPUF9PVVRMSU5FX09GRlNFVDoKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVu
aXQodmFsdWUsIEZMZW5ndGgsIHN0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
X1BST1BfVEVYVF9TSEFET1c6IC8vIENTUzIgcHJvcGVydHksIGRyb3BwZWQgaW4gQ1NTMi4xLCBi
YWNrIGluIENTUzMsIHNvIHRyZWF0IGFzIENTUzMKICAgICAgICAgaWYgKGlkID09IENTU19WQUxf
Tk9ORSkKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSAobnVtID09IDEpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBy
ZXR1cm4gcGFyc2VTaGFkb3cocHJvcElkLCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU19QUk9QX09QQUNJVFk6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZh
bHVlLCBGTnVtYmVyLCBzdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9Q
X19LSFRNTF9CT1hfQUxJR046CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfU1RSRVRDSCB8fCBpZCA9PSBD
U1NfVkFMX1NUQVJUIHx8IGlkID09IENTU19WQUxfRU5EIHx8CiAgICAgICAgICAgICBpZCA9PSBD
U1NfVkFMX0NFTlRFUiB8fCBpZCA9PSBDU1NfVkFMX0JBU0VMSU5FKQogICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9f
S0hUTUxfQk9YX0RJUkVDVElPTjoKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9OT1JNQUwgfHwgaWQgPT0g
Q1NTX1ZBTF9SRVZFUlNFKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxfQk9YX0xJTkVTOgorICAgICAg
ICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NfVkFMX1NJTkdMRSB8fCBpZCA9PSBDU1NfVkFMX01VTFRJUExFKQogICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1Nf
UFJPUF9fS0hUTUxfQk9YX09SSUVOVDoKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9IT1JJWk9OVEFMIHx8
IGlkID09IENTU19WQUxfVkVSVElDQUwgfHwKICAgICAgICAgICAgIGlkID09IENTU19WQUxfSU5M
SU5FX0FYSVMgfHwgaWQgPT0gQ1NTX1ZBTF9CTE9DS19BWElTKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9fS0hU
TUxfQk9YX1BBQ0s6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfU1RBUlQgfHwgaWQgPT0gQ1NTX1ZBTF9F
TkQgfHwKICAgICAgICAgICAgIGlkID09IENTU19WQUxfQ0VOVEVSIHx8IGlkID09IENTU19WQUxf
SlVTVElGWSkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX0JPWF9GTEVYOgorICAgICAgICBpZiAobnVt
ICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRk51bWJlciwgc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxfQk9YX0ZMRVhfR1JPVVA6CiAgICAgY2FzZSBDU1NfUFJP
UF9fS0hUTUxfQk9YX09SRElOQUxfR1JPVVA6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCB0cnVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NfUFJPUF9CT1hfU0laSU5HOiB7CiAgICAgICAgIC8vIFdlIGRvbid0IHByZWZhY2UgdGhp
cyB3aXRoIC1raHRtbCwgc2luY2UgTWFjSUUgZGVmaW5lZCB0aGlzIHByb3BlcnR5IHdpdGhvdXQg
dGhlIHByZWZpeC4KICAgICAgICAgLy8gVGh1cyB0aGUgZGFtYWdlIGhhcyBiZWVuIGRvbmUsIGFu
ZCBpdCdzIGtub3duIHRoYXQgdGhpcyBwcm9wZXJ0eSdzIGRlZmluaXRpb24gaXNuJ3QgZ29pbmcK
ICAgICAgICAgLy8gdG8gZmx1Y3R1YXRlLgorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0JPUkRFUl9CT1gg
fHwgaWQgPT0gQ1NTX1ZBTF9DT05URU5UX0JPWCkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwpAQCAtOTU4LDU3ICsxMDczLDc2IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgY29uc3QgaW50IHByb3Bl
cnRpZXNbNV0gPSB7IENTU19QUk9QX19LSFRNTF9NQVJRVUVFX0RJUkVDVElPTiwgQ1NTX1BST1Bf
X0tIVE1MX01BUlFVRUVfSU5DUkVNRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ1NTX1BST1BfX0tIVE1MX01BUlFVRUVfUkVQRVRJVElPTiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENTU19QUk9QX19LSFRNTF9NQVJRVUVFX1NUWUxFLCBDU1Nf
UFJPUF9fS0hUTUxfTUFSUVVFRV9TUEVFRCB9OworICAgICAgICBpZiAobnVtID4gNSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJ
ZCwgcHJvcGVydGllcywgNSwgaW1wb3J0YW50KTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9f
S0hUTUxfTUFSUVVFRV9ESVJFQ1RJT046CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19WQUxfRk9SV0FSRFMgfHwg
aWQgPT0gQ1NTX1ZBTF9CQUNLV0FSRFMgfHwgaWQgPT0gQ1NTX1ZBTF9BSEVBRCB8fAogICAgICAg
ICAgICAgaWQgPT0gQ1NTX1ZBTF9SRVZFUlNFIHx8IGlkID09IENTU19WQUxfTEVGVCB8fCBpZCA9
PSBDU1NfVkFMX1JJR0hUIHx8IGlkID09IENTU19WQUxfRE9XTiB8fAogICAgICAgICAgICAgaWQg
PT0gQ1NTX1ZBTF9VUCB8fCBpZCA9PSBDU1NfVkFMX0FVVE8pCiAgICAgICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX19LSFRN
TF9NQVJRVUVFX0lOQ1JFTUVOVDoKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9TTUFMTCB8fCBpZCA9PSBD
U1NfVkFMX0xBUkdFIHx8IGlkID09IENTU19WQUxfTUVESVVNKQogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RofEZQZXJjZW50LCBzdHJpY3QpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9NQVJRVUVFX1NUWUxFOgorICAgICAg
ICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChp
ZCA9PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9TTElERSB8fCBpZCA9PSBDU1NfVkFM
X1NDUk9MTCB8fCBpZCA9PSBDU1NfVkFMX0FMVEVSTkFURSB8fAogICAgICAgICAgICAgaWQgPT0g
Q1NTX1ZBTF9VTkZVUkwpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9NQVJRVUVFX1JFUEVUSVRJT046
CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgaWYgKGlkID09IENTU19WQUxfSU5GSU5JVEUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2
YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyfEZOb25OZWcsIHN0cmljdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX01BUlFVRUVfU1BFRUQ6CisgICAgICAgIGlmIChu
dW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENT
U19WQUxfTk9STUFMIHx8IGlkID09IENTU19WQUxfU0xPVyB8fCBpZCA9PSBDU1NfVkFMX0ZBU1Qp
CiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lfEZJbnRlZ2Vy
fEZOb25OZWcsIHN0cmljdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTX1BST1BfX0tI
VE1MX1VTRVJfRFJBRzogLy8gYXV0byB8IG5vbmUgfCBlbGVtZW50CisgICAgICAgIGlmIChudW0g
IT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlkID09IENTU19W
QUxfQVVUTyB8fCBpZCA9PSBDU1NfVkFMX05PTkUgfHwgaWQgPT0gQ1NTX1ZBTF9FTEVNRU5UKQog
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDU1NfUFJPUF9fS0hUTUxfVVNFUl9NT0RJRlk6IC8vIHJlYWQtb25seSB8IHJlYWQtd3Jp
dGUKKyAgICAgICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9SRUFEX09OTFkgfHwgaWQgPT0gQ1NTX1ZBTF9SRUFEX1dS
SVRFIHx8IENTU19WQUxfUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWSkKICAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTX1BST1Bf
X0tIVE1MX1VTRVJfU0VMRUNUOiAvLyBhdXRvIHwgbm9uZSB8IHRleHQKKyAgICAgICAgaWYgKG51
bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0gQ1NT
X1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfTk9ORSB8fCBpZCA9PSBDU1NfVkFMX1RFWFQgfHwg
aWQgPT0gQ1NTX1ZBTF9JR05PUkUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX1RFWFRfT1ZFUkZMT1c6IC8vIGNs
aXAgfCBlbGxpcHNpcworICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0NMSVAgfHwgaWQgPT0gQ1NTX1ZBTF9F
TExJUFNJUykKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9DT0xMQVBTRTogewogICAgICAg
ICBjb25zdCBpbnQgcHJvcGVydGllc1syXSA9IHsgQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9UT1Bf
Q09MTEFQU0UsCiAgICAgICAgICAgICBDU1NfUFJPUF9fS0hUTUxfTUFSR0lOX0JPVFRPTV9DT0xM
QVBTRSB9OwotICAgICAgICBpbnQgbnVtID0gdmFsdWVMaXN0LT5zaXplKCk7CiAgICAgICAgIGlm
IChudW0gPT0gMSkgewogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0s
IGltcG9ydGFudCkpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9
IHBhcnNlZFByb3BlcnRpZXNbbnVtUGFyc2VkUHJvcGVydGllcy0xXS0+dmFsdWUoKTsKQEAgLTEw
MTYsMjYgKzExNTAsMzYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwg
YgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAo
bnVtID09IDIpIHsKLSAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBp
bXBvcnRhbnQpKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJv
cGVydGllc1sxXSwgaW1wb3J0YW50KSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZW50ZXJT
aG9ydGhhbmQoQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9DT0xMQVBTRSk7CisgICAgICAgICAgICBp
ZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShw
cm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKSB7CisgICAgICAgICAgICAgICAgZXhpdFNob3J0aGFu
ZCgpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGV4aXRTaG9ydGhhbmQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9fS0hU
TUxfTUFSR0lOX1RPUF9DT0xMQVBTRToKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9NQVJHSU5f
Qk9UVE9NX0NPTExBUFNFOgorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0NPTExBUFNFIHx8IGlkID09IENT
U19WQUxfU0VQQVJBVEUgfHwgaWQgPT0gQ1NTX1ZBTF9ESVNDQVJEKQogICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9U
RVhUX0xJTkVfVEhST1VHSF9NT0RFOgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9PVkVSTElORV9N
T0RFOgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9VTkRFUkxJTkVfTU9ERToKKyAgICAgICAgaWYg
KG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoaWQgPT0g
Q1NTX1ZBTF9DT05USU5VT1VTIHx8IGlkID09IENTU19WQUxfU0tJUF9XSElURV9TUEFDRSkKICAg
ICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTX1BST1BfVEVYVF9MSU5FX1RIUk9VR0hfU1RZTEU6CiAgICAgY2FzZSBDU1NfUFJPUF9U
RVhUX09WRVJMSU5FX1NUWUxFOgogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9VTkRFUkxJTkVfU1RZ
TEU6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGlkID09IENTU19WQUxfTk9ORSB8fCBpZCA9PSBDU1NfVkFMX1NPTElEIHx8IGlk
ID09IENTU19WQUxfRE9VQkxFIHx8CiAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX0RBU0hFRCB8
fCBpZCA9PSBDU1NfVkFMX0RPVF9EQVNIIHx8IGlkID09IENTU19WQUxfRE9UX0RPVF9EQVNIIHx8
CiAgICAgICAgICAgICBpZCA9PSBDU1NfVkFMX1dBVkUpCkBAIC0xMDQ0LDYgKzExODgsOCBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJP
UF9URVhUX0xJTkVfVEhST1VHSF9XSURUSDoKICAgICBjYXNlIENTU19QUk9QX1RFWFRfT1ZFUkxJ
TkVfV0lEVEg6CiAgICAgY2FzZSBDU1NfUFJPUF9URVhUX1VOREVSTElORV9XSURUSDoKKyAgICAg
ICAgaWYgKG51bSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
aWQgPT0gQ1NTX1ZBTF9BVVRPIHx8IGlkID09IENTU19WQUxfTk9STUFMIHx8IGlkID09IENTU19W
QUxfVEhJTiB8fAogICAgICAgICAgICAgaWQgPT0gQ1NTX1ZBTF9NRURJVU0gfHwgaWQgPT0gQ1NT
X1ZBTF9USElDSykKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CkBAIC0xMDU2
LDEzICsxMjAyLDE5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIK
ICAgICAvLyBBcHBsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzLiAgVGhlc2Ugd2lsbCBuZXZlciBiZSBz
dGFuZGFyZGl6ZWQgYW5kIGFyZSBwdXJlbHkgdG8KICAgICAvLyBzdXBwb3J0IGN1c3RvbSBXZWJL
aXQtYmFzZWQgQXBwbGUgYXBwbGljYXRpb25zLgogICAgIGNhc2UgQ1NTX1BST1BfX0tIVE1MX0xJ
TkVfQ0xBTVA6CisgICAgICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZQ
ZXJjZW50LCBmYWxzZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19QUk9QX19LSFRN
TF9URVhUX1NJWkVfQURKVVNUOgorICAgICAgICBpZiAobnVtICE9IDEpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX0FVVE8gfHwgaWQgPT0gQ1NT
X1ZBTF9OT05FKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDU1NfUFJPUF9fS0hUTUxfUlRMX09SREVSSU5HOgorICAgICAgICBp
ZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9
PSBDU1NfVkFMX0xPR0lDQUwgfHwgaWQgPT0gQ1NTX1ZBTF9WSVNVQUwpCiAgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTEwNzcsNiArMTIyOSw4
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICB7CiAgICAg
ICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBDU1NfUFJPUF9CT1JERVJfV0lEVEgsIENT
U19QUk9QX0JPUkRFUl9TVFlMRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENTU19QUk9QX0JPUkRFUl9DT0xPUiB9OworICAgICAgICBpZiAobnVtID4gMykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwg
cHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JE
RVJfVE9QOgpAQCAtMTA4NCw2ICsxMjM4LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUo
aW50IHByb3BJZCwgYgogICAgIHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7
IENTU19QUk9QX0JPUkRFUl9UT1BfV0lEVEgsIENTU19QUk9QX0JPUkRFUl9UT1BfU1RZTEUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9CT1JERVJfVE9QX0NP
TE9SfTsKKyAgICAgICAgaWYgKG51bSA+IDMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9y
dGFudCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX1JJR0hUOgpAQCAtMTA5MSw2
ICsxMjQ3LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAg
IHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENTU19QUk9QX0JPUkRFUl9S
SUdIVF9XSURUSCwgQ1NTX1BST1BfQk9SREVSX1JJR0hUX1NUWUxFLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ1NTX1BST1BfQk9SREVSX1JJR0hUX0NPTE9SIH07CisgICAg
ICAgIGlmIChudW0gPiAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1
cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOwogICAg
IH0KICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9CT1RUT006CkBAIC0xMDk4LDYgKzEyNTYsOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgewogICAgICAg
ICBjb25zdCBpbnQgcHJvcGVydGllc1szXSA9IHsgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9XSURU
SCwgQ1NTX1BST1BfQk9SREVSX0JPVFRPTV9TVFlMRSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENTU19QUk9QX0JPUkRFUl9CT1RUT01fQ09MT1IgfTsKKyAgICAgICAgaWYg
KG51bSA+IDMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBwYXJz
ZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CiAgICAgfQogICAg
IGNhc2UgQ1NTX1BST1BfQk9SREVSX0xFRlQ6CkBAIC0xMTA1LDYgKzEyNjUsOCBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgewogICAgICAgICBjb25zdCBp
bnQgcHJvcGVydGllc1szXSA9IHsgQ1NTX1BST1BfQk9SREVSX0xFRlRfV0lEVEgsIENTU19QUk9Q
X0JPUkRFUl9MRUZUX1NUWUxFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTX1BST1BfQk9SREVSX0xFRlRfQ09MT1IgfTsKKyAgICAgICAgaWYgKG51bSA+IDMpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9w
SWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX1BST1Bf
T1VUTElORToKQEAgLTExMTIsNiArMTI3NCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KGludCBwcm9wSWQsIGIKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0g
eyBDU1NfUFJPUF9PVVRMSU5FX1dJRFRILCBDU1NfUFJPUF9PVVRMSU5FX1NUWUxFLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTX1BST1BfT1VUTElORV9DT0xPUiB9Owor
ICAgICAgICBpZiAobnVtID4gMykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
cmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsK
ICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfQ09MT1I6CkBAIC0xMTUzLDcgKzEzMTcs
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIC8v
IFsgWyAnZm9udC1zdHlsZScgfHwgJ2ZvbnQtdmFyaWFudCcgfHwgJ2ZvbnQtd2VpZ2h0JyBdPyAn
Zm9udC1zaXplJyBbIC8gJ2xpbmUtaGVpZ2h0JyBdPwogICAgICAgICAvLyAnZm9udC1mYW1pbHkn
IF0gfCBjYXB0aW9uIHwgaWNvbiB8IG1lbnUgfCBtZXNzYWdlLWJveCB8IHNtYWxsLWNhcHRpb24g
fCBzdGF0dXMtYmFyIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPj0gQ1NTX1ZBTF9DQVBUSU9O
ICYmIGlkIDw9IENTU19WQUxfU1RBVFVTX0JBUikKLSAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSAobnVtID09IDEpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VGb250KGltcG9ydGFudCk7CiAKQEAg
LTExNjEsNiArMTMyNSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGIKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBDU1NfUFJPUF9M
SVNUX1NUWUxFX1RZUEUsIENTU19QUk9QX0xJU1RfU1RZTEVfUE9TSVRJT04sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9MSVNUX1NUWUxFX0lNQUdFIH07Cisg
ICAgICAgIGlmIChudW0gPiAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBy
ZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOwog
ICAgIH0KICAgICBkZWZhdWx0Ogo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7459</attachid>
            <date>2006-04-02 06:59:07 -0700</date>
            <delta_ts>2006-04-03 13:06:02 -0700</delta_ts>
            <desc>revised fix</desc>
            <filename>7118r2_patch.txt</filename>
            <type>text/plain</type>
            <size>21187</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlLzEwMy1leHBlY3Rl
ZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1j
b2xsYXBzZS8xMDMtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDEzNjM2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLmNoZWNrc3VtCSh3
b3JraW5nIGNvcHkpCkBAIC0xICsxIEBACi1iMGE0YjE1YmQxYzBkZTc2M2RjNGNhMjNmMzliOTM0
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzE5M2I3NGE2Nzk2MWM4OTJlOTY3MDlmM2Nl
NzViNWIyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
aW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS8x
MDMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFy
Z2luLWNvbGxhcHNlLzEwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjM2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXgxNjkxCiAg
ICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwyKSBzaXplIDUyMHg0MAogICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyKSB3aWR0aCA1MjA6ICJXZSBhcmUgdHJ5aW5nIHRvIHVu
ZGVyc3RhbmQgaG93IFVWaWMgc3R1ZGVudHMgcGVyZm9ybSBTaGFrZXNwZWFyZSByZWxhdGVkIHJl
c2VhcmNoIGZvciIKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjIpIHdpZHRoIDI2NTog
ImNsYXNzZXMgYXMgd2VsbCBhcyBmb3IgdGhlaXIgb3duIGludGVyZXN0LiBUaGUgIgotICAgICAg
ICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDE3M3gxNiBbYm9yZGVyOiAoMXB4
IGRhc2hlZCAjMzMzMzMzKSBub25lXQorICAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAo
MCwwKSBzaXplIDE3M3gxNQogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMjY1
LDIyKSBzaXplIDE3M3gyMAogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNjUsMjIpIHdp
ZHRoIDE3MzogIkludGVybmV0IFNoYWtlc3BlYXJlIEVkaXRpb25zIgogICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDQzOCwyMikgc2l6ZSA1NjB4NjAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTA4IEBACis8aGVhZD4KKwk8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgorCSN0ZXN0YmxvY2sgeworCQl3aWR0aDogMjAwcHg7CisJCWhlaWdodDogMjAwcHg7CisJCS8q
IGludmFsaWQgd2lkdGggYW5kIGhlaWdodCAqLworCQl3aWR0aDogNTAwcHggYXV0bzsKKwkJaGVp
Z2h0OiA1MDBweCAyMDBweDsKKwkJCisJCS8qIEZvbnQtc2l6ZSAqLworCQlmb250LXNpemU6IDE0
cHg7CisJCS8qIEludmFsaWQgZm9udC1zaXplcyAqLworCQlmb250LXNpemU6IDM2cHggYXV0bzsK
KwkJCisJCWZsb2F0OiBsZWZ0OworCQlmbG9hdDogcmlnaHQgYXV0bzsKKwkJLyogVHJ5aW5nIGNv
bG9ycyAqLworCQkvKiBUaGUgIWltcG9ydGFudCBpcyBoZXJlIHNvIHlvdSBkb24ndCBicmVhayB0
aGlzIHdoaWxlIGZpeGluZyB0aGlzIGJ1ZyAqLworCQljb2xvcjogd2hpdGUgIWltcG9ydGFudDsK
KwkJY29sb3I6IGJsYWNrOworCQliYWNrZ3JvdW5kOiBkYXJrZ3JlZW47CisJCS8qIHRoZSBjb2xv
ciBhbmQgYmFja2dyb3VuZC1jb2xvciBiZWxvdyBzaG91bGQgYmUgaW52YWxpZGF0ZWQsIAorCQlz
byB0aGUgdGV4dCBzaG91bGQgYmUgZ3JlZW4gKi8KKwkJY29sb3I6IGJsYWNrIGF1dG8gIWltcG9y
dGFudDsKKwkJYmFja2dyb3VuZC1jb2xvcjogZGFya3JlZCBhdXRvOworCQliYWNrZ3JvdW5kLXJl
cGVhdDogbm8tcmVwZWF0OworCQkKKwkJLyogVGhlc2Ugb25lcyBhY3R1YWxseSBnZXQgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5ICovCisJCWJhY2tncm91bmQ6IHVybCgnaHR0cDovL3dlYmtpdC5vcGVu
ZGFyd2luLm9yZy9pbWFnZXMvd2VsY29tZW9wZW4uZ2lmJykgYXV0bzsKKwkJYmFja2dyb3VuZC1y
ZXBlYXQ6IGF1dG8gcmVwZWF0LXg7CisKKwkJLyogVHJ5aW5nIHRleHQgYW5kIGZvbnQgcHJvcGVy
dGllcyAqLworCQlmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKwkJZm9udC13ZWlnaHQ6IDkwMDsK
KwkJdGV4dC1kZWNvcmF0aW9uOiBub25lOworCQl3b3JkLXNwYWNpbmc6IG5vcm1hbDsKKwkJbGV0
dGVyLXNwYWNpbmc6IG5vcm1hbDsKKwkJdGV4dC1hbGlnbjogbGVmdDsgCisJCWRpcmVjdGlvbjog
bHRyOworCQl0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOworCQlmb250LXZhcmlhbnQ6IG5vcm1h
bDsKKwkJd2hpdGUtc3BhY2U6IG5vcm1hbDsKKwkJCisJCS8qIEludmFsaWQgdGV4dCBhbmQgZm9u
dCBwcm9wZXJ0aWVzICovCisJCS8qIFRoaXMgb25lIGFjdHVhbGx5IERPRVMgZ2V0IGludmFsaWRh
dGVkICovCisJCWZvbnQ6ICJDb21pYyBTYW5zIE1TIiB3b29wZGlkb287CisJCWZvbnQtd2VpZ2h0
OiA1MDAgNTAwOworCQkvKiBUaGlzIG9uZSBhY3R1YWxseSBET0VTIGdldCBpbnZhbGlkYXRlZCAq
LworCQl0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCBhdXRvOworCQl3b3JkLXNwYWNpbmc6
IDEwcHggYXV0bzsKKwkJbGV0dGVyLXNwYWNpbmc6IDVweCBhdXRvOworCQl0ZXh0LWFsaWduOiBy
aWdodCBsZWZ0OyAKKwkJZGlyZWN0aW9uOiBydGwgYXV0bzsgCisJCXRleHQtdHJhbnNmb3JtOiBj
YXBpdGFsaXplIGF1dG87CSAKKwkJZm9udC12YXJpYW50OiBzbWFsbC1jYXBzIGF1dG87CisJCXdo
aXRlLXNwYWNlOiBwcmUgYXV0bzsKKwkKKwkJb3V0bGluZTogbm9uZTsKKwkJb3V0bGluZTogcmVk
IDNweCBkb3R0ZWQgYXV0bzsKKworCQlvdmVyZmxvdzogaGlkZGVuOworCQlvdmVyZmxvdzogdmlz
aWJsZSBzY3JvbGw7CisJfQorCSNDb250ZW50IHsKKwkJZGlzcGxheTogaW5saW5lOworCQkvKiBp
bnZhbGlkICovCisJCWRpc3BsYXk6IGJsb2NrIGF1dG87CisJCQorCQkvKiBBbGwgbWFyZ2lucywg
cGFkZGluZ3MgYW5kIGJvcmRlcnMgdW50aWwgdGhlIG5leHQgY29tbWVudCBhcmUgaW5jb3JyZWN0
IGFuZCAKKwkJc2hvdWxkIGJlIGludmFsaWRhdGVkLCByZXN1bHRpbmcgaW4gcGFkZGluZyBhbmQg
bWFyZ2luIDAgKi8KKwkJbWFyZ2luLWxlZnQ6IDUwcHggYXV0bzsKKwkJbWFyZ2luLXJpZ2h0OiA1
MHB4IGF1dG87CisJCW1hcmdpbi10b3A6IDUwcHggYXV0bzsKKwkJbWFyZ2luLWJvdHRvbTogNTBw
eCBhdXRvOworCQlwYWRkaW5nLWxlZnQ6IDUwcHggYXV0bzsKKwkJcGFkZGluZy1yaWdodDogNTBw
eCBhdXRvOworCQlwYWRkaW5nLXRvcDogNTBweCBhdXRvOworCQlwYWRkaW5nLWJvdHRvbTogNTBw
eCBhdXRvOyAKKwkJYm9yZGVyOiAxcHggc29saWQgYXV0bzsKKwkJYm9yZGVyLXRvcDogeWVsbG93
IGF1dG87CQkKKwkJYm9yZGVyLXJpZ2h0OiBibHVlIGF1dG87CisJCWJvcmRlci1ib3R0b206IHll
bGxvdyBhdXRvOwkJCisJCWJvcmRlci1sZWZ0OiBibHVlIGF1dG87CisJCS8qIFRoZSB2YWx1ZXMg
YmVsb3cgZ2V0IGludmFsaWRhdGVkIGNvcnJlY3RseSBidXQgYXJlIGluIGhlcmUgCisJCWZvciBj
b21wbGV0ZW5lc3MuICovCisJCW1hcmdpbjogMTAwcHggMTAwcHggMTAwcHggMTAwcHggYXV0bzsg
CisJCXBhZGRpbmc6IDEwMHB4IDEwMHB4IDEwMHB4IDEwMHB4IGF1dG87CisJfQorCTwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3
aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE4Ij5idWcgNzExODwvYT46V3JvbmcgcHJvcGVydHkg
dmFsdWVzIGRvIG5vdCBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5LjwvcD4KKzxkaXYgaWQ9IkNv
bnRlbnQiPgorCTxkaXYgaWQ9InRlc3RibG9jayI+CitUaGlzIHRleHQgc2hvdWxkIGJlCitsZWZ0
LWFsaWduZWQsIGFsbCBsb3dlci1jYXNlLAorbm9ybWFsIGZvbnQsIHdoaXRlLCAxNHB4LAorYm9s
ZCwgbm9ybWFsbHkgc3BhY2VkCithbmQgd3JhcHBlZCwgaW4gYQorZGFya2dyZWVuIDIwMHgyMDBw
eCBkaXYgCitpbiB0aGUgdG9wIGxlZnQgY29ybmVyCit3aXRoIG5vIGJvcmRlcnMgb3IKK291dGxp
bmVzLgorPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlz
cGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdl
L3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC5w
bmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRp
b24tZXJyb3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NTc2CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDYweDE4IFtjb2xvcj0jMDAwMEVF
XQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNjB4MTgKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYwOiAiYnVnIDcxMTgiCisgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICg2MCwwKSBzaXplIDM1MngxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICg2MCwwKSB3aWR0aCAzNTI6ICI6V3JvbmcgcHJvcGVydHkgdmFsdWVzIGRvIG5vdCBnZXQg
aW52YWxpZGF0ZWQgY29ycmVjdGx5LiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0
ICgwLDM0KSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBz
aXplIDB4MCBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRkZGMDApICgxcHggc29saWQgIzAwMDBGRikg
KDFweCBzb2xpZCAjRkZGRjAwKSAoMXB4IHNvbGlkICMwMDAwRkYpXQorICAgICAgICAgIFJlbmRl
clRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQge1RFWFR9
IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCw0Mikgc2l6ZSAyMDB4MjAwCisgIFJlbmRl
ckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtjb2xvcj0jRkZG
RkZGXSBbYmdjb2xvcj0jMDA2NDAwXQorICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNp
emUgMTk0eDEyOAorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTYwOiAidGhpcyB0ZXh0
IHNob3VsZCBiZSBsZWZ0LSIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDE2KSB3aWR0aCAxNTc6ICJh
bGlnbmVkLCBhbGwgbG93ZXItY2FzZSwiCisgICAgICB0ZXh0IHJ1biBhdCAoMCwzMikgd2lkdGgg
MTY5OiAibm9ybWFsIGZvbnQsIHdoaXRlLCAxNHB4LCIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDQ4
KSB3aWR0aCAxODI6ICJib2xkLCBub3JtYWxseSBzcGFjZWQgYW5kIgorICAgICAgdGV4dCBydW4g
YXQgKDAsNjQpIHdpZHRoIDE2NTogIndyYXBwZWQsIGluIGEgZGFya2dyZWVuIgorICAgICAgdGV4
dCBydW4gYXQgKDAsODApIHdpZHRoIDEwMjogIjIwMHgyMDBweCBkaXYgIgorICAgICAgdGV4dCBy
dW4gYXQgKDEwMiw4MCkgd2lkdGggOTI6ICJpbiB0aGUgdG9wIGxlZnQiCisgICAgICB0ZXh0IHJ1
biBhdCAoMCw5Nikgd2lkdGggMTc0OiAiY29ybmVyIHdpdGggbm8gYm9yZGVycyBvciIKKyAgICAg
IHRleHQgcnVuIGF0ICgwLDExMikgd2lkdGggNjA6ICJvdXRsaW5lcy4iCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3JzLTItZXhwZWN0ZWQucG5nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1l
LXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IGludmFsaWRhdGlvbi1lcnJv
cnMtMi1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgaW1h
Z2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0y
LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2lu
dmFsaWRhdGlvbi1lcnJvcnMtMi1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi1leHBlY3RlZC5jaGVja3N1
bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorMGQ1MGNiM2Q0ODI0MmE0ZWEzNTI0MTBhY2U0
MmRlZGIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEwOCBAQAorPGhlYWQ+CisJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkjdGVzdGJs
b2NrIHsKKwkJd2lkdGg6IDIwMHB4OworCQloZWlnaHQ6IDIwMHB4OworCQkvKiBpbnZhbGlkIHdp
ZHRoIGFuZCBoZWlnaHQgKi8KKwkJd2lkdGg6IDUwMHB4IGdhcmJhZ2U7CisJCWhlaWdodDogNTAw
cHggMjAwcHg7CisJCQorCQkvKiBGb250LXNpemUgKi8KKwkJZm9udC1zaXplOiAxNHB4OworCQkv
KiBJbnZhbGlkIGZvbnQtc2l6ZXMgKi8KKwkJZm9udC1zaXplOiAzNnB4IGdhcmJhZ2U7CisJCQor
CQlmbG9hdDogbGVmdDsKKwkJZmxvYXQ6IHJpZ2h0IGdhcmJhZ2U7CisJCS8qIFRyeWluZyBjb2xv
cnMgKi8KKwkJLyogVGhlICFpbXBvcnRhbnQgaXMgaGVyZSBzbyB5b3UgZG9uJ3QgYnJlYWsgdGhp
cyB3aGlsZSBmaXhpbmcgdGhpcyBidWcgKi8KKwkJY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7CisJ
CWNvbG9yOiBibGFjazsKKwkJYmFja2dyb3VuZDogZGFya2dyZWVuOworCQkvKiB0aGUgY29sb3Ig
YW5kIGJhY2tncm91bmQtY29sb3IgYmVsb3cgc2hvdWxkIGJlIGludmFsaWRhdGVkLCAKKwkJc28g
dGhlIHRleHQgc2hvdWxkIGJlIGdyZWVuICovCisJCWNvbG9yOiBibGFjayBnYXJiYWdlICFpbXBv
cnRhbnQ7CisJCWJhY2tncm91bmQtY29sb3I6IGRhcmtyZWQgZ2FyYmFnZTsKKwkJYmFja2dyb3Vu
ZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKwkJCisJCS8qIFRoZXNlIG9uZXMgYWN0dWFsbHkgZ2V0IGlu
dmFsaWRhdGVkIGNvcnJlY3RseSAqLworCQliYWNrZ3JvdW5kOiB1cmwoJ2h0dHA6Ly93ZWJraXQu
b3BlbmRhcndpbi5vcmcvaW1hZ2VzL3dlbGNvbWVvcGVuLmdpZicpIGdhcmJhZ2U7CisJCWJhY2tn
cm91bmQtcmVwZWF0OiBnYXJiYWdlIHJlcGVhdC14OworCisJCS8qIFRyeWluZyB0ZXh0IGFuZCBm
b250IHByb3BlcnRpZXMgKi8KKwkJZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisJCWZvbnQtd2Vp
Z2h0OiA5MDA7CisJCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKKwkJd29yZC1zcGFjaW5nOiBub3Jt
YWw7CisJCWxldHRlci1zcGFjaW5nOiBub3JtYWw7CisJCXRleHQtYWxpZ246IGxlZnQ7IAorCQlk
aXJlY3Rpb246IGx0cjsKKwkJdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKKwkJZm9udC12YXJp
YW50OiBub3JtYWw7CisJCXdoaXRlLXNwYWNlOiBub3JtYWw7CisJCQorCQkvKiBJbnZhbGlkIHRl
eHQgYW5kIGZvbnQgcHJvcGVydGllcyAqLworCQkvKiBUaGlzIG9uZSBhY3R1YWxseSBET0VTIGdl
dCBpbnZhbGlkYXRlZCAqLworCQlmb250OiAiQ29taWMgU2FucyBNUyIgd29vcGRpZG9vOworCQlm
b250LXdlaWdodDogNTAwIDUwMDsKKwkJLyogVGhpcyBvbmUgYWN0dWFsbHkgRE9FUyBnZXQgaW52
YWxpZGF0ZWQgKi8KKwkJdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggZ2FyYmFnZTsKKwkJ
d29yZC1zcGFjaW5nOiAxMHB4IGdhcmJhZ2U7CisJCWxldHRlci1zcGFjaW5nOiA1cHggZ2FyYmFn
ZTsKKwkJdGV4dC1hbGlnbjogcmlnaHQgbGVmdDsgCisJCWRpcmVjdGlvbjogcnRsIGdhcmJhZ2U7
IAorCQl0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSBnYXJiYWdlOwkgCisJCWZvbnQtdmFyaWFu
dDogc21hbGwtY2FwcyBnYXJiYWdlOworCQl3aGl0ZS1zcGFjZTogcHJlIGdhcmJhZ2U7CisJCisJ
CW91dGxpbmU6IG5vbmU7CisJCW91dGxpbmU6IHJlZCAzcHggZG90dGVkIGdhcmJhZ2U7CisKKwkJ
b3ZlcmZsb3c6IGhpZGRlbjsKKwkJb3ZlcmZsb3c6IHZpc2libGUgc2Nyb2xsOworCX0KKwkjQ29u
dGVudCB7CisJCWRpc3BsYXk6IGlubGluZTsKKwkJLyogaW52YWxpZCAqLworCQlkaXNwbGF5OiBi
bG9jayBnYXJiYWdlOworCQkKKwkJLyogQWxsIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBib3JkZXJz
IHVudGlsIHRoZSBuZXh0IGNvbW1lbnQgYXJlIGluY29ycmVjdCBhbmQgCisJCXNob3VsZCBiZSBp
bnZhbGlkYXRlZCwgcmVzdWx0aW5nIGluIHBhZGRpbmcgYW5kIG1hcmdpbiAwICovCisJCW1hcmdp
bi1sZWZ0OiA1MHB4IGdhcmJhZ2U7CisJCW1hcmdpbi1yaWdodDogNTBweCBnYXJiYWdlOworCQlt
YXJnaW4tdG9wOiA1MHB4IGdhcmJhZ2U7CisJCW1hcmdpbi1ib3R0b206IDUwcHggZ2FyYmFnZTsK
KwkJcGFkZGluZy1sZWZ0OiA1MHB4IGdhcmJhZ2U7CisJCXBhZGRpbmctcmlnaHQ6IDUwcHggZ2Fy
YmFnZTsKKwkJcGFkZGluZy10b3A6IDUwcHggZ2FyYmFnZTsKKwkJcGFkZGluZy1ib3R0b206IDUw
cHggZ2FyYmFnZTsgCisJCWJvcmRlcjogMXB4IHNvbGlkIGdhcmJhZ2U7CisJCWJvcmRlci10b3A6
IHllbGxvdyBnYXJiYWdlOwkJCisJCWJvcmRlci1yaWdodDogYmx1ZSBnYXJiYWdlOworCQlib3Jk
ZXItYm90dG9tOiB5ZWxsb3cgZ2FyYmFnZTsJCQorCQlib3JkZXItbGVmdDogYmx1ZSBnYXJiYWdl
OworCQkvKiBUaGUgdmFsdWVzIGJlbG93IGdldCBpbnZhbGlkYXRlZCBjb3JyZWN0bHkgYnV0IGFy
ZSBpbiBoZXJlIAorCQlmb3IgY29tcGxldGVuZXNzLiAqLworCQltYXJnaW46IDEwMHB4IDEwMHB4
IDEwMHB4IDEwMHB4IGdhcmJhZ2U7IAorCQlwYWRkaW5nOiAxMDBweCAxMDBweCAxMDBweCAxMDBw
eCBnYXJiYWdlOworCX0KKwk8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPjxhIGhyZWY9
Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExOCI+YnVn
IDcxMTg8L2E+Oldyb25nIHByb3BlcnR5IHZhbHVlcyBkbyBub3QgZ2V0IGludmFsaWRhdGVkIGNv
cnJlY3RseS48L3A+Cis8ZGl2IGlkPSJDb250ZW50Ij4KKwk8ZGl2IGlkPSJ0ZXN0YmxvY2siPgor
VGhpcyB0ZXh0IHNob3VsZCBiZQorbGVmdC1hbGlnbmVkLCBhbGwgbG93ZXItY2FzZSwKK25vcm1h
bCBmb250LCB3aGl0ZSwgMTRweCwKK2JvbGQsIG5vcm1hbGx5IHNwYWNlZAorYW5kIHdyYXBwZWQs
IGluIGEKK2RhcmtncmVlbiAyMDB4MjAwcHggZGl2IAoraW4gdGhlIHRvcCBsZWZ0IGNvcm5lcgor
d2l0aCBubyBib3JkZXJzIG9yCitvdXRsaW5lcy4KKzwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtZXhwZWN0ZWQu
Y2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9u
LWVycm9ycy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEgQEAKKzBkNTBjYjNkNDgyNDJhNGVhMzUyNDEwYWNlNDJkZWRiClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0
aW9uLWVycm9ycy0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3JzLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTc2CisgICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBh
dCAoMCwwKSBzaXplIDYweDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQg
e1RFWFR9IGF0ICgwLDApIHNpemUgNjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDYwOiAiYnVnIDcxMTgiCisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg2MCww
KSBzaXplIDM1MngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MCwwKSB3aWR0aCAzNTI6ICI6
V3JvbmcgcHJvcGVydHkgdmFsdWVzIGRvIG5vdCBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5LiIK
KyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0KSBzaXplIDc4NHgwCisgICAg
ICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDB4MCBbYm9yZGVyOiAoMXB4IHNv
bGlkICNGRkZGMDApICgxcHggc29saWQgIzAwMDBGRikgKDFweCBzb2xpZCAjRkZGRjAwKSAoMXB4
IHNvbGlkICMwMDAwRkYpXQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNp
emUgMHgwCisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMHgwCitsYXll
ciBhdCAoOCw0Mikgc2l6ZSAyMDB4MjAwCisgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtjb2xvcj0jRkZGRkZGXSBbYmdjb2xvcj0jMDA2NDAwXQor
ICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgMTk0eDEyOAorICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMTYwOiAidGhpcyB0ZXh0IHNob3VsZCBiZSBsZWZ0LSIKKyAgICAg
IHRleHQgcnVuIGF0ICgwLDE2KSB3aWR0aCAxNTc6ICJhbGlnbmVkLCBhbGwgbG93ZXItY2FzZSwi
CisgICAgICB0ZXh0IHJ1biBhdCAoMCwzMikgd2lkdGggMTY5OiAibm9ybWFsIGZvbnQsIHdoaXRl
LCAxNHB4LCIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDQ4KSB3aWR0aCAxODI6ICJib2xkLCBub3Jt
YWxseSBzcGFjZWQgYW5kIgorICAgICAgdGV4dCBydW4gYXQgKDAsNjQpIHdpZHRoIDE2NTogIndy
YXBwZWQsIGluIGEgZGFya2dyZWVuIgorICAgICAgdGV4dCBydW4gYXQgKDAsODApIHdpZHRoIDEw
MjogIjIwMHgyMDBweCBkaXYgIgorICAgICAgdGV4dCBydW4gYXQgKDEwMiw4MCkgd2lkdGggOTI6
ICJpbiB0aGUgdG9wIGxlZnQiCisgICAgICB0ZXh0IHJ1biBhdCAoMCw5Nikgd2lkdGggMTc0OiAi
Y29ybmVyIHdpdGggbm8gYm9yZGVycyBvciIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDExMikgd2lk
dGggNjA6ICJvdXRsaW5lcy4iCkluZGV4OiBXZWJDb3JlL2Nzcy9jc3NwYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvY3NzL2Nzc3BhcnNlci5jcHAJKHJldmlzaW9uIDEzNjM2KQorKysg
V2ViQ29yZS9jc3MvY3NzcGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM3LDYgKzMzNyw4
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKIAogICAgIGludCBp
ZCA9IHZhbHVlLT5pZDsKIAorICAgIGludCBudW0gPSBpblNob3J0aGFuZCgpID8gMSA6IHZhbHVl
TGlzdC0+c2l6ZSgpOworCiAgICAgaWYgKGlkID09IENTU19WQUxfSU5IRVJJVCkgewogICAgICAg
ICBhZGRQcm9wZXJ0eShwcm9wSWQsIG5ldyBDU1NJbmhlcml0ZWRWYWx1ZSgpLCBpbXBvcnRhbnQp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU0MCw3ICs1NDIsNiBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfU1BB
Q0lORzogewogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1syXSA9IHsgQ1NTX1BST1BfX0tI
VE1MX0JPUkRFUl9IT1JJWk9OVEFMX1NQQUNJTkcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDU1NfUFJPUF9fS0hUTUxfQk9SREVSX1ZFUlRJQ0FMX1NQQUNJTkcgfTsKLSAg
ICAgICAgaW50IG51bSA9IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAgICAgICBpZiAobnVtID09IDEp
IHsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQp
KSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBwYXJzZWRQcm9w
ZXJ0aWVzW251bVBhcnNlZFByb3BlcnRpZXMtMV0tPnZhbHVlKCk7CkBAIC01NDgsOCArNTQ5LDEy
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG51bSA9PSAyKSB7Ci0g
ICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSkgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGlt
cG9ydGFudCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVudGVyU2hvcnRoYW5kKENTU19Q
Uk9QX0JPUkRFUl9TUEFDSU5HKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0
aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFu
dCkpIHsKKyAgICAgICAgICAgICAgICBleGl0U2hvcnRoYW5kKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhpdFNob3J0aGFuZCgp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtNTkwLDcgKzU5NSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGIKICAgICAgICAgZWxzZSBpZiAoaWQgPj0gQ1NTX1ZBTF9BUVVBICYmIGlkIDw9IENT
U19WQUxfV0lORE9XVEVYVCB8fCBpZCA9PSBDU1NfVkFMX01FTlUgfHwKICAgICAgICAgICAgICAo
aWQgPj0gQ1NTX1ZBTF9HUkVZICYmIGlkIDwgQ1NTX1ZBTF9fS0hUTUxfVEVYVCAmJiAhc3RyaWN0
KSkgewogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgfSBlbHNlIGlmIChudW0gPT0gMSkgewogICAgICAgICAgICAgcGFyc2VkVmFs
dWUgPSBwYXJzZUNvbG9yKCk7CiAgICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUpCiAgICAgICAg
ICAgICAgICAgdmFsdWVMaXN0LT5uZXh0KCk7CkBAIC02MDYsNyArNjExLDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIGlmIChpZCA+PSBDU1NfVkFMX0FVVE8gJiYgaWQg
PD0gQ1NTX1ZBTF9IRUxQKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkp
IHsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19VUkkgJiYgbnVtID09IDEpIHsKICAgICAgICAgICAgIFN0cmluZyB1cmkgPSBwYXJzZVVSTChk
b21TdHJpbmcodmFsdWUtPnN0cmluZykpOwogICAgICAgICAgICAgaWYgKCF1cmkuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgQ1NTSW1hZ2VWYWx1ZShTdHJp
bmcoS1VSTChzdHlsZUVsZW1lbnQtPmJhc2VVUkwoKS5kZXByZWNhdGVkU3RyaW5nKCksIHVyaS5k
ZXByZWNhdGVkU3RyaW5nKCkpLnVybCgpKSwgc3R5bGVFbGVtZW50KTsKQEAgLTYzNCw2ICs2Mzks
OCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9MSVNUX1NUWUxFX0lNQUdFOiAg
ICAgLy8gPHVyaT4gfCBub25lIHwgaW5oZXJpdAorICAgICAgICBpZiAobnVtICE9IDEpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChpZCA9PSBDU1NfVkFMX05PTkUpIHsK
ICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IENTU0ltYWdlVmFsdWUoKTsKICAgICAgICAg
ICAgIHZhbHVlTGlzdC0+bmV4dCgpOwpAQCAtNjc1LDcgKzY4Miw3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENT
U19QUk9QX19LSFRNTF9GT05UX1NJWkVfREVMVEE6ICAgICAgICAgICAvLyA8bGVuZ3RoPgotICAg
ICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0cmlj
dCk7CisgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwg
c3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9OQlNQ
X01PREU6ICAgICAvLyBub3JtYWwgfCBzcGFjZQpAQCAtODc4LDcgKzg4NSw2IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX0JPUkRF
Ul9CT1RUT01fTEVGVF9SQURJVVM6CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfQk9UVE9NX1JJ
R0hUX1JBRElVUzoKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9SQURJVVM6IHsKLSAgICAgICAg
aW50IG51bSA9IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAgICAgICBpZiAobnVtICE9IDEgJiYgbnVt
ICE9IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgc3RyaWN0KTsKQEAgLTk1OCw2ICs5NjQsOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGNvbnN0
IGludCBwcm9wZXJ0aWVzWzVdID0geyBDU1NfUFJPUF9fS0hUTUxfTUFSUVVFRV9ESVJFQ1RJT04s
IENTU19QUk9QX19LSFRNTF9NQVJRVUVFX0lOQ1JFTUVOVCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENTU19QUk9QX19LSFRNTF9NQVJRVUVFX1JFUEVUSVRJT04sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9fS0hUTUxfTUFSUVVFRV9T
VFlMRSwgQ1NTX1BST1BfX0tIVE1MX01BUlFVRUVfU1BFRUQgfTsKKyAgICAgICAgaWYgKG51bSA+
IDUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBwYXJzZVNob3J0
aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDUsIGltcG9ydGFudCk7CiAgICAgfQogICAgIGNhc2Ug
Q1NTX1BST1BfX0tIVE1MX01BUlFVRUVfRElSRUNUSU9OOgpAQCAtMTAwOCw3ICsxMDE2LDYgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BS
T1BfX0tIVE1MX01BUkdJTl9DT0xMQVBTRTogewogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGll
c1syXSA9IHsgQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9UT1BfQ09MTEFQU0UsCiAgICAgICAgICAg
ICBDU1NfUFJPUF9fS0hUTUxfTUFSR0lOX0JPVFRPTV9DT0xMQVBTRSB9OwotICAgICAgICBpbnQg
bnVtID0gdmFsdWVMaXN0LT5zaXplKCk7CiAgICAgICAgIGlmIChudW0gPT0gMSkgewogICAgICAg
ICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IHBhcnNlZFByb3BlcnRpZXNbbnVt
UGFyc2VkUHJvcGVydGllcy0xXS0+dmFsdWUoKTsKQEAgLTEwMTYsOCArMTAyMywxMiBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChudW0gPT0gMikgewotICAgICAgICAg
ICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQp
KSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBlbnRlclNob3J0aGFuZChDU1NfUFJPUF9fS0hU
TUxfTUFSR0lOX0NPTExBUFNFKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0
aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFu
dCkpIHsKKyAgICAgICAgICAgICAgICBleGl0U2hvcnRoYW5kKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhpdFNob3J0aGFuZCgp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTA3Nyw2ICsxMDg4LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50
IHByb3BJZCwgYgogICAgIHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENT
U19QUk9QX0JPUkRFUl9XSURUSCwgQ1NTX1BST1BfQk9SREVSX1NUWUxFLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ1NTX1BST1BfQk9SREVSX0NPTE9SIH07CisgICAgICAg
IGlmIChudW0gPiAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4g
cGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOwogICAgIH0K
ICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9UT1A6CkBAIC0xMDg0LDYgKzEwOTcsOCBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgewogICAgICAgICBjb25z
dCBpbnQgcHJvcGVydGllc1szXSA9IHsgQ1NTX1BST1BfQk9SREVSX1RPUF9XSURUSCwgQ1NTX1BS
T1BfQk9SREVSX1RPUF9TVFlMRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENTU19QUk9QX0JPUkRFUl9UT1BfQ09MT1J9OworICAgICAgICBpZiAobnVtID4gMykKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJ
ZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9C
T1JERVJfUklHSFQ6CkBAIC0xMDkxLDYgKzExMDYsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBiCiAgICAgewogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1sz
XSA9IHsgQ1NTX1BST1BfQk9SREVSX1JJR0hUX1dJRFRILCBDU1NfUFJPUF9CT1JERVJfUklHSFRf
U1RZTEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9CT1JE
RVJfUklHSFRfQ09MT1IgfTsKKyAgICAgICAgaWYgKG51bSA+IDMpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRp
ZXMsIDMsIGltcG9ydGFudCk7CiAgICAgfQogICAgIGNhc2UgQ1NTX1BST1BfQk9SREVSX0JPVFRP
TToKQEAgLTEwOTgsNiArMTExNSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGIKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBDU1Nf
UFJPUF9CT1JERVJfQk9UVE9NX1dJRFRILCBDU1NfUFJPUF9CT1JERVJfQk9UVE9NX1NUWUxFLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTX1BST1BfQk9SREVSX0JPVFRP
TV9DT0xPUiB9OworICAgICAgICBpZiAobnVtID4gMykKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywg
aW1wb3J0YW50KTsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVDoKQEAgLTEx
MDUsNiArMTEyNCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIK
ICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBDU1NfUFJPUF9CT1JE
RVJfTEVGVF9XSURUSCwgQ1NTX1BST1BfQk9SREVSX0xFRlRfU1RZTEUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9CT1JERVJfTEVGVF9DT0xPUiB9OworICAg
ICAgICBpZiAobnVtID4gMykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgcHJvcGVydGllcywgMywgaW1wb3J0YW50KTsKICAg
ICB9CiAgICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FOgpAQCAtMTExMiw2ICsxMTMzLDggQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIHsKICAgICAgICAgY29u
c3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENTU19QUk9QX09VVExJTkVfV0lEVEgsIENTU19QUk9Q
X09VVExJTkVfU1RZTEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1Nf
UFJPUF9PVVRMSU5FX0NPTE9SIH07CisgICAgICAgIGlmIChudW0gPiAzKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9w
ZXJ0aWVzLCAzLCBpbXBvcnRhbnQpOwogICAgIH0KICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9D
T0xPUjoKQEAgLTExNjEsNiArMTE4NCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGlu
dCBwcm9wSWQsIGIKICAgICB7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzNdID0geyBD
U1NfUFJPUF9MSVNUX1NUWUxFX1RZUEUsIENTU19QUk9QX0xJU1RfU1RZTEVfUE9TSVRJT04sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NfUFJPUF9MSVNUX1NUWUxFX0lN
QUdFIH07CisgICAgICAgIGlmIChudW0gPiAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBv
cnRhbnQpOwogICAgIH0KICAgICBkZWZhdWx0OgpAQCAtMTE3MSw3ICsxMTk2LDcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICBpZiAodmFsaWRfcHJpbWl0aXZlKSB7CisgICAgaWYgKHZhbGlkX3ByaW1pdGl2ZSAm
JiBudW0gPT0gMSkgewogICAgICAgICBpZiAoaWQgIT0gMCkKICAgICAgICAgICAgIHBhcnNlZFZh
bHVlID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKGlkKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUt
PnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCg==
</data>
<flag name="review"
          id="2028"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7490</attachid>
            <date>2006-04-03 13:06:02 -0700</date>
            <delta_ts>2006-04-03 14:59:25 -0700</delta_ts>
            <desc>revised fix</desc>
            <filename>7118r3_patch.txt</filename>
            <type>text/plain</type>
            <size>28549</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlLzEwMy1leHBlY3Rl
ZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1j
b2xsYXBzZS8xMDMtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDEzNjUyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLmNoZWNrc3VtCSh3
b3JraW5nIGNvcHkpCkBAIC0xICsxIEBACi1iMGE0YjE1YmQxYzBkZTc2M2RjNGNhMjNmMzliOTM0
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzE5M2I3NGE2Nzk2MWM4OTJlOTY3MDlmM2Nl
NzViNWIyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
aW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS8x
MDMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFy
Z2luLWNvbGxhcHNlLzEwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjUyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2UvMTAzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNyArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXgxNjkxCiAg
ICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwyKSBzaXplIDUyMHg0MAogICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyKSB3aWR0aCA1MjA6ICJXZSBhcmUgdHJ5aW5nIHRvIHVu
ZGVyc3RhbmQgaG93IFVWaWMgc3R1ZGVudHMgcGVyZm9ybSBTaGFrZXNwZWFyZSByZWxhdGVkIHJl
c2VhcmNoIGZvciIKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjIpIHdpZHRoIDI2NTog
ImNsYXNzZXMgYXMgd2VsbCBhcyBmb3IgdGhlaXIgb3duIGludGVyZXN0LiBUaGUgIgotICAgICAg
ICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDE3M3gxNiBbYm9yZGVyOiAoMXB4
IGRhc2hlZCAjMzMzMzMzKSBub25lXQorICAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAo
MCwwKSBzaXplIDE3M3gxNQogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMjY1
LDIyKSBzaXplIDE3M3gyMAogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNjUsMjIpIHdp
ZHRoIDE3MzogIkludGVybmV0IFNoYWtlc3BlYXJlIEVkaXRpb25zIgogICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDQzOCwyMikgc2l6ZSA1NjB4NjAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTA5IEBACis8aGVhZD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgICN0ZXN0YmxvY2sgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhl
aWdodDogMjAwcHg7CisgICAgICAgIC8qIGludmFsaWQgd2lkdGggYW5kIGhlaWdodCAqLworICAg
ICAgICB3aWR0aDogNTAwcHggYXV0bzsKKyAgICAgICAgaGVpZ2h0OiA1MDBweCAyMDBweDsKKyAg
ICAgICAgCisgICAgICAgIC8qIEZvbnQtc2l6ZSAqLworICAgICAgICBmb250LXNpemU6IDE0cHg7
CisgICAgICAgIC8qIEludmFsaWQgZm9udC1zaXplcyAqLworICAgICAgICBmb250LXNpemU6IDM2
cHggYXV0bzsKKyAgICAgICAgCisgICAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgICBmbG9hdDog
cmlnaHQgYXV0bzsKKyAgICAgICAgLyogVHJ5aW5nIGNvbG9ycyAqLworICAgICAgICAvKiBUaGUg
IWltcG9ydGFudCBpcyBoZXJlIHNvIHlvdSBkb24ndCBicmVhayB0aGlzIHdoaWxlIGZpeGluZyB0
aGlzIGJ1ZyAqLworICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKKyAgICAgICAgY29s
b3I6IGJsYWNrOworICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JlZW47CisgICAgICAgIC8qIHRo
ZSBjb2xvciBhbmQgYmFja2dyb3VuZC1jb2xvciBiZWxvdyBzaG91bGQgYmUgaW52YWxpZGF0ZWQs
IAorICAgICAgICBzbyB0aGUgdGV4dCBzaG91bGQgYmUgZ3JlZW4gKi8KKyAgICAgICAgY29sb3I6
IGJsYWNrIGF1dG8gIWltcG9ydGFudDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya3Jl
ZCBhdXRvOworICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICAK
KyAgICAgICAgLyogVGhlc2Ugb25lcyBhY3R1YWxseSBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5
ICovCisgICAgICAgIGJhY2tncm91bmQ6IHVybCgnaHR0cDovL3dlYmtpdC5vcGVuZGFyd2luLm9y
Zy9pbWFnZXMvd2VsY29tZW9wZW4uZ2lmJykgYXV0bzsKKyAgICAgICAgYmFja2dyb3VuZC1yZXBl
YXQ6IGF1dG8gcmVwZWF0LXg7CisKKyAgICAgICAgLyogVHJ5aW5nIHRleHQgYW5kIGZvbnQgcHJv
cGVydGllcyAqLworICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgICAgICAgZm9u
dC13ZWlnaHQ6IDkwMDsKKyAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgICAgICB3
b3JkLXNwYWNpbmc6IG5vcm1hbDsKKyAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKKyAg
ICAgICAgdGV4dC1hbGlnbjogbGVmdDsgCisgICAgICAgIGRpcmVjdGlvbjogbHRyOworICAgICAg
ICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOworICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1h
bDsKKyAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKKyAgICAgICAgCisgICAgICAgIC8qIElu
dmFsaWQgdGV4dCBhbmQgZm9udCBwcm9wZXJ0aWVzICovCisgICAgICAgIC8qIFRoaXMgb25lIGFj
dHVhbGx5IERPRVMgZ2V0IGludmFsaWRhdGVkICovCisgICAgICAgIGZvbnQ6ICJDb21pYyBTYW5z
IE1TIiB3b29wZGlkb287CisgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDAgNTAwOworICAgICAgICAv
KiBUaGlzIG9uZSBhY3R1YWxseSBET0VTIGdldCBpbnZhbGlkYXRlZCAqLworICAgICAgICB0ZXh0
LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCBhdXRvOworICAgICAgICB3b3JkLXNwYWNpbmc6IDEw
cHggYXV0bzsKKyAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDVweCBhdXRvOworICAgICAgICB0ZXh0
LWFsaWduOiByaWdodCBsZWZ0OyAKKyAgICAgICAgZGlyZWN0aW9uOiBydGwgYXV0bzsgCisgICAg
ICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplIGF1dG87ICAgICAKKyAgICAgICAgZm9udC12
YXJpYW50OiBzbWFsbC1jYXBzIGF1dG87CisgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUgYXV0bzsK
KyAgICAKKyAgICAgICAgb3V0bGluZTogbm9uZTsKKyAgICAgICAgb3V0bGluZTogcmVkIDNweCBk
b3R0ZWQgYmx1ZTsKKyAgICAgICAgb3V0bGluZTogcmVkIHNvbGlkIGF1dG87CisKKyAgICAgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgc2Nyb2xsOworICAg
IH0KKyAgICAjQ29udGVudCB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICAgICAgLyog
aW52YWxpZCAqLworICAgICAgICBkaXNwbGF5OiBibG9jayBhdXRvOworICAgICAgICAKKyAgICAg
ICAgLyogQWxsIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBib3JkZXJzIHVudGlsIHRoZSBuZXh0IGNv
bW1lbnQgYXJlIGluY29ycmVjdCBhbmQgCisgICAgICAgIHNob3VsZCBiZSBpbnZhbGlkYXRlZCwg
cmVzdWx0aW5nIGluIHBhZGRpbmcgYW5kIG1hcmdpbiAwICovCisgICAgICAgIG1hcmdpbi1sZWZ0
OiA1MHB4IGF1dG87CisgICAgICAgIG1hcmdpbi1yaWdodDogNTBweCBhdXRvOworICAgICAgICBt
YXJnaW4tdG9wOiA1MHB4IGF1dG87CisgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHggYXV0bzsK
KyAgICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4IGF1dG87CisgICAgICAgIHBhZGRpbmctcmlnaHQ6
IDUwcHggYXV0bzsKKyAgICAgICAgcGFkZGluZy10b3A6IDUwcHggYXV0bzsKKyAgICAgICAgcGFk
ZGluZy1ib3R0b206IDUwcHggYXV0bzsgCisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGF1dG87
CisgICAgICAgIGJvcmRlci10b3A6IHllbGxvdyBhdXRvOyAgICAgICAgCisgICAgICAgIGJvcmRl
ci1yaWdodDogYmx1ZSBhdXRvOworICAgICAgICBib3JkZXItYm90dG9tOiB5ZWxsb3cgYXV0bzsg
ICAgICAgIAorICAgICAgICBib3JkZXItbGVmdDogYmx1ZSBhdXRvOworICAgICAgICAvKiBUaGUg
dmFsdWVzIGJlbG93IGdldCBpbnZhbGlkYXRlZCBjb3JyZWN0bHkgYnV0IGFyZSBpbiBoZXJlIAor
ICAgICAgICBmb3IgY29tcGxldGVuZXNzLiAqLworICAgICAgICBtYXJnaW46IDEwMHB4IDEwMHB4
IDEwMHB4IDEwMHB4IGF1dG87IAorICAgICAgICBwYWRkaW5nOiAxMDBweCAxMDBweCAxMDBweCAx
MDBweCBhdXRvOworICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPjxh
IGhyZWY9Imh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEx
OCI+YnVnIDcxMTg8L2E+OiBXcm9uZyBwcm9wZXJ0eSB2YWx1ZXMgZG8gbm90IGdldCBpbnZhbGlk
YXRlZCBjb3JyZWN0bHkuPC9wPgorPGRpdiBpZD0iQ29udGVudCI+CisgICAgPGRpdiBpZD0idGVz
dGJsb2NrIj4KK1RoaXMgdGV4dCBzaG91bGQgYmUKK2xlZnQtYWxpZ25lZCwgYWxsIGxvd2VyLWNh
c2UsCitub3JtYWwgZm9udCwgd2hpdGUsIDE0cHgsCitib2xkLCBub3JtYWxseSBzcGFjZWQKK2Fu
ZCB3cmFwcGVkLCBpbiBhCitkYXJrZ3JlZW4gMjAweDIwMHB4IGRpdiAKK2luIHRoZSB0b3AgbGVm
dCBjb3JuZXIKK3dpdGggbm8gYm9yZGVycyBvcgorb3V0bGluZXMuCis8L2Rpdj4KKzwvZGl2Pgor
Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3Jz
LTMtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5n
ZXMgb246IGludmFsaWRhdGlvbi1lcnJvcnMtMy1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlz
cGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdl
L3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC5w
bmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRp
b24tZXJyb3JzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NTc2CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDYweDE4IFtjb2xvcj0jMDAwMEVF
XQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgNjB4MTgKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYwOiAiYnVnIDcxMTgiCisgICAgICAgIFJl
bmRlclRleHQge1RFWFR9IGF0ICg2MCwwKSBzaXplIDM1NngxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICg2MCwwKSB3aWR0aCAzNTY6ICI6IFdyb25nIHByb3BlcnR5IHZhbHVlcyBkbyBub3QgZ2V0
IGludmFsaWRhdGVkIGNvcnJlY3RseS4iCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBh
dCAoMCwzNCkgc2l6ZSA3ODR4MAorICAgICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkg
c2l6ZSAweDAKKyAgICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAor
ICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5k
ZXJUZXh0IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsNDIpIHNpemUgMjAw
eDIwMAorICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDIw
MCBbY29sb3I9I0ZGRkZGRl0gW2JnY29sb3I9IzAwNjQwMF0KKyAgICBSZW5kZXJUZXh0IHtURVhU
fSBhdCAoMCwwKSBzaXplIDE5NHgxMjgKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2
MDogInRoaXMgdGV4dCBzaG91bGQgYmUgbGVmdC0iCisgICAgICB0ZXh0IHJ1biBhdCAoMCwxNikg
d2lkdGggMTU3OiAiYWxpZ25lZCwgYWxsIGxvd2VyLWNhc2UsIgorICAgICAgdGV4dCBydW4gYXQg
KDAsMzIpIHdpZHRoIDE2OTogIm5vcm1hbCBmb250LCB3aGl0ZSwgMTRweCwiCisgICAgICB0ZXh0
IHJ1biBhdCAoMCw0OCkgd2lkdGggMTgyOiAiYm9sZCwgbm9ybWFsbHkgc3BhY2VkIGFuZCIKKyAg
ICAgIHRleHQgcnVuIGF0ICgwLDY0KSB3aWR0aCAxNjU6ICJ3cmFwcGVkLCBpbiBhIGRhcmtncmVl
biIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDgwKSB3aWR0aCAxMDI6ICIyMDB4MjAwcHggZGl2ICIK
KyAgICAgIHRleHQgcnVuIGF0ICgxMDIsODApIHdpZHRoIDkyOiAiaW4gdGhlIHRvcCBsZWZ0Igor
ICAgICAgdGV4dCBydW4gYXQgKDAsOTYpIHdpZHRoIDE3NDogImNvcm5lciB3aXRoIG5vIGJvcmRl
cnMgb3IiCisgICAgICB0ZXh0IHJ1biBhdCAoMCwxMTIpIHdpZHRoIDYwOiAib3V0bGluZXMuIgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0zLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24tZXJy
b3JzLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
aW52YWxpZGF0aW9uLWVycm9ycy0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckNhbnZhcyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA3ODR4NTQyCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6
ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDYweDE4IFtj
b2xvcj0jMDAwMEVFXQorICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUg
NjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYwOiAiYnVnIDcxMTgi
CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICg2MCwwKSBzaXplIDM1NngxOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICg2MCwwKSB3aWR0aCAzNTY6ICI6IFdyb25nIHByb3BlcnR5IHZhbHVl
cyBkbyBub3QgZ2V0IGludmFsaWRhdGVkIGNvcnJlY3RseS4iCisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMzQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgw
LDApIHNpemUgMzc5eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc5OiAi
VGhlIHR3byB3b3JkcyBcInRlc3RcIiBzaG91bGQgbG9vayB0aGUgc2FtZSwgd2l0aCBubyBvdXRs
aW5lOiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEwMikgc2l6ZSA3ODR4NTkKKyAg
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgMTAweDU5CisgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA2OXg1OQorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNjk6ICJ0ZXN0IgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDIx
MSkgc2l6ZSA3ODR4NTkKKyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSA2
OXg1OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDY5OiAidGVzdCIKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogaW52YWxpZGF0
aW9uLWVycm9ycy0yLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUK
ICAgKyBpbWFnZS9wbmcKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24t
ZXJyb3JzLTItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitlZjBmMjMxM2NkZTY2ZGVlYmY3
YmFhOTdhZTU0ZGUzZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0zLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cD48
YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTcx
MTgiPmJ1ZyA3MTE4PC9hPjogV3JvbmcgcHJvcGVydHkgdmFsdWVzIGRvIG5vdCBnZXQgaW52YWxp
ZGF0ZWQgY29ycmVjdGx5LjwvcD4KKzxwPlRoZSB0d28gd29yZHMgInRlc3QiIHNob3VsZCBsb29r
IHRoZSBzYW1lLCB3aXRoIG5vIG91dGxpbmU6PC9wPgorPGRpdiBzdHlsZT0ib3V0bGluZTogYmx1
ZSBzb2xpZDt2aXNpYmlsaXR5OmhpZGRlbjtmb250LXNpemU6NTBweCI+Cis8cCBzdHlsZT0ib3V0
bGluZTppbmhlcml0IGluaGVyaXQ7d2lkdGg6MTAwcHg7dmlzaWJpbGl0eTp2aXNpYmxlO2ZvbnQt
c2l6ZTppbml0aWFsIGluaXRpYWw7Ij50ZXN0PC9wPgorPC9kaXY+Cis8cCBzdHlsZT0iZm9udC1z
aXplOjUwcHgiPnRlc3Q8L3A+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
bnZhbGlkYXRpb24tZXJyb3JzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW52YWxpZGF0aW9uLWVycm9ycy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEwOSBAQAorPGhlYWQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjdGVzdGJs
b2NrIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICAvKiBpbnZhbGlkIHdpZHRoIGFuZCBoZWlnaHQgKi8KKyAgICAgICAgd2lkdGg6IDUwMHB4
IGdhcmJhZ2U7CisgICAgICAgIGhlaWdodDogNTAwcHggMjAwcHg7CisgICAgICAgIAorICAgICAg
ICAvKiBGb250LXNpemUgKi8KKyAgICAgICAgZm9udC1zaXplOiAxNHB4OworICAgICAgICAvKiBJ
bnZhbGlkIGZvbnQtc2l6ZXMgKi8KKyAgICAgICAgZm9udC1zaXplOiAzNnB4IGdhcmJhZ2U7Cisg
ICAgICAgIAorICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgZmxvYXQ6IHJpZ2h0IGdhcmJh
Z2U7CisgICAgICAgIC8qIFRyeWluZyBjb2xvcnMgKi8KKyAgICAgICAgLyogVGhlICFpbXBvcnRh
bnQgaXMgaGVyZSBzbyB5b3UgZG9uJ3QgYnJlYWsgdGhpcyB3aGlsZSBmaXhpbmcgdGhpcyBidWcg
Ki8KKyAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7CisgICAgICAgIGNvbG9yOiBibGFj
azsKKyAgICAgICAgYmFja2dyb3VuZDogZGFya2dyZWVuOworICAgICAgICAvKiB0aGUgY29sb3Ig
YW5kIGJhY2tncm91bmQtY29sb3IgYmVsb3cgc2hvdWxkIGJlIGludmFsaWRhdGVkLCAKKyAgICAg
ICAgc28gdGhlIHRleHQgc2hvdWxkIGJlIGdyZWVuICovCisgICAgICAgIGNvbG9yOiBibGFjayBn
YXJiYWdlICFpbXBvcnRhbnQ7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtyZWQgZ2Fy
YmFnZTsKKyAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICAgICAgCisg
ICAgICAgIC8qIFRoZXNlIG9uZXMgYWN0dWFsbHkgZ2V0IGludmFsaWRhdGVkIGNvcnJlY3RseSAq
LworICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHA6Ly93ZWJraXQub3BlbmRhcndpbi5vcmcv
aW1hZ2VzL3dlbGNvbWVvcGVuLmdpZicpIGdhcmJhZ2U7CisgICAgICAgIGJhY2tncm91bmQtcmVw
ZWF0OiBnYXJiYWdlIHJlcGVhdC14OworCisgICAgICAgIC8qIFRyeWluZyB0ZXh0IGFuZCBmb250
IHByb3BlcnRpZXMgKi8KKyAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICAg
IGZvbnQtd2VpZ2h0OiA5MDA7CisgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAg
ICAgd29yZC1zcGFjaW5nOiBub3JtYWw7CisgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7
CisgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IAorICAgICAgICBkaXJlY3Rpb246IGx0cjsKKyAg
ICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsKKyAgICAgICAgZm9udC12YXJpYW50OiBu
b3JtYWw7CisgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CisgICAgICAgIAorICAgICAgICAv
KiBJbnZhbGlkIHRleHQgYW5kIGZvbnQgcHJvcGVydGllcyAqLworICAgICAgICAvKiBUaGlzIG9u
ZSBhY3R1YWxseSBET0VTIGdldCBpbnZhbGlkYXRlZCAqLworICAgICAgICBmb250OiAiQ29taWMg
U2FucyBNUyIgd29vcGRpZG9vOworICAgICAgICBmb250LXdlaWdodDogNTAwIDUwMDsKKyAgICAg
ICAgLyogVGhpcyBvbmUgYWN0dWFsbHkgRE9FUyBnZXQgaW52YWxpZGF0ZWQgKi8KKyAgICAgICAg
dGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggZ2FyYmFnZTsKKyAgICAgICAgd29yZC1zcGFj
aW5nOiAxMHB4IGdhcmJhZ2U7CisgICAgICAgIGxldHRlci1zcGFjaW5nOiA1cHggZ2FyYmFnZTsK
KyAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQgbGVmdDsgCisgICAgICAgIGRpcmVjdGlvbjogcnRs
IGdhcmJhZ2U7IAorICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSBnYXJiYWdlOyAg
ICAgCisgICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcyBnYXJiYWdlOworICAgICAgICB3
aGl0ZS1zcGFjZTogcHJlIGdhcmJhZ2U7CisgICAgCisgICAgICAgIG91dGxpbmU6IG5vbmU7Cisg
ICAgICAgIG91dGxpbmU6IHJlZCAzcHggZG90dGVkIGdhcmJhZ2U7CisgICAgICAgIG91dGxpbmU6
IHJlZCBzb2xpZCBnYXJiYWdlOworCisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICAg
IG92ZXJmbG93OiB2aXNpYmxlIHNjcm9sbDsKKyAgICB9CisgICAgI0NvbnRlbnQgeworICAgICAg
ICBkaXNwbGF5OiBpbmxpbmU7CisgICAgICAgIC8qIGludmFsaWQgKi8KKyAgICAgICAgZGlzcGxh
eTogYmxvY2sgZ2FyYmFnZTsKKyAgICAgICAgCisgICAgICAgIC8qIEFsbCBtYXJnaW5zLCBwYWRk
aW5ncyBhbmQgYm9yZGVycyB1bnRpbCB0aGUgbmV4dCBjb21tZW50IGFyZSBpbmNvcnJlY3QgYW5k
IAorICAgICAgICBzaG91bGQgYmUgaW52YWxpZGF0ZWQsIHJlc3VsdGluZyBpbiBwYWRkaW5nIGFu
ZCBtYXJnaW4gMCAqLworICAgICAgICBtYXJnaW4tbGVmdDogNTBweCBnYXJiYWdlOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDUwcHggZ2FyYmFnZTsKKyAgICAgICAgbWFyZ2luLXRvcDogNTBweCBn
YXJiYWdlOworICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4IGdhcmJhZ2U7CisgICAgICAgIHBh
ZGRpbmctbGVmdDogNTBweCBnYXJiYWdlOworICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4IGdh
cmJhZ2U7CisgICAgICAgIHBhZGRpbmctdG9wOiA1MHB4IGdhcmJhZ2U7CisgICAgICAgIHBhZGRp
bmctYm90dG9tOiA1MHB4IGdhcmJhZ2U7IAorICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBnYXJi
YWdlOworICAgICAgICBib3JkZXItdG9wOiB5ZWxsb3cgZ2FyYmFnZTsgICAgICAgIAorICAgICAg
ICBib3JkZXItcmlnaHQ6IGJsdWUgZ2FyYmFnZTsKKyAgICAgICAgYm9yZGVyLWJvdHRvbTogeWVs
bG93IGdhcmJhZ2U7ICAgICAgICAKKyAgICAgICAgYm9yZGVyLWxlZnQ6IGJsdWUgZ2FyYmFnZTsK
KyAgICAgICAgLyogVGhlIHZhbHVlcyBiZWxvdyBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5IGJ1
dCBhcmUgaW4gaGVyZSAKKyAgICAgICAgZm9yIGNvbXBsZXRlbmVzcy4gKi8KKyAgICAgICAgbWFy
Z2luOiAxMDBweCAxMDBweCAxMDBweCAxMDBweCBnYXJiYWdlOyAKKyAgICAgICAgcGFkZGluZzog
MTAwcHggMTAwcHggMTAwcHggMTAwcHggZ2FyYmFnZTsKKyAgICB9CisgICAgPC9zdHlsZT4KKzwv
aGVhZD4KKworPGJvZHk+Cis8cD48YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5v
cmcvc2hvd19idWcuY2dpP2lkPTcxMTgiPmJ1ZyA3MTE4PC9hPjogV3JvbmcgcHJvcGVydHkgdmFs
dWVzIGRvIG5vdCBnZXQgaW52YWxpZGF0ZWQgY29ycmVjdGx5LjwvcD4KKzxkaXYgaWQ9IkNvbnRl
bnQiPgorICAgIDxkaXYgaWQ9InRlc3RibG9jayI+CitUaGlzIHRleHQgc2hvdWxkIGJlCitsZWZ0
LWFsaWduZWQsIGFsbCBsb3dlci1jYXNlLAorbm9ybWFsIGZvbnQsIHdoaXRlLCAxNHB4LAorYm9s
ZCwgbm9ybWFsbHkgc3BhY2VkCithbmQgd3JhcHBlZCwgaW4gYQorZGFya2dyZWVuIDIwMHgyMDBw
eCBkaXYgCitpbiB0aGUgdG9wIGxlZnQgY29ybmVyCit3aXRoIG5vIGJvcmRlcnMgb3IKK291dGxp
bmVzLgorPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW52YWxpZGF0aW9uLWVycm9ycy1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3JzLWV4cGVjdGVkLmNoZWNrc3Vt
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVycm9y
cy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorZWYwZjIzMTNj
ZGU2NmRlZWJmN2JhYTk3YWU1NGRlM2YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkYXRpb24tZXJyb3JzLTMtZXhwZWN0ZWQuY2hl
Y2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZGF0aW9uLWVy
cm9ycy0zLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0zLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxIEBACis0M2Q2YjEyOTgyNjA4OWE4NmQzMGQ3ZTM0NjFhYjc2MwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRh
dGlvbi1lcnJvcnMtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW52YWxpZGF0aW9uLWVycm9ycy0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWRhdGlvbi1lcnJvcnMtMi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJDYW52YXMgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlcklubGluZSB7QX0g
YXQgKDAsMCkgc2l6ZSA2MHgxOCBbY29sb3I9IzAwMDBFRV0KKyAgICAgICAgICBSZW5kZXJUZXh0
IHtURVhUfSBhdCAoMCwwKSBzaXplIDYweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA2MDogImJ1ZyA3MTE4IgorICAgICAgICBSZW5kZXJUZXh0IHtURVhUfSBhdCAoNjAs
MCkgc2l6ZSAzNTZ4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjAsMCkgd2lkdGggMzU2OiAi
OiBXcm9uZyBwcm9wZXJ0eSB2YWx1ZXMgZG8gbm90IGdldCBpbnZhbGlkYXRlZCBjb3JyZWN0bHku
IgorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMzQpIHNpemUgNzg0eDAKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgUmVu
ZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7VEVY
VH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICg4LDQyKSBzaXplIDIwMHgyMDAKKyAgUmVuZGVyQmxvY2sgKGZs
b2F0aW5nKSB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2NvbG9yPSNGRkZGRkZdIFtiZ2Nv
bG9yPSMwMDY0MDBdCisgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkgc2l6ZSAxOTR4MTI4
CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNjA6ICJ0aGlzIHRleHQgc2hvdWxkIGJl
IGxlZnQtIgorICAgICAgdGV4dCBydW4gYXQgKDAsMTYpIHdpZHRoIDE1NzogImFsaWduZWQsIGFs
bCBsb3dlci1jYXNlLCIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDMyKSB3aWR0aCAxNjk6ICJub3Jt
YWwgZm9udCwgd2hpdGUsIDE0cHgsIgorICAgICAgdGV4dCBydW4gYXQgKDAsNDgpIHdpZHRoIDE4
MjogImJvbGQsIG5vcm1hbGx5IHNwYWNlZCBhbmQiCisgICAgICB0ZXh0IHJ1biBhdCAoMCw2NCkg
d2lkdGggMTY1OiAid3JhcHBlZCwgaW4gYSBkYXJrZ3JlZW4iCisgICAgICB0ZXh0IHJ1biBhdCAo
MCw4MCkgd2lkdGggMTAyOiAiMjAweDIwMHB4IGRpdiAiCisgICAgICB0ZXh0IHJ1biBhdCAoMTAy
LDgwKSB3aWR0aCA5MjogImluIHRoZSB0b3AgbGVmdCIKKyAgICAgIHRleHQgcnVuIGF0ICgwLDk2
KSB3aWR0aCAxNzQ6ICJjb3JuZXIgd2l0aCBubyBib3JkZXJzIG9yIgorICAgICAgdGV4dCBydW4g
YXQgKDAsMTEyKSB3aWR0aCA2MDogIm91dGxpbmVzLiIKSW5kZXg6IFdlYkNvcmUvY3NzL2Nzc3Bh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvY3NzcGFyc2VyLmNwcAkocmV2aXNp
b24gMTM2NTIpCisrKyBXZWJDb3JlL2Nzcy9jc3NwYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjIsNiArMjYyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjphZGRQcm9wZXJ0eShpbnQgcHJvcElk
LCAKICAgICBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3BlcnRpZXMrK10gPSBwcm9wOwog
fQogCit2b2lkIENTU1BhcnNlcjo6cm9sbGJhY2tMYXN0UHJvcGVydGllcyhpbnQgbnVtKQorewor
ICAgIEFTU0VSVChudW0gPj0gMCk7CisgICAgQVNTRVJUKG51bVBhcnNlZFByb3BlcnRpZXMgPj0g
bnVtKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyArK2kpCisgICAgICAgIGRlbGV0
ZSBwYXJzZWRQcm9wZXJ0aWVzWy0tbnVtUGFyc2VkUHJvcGVydGllc107Cit9CisKIHZvaWQgQ1NT
UGFyc2VyOjpjbGVhclByb3BlcnRpZXMoKQogewogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
UGFyc2VkUHJvcGVydGllczsgaSsrKQpAQCAtMzM5LDExICszNDgsMTcgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogCiAgICAgaW50IGlkID0gdmFsdWUtPmlkOwog
CisgICAgaW50IG51bSA9IGluU2hvcnRoYW5kKCkgPyAxIDogdmFsdWVMaXN0LT5zaXplKCk7CisK
ICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9JTkhFUklUKSB7CisgICAgICAgIGlmIChudW0gIT0gMSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBu
ZXcgQ1NTSW5oZXJpdGVkVmFsdWUoKSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIGVsc2UgaWYgKGlkID09IENTU19WQUxfSU5JVElBTCkgeworICAgICAgICBp
ZiAobnVtICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGFkZFByb3Bl
cnR5KHByb3BJZCwgbmV3IENTU0luaXRpYWxWYWx1ZSgpLCBpbXBvcnRhbnQpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC01NDIsMTYgKzU1NywxOCBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfU1BBQ0lO
RzogewogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1syXSA9IHsgQ1NTX1BST1BfX0tIVE1M
X0JPUkRFUl9IT1JJWk9OVEFMX1NQQUNJTkcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDU1NfUFJPUF9fS0hUTUxfQk9SREVSX1ZFUlRJQ0FMX1NQQUNJTkcgfTsKLSAgICAg
ICAgaW50IG51bSA9IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAgICAgICBpZiAobnVtID09IDEpIHsK
LSAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpKSBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1Nf
UFJPUF9CT1JERVJfU1BBQ0lORyk7CisgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVy
dGllc1swXSwgaW1wb3J0YW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3Bl
cnRpZXMtMV0tPnZhbHVlKCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzFd
LCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgICAgIGVsc2UgaWYgKG51bSA9PSAyKSB7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlVmFs
dWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
aWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFudCkpIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENTU19QUk9QX0JPUkRFUl9T
UEFDSU5HKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBv
cnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFudCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjc4LDcgKzY5NSw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IENTU19QUk9QX19LSFRNTF9GT05UX1NJWkVfREVMVEE6ICAgICAgICAgICAvLyA8bGVuZ3RoPgot
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgsIHN0
cmljdCk7CisgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aCwgc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU19QUk9QX19LSFRNTF9O
QlNQX01PREU6ICAgICAvLyBub3JtYWwgfCBzcGFjZQpAQCAtODgxLDcgKzg5OCw2IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICBjYXNlIENTU19QUk9QX0JP
UkRFUl9CT1RUT01fTEVGVF9SQURJVVM6CiAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfQk9UVE9N
X1JJR0hUX1JBRElVUzoKICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9SQURJVVM6IHsKLSAgICAg
ICAgaW50IG51bSA9IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAgICAgICBpZiAobnVtICE9IDEgJiYg
bnVtICE9IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHZhbGlkX3ByaW1p
dGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCwgc3RyaWN0KTsKQEAgLTEwMTEsMTYgKzEw
MjcsMTggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNh
c2UgQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9DT0xMQVBTRTogewogICAgICAgICBjb25zdCBpbnQg
cHJvcGVydGllc1syXSA9IHsgQ1NTX1BST1BfX0tIVE1MX01BUkdJTl9UT1BfQ09MTEFQU0UsCiAg
ICAgICAgICAgICBDU1NfUFJPUF9fS0hUTUxfTUFSR0lOX0JPVFRPTV9DT0xMQVBTRSB9OwotICAg
ICAgICBpbnQgbnVtID0gdmFsdWVMaXN0LT5zaXplKCk7CiAgICAgICAgIGlmIChudW0gPT0gMSkg
ewotICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkp
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENT
U19QUk9QX19LSFRNTF9NQVJHSU5fQ09MTEFQU0UpOworICAgICAgICAgICAgaWYgKCFwYXJzZVZh
bHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gcGFyc2VkUHJvcGVydGllc1tudW1Q
YXJzZWRQcm9wZXJ0aWVzLTFdLT52YWx1ZSgpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJv
cGVydGllc1sxXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChudW0gPT0gMikgewotICAgICAgICAgICAgaWYg
KCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKSByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NfUFJP
UF9fS0hUTUxfTUFSR0lOX0NPTExBUFNFKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShw
cm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGlt
cG9ydGFudCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE4Niw4ICsx
MjA0LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAg
ICAgdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgfQogICAgIGlmIChwYXJzZWRWYWx1ZSkgewotICAg
ICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHBhcnNlZFZhbHVlLCBpbXBvcnRhbnQpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPmN1cnJlbnQoKSB8fCBpblNo
b3J0aGFuZCgpKSB7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHBhcnNlZFZhbHVl
LCBpbXBvcnRhbnQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgZGVsZXRlIHBhcnNlZFZhbHVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0x
MjE4LDcgKzEyMzksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VCYWNrZ3JvdW5kU2hvcnRoYW5k
CiAgICAgICAgIENTU19QUk9QX0JBQ0tHUk9VTkRfQVRUQUNITUVOVCwgQ1NTX1BST1BfQkFDS0dS
T1VORF9QT1NJVElPTiwgQ1NTX1BST1BfQkFDS0dST1VORF9DTElQLAogICAgICAgICBDU1NfUFJP
UF9CQUNLR1JPVU5EX09SSUdJTiwgQ1NTX1BST1BfQkFDS0dST1VORF9DT0xPUiB9OwogICAgIAot
ICAgIGVudGVyU2hvcnRoYW5kKENTU19QUk9QX0JBQ0tHUk9VTkQpOworICAgIFNob3J0aGFuZFNj
b3BlIHNjb3BlKHRoaXMsIENTU19QUk9QX0JBQ0tHUk9VTkQpOwogCiAgICAgYm9vbCBwYXJzZWRQ
cm9wZXJ0eVtudW1Qcm9wZXJ0aWVzXSA9IHsgZmFsc2UgfTsgLy8gY29tcGlsZXIgd2lsbCByZXBl
YXQgZmFsc2UgYXMgbmVjZXNzYXJ5CiAgICAgQ1NTVmFsdWUqIHZhbHVlc1tudW1Qcm9wZXJ0aWVz
XSA9IHsgMCB9OyAvLyBjb21waWxlciB3aWxsIHJlcGVhdCAwIGFzIG5lY2Vzc2FyeQpAQCAtMTI4
NiwxMSArMTMwNyw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJhY2tncm91bmRTaG9ydGhhbmQK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbaV0sIHZhbHVlc1tpXSwgaW1wb3J0
YW50KTsKICAgICB9CiAgICAgCi0gICAgZXhpdFNob3J0aGFuZCgpOwogICAgIHJldHVybiB0cnVl
OwogCiBmYWlsOgotICAgIGV4aXRTaG9ydGhhbmQoKTsKICAgICBmb3IgKGludCBrID0gMDsgayA8
IG51bVByb3BlcnRpZXM7IGsrKykKICAgICAgICAgZGVsZXRlIHZhbHVlc1trXTsKICAgICBkZWxl
dGUgcG9zaXRpb25ZVmFsdWU7CkBAIC0xMzAyLDcgKzEzMjEsNyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VTaG9ydGhhbmQoaW50IHByb3BJCiAgICAgLy8gV2UgdHJ5IHRvIG1hdGNoIGFzIG1hbnkg
cHJvcGVydGllcyBhcyBwb3NzaWJsZQogICAgIC8vIFdlIHNldCB1cCBhbiBhcnJheSBvZiBib29s
ZWFucyB0byBtYXJrIHdoaWNoIHByb3BlcnR5IGhhcyBiZWVuIGZvdW5kLAogICAgIC8vIGFuZCB3
ZSB0cnkgdG8gc2VhcmNoIGZvciBwcm9wZXJ0aWVzIHVudGlsIGl0IG1ha2VzIG5vIGxvbmdlciBh
bnkgc2Vuc2UuCi0gICAgZW50ZXJTaG9ydGhhbmQocHJvcElkKTsKKyAgICBTaG9ydGhhbmRTY29w
ZSBzY29wZSh0aGlzLCBwcm9wSWQpOwogCiAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogICAgIGJv
b2wgZm5kWzZdOyAvLyBUcnVzdCBtZSA7KQpAQCAtMTMyMCwxMCArMTMzOSw4IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZVNob3J0aGFuZChpbnQgcHJvcEkKIAogICAgICAgICAvLyBpZiB3ZSBkaWRu
J3QgZmluZCBhdCBsZWFzdCBvbmUgbWF0Y2gsIHRoaXMgaXMgYW4KICAgICAgICAgLy8gaW52YWxp
ZCBzaG9ydGhhbmQgYW5kIHdlIGhhdmUgdG8gaWdub3JlIGl0Ci0gICAgICAgIGlmICghZm91bmQp
IHsKLSAgICAgICAgICAgIGV4aXRTaG9ydGhhbmQoKTsKKyAgICAgICAgaWYgKCFmb3VuZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgIH0KICAgICAKICAgICAvLyBG
aWxsIGluIGFueSByZW1haW5pbmcgcHJvcGVydGllcyB3aXRoIHRoZSBpbml0aWFsIHZhbHVlLgpA
QCAtMTMzNCw3ICsxMzUxLDYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKGludCBw
cm9wSQogICAgIH0KICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gZmFsc2U7CiAKLSAgICBleGl0
U2hvcnRoYW5kKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEzNTAsMTUgKzEzNjYsMTMg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlcyhpbnQgcHJvcElkLAogICAgIAogICAgIGlu
dCBudW0gPSBpblNob3J0aGFuZCgpID8gMSA6IHZhbHVlTGlzdC0+c2l6ZSgpOwogICAgIAotICAg
IGVudGVyU2hvcnRoYW5kKHByb3BJZCk7CisgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywg
cHJvcElkKTsKIAogICAgIC8vIHRoZSBvcmRlciBpcyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQK
ICAgICBzd2l0Y2ggKG51bSkgewogICAgICAgICBjYXNlIDE6IHsKLSAgICAgICAgICAgIGlmICgh
cGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpKSB7Ci0gICAgICAgICAgICAgICAg
ZXhpdFNob3J0aGFuZCgpOworICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNb
MF0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgfQogICAgICAgICAgICAgQ1NTVmFsdWUgKnZhbHVlID0gcGFyc2VkUHJvcGVydGllc1tudW1Q
YXJzZWRQcm9wZXJ0aWVzLTFdLT52YWx1ZSgpOwogICAgICAgICAgICAgbV9pbXBsaWNpdFNob3J0
aGFuZCA9IHRydWU7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzFdLCB2YWx1
ZSwgaW1wb3J0YW50KTsKQEAgLTEzNjgsMTAgKzEzODIsOCBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2U0VmFsdWVzKGludCBwcm9wSWQsCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIDI6IHsKLSAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBd
LCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFudCkpIHsK
LSAgICAgICAgICAgICAgICBleGl0U2hvcnRoYW5kKCk7CisgICAgICAgICAgICBpZiAoIXBhcnNl
VmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVz
WzFdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIENTU1ZhbHVlICp2YWx1ZSA9IHBhcnNlZFByb3BlcnRpZXNbbnVt
UGFyc2VkUHJvcGVydGllcy0yXS0+dmFsdWUoKTsKICAgICAgICAgICAgIG1faW1wbGljaXRTaG9y
dGhhbmQgPSB0cnVlOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFs
dWUsIGltcG9ydGFudCk7CkBAIC0xMzgxLDExICsxMzkzLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlNFZhbHVlcyhpbnQgcHJvcElkLAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSAzOiB7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1sw
XSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8
Ci0gICAgICAgICAgICAgICAgIXBhcnNlVmFsdWUocHJvcGVydGllc1syXSwgaW1wb3J0YW50KSkg
ewotICAgICAgICAgICAgICAgIGV4aXRTaG9ydGhhbmQoKTsKKyAgICAgICAgICAgIGlmICghcGFy
c2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRp
ZXNbMV0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJvcGVydGllc1syXSwgaW1wb3J0YW50
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9CiAgICAgICAg
ICAgICBDU1NWYWx1ZSAqdmFsdWUgPSBwYXJzZWRQcm9wZXJ0aWVzW251bVBhcnNlZFByb3BlcnRp
ZXMtMl0tPnZhbHVlKCk7CiAgICAgICAgICAgICBtX2ltcGxpY2l0U2hvcnRoYW5kID0gdHJ1ZTsK
ICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQp
OwpAQCAtMTM5NCwxOSArMTQwMywxNSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKGlu
dCBwcm9wSWQsCiAgICAgICAgIH0KICAgICAgICAgY2FzZSA0OiB7CiAgICAgICAgICAgICBpZiAo
IXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8Ci0gICAgICAgICAgICAgICAgIXBhcnNlVmFsdWUocHJv
cGVydGllc1syXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzNdLCBpbXBv
cnRhbnQpKSB7Ci0gICAgICAgICAgICAgICAgZXhpdFNob3J0aGFuZCgpOworICAgICAgICAgICAg
ICAgICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMl0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUo
cHJvcGVydGllc1szXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBk
ZWZhdWx0OiB7Ci0gICAgICAgICAgICBleGl0U2hvcnRoYW5kKCk7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgZXhpdFNob3J0aGFuZCgpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBXZWJDb3JlL2Nzcy9jc3NwYXJzZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9jc3NwYXJzZXIuaAkocmV2aXNpb24gMTM2NTIpCisrKyBX
ZWJDb3JlL2Nzcy9jc3NwYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7
CiAKICAgICAgICAgdm9pZCBhZGRQcm9wZXJ0eShpbnQgcHJvcElkLCBDU1NWYWx1ZSosIGJvb2wg
aW1wb3J0YW50KTsKKyAgICAgICAgdm9pZCByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKGludCBudW0p
OwogICAgICAgICBib29sIGhhc1Byb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBudW1QYXJzZWRQ
cm9wZXJ0aWVzID4gMDsgfQogCiAgICAgICAgIGJvb2wgcGFyc2VWYWx1ZShpbnQgcHJvcElkLCBi
b29sIGltcG9ydGFudCk7CkBAIC0yMTIsMTcgKzIxMywyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZvaWQgY2xlYXJQcm9wZXJ0aWVzKCk7CiAKICAgICAgICAgdm9pZCBzZXR1cFBh
cnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IFN0cmluZyYsIGNvbnN0IGNoYXIqIHN1ZmZp
eCk7Ci0gICAgICAgIHZvaWQgZW50ZXJTaG9ydGhhbmQoaW50IHByb3BJZCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKCEobV9pblBhcnNlU2hvcnRoYW5kKyspKQotICAgICAgICAgICAgICAg
IG1fY3VycmVudFNob3J0aGFuZCA9IHByb3BJZDsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGV4
aXRTaG9ydGhhbmQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoISgtLW1faW5QYXJzZVNo
b3J0aGFuZCkpCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50U2hvcnRoYW5kID0gMDsKLSAgICAg
ICAgfQorCiAgICAgICAgIGJvb2wgaW5TaG9ydGhhbmQoKSBjb25zdCB7IHJldHVybiBtX2luUGFy
c2VTaG9ydGhhbmQ7IH0KKyAgICAgICAgCisgICAgICAgIGNsYXNzIFNob3J0aGFuZFNjb3BlIHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgU2hvcnRoYW5kU2NvcGUoQ1NTUGFyc2VyKiBw
YXJzZXIsIGludCBwcm9wSWQpIDogbV9wYXJzZXIocGFyc2VyKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGlmICghKG1fcGFyc2VyLT5tX2luUGFyc2VTaG9ydGhhbmQrKykpCisgICAg
ICAgICAgICAgICAgICAgIG1fcGFyc2VyLT5tX2N1cnJlbnRTaG9ydGhhbmQgPSBwcm9wSWQ7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB+U2hvcnRoYW5kU2NvcGUoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGlmICghKC0tbV9wYXJzZXItPm1faW5QYXJzZVNob3J0aGFuZCkp
CisgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VyLT5tX2N1cnJlbnRTaG9ydGhhbmQgPSAwOwor
ICAgICAgICAgICAgfQorCisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBDU1NQYXJzZXIq
IG1fcGFyc2VyOworICAgICAgICB9OwogCiAgICAgICAgIHVuc2lnbmVkIHNob3J0KiBkYXRhOwog
ICAgICAgICB1bnNpZ25lZCBzaG9ydCogeXl0ZXh0OwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQkocmV2aXNpb24g
MTM2NTIpCisrKyBXZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkJKHdvcmtpbmcgY29weSkKQEAgLTI4
NCw3ICsyODQsOSBAQCBraHRtbF92YWx1ZToKICAgICAgICAgQ1NTUGFyc2VyICpwID0gc3RhdGlj
X2Nhc3Q8Q1NTUGFyc2VyICo+KHBhcnNlcik7CiAgICAgICAgIGlmICgkNCkgewogICAgICAgICAg
ICAgcC0+dmFsdWVMaXN0ID0gcC0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KTsKLSAgICAgICAg
ICAgIHAtPnBhcnNlVmFsdWUocC0+aWQsIHAtPmltcG9ydGFudCk7CisgICAgICAgICAgICBpbnQg
b2xkUGFyc2VkUHJvcGVydGllcyA9IHAtPm51bVBhcnNlZFByb3BlcnRpZXM7CisgICAgICAgICAg
ICBpZiAoIXAtPnBhcnNlVmFsdWUocC0+aWQsIHAtPmltcG9ydGFudCkpCisgICAgICAgICAgICAg
ICAgcC0+cm9sbGJhY2tMYXN0UHJvcGVydGllcyhwLT5udW1QYXJzZWRQcm9wZXJ0aWVzIC0gb2xk
UGFyc2VkUHJvcGVydGllcyk7CiAgICAgICAgICAgICBkZWxldGUgcC0+dmFsdWVMaXN0OwogICAg
ICAgICAgICAgcC0+dmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQpAQCAtODA0LDcgKzgwNiwxMCBA
QCBkZWNsYXJhdGlvbjoKICAgICAgICAgQ1NTUGFyc2VyICpwID0gc3RhdGljX2Nhc3Q8Q1NTUGFy
c2VyICo+KHBhcnNlcik7CiAgICAgICAgIGlmICgkMSAmJiAkNCkgewogICAgICAgICAgICAgcC0+
dmFsdWVMaXN0ID0gcC0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KTsKKyAgICAgICAgICAgIGlu
dCBvbGRQYXJzZWRQcm9wZXJ0aWVzID0gcC0+bnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAg
ICAgICQkID0gcC0+cGFyc2VWYWx1ZSgkMSwgJDUpOworICAgICAgICAgICAgaWYgKCEkJCkKKyAg
ICAgICAgICAgICAgICBwLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHAtPm51bVBhcnNlZFByb3Bl
cnRpZXMgLSBvbGRQYXJzZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT52YWx1
ZUxpc3Q7CiAgICAgICAgICAgICBwLT52YWx1ZUxpc3QgPSAwOwogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="2040"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>