<?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>43725</bug_id>
          
          <creation_ts>2010-08-09 09:00:50 -0700</creation_ts>
          <short_desc>[v8] Create callbacks for named access of elements from document object on fly.</short_desc>
          <delta_ts>2010-08-13 06:07:34 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43946</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="anton muhin">antonm</reporter>
          <assigned_to name="anton muhin">antonm</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>262164</commentid>
    <comment_count>0</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-09 09:00:50 -0700</bug_when>
    <thetext>[v8] Create callbacks for named access of elements from document object on fly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262171</commentid>
    <comment_count>1</comment_count>
      <attachid>63900</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-09 09:10:36 -0700</bug_when>
    <thetext>Created attachment 63900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263204</commentid>
    <comment_count>2</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-11 05:43:23 -0700</bug_when>
    <thetext>Nate,

as you reviewed original patch, may I ask you to review this one as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263233</commentid>
    <comment_count>3</comment_count>
      <attachid>63900</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-08-11 07:10:40 -0700</bug_when>
    <thetext>Comment on attachment 63900
Patch

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263241</commentid>
    <comment_count>4</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-11 07:19:59 -0700</bug_when>
    <thetext>Thank you very much, Nate.

I won&apos;t land this patch immediately though---there might be perf regression and I&apos;d like to check it first.  If everything goes all right, I&apos;ll land it tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263784</commentid>
    <comment_count>5</comment_count>
      <attachid>63900</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-12 07:06:27 -0700</bug_when>
    <thetext>Comment on attachment 63900
Patch

Perf regression was a false alarm.  cq&apos;ing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263841</commentid>
    <comment_count>6</comment_count>
      <attachid>63900</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-12 09:26:45 -0700</bug_when>
    <thetext>Comment on attachment 63900
Patch

Rejecting patch 63900 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Nate Chapin&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
succeeded at 478 (offset 7 lines).
patching file WebCore/bindings/v8/V8DOMWindowShell.cpp
patching file WebCore/bindings/v8/V8DOMWindowShell.h
Hunk #1 succeeded at 31 with fuzz 2.
Hunk #2 FAILED at 42.
1 out of 3 hunks FAILED -- saving rejects to file WebCore/bindings/v8/V8DOMWindowShell.h.rej
patching file WebCore/bindings/v8/V8DOMWrapper.cpp
patching file WebCore/bindings/v8/custom/V8HTMLDocumentCustom.cpp
patching file WebCore/html/HTMLDocument.cpp
Hunk #1 succeeded at 323 (offset -5 lines).

Full output: http://queues.webkit.org/results/3777095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263913</commentid>
    <comment_count>7</comment_count>
      <attachid>64248</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-12 12:35:21 -0700</bug_when>
    <thetext>Created attachment 64248
rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263914</commentid>
    <comment_count>8</comment_count>
      <attachid>64248</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-12 12:36:18 -0700</bug_when>
    <thetext>Comment on attachment 64248
rebasing

cq+ after rebaselining</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264087</commentid>
    <comment_count>9</comment_count>
      <attachid>64248</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-12 16:57:55 -0700</bug_when>
    <thetext>Comment on attachment 64248
rebasing

Clearing flags on attachment: 64248

Committed r65284: &lt;http://trac.webkit.org/changeset/65284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264088</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-12 16:58:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264089</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 17:07:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65284 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264137</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-12 20:24:56 -0700</bug_when>
    <thetext>This broke the chromium compile on all platforms.  Is anyone fixing it?  If not I&apos;m reverting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264142</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-12 20:35:14 -0700</bug_when>
    <thetext>Looks like this broke the compile because of incorrect #includes of (Atomic)String.h.  Please fix the includes, compile check, and repost this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264145</commentid>
    <comment_count>14</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2010-08-12 20:45:48 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Looks like this broke the compile because of incorrect #includes of (Atomic)String.h.  Please fix the includes, compile check, and repost this patch.

If nobody cares about the build breakage, I will revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264185</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-12 22:43:47 -0700</bug_when>
    <thetext>Committed r65299: &lt;http://trac.webkit.org/changeset/65299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264186</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-08-12 22:44:26 -0700</bug_when>
    <thetext>Reverted r65299.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264197</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 23:22:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65299 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264278</commentid>
    <comment_count>18</comment_count>
      <attachid>64319</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-13 04:20:34 -0700</bug_when>
    <thetext>Created attachment 64319
correct include</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264279</commentid>
    <comment_count>19</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-08-13 04:23:01 -0700</bug_when>
    <thetext>Sorry everyone---I decided to wait a bit before committing it and in meanwhile AtomicString header got moved.

I&apos;ve adjusted a patch (it builds now fine on my Ubuntu box).  I should be available for at least 4 hrs, so if you experience any troubles rolling WebKit, just let me know---the fix should be trivial.

Once again sorry for troubles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264300</commentid>
    <comment_count>20</comment_count>
      <attachid>64319</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-13 05:29:45 -0700</bug_when>
    <thetext>Comment on attachment 64319
correct include

Clearing flags on attachment: 64319

Committed r65316: &lt;http://trac.webkit.org/changeset/65316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264301</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-13 05:29:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264319</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 06:07:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65316 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63900</attachid>
            <date>2010-08-09 09:10:36 -0700</date>
            <delta_ts>2010-08-12 12:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43725-20100809201034.patch</filename>
            <type>text/plain</type>
            <size>17069</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjM2ZWQzZTg1ZTc3OTllZjMzN2Q3ZjIxOGE5OGFiZjA0NGUzN2QwMy4uODdmNTBjNzAzZjc0OTRj
NDRlMDEyYjNkZGVlYWNjNDNmMjYyODdhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wOC0wOSAgQW50
b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFt2OF0gQ3JlYXRlIGNhbGxiYWNrcyBmb3IgbmFtZWQg
YWNjZXNzIG9mIGVsZW1lbnRzIGZyb20gZG9jdW1lbnQgb2JqZWN0IG9uIGZseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzI1CisKKyAgICAgICAg
VGhhdCBzaG91bGQgc3BlZWQgdXAgYWNjZXNzIHRvIG1ldGhvZHMgb24gZG9jdW1lbnQgYXMgdGhl
cmUgaXMgbm8gbmVlZCB0bworICAgICAgICBjb25zdWx0IHdpdGggaW50ZXJjZXB0b3IgYmVmb3Jl
IGludm9raW5nIHRoZSBtZXRob2QuCisKKyAgICAgICAgVGhpcyByZWFwcGxpZXMgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjA2NzAgcmV2ZXJ0ZWQgd2l0aAorICAgICAgICBodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82Mzg0NS4gIFRoZSBtYWluIGRpZmZlcmVuY2Ug
aXMgaW4gdHJlYXRtZW50CisgICAgICAgIG9mIHJlbW92ZWQgbmFtZWQgZWxlbWVudHM6IHdlIGRv
bid0IHJlbW92ZSBhbiBhY2Nlc3NvciBhbnkgbW9yZSwgYnV0IGxlYXZlIGl0LgorICAgICAgICBU
aGVyZWZvcmUgYW55IGFjY2Vzc29yIHNob3VsZCBiZSBhYmxlIHRvIHRyZWF0IHRoZSBjYXNlIHdo
ZW4gdGhlcmUgaXMgbm8KKyAgICAgICAgZXhwYW5kbyBwcm9wZXJ0eS4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bmFtZWRJdGVtQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
bmFtZWRJdGVtUmVtb3ZlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0RvY3VtZW50V3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjp1cGRhdGVEb2N1bWVudFdyYXBwZXJDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpnZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5k
b3dTaGVsbDo6bmFtZWRJdGVtQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dT
aGVsbDo6bmFtZWRJdGVtUmVtb3ZlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOEhUTUxEb2N1bWVudDo6V3JhcEluU2hhZG93T2JqZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlY4SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4SFRNTERvY3VtZW50OjphbGxBY2Nlc3NvclNldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjp0b1Y4KToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OnJlbW92ZUl0ZW1Gcm9tTWFwKToKKwogMjAxMC0wOC0wOSAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeGluZyB0aGUgYnVpbGRzIGFmdGVyIHI2NDk2Ny4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDFiOTE0NzA2YWE1NmQ1MDNmZTQ2ZDQzZWFj
MDk2Y2QxZTk4MTAzY2MuLjE1MWVlNTg4NTI4NzE0MmM0MmMwNzczNGEwNzc4MGQ2MjVhYjZlY2Qg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjc1
LDYgKzI3NSwxMyBAQCBFTkQKIEVORAogICAgIH0KIAorICAgIGlmICgkaW1wbENsYXNzTmFtZSBl
cSAiSFRNTERvY3VtZW50IikgeworICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwor
ICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFdyYXBJblNoYWRvd09iamVjdCh2ODo6TG9j
YWw8djg6Ok9iamVjdD4gd3JhcHBlciwgTm9kZSogaW1wbCk7CisgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gR2V0TmFtZWRQcm9wZXJ0eShIVE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBrZXkpOworRU5ECisgICAgfQorCiAgICAgbXkgQGVuYWJsZWRB
dFJ1bnRpbWU7CiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlv
bnN9KSB7CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CkBA
IC0zNjIsOSArMzY5LDYgQEAgc3ViIEdldEludGVybmFsRmllbGRzCiAKICAgICBpZiAoSXNTdWJU
eXBlKCRkYXRhTm9kZSwgIkRvY3VtZW50IikpIHsKICAgICAgICAgcHVzaChAY3VzdG9tSW50ZXJu
YWxGaWVsZHMsICJpbXBsZW1lbnRhdGlvbkluZGV4Iik7Ci0gICAgICAgIGlmICgkbmFtZSBlcSAi
SFRNTERvY3VtZW50IikgewotICAgICAgICAgICAgcHVzaChAY3VzdG9tSW50ZXJuYWxGaWVsZHMs
ICgibWFya2VySW5kZXgiLCAic2hhZG93SW5kZXgiKSk7Ci0gICAgICAgIH0KICAgICB9IGVsc2lm
ICgkbmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBjdXN0b21JbnRlcm5hbEZp
ZWxkcywgImVudGVyZWRJc29sYXRlZFdvcmxkSW5kZXgiKTsKICAgICB9CkBAIC00MDEsNyArNDA1
LDYgQEAgRU5ECiBteSAlaW5kZXhlclNwZWNpYWxDYXNlcyA9ICgKICAgICAiU3RvcmFnZSIgPT4g
MSwKICAgICAiSFRNTEFwcGxldEVsZW1lbnQiID0+IDEsCi0gICAgIkhUTUxEb2N1bWVudCIgPT4g
MSwKICAgICAiSFRNTEVtYmVkRWxlbWVudCIgPT4gMSwKICAgICAiSFRNTE9iamVjdEVsZW1lbnQi
ID0+IDEKICk7CkBAIC00MjgsNiArNDMxLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlck5hbWVkQW5k
SW5kZXhlZFByb3BlcnR5QWNjZXNzb3JzCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1M
U2VsZWN0RWxlbWVudCIgfHwgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxBcHBsZXRFbGVtZW50IiB8
fCAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEVtYmVkRWxlbWVudCIgfHwgJGludGVyZmFjZU5hbWUg
ZXEgIkhUTUxPYmplY3RFbGVtZW50IikgewogICAgICAgICAkaGFzQ3VzdG9tTmFtZWRHZXR0ZXIg
PSAxOwogICAgIH0KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxEb2N1bWVudCIpIHsK
KyAgICAgICAgJGhhc0N1c3RvbU5hbWVkR2V0dGVyID0gMDsKKyAgICAgICAgJGhhc0N1c3RvbUlu
ZGV4ZWRHZXR0ZXIgPSAwOworICAgIH0KICAgICBteSAkaXNJbmRleGVyU3BlY2lhbENhc2UgPSBl
eGlzdHMgJGluZGV4ZXJTcGVjaWFsQ2FzZXN7JGludGVyZmFjZU5hbWV9OwogCiAgICAgaWYgKCRo
YXNDdXN0b21JbmRleGVkR2V0dGVyIHx8ICRpc0luZGV4ZXJTcGVjaWFsQ2FzZSkgewpAQCAtNDU2
LDcgKzQ2Myw3IEBAIEVORAogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQ
cm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4sIHY4OjpMb2NhbDx2ODo6VmFsdWU+
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CiBFTkQKICAgICB9Ci0gICAgaWYgKCRoYXNDdXN0
b21EZWxldGVycyB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTERvY3VtZW50IikgeworICAgIGlm
ICgkaGFzQ3VzdG9tRGVsZXRlcnMpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxF
TkQpOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpCb29sZWFuPiBuYW1lZFByb3BlcnR5RGVs
ZXRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKIEVO
RApAQCAtMTQ4NCw2ICsxNDkxLDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTmFtZWRQ
cm9wZXJ0eUdldHRlcgogICAgICAgICAkaGFzQ3VzdG9tR2V0dGVyID0gMTsKICAgICB9CiAKKyAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxEb2N1bWVudCIpIHsKKyAgICAgICAgJGhhc0N1
c3RvbUdldHRlciA9IDA7CisgICAgfQorCiAgICAgbXkgJGhhc0dldHRlciA9ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc05hbWVHZXR0ZXIifSB8fCAkaGFzQ3VzdG9tR2V0dGVy
IHx8ICRuYW1lZFByb3BlcnR5R2V0dGVyOwogICAgIGlmICghJGhhc0dldHRlcikgewogICAgICAg
ICByZXR1cm47CkBAIC0xNDk5LDggKzE1MTAsNyBAQCBFTkQKICAgICB9CiAKICAgICBteSAkaGFz
U2V0dGVyID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1
bmN0aW9uIn07Ci0gICAgIyBGSVhNRTogVHJ5IHRvIHJlbW92ZSBoYXJkLWNvZGVkIEhUTUxEb2N1
bWVudCByZWZlcmVuY2UgYnkgYWxpZ25pbmcgaGFuZGxpbmcgb2YgZG9jdW1lbnQuYWxsIHdpdGgg
SlNDIGJpbmRpbmdzLgotICAgIG15ICRoYXNEZWxldGVyID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tRGVsZXRlUHJvcGVydHkifSB8fCAkaW50ZXJmYWNlTmFtZSBlcSAi
SFRNTERvY3VtZW50IjsKKyAgICBteSAkaGFzRGVsZXRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbURlbGV0ZVByb3BlcnR5In07CiAgICAgbXkgJGhhc0VudW1lcmF0
b3IgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5h
bWVzIn07CiAgICAgbXkgJHNldE9uID0gIkluc3RhbmNlIjsKIApAQCAtMTk4NSw2ICsxOTk1LDEx
IEBAIEVORAogICAgIGluc3RhbmNlLT5TZXRBY2Nlc3NDaGVja0NhbGxiYWNrcyhWOERPTVdpbmRv
dzo6bmFtZWRTZWN1cml0eUNoZWNrLCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ss
IHY4OjpFeHRlcm5hbDo6V3JhcCgmVjhET01XaW5kb3c6OmluZm8pLCBmYWxzZSk7CiBFTkQKICAg
ICB9CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MRG9jdW1lbnQiKSB7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgZGVzYy0+U2V0SGlkZGVuUHJvdG90eXBl
KHRydWUpOworRU5ECisgICAgfQogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24i
KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQzNWRlMTQ2MTA0OGNhMzExNzVmOTE5MDhh
ZmZhOTU0ZWM2YWJkN2UuLmQ3Njc0NmVkYTc4M2M4ZGIyOWY4YTA1NmRkYTQ3MzI5MzhiMDUxMjMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDcxLDEwICs0
NzEsMTIgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjp1cGRhdGVEb2N1bWVudCgpCiAKIHZvaWQg
U2NyaXB0Q29udHJvbGxlcjo6bmFtZWRJdGVtQWRkZWQoSFRNTERvY3VtZW50KiBkb2MsIGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKKyAgICBtX3Byb3h5LT53aW5kb3dTaGVsbCgpLT5uYW1l
ZEl0ZW1BZGRlZChkb2MsIG5hbWUpOwogfQogCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6Om5hbWVk
SXRlbVJlbW92ZWQoSFRNTERvY3VtZW50KiBkb2MsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkK
IHsKKyAgICBtX3Byb3h5LT53aW5kb3dTaGVsbCgpLT5uYW1lZEl0ZW1SZW1vdmVkKGRvYywgbmFt
ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V2luZG93U2hlbGwuY3BwCmluZGV4IGExM2I1NjJiZTY5MDg0M2M1ZjY5ZTJhM2RlNzI2ZDBmNmE5
MWU5ZWQuLmQ3NDdjNzU1ZWI0MmM2MGJjZTM3ZWY5MzRkMjJjNDc0ZjI1MWMwMmQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgIlY4RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiVjhEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlY4R0NGb3JDb250ZXh0RGlzcG9zZS5oIgorI2luY2x1ZGUgIlY4SFRNTERvY3VtZW50LmgiCiAj
aW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJWOEhpc3RvcnkuaCIK
ICNpbmNsdWRlICJWOExvY2F0aW9uLmgiCkBAIC00MDYsNiArNDA3LDEyIEBAIHZvaWQgVjhET01X
aW5kb3dTaGVsbDo6Y2xlYXJEb2N1bWVudFdyYXBwZXIoKQogICAgIH0KIH0KIAorc3RhdGljIHZv
aWQgY2hlY2tEb2N1bWVudFdyYXBwZXIodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyLCBE
b2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKFY4RG9jdW1lbnQ6OnRvTmF0aXZlKHdy
YXBwZXIpID09IGRvY3VtZW50KTsKKyAgICBBU1NFUlQoIWRvY3VtZW50LT5pc0hUTUxEb2N1bWVu
dCgpIHx8IChWOERvY3VtZW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KHdyYXBwZXItPkdldFByb3RvdHlwZSgpKSkgPT0gZG9jdW1lbnQpKTsKK30KKwogdm9pZCBWOERP
TVdpbmRvd1NoZWxsOjp1cGRhdGVEb2N1bWVudFdyYXBwZXJDYWNoZSgpCiB7CiAgICAgdjg6Okhh
bmRsZVNjb3BlIGhhbmRsZVNjb3BlOwpAQCAtNDI0LDYgKzQzMSwxMCBAQCB2b2lkIFY4RE9NV2lu
ZG93U2hlbGw6OnVwZGF0ZURvY3VtZW50V3JhcHBlckNhY2hlKCkKICAgICB9CiAKICAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gZG9jdW1lbnRXcmFwcGVyID0gdG9WOChtX2ZyYW1lLT5kb2N1bWVu
dCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnRXcmFwcGVyID09IG1fZG9jdW1lbnQgfHwgbV9kb2N1
bWVudC5Jc0VtcHR5KCkpOworICAgIGlmIChtX2RvY3VtZW50LklzRW1wdHkoKSkKKyAgICAgICAg
dXBkYXRlRG9jdW1lbnRXcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoZG9jdW1l
bnRXcmFwcGVyKSk7CisgICAgY2hlY2tEb2N1bWVudFdyYXBwZXIobV9kb2N1bWVudCwgbV9mcmFt
ZS0+ZG9jdW1lbnQoKSk7CiAKICAgICAvLyBJZiBpbnN0YW50aWF0aW9uIG9mIHRoZSBkb2N1bWVu
dCB3cmFwcGVyIGZhaWxzLCBjbGVhciB0aGUgY2FjaGUKICAgICAvLyBhbmQgbGV0IHRoZSBET01X
aW5kb3cgYWNjZXNzb3IgaGFuZGxlIGFjY2VzcyB0byB0aGUgZG9jdW1lbnQuCkBAIC01MDEsNiAr
NTEyLDM3IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6dXBkYXRlRG9jdW1lbnQoKQogICAgIHVw
ZGF0ZVNlY3VyaXR5T3JpZ2luKCk7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IHByb3BlcnR5LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQoreworICAgIC8vIEZJWE1FKGFudG9ubSk6IGNvbnNpZGVyIHBhc3NpbmcgQXRvbWljU3Ry
aW5nSW1wbCBkaXJlY3RseS4KKyAgICBBdG9taWNTdHJpbmcgbmFtZSA9IHY4U3RyaW5nVG9BdG9t
aWNXZWJDb3JlU3RyaW5nKHByb3BlcnR5KTsKKyAgICBIVE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVu
dCA9IFY4SFRNTERvY3VtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBBU1NFUlQo
aHRtbERvY3VtZW50KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gVjhIVE1M
RG9jdW1lbnQ6OkdldE5hbWVkUHJvcGVydHkoaHRtbERvY3VtZW50LCBuYW1lKTsKKyAgICBpZiAo
IXJlc3VsdC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHByb3RvdHlwZSA9IGluZm8uSG9sZGVyKCktPkdldFByb3RvdHlwZSgpOwor
ICAgIGlmIChwcm90b3R5cGUtPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBwcm90b3R5cGUu
QXM8djg6Ok9iamVjdD4oKS0+R2V0KHByb3BlcnR5KTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOworfQorCit2b2lkIFY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbUFkZGVkKEhUTUxEb2N1
bWVudCogZG9jLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgaW5pdENvbnRleHRJ
Zk5lZWRlZCgpOworCisgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOworICAgIHY4OjpD
b250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUobV9jb250ZXh0KTsKKworICAgIEFTU0VSVCghbV9k
b2N1bWVudC5Jc0VtcHR5KCkpOworICAgIGNoZWNrRG9jdW1lbnRXcmFwcGVyKG1fZG9jdW1lbnQs
IGRvYyk7CisgICAgbV9kb2N1bWVudC0+U2V0QWNjZXNzb3IodjhTdHJpbmcobmFtZSksIGdldHRl
cik7Cit9CisKK3ZvaWQgVjhET01XaW5kb3dTaGVsbDo6bmFtZWRJdGVtUmVtb3ZlZChIVE1MRG9j
dW1lbnQqIGRvYywgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworfQorCiB2b2lkIFY4RE9N
V2luZG93U2hlbGw6OnVwZGF0ZVNlY3VyaXR5T3JpZ2luKCkKIHsKICAgICB2ODo6SGFuZGxlU2Nv
cGUgc2NvcGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCmluZGV4IGY0ZWFm
ZjJlZTY1MTc1MzQ0YzI3MWI5OTM1ZDhmMmY3YTk2MTI2MDIuLjNjZjFiNTJmYTk2M2M4M2YwZGM5
MmEwZWRlODI2NjI2YmZlM2YxYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XaW5kb3dTaGVsbC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVs
bC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFY4RE9NV2luZG93U2hlbGxfaAogI2RlZmlu
ZSBWOERPTVdpbmRvd1NoZWxsX2gKIAorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1
ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQxLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEhUTUxEb2N1bWVudDsK
IGNsYXNzIFN0cmluZzsKIAogLy8gVjhXaW5kb3dTaGVsbCByZXByZXNlbnRzIGFsbCB0aGUgcGVy
LWdsb2JhbCBvYmplY3Qgc3RhdGUgZm9yIGEgRnJhbWUgdGhhdApAQCAtNTQsNiArNTYsOSBAQCBw
dWJsaWM6CiAgICAgLy8gVXBkYXRlIGRvY3VtZW50IG9iamVjdCBvZiB0aGUgZnJhbWUuCiAgICAg
dm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCisgICAgdm9pZCBuYW1lZEl0ZW1BZGRlZChIVE1MRG9j
dW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIG5hbWVkSXRlbVJlbW92ZWQo
SFRNTERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAgICAvLyBVcGRhdGUgdGhl
IHNlY3VyaXR5IG9yaWdpbiBvZiBhIGRvY3VtZW50CiAgICAgLy8gKGUuZy4sIGFmdGVyIHNldHRp
bmcgZG9jb3VtZW50LmRvbWFpbikuCiAgICAgdm9pZCB1cGRhdGVTZWN1cml0eU9yaWdpbigpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IGQ2ZjA1ZjRhNjljZjViZWUwNjgx
MmViYmE5YjI2YTQ5ZGQxMDA2ZjEuLjhhNzJhM2EzMmI5Y2IzMDYyMDhlY2IzODkzNzYwMGQyM2Jm
ZWM5MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTI4NCw2ICsyODQs
OCBAQCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2Jq
ZWN0KFY4UHJveHkqIHByb3h5LCBXcmFwcGVyVAogICAgIGlmICghaW5zdGFuY2UuSXNFbXB0eSgp
KSB7CiAgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFwcGVyIGZvciBmYWlsZWQg
YWxsb2NhdGlvbnMuCiAgICAgICAgIHNldERPTVdyYXBwZXIoaW5zdGFuY2UsIHR5cGUsIGltcGwp
OworICAgICAgICBpZiAodHlwZSA9PSAmVjhIVE1MRG9jdW1lbnQ6OmluZm8pCisgICAgICAgICAg
ICBpbnN0YW5jZSA9IFY4SFRNTERvY3VtZW50OjpXcmFwSW5TaGFkb3dPYmplY3QoaW5zdGFuY2Us
IHN0YXRpY19jYXN0PE5vZGUqPihpbXBsKSk7CiAgICAgfQogICAgIHJldHVybiBpbnN0YW5jZTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3Vz
dG9tLmNwcAppbmRleCA4NmYyZWI1MzIxMjMzYmU3MTk2ODViNWFjYTUwZTg5MDg0NzI0NmYzLi4y
NGFjNDdjZWQ3MDI1ZGIxM2RiYTA0MjdhNDQyYzBiODVmOGJiNGNhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCkBAIC00OSw0
OCArNDksMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpCb29s
ZWFuPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eURlbGV0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit2ODo6TG9jYWw8djg6
Ok9iamVjdD4gVjhIVE1MRG9jdW1lbnQ6OldyYXBJblNoYWRvd09iamVjdCh2ODo6TG9jYWw8djg6
Ok9iamVjdD4gd3JhcHBlciwgTm9kZSogaW1wbCkKIHsKLSAgICAvLyBPbmx5IGhhbmRsZSBkb2N1
bWVudC5hbGwuICBJbnNlcnQgdGhlIG1hcmtlciBvYmplY3QgaW50byB0aGUKLSAgICAvLyBzaGFk
b3cgaW50ZXJuYWwgZmllbGQgdG8gc2lnbmFsIHRoYXQgZG9jdW1lbnQuYWxsIGlzIG5vIGxvbmdl
cgotICAgIC8vIHNoYWRvd2VkLgotICAgIEF0b21pY1N0cmluZyBrZXkgPSB2OFN0cmluZ1RvQXRv
bWljV2ViQ29yZVN0cmluZyhuYW1lKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgYWxsLCAoImFsbCIpKTsKLSAgICBpZiAoa2V5ICE9IGFsbCkKLSAgICAgICAg
cmV0dXJuIGRlbGV0aW9uTm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLQotICAgIEFTU0VSVChp
bmZvLkhvbGRlcigpLT5JbnRlcm5hbEZpZWxkQ291bnQoKSA9PSBWOEhUTUxEb2N1bWVudDo6aW50
ZXJuYWxGaWVsZENvdW50KTsKLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBtYXJrZXIgPSBpbmZv
LkhvbGRlcigpLT5HZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3VtZW50OjptYXJrZXJJbmRleCk7
Ci0gICAgaW5mby5Ib2xkZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hh
ZG93SW5kZXgsIG1hcmtlcik7Ci0gICAgcmV0dXJuIHY4OjpUcnVlKCk7Ci19Ci0KLXY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKLXsKLSAg
ICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQuTmFtZWRQcm9wZXJ0eUdldHRlciIpOwotICAg
IEF0b21pY1N0cmluZyBrZXkgPSB2OFN0cmluZ1RvQXRvbWljV2ViQ29yZVN0cmluZyhuYW1lKTsK
LQotICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgZG9jdW1lbnQuYWxsLiAgSWYgdGhlIHZhbHVlIGlu
IHRoZSBzaGFkb3cKLSAgICAvLyBpbnRlcm5hbCBmaWVsZCBpcyBub3QgdGhlIG1hcmtlciBvYmpl
Y3QsIHRoZW4gZG9jdW1lbnQuYWxsIGhhcwotICAgIC8vIGJlZW4gdGVtcG9yYXJpbHkgc2hhZG93
ZWQgYW5kIHdlIHJldHVybiB0aGUgdmFsdWUuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGFsbCwgKCJhbGwiKSk7Ci0gICAgaWYgKGtleSA9PSBhbGwpIHsKLSAg
ICAgICAgQVNTRVJUKGluZm8uSG9sZGVyKCktPkludGVybmFsRmllbGRDb3VudCgpID09IFY4SFRN
TERvY3VtZW50OjppbnRlcm5hbEZpZWxkQ291bnQpOwotICAgICAgICB2ODo6TG9jYWw8djg6OlZh
bHVlPiBtYXJrZXIgPSBpbmZvLkhvbGRlcigpLT5HZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3Vt
ZW50OjptYXJrZXJJbmRleCk7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlID0g
aW5mby5Ib2xkZXIoKS0+R2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hhZG93SW5k
ZXgpOwotICAgICAgICBpZiAobWFya2VyICE9IHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIHZh
bHVlOworICAgIERFRklORV9TVEFUSUNfTE9DQUwodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+LCBzaGFkb3dUZW1wbGF0ZSwgKCkpOworICAgIGlmIChzaGFkb3dUZW1wbGF0ZS5J
c0VtcHR5KCkpIHsKKyAgICAgICAgc2hhZG93VGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCkpOworICAg
ICAgICBpZiAoc2hhZG93VGVtcGxhdGUuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBzaGFkb3dUZW1wbGF0ZS0+U2V0Q2xhc3NO
YW1lKHY4OjpTdHJpbmc6Ok5ldygiSFRNTERvY3VtZW50IikpOworICAgICAgICBzaGFkb3dUZW1w
bGF0ZS0+SW5oZXJpdChWOEhUTUxEb2N1bWVudDo6R2V0VGVtcGxhdGUoKSk7CisgICAgICAgIHNo
YWRvd1RlbXBsYXRlLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldEludGVybmFsRmllbGRDb3VudChW
OEhUTUxEb2N1bWVudDo6aW50ZXJuYWxGaWVsZENvdW50KTsKICAgICB9CiAKLSAgICBIVE1MRG9j
dW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4SFRNTERvY3VtZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBzaGFkb3dDb25zdHJ1Y3RvciA9IHNo
YWRvd1RlbXBsYXRlLT5HZXRGdW5jdGlvbigpOworICAgIGlmIChzaGFkb3dDb25zdHJ1Y3Rvci5J
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKIAotICAg
IC8vIEZhc3QgY2FzZSBmb3IgbmFtZWQgZWxlbWVudHMgdGhhdCBhcmUgbm90IHRoZXJlLgorICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBzaGFkb3cgPSBzaGFkb3dDb25zdHJ1Y3Rvci0+TmV3SW5z
dGFuY2UoKTsKKyAgICBpZiAoc2hhZG93LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4OjpM
b2NhbDx2ODo6T2JqZWN0PigpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihzaGFk
b3csICZWOEhUTUxEb2N1bWVudDo6aW5mbywgaW1wbCk7CisgICAgc2hhZG93LT5TZXRQcm90b3R5
cGUod3JhcHBlcik7CisgICAgcmV0dXJuIHNoYWRvdzsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KEhUTUxEb2N1bWVudCogaHRtbERv
Y3VtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKK3sKICAgICBpZiAoIWh0bWxEb2N1bWVu
dC0+aGFzTmFtZWRJdGVtKGtleS5pbXBsKCkpICYmICFodG1sRG9jdW1lbnQtPmhhc0V4dHJhTmFt
ZWRJdGVtKGtleS5pbXBsKCkpKQogICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KCk7CiAKICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGl0ZW1zID0gaHRtbERvY3VtZW50LT5k
b2N1bWVudE5hbWVkSXRlbXMoa2V5KTsKICAgICBpZiAoIWl0ZW1zLT5sZW5ndGgoKSkKLSAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIGlmIChpdGVtcy0+bGVuZ3RoKCkgPT0gMSkgewog
ICAgICAgICBOb2RlKiBub2RlID0gaXRlbXMtPmZpcnN0SXRlbSgpOwpAQCAtMTA0LDEzICs5NCw2
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eUdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICByZXR1cm4gdG9WOChpdGVtcy5yZWxlYXNl
KCkpOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MRG9jdW1lbnQ6OmluZGV4ZWRQ
cm9wZXJ0eUdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyAmaW5m
bykgCi17Ci0gICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50LkluZGV4ZWRQcm9wZXJ0eUdl
dHRlciIpOwotICAgIHY4OjpMb2NhbDx2ODo6SW50ZWdlcj4gaW5kZXhWOCA9IHY4OjpJbnRlZ2Vy
OjpOZXdGcm9tVW5zaWduZWQoaW5kZXgpOwotICAgIHJldHVybiBuYW1lZFByb3BlcnR5R2V0dGVy
KGluZGV4VjgtPlRvU3RyaW5nKCksIGluZm8pOwotfQotCiAvLyBIVE1MRG9jdW1lbnQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCiAvLyBDb25jYXRlbmF0ZXMgImFyZ3MiIHRvIGEgc3RyaW5nLiBJZiBhcmdzIGlzIGVtcHR5
LCByZXR1cm5zIGVtcHR5IHN0cmluZy4KQEAgLTE5MywxMCArMTc2LDggQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4SFRNTERvY3VtZW50OjphbGxBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmEKIAogdm9pZCBWOEhUTUxEb2N1bWVudDo6YWxsQWNjZXNzb3JTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLkhUTUxEb2N1
bWVudC5hbGwuX3NldCIpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gaW5m
by5Ib2xkZXIoKTsKLSAgICBBU1NFUlQoaW5mby5Ib2xkZXIoKS0+SW50ZXJuYWxGaWVsZENvdW50
KCkgPT0gVjhIVE1MRG9jdW1lbnQ6OmludGVybmFsRmllbGRDb3VudCk7Ci0gICAgaW5mby5Ib2xk
ZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hhZG93SW5kZXgsIHZhbHVl
KTsKKyAgICAvLyBKdXN0IGVtdWxhdGUgYSBub3JtYWwgSlMgYmVoYXZpb3VyLS0taW5zdGFsbCBh
IHByb3BlcnR5IG9uIHRoaXMuCisgICAgaW5mby5UaGlzKCktPkZvcmNlU2V0KG5hbWUsIHZhbHVl
KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSFRNTERvY3VtZW50KiBpbXBsLCBi
b29sIGZvcmNlTmV3T2JqZWN0KQpAQCAtMjEwLDEyICsxOTEsNiBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOChIVE1MRG9jdW1lbnQqIGltcGwsIGJvb2wgZm9yY2VOZXdPYmplY3QpCiAgICAg
ICAgIGlmIChWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGltcGwtPmZyYW1lKCkp
KQogICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxsKCktPnVwZGF0ZURvY3VtZW50V3JhcHBl
cih3cmFwcGVyKTsKICAgICB9Ci0gICAgLy8gQ3JlYXRlIG1hcmtlciBvYmplY3QgYW5kIGluc2Vy
dCBpdCBpbiB0d28gaW50ZXJuYWwgZmllbGRzLgotICAgIC8vIFRoaXMgaXMgdXNlZCB0byBpbXBs
ZW1lbnQgdGVtcG9yYXJ5IHNoYWRvd2luZyBvZiBkb2N1bWVudC5hbGwuCi0gICAgQVNTRVJUKHdy
YXBwZXItPkludGVybmFsRmllbGRDb3VudCgpID09IFY4SFRNTERvY3VtZW50OjppbnRlcm5hbEZp
ZWxkQ291bnQpOwotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBtYXJrZXIgPSB2ODo6T2JqZWN0
OjpOZXcoKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3VtZW50Ojpt
YXJrZXJJbmRleCwgbWFya2VyKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRlcm5hbEZpZWxkKFY4SFRN
TERvY3VtZW50OjpzaGFkb3dJbmRleCwgbWFya2VyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCBmZjBjMmRlNjQyMDg1YThjZWNiOThjOGY1Mzg0ODUw
NDgwNWI5ZmE0Li4xMmJkZTFjYWNjODQwZTU0YWQxYzhhNDFlNDJhMmY5MGNhOWQ2NmI5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmNwcApAQCAtMzI4LDkgKzMyOCw5IEBAIHZvaWQgSFRNTERvY3VtZW50Ojpy
ZW1vdmVJdGVtRnJvbU1hcChIYXNoQ291bnRlZFNldDxBdG9taWNTdHJpbmdJbXBsKj4mIG1hcCwg
Y29uCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CisgICAgbWFw
LnJlbW92ZShuYW1lLmltcGwoKSk7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKICAgICAg
ICAgZi0+c2NyaXB0KCktPm5hbWVkSXRlbVJlbW92ZWQodGhpcywgbmFtZSk7Ci0gICAgbWFwLnJl
bW92ZShuYW1lLmltcGwoKSk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50OjphZGROYW1lZEl0ZW0o
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64248</attachid>
            <date>2010-08-12 12:35:21 -0700</date>
            <delta_ts>2010-08-13 04:20:28 -0700</delta_ts>
            <desc>rebasing</desc>
            <filename>bug-43725-20100812233519.patch</filename>
            <type>text/plain</type>
            <size>17072</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTcyZmUzOTMxODMwZWFiMDIwODlhMGE2MDJkNTRiYmQyNWU2Y2M4ZS4uNWYzODY2ZTE3ZmIwMjY5
ZmEzMGYyMmZkNTEyN2ZmMThkMWVlNWUxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wOC0xMiAgQW50
b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5h
dGUgQ2hhcGluLgorCisgICAgICAgIFt2OF0gQ3JlYXRlIGNhbGxiYWNrcyBmb3IgbmFtZWQgYWNj
ZXNzIG9mIGVsZW1lbnRzIGZyb20gZG9jdW1lbnQgb2JqZWN0IG9uIGZseS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzI1CisKKyAgICAgICAgVGhh
dCBzaG91bGQgc3BlZWQgdXAgYWNjZXNzIHRvIG1ldGhvZHMgb24gZG9jdW1lbnQgYXMgdGhlcmUg
aXMgbm8gbmVlZCB0bworICAgICAgICBjb25zdWx0IHdpdGggaW50ZXJjZXB0b3IgYmVmb3JlIGlu
dm9raW5nIHRoZSBtZXRob2QuCisKKyAgICAgICAgVGhpcyByZWFwcGxpZXMgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjA2NzAgcmV2ZXJ0ZWQgd2l0aAorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82Mzg0NS4gIFRoZSBtYWluIGRpZmZlcmVuY2UgaXMg
aW4gdHJlYXRtZW50CisgICAgICAgIG9mIHJlbW92ZWQgbmFtZWQgZWxlbWVudHM6IHdlIGRvbid0
IHJlbW92ZSBhbiBhY2Nlc3NvciBhbnkgbW9yZSwgYnV0IGxlYXZlIGl0LgorICAgICAgICBUaGVy
ZWZvcmUgYW55IGFjY2Vzc29yIHNob3VsZCBiZSBhYmxlIHRvIHRyZWF0IHRoZSBjYXNlIHdoZW4g
dGhlcmUgaXMgbm8KKyAgICAgICAgZXhwYW5kbyBwcm9wZXJ0eS4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
bmFtZWRJdGVtQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bmFt
ZWRJdGVtUmVtb3ZlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0RvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjp1cGRhdGVEb2N1bWVudFdyYXBwZXJDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dT
aGVsbDo6bmFtZWRJdGVtQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVs
bDo6bmFtZWRJdGVtUmVtb3ZlZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOEhUTUxEb2N1bWVudDo6V3JhcEluU2hhZG93T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4SFRNTERvY3VtZW50OjphbGxBY2Nlc3NvclNldHRlcik6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Y4KToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRG9jdW1lbnQ6OnJlbW92ZUl0ZW1Gcm9tTWFwKToKKwogMjAxMC0wOC0xMiAgQmVu
IE11cmRvY2ggIDxiZW5tQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IGFlYzRkNjRhMmY4NDM4NTg1NzdjOGEyY2M3ZTgxZWVhYTAzYTNkMWQuLmViYmNmOGI0NmRh
YTQwZTdiZjY3ZTkwODc0ZGE3ZWU3NjUyNDk3NDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjc1LDYgKzI3NSwxMyBAQCBFTkQKIEVORAogICAg
IH0KIAorICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiSFRNTERvY3VtZW50IikgeworICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOworICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IFdyYXBJblNoYWRvd09iamVjdCh2ODo6TG9jYWw8djg6Ok9iamVjdD4gd3JhcHBlciwgTm9k
ZSogaW1wbCk7CisgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gR2V0TmFtZWRQcm9wZXJ0
eShIVE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpOwor
RU5ECisgICAgfQorCiAgICAgbXkgQGVuYWJsZWRBdFJ1bnRpbWU7CiAgICAgZm9yZWFjaCBteSAk
ZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgIG15ICRuYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CkBAIC0zNjIsOSArMzY5LDYgQEAgc3ViIEdldElu
dGVybmFsRmllbGRzCiAKICAgICBpZiAoSXNTdWJUeXBlKCRkYXRhTm9kZSwgIkRvY3VtZW50Iikp
IHsKICAgICAgICAgcHVzaChAY3VzdG9tSW50ZXJuYWxGaWVsZHMsICJpbXBsZW1lbnRhdGlvbklu
ZGV4Iik7Ci0gICAgICAgIGlmICgkbmFtZSBlcSAiSFRNTERvY3VtZW50IikgewotICAgICAgICAg
ICAgcHVzaChAY3VzdG9tSW50ZXJuYWxGaWVsZHMsICgibWFya2VySW5kZXgiLCAic2hhZG93SW5k
ZXgiKSk7Ci0gICAgICAgIH0KICAgICB9IGVsc2lmICgkbmFtZSBlcSAiRE9NV2luZG93Iikgewog
ICAgICAgICBwdXNoKEBjdXN0b21JbnRlcm5hbEZpZWxkcywgImVudGVyZWRJc29sYXRlZFdvcmxk
SW5kZXgiKTsKICAgICB9CkBAIC00MDEsNyArNDA1LDYgQEAgRU5ECiBteSAlaW5kZXhlclNwZWNp
YWxDYXNlcyA9ICgKICAgICAiU3RvcmFnZSIgPT4gMSwKICAgICAiSFRNTEFwcGxldEVsZW1lbnQi
ID0+IDEsCi0gICAgIkhUTUxEb2N1bWVudCIgPT4gMSwKICAgICAiSFRNTEVtYmVkRWxlbWVudCIg
PT4gMSwKICAgICAiSFRNTE9iamVjdEVsZW1lbnQiID0+IDEKICk7CkBAIC00MjgsNiArNDMxLDEw
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlck5hbWVkQW5kSW5kZXhlZFByb3BlcnR5QWNjZXNzb3JzCiAg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MU2VsZWN0RWxlbWVudCIgfHwgJGludGVyZmFj
ZU5hbWUgZXEgIkhUTUxBcHBsZXRFbGVtZW50IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEVt
YmVkRWxlbWVudCIgfHwgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxPYmplY3RFbGVtZW50Iikgewog
ICAgICAgICAkaGFzQ3VzdG9tTmFtZWRHZXR0ZXIgPSAxOwogICAgIH0KKyAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkhUTUxEb2N1bWVudCIpIHsKKyAgICAgICAgJGhhc0N1c3RvbU5hbWVkR2V0
dGVyID0gMDsKKyAgICAgICAgJGhhc0N1c3RvbUluZGV4ZWRHZXR0ZXIgPSAwOworICAgIH0KICAg
ICBteSAkaXNJbmRleGVyU3BlY2lhbENhc2UgPSBleGlzdHMgJGluZGV4ZXJTcGVjaWFsQ2FzZXN7
JGludGVyZmFjZU5hbWV9OwogCiAgICAgaWYgKCRoYXNDdXN0b21JbmRleGVkR2V0dGVyIHx8ICRp
c0luZGV4ZXJTcGVjaWFsQ2FzZSkgewpAQCAtNDU2LDcgKzQ2Myw3IEBAIEVORAogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4sIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7
CiBFTkQKICAgICB9Ci0gICAgaWYgKCRoYXNDdXN0b21EZWxldGVycyB8fCAkaW50ZXJmYWNlTmFt
ZSBlcSAiSFRNTERvY3VtZW50IikgeworICAgIGlmICgkaGFzQ3VzdG9tRGVsZXRlcnMpIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpCb29sZWFuPiBuYW1lZFByb3BlcnR5RGVsZXRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4s
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKIEVORApAQCAtMTUwMyw2ICsxNTEwLDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTmFtZWRQcm9wZXJ0eUdldHRlcgogICAgICAgICAkaGFz
Q3VzdG9tR2V0dGVyID0gMTsKICAgICB9CiAKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhU
TUxEb2N1bWVudCIpIHsKKyAgICAgICAgJGhhc0N1c3RvbUdldHRlciA9IDA7CisgICAgfQorCiAg
ICAgbXkgJGhhc0dldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc05h
bWVHZXR0ZXIifSB8fCAkaGFzQ3VzdG9tR2V0dGVyIHx8ICRuYW1lZFByb3BlcnR5R2V0dGVyOwog
ICAgIGlmICghJGhhc0dldHRlcikgewogICAgICAgICByZXR1cm47CkBAIC0xNTE4LDggKzE1Mjks
NyBAQCBFTkQKICAgICB9CiAKICAgICBteSAkaGFzU2V0dGVyID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07Ci0gICAgIyBGSVhNRTogVHJ5
IHRvIHJlbW92ZSBoYXJkLWNvZGVkIEhUTUxEb2N1bWVudCByZWZlcmVuY2UgYnkgYWxpZ25pbmcg
aGFuZGxpbmcgb2YgZG9jdW1lbnQuYWxsIHdpdGggSlNDIGJpbmRpbmdzLgotICAgIG15ICRoYXNE
ZWxldGVyID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRGVsZXRlUHJv
cGVydHkifSB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTERvY3VtZW50IjsKKyAgICBteSAkaGFz
RGVsZXRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlbGV0ZVBy
b3BlcnR5In07CiAgICAgbXkgJGhhc0VudW1lcmF0b3IgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn07CiAgICAgbXkgJHNldE9uID0gIklu
c3RhbmNlIjsKIApAQCAtMjAwNCw2ICsyMDE0LDExIEBAIEVORAogICAgIGluc3RhbmNlLT5TZXRB
Y2Nlc3NDaGVja0NhbGxiYWNrcyhWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrLCBWOERP
TVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4OjpFeHRlcm5hbDo6V3JhcCgmVjhET01X
aW5kb3c6OmluZm8pLCBmYWxzZSk7CiBFTkQKICAgICB9CisgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJIVE1MRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
CisgICAgZGVzYy0+U2V0SGlkZGVuUHJvdG90eXBlKHRydWUpOworRU5ECisgICAgfQogICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGZlYmZkZGE2MjZmZGFiZmYzNTBhNWVmOGM0NmU4NmM4MWRhZmM0NWIuLjViM2I3NDdjOWYy
ZjNkYWNlYTFkYjM5ZTg5MWQ4NzY5MTdjMjMyZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcApAQCAtNDc4LDEwICs0NzgsMTIgQEAgdm9pZCBTY3JpcHRDb250cm9s
bGVyOjp1cGRhdGVEb2N1bWVudCgpCiAKIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bmFtZWRJdGVt
QWRkZWQoSFRNTERvY3VtZW50KiBkb2MsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKKyAg
ICBtX3Byb3h5LT53aW5kb3dTaGVsbCgpLT5uYW1lZEl0ZW1BZGRlZChkb2MsIG5hbWUpOwogfQog
CiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6Om5hbWVkSXRlbVJlbW92ZWQoSFRNTERvY3VtZW50KiBk
b2MsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKKyAgICBtX3Byb3h5LT53aW5kb3dTaGVs
bCgpLT5uYW1lZEl0ZW1SZW1vdmVkKGRvYywgbmFtZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IGExM2I1
NjJiZTY5MDg0M2M1ZjY5ZTJhM2RlNzI2ZDBmNmE5MWU5ZWQuLmQ3NDdjNzU1ZWI0MmM2MGJjZTM3
ZWY5MzRkMjJjNDc0ZjI1MWMwMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XaW5kb3dTaGVsbC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1No
ZWxsLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlY4RE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiVjhEb2N1bWVudC5oIgogI2luY2x1ZGUgIlY4R0NGb3JDb250ZXh0RGlzcG9zZS5oIgor
I2luY2x1ZGUgIlY4SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5h
bWUuaCIKICNpbmNsdWRlICJWOEhpc3RvcnkuaCIKICNpbmNsdWRlICJWOExvY2F0aW9uLmgiCkBA
IC00MDYsNiArNDA3LDEyIEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6Y2xlYXJEb2N1bWVudFdy
YXBwZXIoKQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgY2hlY2tEb2N1bWVudFdyYXBwZXIodjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
QVNTRVJUKFY4RG9jdW1lbnQ6OnRvTmF0aXZlKHdyYXBwZXIpID09IGRvY3VtZW50KTsKKyAgICBB
U1NFUlQoIWRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpIHx8IChWOERvY3VtZW50Ojp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHdyYXBwZXItPkdldFByb3RvdHlwZSgpKSkg
PT0gZG9jdW1lbnQpKTsKK30KKwogdm9pZCBWOERPTVdpbmRvd1NoZWxsOjp1cGRhdGVEb2N1bWVu
dFdyYXBwZXJDYWNoZSgpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwpAQCAt
NDI0LDYgKzQzMSwxMCBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6OnVwZGF0ZURvY3VtZW50V3Jh
cHBlckNhY2hlKCkKICAgICB9CiAKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZG9jdW1lbnRX
cmFwcGVyID0gdG9WOChtX2ZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnRX
cmFwcGVyID09IG1fZG9jdW1lbnQgfHwgbV9kb2N1bWVudC5Jc0VtcHR5KCkpOworICAgIGlmICht
X2RvY3VtZW50LklzRW1wdHkoKSkKKyAgICAgICAgdXBkYXRlRG9jdW1lbnRXcmFwcGVyKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoZG9jdW1lbnRXcmFwcGVyKSk7CisgICAgY2hlY2tEb2N1
bWVudFdyYXBwZXIobV9kb2N1bWVudCwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAKICAgICAvLyBJ
ZiBpbnN0YW50aWF0aW9uIG9mIHRoZSBkb2N1bWVudCB3cmFwcGVyIGZhaWxzLCBjbGVhciB0aGUg
Y2FjaGUKICAgICAvLyBhbmQgbGV0IHRoZSBET01XaW5kb3cgYWNjZXNzb3IgaGFuZGxlIGFjY2Vz
cyB0byB0aGUgZG9jdW1lbnQuCkBAIC01MDEsNiArNTEyLDM3IEBAIHZvaWQgVjhET01XaW5kb3dT
aGVsbDo6dXBkYXRlRG9jdW1lbnQoKQogICAgIHVwZGF0ZVNlY3VyaXR5T3JpZ2luKCk7CiB9CiAK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IHByb3Bl
cnR5LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIC8vIEZJWE1FKGFudG9u
bSk6IGNvbnNpZGVyIHBhc3NpbmcgQXRvbWljU3RyaW5nSW1wbCBkaXJlY3RseS4KKyAgICBBdG9t
aWNTdHJpbmcgbmFtZSA9IHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKHByb3BlcnR5KTsK
KyAgICBIVE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4SFRNTERvY3VtZW50Ojp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKKyAgICBBU1NFUlQoaHRtbERvY3VtZW50KTsKKyAgICB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gVjhIVE1MRG9jdW1lbnQ6OkdldE5hbWVkUHJvcGVydHko
aHRtbERvY3VtZW50LCBuYW1lKTsKKyAgICBpZiAoIXJlc3VsdC5Jc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHByb3RvdHlwZSA9IGlu
Zm8uSG9sZGVyKCktPkdldFByb3RvdHlwZSgpOworICAgIGlmIChwcm90b3R5cGUtPklzT2JqZWN0
KCkpCisgICAgICAgIHJldHVybiBwcm90b3R5cGUuQXM8djg6Ok9iamVjdD4oKS0+R2V0KHByb3Bl
cnR5KTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworfQorCit2b2lkIFY4RE9NV2luZG93
U2hlbGw6Om5hbWVkSXRlbUFkZGVkKEhUTUxEb2N1bWVudCogZG9jLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUpCit7CisgICAgaW5pdENvbnRleHRJZk5lZWRlZCgpOworCisgICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUo
bV9jb250ZXh0KTsKKworICAgIEFTU0VSVCghbV9kb2N1bWVudC5Jc0VtcHR5KCkpOworICAgIGNo
ZWNrRG9jdW1lbnRXcmFwcGVyKG1fZG9jdW1lbnQsIGRvYyk7CisgICAgbV9kb2N1bWVudC0+U2V0
QWNjZXNzb3IodjhTdHJpbmcobmFtZSksIGdldHRlcik7Cit9CisKK3ZvaWQgVjhET01XaW5kb3dT
aGVsbDo6bmFtZWRJdGVtUmVtb3ZlZChIVE1MRG9jdW1lbnQqIGRvYywgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lKQoreworfQorCiB2b2lkIFY4RE9NV2luZG93U2hlbGw6OnVwZGF0ZVNlY3VyaXR5
T3JpZ2luKCkKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XaW5kb3dTaGVsbC5oCmluZGV4IDJjY2I0MTA5MGY5ODVjODE2N2QzNTE0ZGUyMmRhOTcy
Nzg3YjExOTIuLmMyMTg4NWU4Yjg0YzdjZDg5MWE0ZTJkMjUzNDdjYmE3ZDZiZjJmMTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZu
ZGVmIFY4RE9NV2luZG93U2hlbGxfaAogI2RlZmluZSBWOERPTVdpbmRvd1NoZWxsX2gKIAorI2lu
Y2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQyLDYg
KzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBG
cmFtZTsKK2NsYXNzIEhUTUxEb2N1bWVudDsKK2NsYXNzIFN0cmluZzsKIAogLy8gVjhXaW5kb3dT
aGVsbCByZXByZXNlbnRzIGFsbCB0aGUgcGVyLWdsb2JhbCBvYmplY3Qgc3RhdGUgZm9yIGEgRnJh
bWUgdGhhdAogLy8gcGVyc2lzdCBiZXR3ZWVuIG5hdmlnYXRpb25zLgpAQCAtNTQsNiArNTcsOSBA
QCBwdWJsaWM6CiAgICAgLy8gVXBkYXRlIGRvY3VtZW50IG9iamVjdCBvZiB0aGUgZnJhbWUuCiAg
ICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCisgICAgdm9pZCBuYW1lZEl0ZW1BZGRlZChIVE1M
RG9jdW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIG5hbWVkSXRlbVJlbW92
ZWQoSFRNTERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAgICAvLyBVcGRhdGUg
dGhlIHNlY3VyaXR5IG9yaWdpbiBvZiBhIGRvY3VtZW50CiAgICAgLy8gKGUuZy4sIGFmdGVyIHNl
dHRpbmcgZG9jb3VtZW50LmRvbWFpbikuCiAgICAgdm9pZCB1cGRhdGVTZWN1cml0eU9yaWdpbigp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IGQ2ZjA1ZjRhNjljZjViZWUw
NjgxMmViYmE5YjI2YTQ5ZGQxMDA2ZjEuLjhhNzJhM2EzMmI5Y2IzMDYyMDhlY2IzODkzNzYwMGQy
M2JmZWM5MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTI4NCw2ICsy
ODQsOCBAQCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4
T2JqZWN0KFY4UHJveHkqIHByb3h5LCBXcmFwcGVyVAogICAgIGlmICghaW5zdGFuY2UuSXNFbXB0
eSgpKSB7CiAgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFwcGVyIGZvciBmYWls
ZWQgYWxsb2NhdGlvbnMuCiAgICAgICAgIHNldERPTVdyYXBwZXIoaW5zdGFuY2UsIHR5cGUsIGlt
cGwpOworICAgICAgICBpZiAodHlwZSA9PSAmVjhIVE1MRG9jdW1lbnQ6OmluZm8pCisgICAgICAg
ICAgICBpbnN0YW5jZSA9IFY4SFRNTERvY3VtZW50OjpXcmFwSW5TaGFkb3dPYmplY3QoaW5zdGFu
Y2UsIHN0YXRpY19jYXN0PE5vZGUqPihpbXBsKSk7CiAgICAgfQogICAgIHJldHVybiBpbnN0YW5j
ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcAppbmRleCA4NmYyZWI1MzIxMjMzYmU3MTk2ODViNWFjYTUwZTg5MDg0NzI0NmYz
Li4yNGFjNDdjZWQ3MDI1ZGIxM2RiYTA0MjdhNDQyYzBiODVmOGJiNGNhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCkBAIC00
OSw0OCArNDksMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6SGFuZGxlPHY4OjpC
b29sZWFuPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eURlbGV0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit2ODo6TG9jYWw8
djg6Ok9iamVjdD4gVjhIVE1MRG9jdW1lbnQ6OldyYXBJblNoYWRvd09iamVjdCh2ODo6TG9jYWw8
djg6Ok9iamVjdD4gd3JhcHBlciwgTm9kZSogaW1wbCkKIHsKLSAgICAvLyBPbmx5IGhhbmRsZSBk
b2N1bWVudC5hbGwuICBJbnNlcnQgdGhlIG1hcmtlciBvYmplY3QgaW50byB0aGUKLSAgICAvLyBz
aGFkb3cgaW50ZXJuYWwgZmllbGQgdG8gc2lnbmFsIHRoYXQgZG9jdW1lbnQuYWxsIGlzIG5vIGxv
bmdlcgotICAgIC8vIHNoYWRvd2VkLgotICAgIEF0b21pY1N0cmluZyBrZXkgPSB2OFN0cmluZ1Rv
QXRvbWljV2ViQ29yZVN0cmluZyhuYW1lKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYWxsLCAoImFsbCIpKTsKLSAgICBpZiAoa2V5ICE9IGFsbCkKLSAgICAg
ICAgcmV0dXJuIGRlbGV0aW9uTm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLQotICAgIEFTU0VS
VChpbmZvLkhvbGRlcigpLT5JbnRlcm5hbEZpZWxkQ291bnQoKSA9PSBWOEhUTUxEb2N1bWVudDo6
aW50ZXJuYWxGaWVsZENvdW50KTsKLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBtYXJrZXIgPSBp
bmZvLkhvbGRlcigpLT5HZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3VtZW50OjptYXJrZXJJbmRl
eCk7Ci0gICAgaW5mby5Ib2xkZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6
c2hhZG93SW5kZXgsIG1hcmtlcik7Ci0gICAgcmV0dXJuIHY4OjpUcnVlKCk7Ci19Ci0KLXY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKLXsK
LSAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQuTmFtZWRQcm9wZXJ0eUdldHRlciIpOwot
ICAgIEF0b21pY1N0cmluZyBrZXkgPSB2OFN0cmluZ1RvQXRvbWljV2ViQ29yZVN0cmluZyhuYW1l
KTsKLQotICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgZG9jdW1lbnQuYWxsLiAgSWYgdGhlIHZhbHVl
IGluIHRoZSBzaGFkb3cKLSAgICAvLyBpbnRlcm5hbCBmaWVsZCBpcyBub3QgdGhlIG1hcmtlciBv
YmplY3QsIHRoZW4gZG9jdW1lbnQuYWxsIGhhcwotICAgIC8vIGJlZW4gdGVtcG9yYXJpbHkgc2hh
ZG93ZWQgYW5kIHdlIHJldHVybiB0aGUgdmFsdWUuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGFsbCwgKCJhbGwiKSk7Ci0gICAgaWYgKGtleSA9PSBhbGwpIHsK
LSAgICAgICAgQVNTRVJUKGluZm8uSG9sZGVyKCktPkludGVybmFsRmllbGRDb3VudCgpID09IFY4
SFRNTERvY3VtZW50OjppbnRlcm5hbEZpZWxkQ291bnQpOwotICAgICAgICB2ODo6TG9jYWw8djg6
OlZhbHVlPiBtYXJrZXIgPSBpbmZvLkhvbGRlcigpLT5HZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERv
Y3VtZW50OjptYXJrZXJJbmRleCk7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
ID0gaW5mby5Ib2xkZXIoKS0+R2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hhZG93
SW5kZXgpOwotICAgICAgICBpZiAobWFya2VyICE9IHZhbHVlKQotICAgICAgICAgICAgcmV0dXJu
IHZhbHVlOworICAgIERFRklORV9TVEFUSUNfTE9DQUwodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+LCBzaGFkb3dUZW1wbGF0ZSwgKCkpOworICAgIGlmIChzaGFkb3dUZW1wbGF0
ZS5Jc0VtcHR5KCkpIHsKKyAgICAgICAgc2hhZG93VGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KCkpOwor
ICAgICAgICBpZiAoc2hhZG93VGVtcGxhdGUuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBzaGFkb3dUZW1wbGF0ZS0+U2V0Q2xh
c3NOYW1lKHY4OjpTdHJpbmc6Ok5ldygiSFRNTERvY3VtZW50IikpOworICAgICAgICBzaGFkb3dU
ZW1wbGF0ZS0+SW5oZXJpdChWOEhUTUxEb2N1bWVudDo6R2V0VGVtcGxhdGUoKSk7CisgICAgICAg
IHNoYWRvd1RlbXBsYXRlLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldEludGVybmFsRmllbGRDb3Vu
dChWOEhUTUxEb2N1bWVudDo6aW50ZXJuYWxGaWVsZENvdW50KTsKICAgICB9CiAKLSAgICBIVE1M
RG9jdW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4SFRNTERvY3VtZW50Ojp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBzaGFkb3dDb25zdHJ1Y3RvciA9
IHNoYWRvd1RlbXBsYXRlLT5HZXRGdW5jdGlvbigpOworICAgIGlmIChzaGFkb3dDb25zdHJ1Y3Rv
ci5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKIAot
ICAgIC8vIEZhc3QgY2FzZSBmb3IgbmFtZWQgZWxlbWVudHMgdGhhdCBhcmUgbm90IHRoZXJlLgor
ICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBzaGFkb3cgPSBzaGFkb3dDb25zdHJ1Y3Rvci0+TmV3
SW5zdGFuY2UoKTsKKyAgICBpZiAoc2hhZG93LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihz
aGFkb3csICZWOEhUTUxEb2N1bWVudDo6aW5mbywgaW1wbCk7CisgICAgc2hhZG93LT5TZXRQcm90
b3R5cGUod3JhcHBlcik7CisgICAgcmV0dXJuIHNoYWRvdzsKK30KKwordjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KEhUTUxEb2N1bWVudCogaHRt
bERvY3VtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKK3sKICAgICBpZiAoIWh0bWxEb2N1
bWVudC0+aGFzTmFtZWRJdGVtKGtleS5pbXBsKCkpICYmICFodG1sRG9jdW1lbnQtPmhhc0V4dHJh
TmFtZWRJdGVtKGtleS5pbXBsKCkpKQogICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiAKICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGl0ZW1zID0gaHRtbERvY3VtZW50
LT5kb2N1bWVudE5hbWVkSXRlbXMoa2V5KTsKICAgICBpZiAoIWl0ZW1zLT5sZW5ndGgoKSkKLSAg
ICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgICAgIHJldHVybiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIGlmIChpdGVtcy0+bGVuZ3RoKCkgPT0gMSkg
ewogICAgICAgICBOb2RlKiBub2RlID0gaXRlbXMtPmZpcnN0SXRlbSgpOwpAQCAtMTA0LDEzICs5
NCw2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0
eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICByZXR1cm4gdG9WOChpdGVtcy5yZWxl
YXNlKCkpOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MRG9jdW1lbnQ6OmluZGV4
ZWRQcm9wZXJ0eUdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyAm
aW5mbykgCi17Ci0gICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50LkluZGV4ZWRQcm9wZXJ0
eUdldHRlciIpOwotICAgIHY4OjpMb2NhbDx2ODo6SW50ZWdlcj4gaW5kZXhWOCA9IHY4OjpJbnRl
Z2VyOjpOZXdGcm9tVW5zaWduZWQoaW5kZXgpOwotICAgIHJldHVybiBuYW1lZFByb3BlcnR5R2V0
dGVyKGluZGV4VjgtPlRvU3RyaW5nKCksIGluZm8pOwotfQotCiAvLyBIVE1MRG9jdW1lbnQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiAvLyBDb25jYXRlbmF0ZXMgImFyZ3MiIHRvIGEgc3RyaW5nLiBJZiBhcmdzIGlzIGVt
cHR5LCByZXR1cm5zIGVtcHR5IHN0cmluZy4KQEAgLTE5MywxMCArMTc2LDggQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4SFRNTERvY3VtZW50OjphbGxBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmEKIAogdm9pZCBWOEhUTUxEb2N1bWVudDo6YWxsQWNjZXNzb3JTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLkhUTUxE
b2N1bWVudC5hbGwuX3NldCIpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0g
aW5mby5Ib2xkZXIoKTsKLSAgICBBU1NFUlQoaW5mby5Ib2xkZXIoKS0+SW50ZXJuYWxGaWVsZENv
dW50KCkgPT0gVjhIVE1MRG9jdW1lbnQ6OmludGVybmFsRmllbGRDb3VudCk7Ci0gICAgaW5mby5I
b2xkZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hhZG93SW5kZXgsIHZh
bHVlKTsKKyAgICAvLyBKdXN0IGVtdWxhdGUgYSBub3JtYWwgSlMgYmVoYXZpb3VyLS0taW5zdGFs
bCBhIHByb3BlcnR5IG9uIHRoaXMuCisgICAgaW5mby5UaGlzKCktPkZvcmNlU2V0KG5hbWUsIHZh
bHVlKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSFRNTERvY3VtZW50KiBpbXBs
LCBib29sIGZvcmNlTmV3T2JqZWN0KQpAQCAtMjEwLDEyICsxOTEsNiBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdG9WOChIVE1MRG9jdW1lbnQqIGltcGwsIGJvb2wgZm9yY2VOZXdPYmplY3QpCiAg
ICAgICAgIGlmIChWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGltcGwtPmZyYW1l
KCkpKQogICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxsKCktPnVwZGF0ZURvY3VtZW50V3Jh
cHBlcih3cmFwcGVyKTsKICAgICB9Ci0gICAgLy8gQ3JlYXRlIG1hcmtlciBvYmplY3QgYW5kIGlu
c2VydCBpdCBpbiB0d28gaW50ZXJuYWwgZmllbGRzLgotICAgIC8vIFRoaXMgaXMgdXNlZCB0byBp
bXBsZW1lbnQgdGVtcG9yYXJ5IHNoYWRvd2luZyBvZiBkb2N1bWVudC5hbGwuCi0gICAgQVNTRVJU
KHdyYXBwZXItPkludGVybmFsRmllbGRDb3VudCgpID09IFY4SFRNTERvY3VtZW50OjppbnRlcm5h
bEZpZWxkQ291bnQpOwotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBtYXJrZXIgPSB2ODo6T2Jq
ZWN0OjpOZXcoKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3VtZW50
OjptYXJrZXJJbmRleCwgbWFya2VyKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRlcm5hbEZpZWxkKFY4
SFRNTERvY3VtZW50OjpzaGFkb3dJbmRleCwgbWFya2VyKTsKICAgICByZXR1cm4gd3JhcHBlcjsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCA1NTljMWUwNDIwMWFiOWNmMmFkZWUyOTE5ZjA5
NGJhNTI5YWVlNGQ3Li41Nzk4NzgzZTNhYTFmYTZhODI5MmUzZjNiZjhiNmM4MmZkNTM4NWY0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTERvY3VtZW50LmNwcApAQCAtMzIzLDkgKzMyMyw5IEBAIHZvaWQgSFRNTERvY3VtZW50
OjpyZW1vdmVJdGVtRnJvbU1hcChIYXNoQ291bnRlZFNldDxBdG9taWNTdHJpbmdJbXBsKj4mIG1h
cCwgY29uCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CisgICAg
bWFwLnJlbW92ZShuYW1lLmltcGwoKSk7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKICAg
ICAgICAgZi0+c2NyaXB0KCktPm5hbWVkSXRlbVJlbW92ZWQodGhpcywgbmFtZSk7Ci0gICAgbWFw
LnJlbW92ZShuYW1lLmltcGwoKSk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50OjphZGROYW1lZEl0
ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64319</attachid>
            <date>2010-08-13 04:20:34 -0700</date>
            <delta_ts>2010-08-13 05:29:45 -0700</delta_ts>
            <desc>correct include</desc>
            <filename>bug-43725-20100813152032.patch</filename>
            <type>text/plain</type>
            <size>17084</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGQ2ODliYWZjM2E1YTIwNGY5Mjk2OTkwNjE3YzVjOTBkOWI4NDRiZC4uNWQ5ZmNiYzdjMWUxMjI0
Njk2MDg3YWI2ZDk5NDAzNjY3NDc1M2Y1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMC0wOC0xMyAgQW50
b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5h
dGUgQ2hhcGluLgorCisgICAgICAgIFJlYXBwbHlpbmcgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvNjUyODQgYWZ0ZXIgZml4ZWQgaW5jbHVkZS4KKworICAgICAgICBbdjhdIENyZWF0
ZSBjYWxsYmFja3MgZm9yIG5hbWVkIGFjY2VzcyBvZiBlbGVtZW50cyBmcm9tIGRvY3VtZW50IG9i
amVjdCBvbiBmbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MzcyNQorCisgICAgICAgIFRoYXQgc2hvdWxkIHNwZWVkIHVwIGFjY2VzcyB0byBtZXRo
b2RzIG9uIGRvY3VtZW50IGFzIHRoZXJlIGlzIG5vIG5lZWQgdG8KKyAgICAgICAgY29uc3VsdCB3
aXRoIGludGVyY2VwdG9yIGJlZm9yZSBpbnZva2luZyB0aGUgbWV0aG9kLgorCisgICAgICAgIFRo
aXMgcmVhcHBsaWVzIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzYwNjcwIHJldmVy
dGVkIHdpdGgKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjM4NDUu
ICBUaGUgbWFpbiBkaWZmZXJlbmNlIGlzIGluIHRyZWF0bWVudAorICAgICAgICBvZiByZW1vdmVk
IG5hbWVkIGVsZW1lbnRzOiB3ZSBkb24ndCByZW1vdmUgYW4gYWNjZXNzb3IgYW55IG1vcmUsIGJ1
dCBsZWF2ZSBpdC4KKyAgICAgICAgVGhlcmVmb3JlIGFueSBhY2Nlc3NvciBzaG91bGQgYmUgYWJs
ZSB0byB0cmVhdCB0aGUgY2FzZSB3aGVuIHRoZXJlIGlzIG5vCisgICAgICAgIGV4cGFuZG8gcHJv
cGVydHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6Om5hbWVkSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6Om5hbWVkSXRlbVJlbW92ZWQpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tEb2N1
bWVudFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6dXBkYXRl
RG9jdW1lbnRXcmFwcGVyQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbUFkZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbVJlbW92ZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjppbnN0YW50
aWF0ZVY4T2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MRG9jdW1lbnQ6OldyYXBJblNo
YWRvd09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxEb2N1bWVudDo6R2V0TmFtZWRQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxEb2N1bWVudDo6YWxsQWNjZXNzb3JT
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogaHRtbC9IVE1MRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpyZW1vdmVJdGVtRnJv
bU1hcCk6CisKIDIwMTAtMDgtMTMgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBhZWM0ZDY0YTJmODQzODU4NTc3Yzhh
MmNjN2U4MWVlYWEwM2EzZDFkLi5lYmJjZjhiNDZkYWE0MGU3YmY2N2U5MDg3NGRhN2VlNzY1MjQ5
NzQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAg
LTI3NSw2ICsyNzUsMTMgQEAgRU5ECiBFTkQKICAgICB9CiAKKyAgICBpZiAoJGltcGxDbGFzc05h
bWUgZXEgIkhUTUxEb2N1bWVudCIpIHsKKyAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5E
KTsKKyAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBXcmFwSW5TaGFkb3dPYmplY3Qodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IHdyYXBwZXIsIE5vZGUqIGltcGwpOworICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IEdldE5hbWVkUHJvcGVydHkoSFRNTERvY3VtZW50KiBodG1sRG9jdW1l
bnQsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5KTsKK0VORAorICAgIH0KKwogICAgIG15IEBlbmFi
bGVkQXRSdW50aW1lOwogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVu
Y3Rpb25zfSkgewogICAgICAgICBteSAkbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
OwpAQCAtMzYyLDkgKzM2OSw2IEBAIHN1YiBHZXRJbnRlcm5hbEZpZWxkcwogCiAgICAgaWYgKElz
U3ViVHlwZSgkZGF0YU5vZGUsICJEb2N1bWVudCIpKSB7CiAgICAgICAgIHB1c2goQGN1c3RvbUlu
dGVybmFsRmllbGRzLCAiaW1wbGVtZW50YXRpb25JbmRleCIpOwotICAgICAgICBpZiAoJG5hbWUg
ZXEgIkhUTUxEb2N1bWVudCIpIHsKLSAgICAgICAgICAgIHB1c2goQGN1c3RvbUludGVybmFsRmll
bGRzLCAoIm1hcmtlckluZGV4IiwgInNoYWRvd0luZGV4IikpOwotICAgICAgICB9CiAgICAgfSBl
bHNpZiAoJG5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAY3VzdG9tSW50ZXJu
YWxGaWVsZHMsICJlbnRlcmVkSXNvbGF0ZWRXb3JsZEluZGV4Iik7CiAgICAgfQpAQCAtNDAxLDcg
KzQwNSw2IEBAIEVORAogbXkgJWluZGV4ZXJTcGVjaWFsQ2FzZXMgPSAoCiAgICAgIlN0b3JhZ2Ui
ID0+IDEsCiAgICAgIkhUTUxBcHBsZXRFbGVtZW50IiA9PiAxLAotICAgICJIVE1MRG9jdW1lbnQi
ID0+IDEsCiAgICAgIkhUTUxFbWJlZEVsZW1lbnQiID0+IDEsCiAgICAgIkhUTUxPYmplY3RFbGVt
ZW50IiA9PiAxCiApOwpAQCAtNDI4LDYgKzQzMSwxMCBAQCBzdWIgR2VuZXJhdGVIZWFkZXJOYW1l
ZEFuZEluZGV4ZWRQcm9wZXJ0eUFjY2Vzc29ycwogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
SFRNTFNlbGVjdEVsZW1lbnQiIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQXBwbGV0RWxlbWVu
dCIgfHwgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxFbWJlZEVsZW1lbnQiIHx8ICRpbnRlcmZhY2VO
YW1lIGVxICJIVE1MT2JqZWN0RWxlbWVudCIpIHsKICAgICAgICAgJGhhc0N1c3RvbU5hbWVkR2V0
dGVyID0gMTsKICAgICB9CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MRG9jdW1lbnQi
KSB7CisgICAgICAgICRoYXNDdXN0b21OYW1lZEdldHRlciA9IDA7CisgICAgICAgICRoYXNDdXN0
b21JbmRleGVkR2V0dGVyID0gMDsKKyAgICB9CiAgICAgbXkgJGlzSW5kZXhlclNwZWNpYWxDYXNl
ID0gZXhpc3RzICRpbmRleGVyU3BlY2lhbENhc2VzeyRpbnRlcmZhY2VOYW1lfTsKIAogICAgIGlm
ICgkaGFzQ3VzdG9tSW5kZXhlZEdldHRlciB8fCAkaXNJbmRleGVyU3BlY2lhbENhc2UpIHsKQEAg
LTQ1Niw3ICs0NjMsNyBAQCBFTkQKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5h
bWVkUHJvcGVydHlTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+LCB2ODo6TG9jYWw8djg6OlZh
bHVlPiwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYpOwogRU5ECiAgICAgfQotICAgIGlmICgkaGFz
Q3VzdG9tRGVsZXRlcnMgfHwgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxEb2N1bWVudCIpIHsKKyAg
ICBpZiAoJGhhc0N1c3RvbURlbGV0ZXJzKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IDw8RU5EKTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6Qm9vbGVhbj4gbmFtZWRQcm9wZXJ0
eURlbGV0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7
CiBFTkQKQEAgLTE1MDMsNiArMTUxMCwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbk5h
bWVkUHJvcGVydHlHZXR0ZXIKICAgICAgICAgJGhhc0N1c3RvbUdldHRlciA9IDE7CiAgICAgfQog
CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MRG9jdW1lbnQiKSB7CisgICAgICAgICRo
YXNDdXN0b21HZXR0ZXIgPSAwOworICAgIH0KKwogICAgIG15ICRoYXNHZXR0ZXIgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOYW1lR2V0dGVyIn0gfHwgJGhhc0N1c3RvbUdl
dHRlciB8fCAkbmFtZWRQcm9wZXJ0eUdldHRlcjsKICAgICBpZiAoISRoYXNHZXR0ZXIpIHsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTUxOCw4ICsxNTI5LDcgQEAgRU5ECiAgICAgfQogCiAgICAgbXkg
JGhhc1NldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQ
dXRGdW5jdGlvbiJ9OwotICAgICMgRklYTUU6IFRyeSB0byByZW1vdmUgaGFyZC1jb2RlZCBIVE1M
RG9jdW1lbnQgcmVmZXJlbmNlIGJ5IGFsaWduaW5nIGhhbmRsaW5nIG9mIGRvY3VtZW50LmFsbCB3
aXRoIEpTQyBiaW5kaW5ncy4KLSAgICBteSAkaGFzRGVsZXRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlbGV0ZVByb3BlcnR5In0gfHwgJGludGVyZmFjZU5hbWUg
ZXEgIkhUTUxEb2N1bWVudCI7CisgICAgbXkgJGhhc0RlbGV0ZXIgPSAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21EZWxldGVQcm9wZXJ0eSJ9OwogICAgIG15ICRoYXNFbnVt
ZXJhdG9yID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVy
dHlOYW1lcyJ9OwogICAgIG15ICRzZXRPbiA9ICJJbnN0YW5jZSI7CiAKQEAgLTIwMDQsNiArMjAx
NCwxMSBAQCBFTkQKICAgICBpbnN0YW5jZS0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoVjhET01X
aW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjaywgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNo
ZWNrLCB2ODo6RXh0ZXJuYWw6OldyYXAoJlY4RE9NV2luZG93OjppbmZvKSwgZmFsc2UpOwogRU5E
CiAgICAgfQorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTERvY3VtZW50IikgeworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgIGRlc2MtPlNldEhpZGRlblByb3Rv
dHlwZSh0cnVlKTsKK0VORAorICAgIH0KICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkxvY2F0
aW9uIikgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBmZWJmZGRhNjI2ZmRhYmZmMzUwYTVl
ZjhjNDZlODZjODFkYWZjNDViLi41YjNiNzQ3YzlmMmYzZGFjZWExZGIzOWU4OTFkODc2OTE3YzIz
MmQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQ3OCwx
MCArNDc4LDEyIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6dXBkYXRlRG9jdW1lbnQoKQogCiB2
b2lkIFNjcmlwdENvbnRyb2xsZXI6Om5hbWVkSXRlbUFkZGVkKEhUTUxEb2N1bWVudCogZG9jLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7CisgICAgbV9wcm94eS0+d2luZG93U2hlbGwoKS0+
bmFtZWRJdGVtQWRkZWQoZG9jLCBuYW1lKTsKIH0KIAogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpu
YW1lZEl0ZW1SZW1vdmVkKEhUTUxEb2N1bWVudCogZG9jLCBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpCiB7CisgICAgbV9wcm94eS0+d2luZG93U2hlbGwoKS0+bmFtZWRJdGVtUmVtb3ZlZChkb2Ms
IG5hbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBhMTNiNTYyYmU2OTA4NDNjNWY2OWUyYTNkZTcyNmQw
ZjZhOTFlOWVkLi5kNzQ3Yzc1NWViNDJjNjBiY2UzN2VmOTM0ZDIyYzQ3NGYyNTFjMDJkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlY4RG9jdW1lbnQuaCIKICNpbmNs
dWRlICJWOEdDRm9yQ29udGV4dERpc3Bvc2UuaCIKKyNpbmNsdWRlICJWOEhUTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlOYW1lLmgiCiAjaW5jbHVkZSAiVjhIaXN0b3J5
LmgiCiAjaW5jbHVkZSAiVjhMb2NhdGlvbi5oIgpAQCAtNDA2LDYgKzQwNywxMiBAQCB2b2lkIFY4
RE9NV2luZG93U2hlbGw6OmNsZWFyRG9jdW1lbnRXcmFwcGVyKCkKICAgICB9CiB9CiAKK3N0YXRp
YyB2b2lkIGNoZWNrRG9jdW1lbnRXcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChWOERvY3VtZW50Ojp0b05hdGl2
ZSh3cmFwcGVyKSA9PSBkb2N1bWVudCk7CisgICAgQVNTRVJUKCFkb2N1bWVudC0+aXNIVE1MRG9j
dW1lbnQoKSB8fCAoVjhEb2N1bWVudDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdCh3cmFwcGVyLT5HZXRQcm90b3R5cGUoKSkpID09IGRvY3VtZW50KSk7Cit9CisKIHZvaWQg
VjhET01XaW5kb3dTaGVsbDo6dXBkYXRlRG9jdW1lbnRXcmFwcGVyQ2FjaGUoKQogewogICAgIHY4
OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKQEAgLTQyNCw2ICs0MzEsMTAgQEAgdm9pZCBWOERP
TVdpbmRvd1NoZWxsOjp1cGRhdGVEb2N1bWVudFdyYXBwZXJDYWNoZSgpCiAgICAgfQogCiAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGRvY3VtZW50V3JhcHBlciA9IHRvVjgobV9mcmFtZS0+ZG9j
dW1lbnQoKSk7CisgICAgQVNTRVJUKGRvY3VtZW50V3JhcHBlciA9PSBtX2RvY3VtZW50IHx8IG1f
ZG9jdW1lbnQuSXNFbXB0eSgpKTsKKyAgICBpZiAobV9kb2N1bWVudC5Jc0VtcHR5KCkpCisgICAg
ICAgIHVwZGF0ZURvY3VtZW50V3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGRv
Y3VtZW50V3JhcHBlcikpOworICAgIGNoZWNrRG9jdW1lbnRXcmFwcGVyKG1fZG9jdW1lbnQsIG1f
ZnJhbWUtPmRvY3VtZW50KCkpOwogCiAgICAgLy8gSWYgaW5zdGFudGlhdGlvbiBvZiB0aGUgZG9j
dW1lbnQgd3JhcHBlciBmYWlscywgY2xlYXIgdGhlIGNhY2hlCiAgICAgLy8gYW5kIGxldCB0aGUg
RE9NV2luZG93IGFjY2Vzc29yIGhhbmRsZSBhY2Nlc3MgdG8gdGhlIGRvY3VtZW50LgpAQCAtNTAx
LDYgKzUxMiwzNyBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6OnVwZGF0ZURvY3VtZW50KCkKICAg
ICB1cGRhdGVTZWN1cml0eU9yaWdpbigpOwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBwcm9wZXJ0eSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICAvLyBGSVhNRShhbnRvbm0pOiBjb25zaWRlciBwYXNzaW5nIEF0b21p
Y1N0cmluZ0ltcGwgZGlyZWN0bHkuCisgICAgQXRvbWljU3RyaW5nIG5hbWUgPSB2OFN0cmluZ1Rv
QXRvbWljV2ViQ29yZVN0cmluZyhwcm9wZXJ0eSk7CisgICAgSFRNTERvY3VtZW50KiBodG1sRG9j
dW1lbnQgPSBWOEhUTUxEb2N1bWVudDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgQVNT
RVJUKGh0bWxEb2N1bWVudCk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IFY4
SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KGh0bWxEb2N1bWVudCwgbmFtZSk7CisgICAg
aWYgKCFyZXN1bHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBwcm90b3R5cGUgPSBpbmZvLkhvbGRlcigpLT5HZXRQcm90b3R5cGUo
KTsKKyAgICBpZiAocHJvdG90eXBlLT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gcHJvdG90
eXBlLkFzPHY4OjpPYmplY3Q+KCktPkdldChwcm9wZXJ0eSk7CisgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKK30KKwordm9pZCBWOERPTVdpbmRvd1NoZWxsOjpuYW1lZEl0ZW1BZGRlZChIVE1M
RG9jdW1lbnQqIGRvYywgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworICAgIGluaXRDb250
ZXh0SWZOZWVkZWQoKTsKKworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKyAgICB2
ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKG1fY29udGV4dCk7CisKKyAgICBBU1NFUlQo
IW1fZG9jdW1lbnQuSXNFbXB0eSgpKTsKKyAgICBjaGVja0RvY3VtZW50V3JhcHBlcihtX2RvY3Vt
ZW50LCBkb2MpOworICAgIG1fZG9jdW1lbnQtPlNldEFjY2Vzc29yKHY4U3RyaW5nKG5hbWUpLCBn
ZXR0ZXIpOworfQorCit2b2lkIFY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbVJlbW92ZWQoSFRN
TERvY3VtZW50KiBkb2MsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKK3sKK30KKwogdm9pZCBW
OERPTVdpbmRvd1NoZWxsOjp1cGRhdGVTZWN1cml0eU9yaWdpbigpCiB7CiAgICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRv
d1NoZWxsLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaAppbmRleCAy
Y2NiNDEwOTBmOTg1YzgxNjdkMzUxNGRlMjJkYTk3Mjc4N2IxMTkyLi43OTU4YmYxMGRjNDVlZjJi
NTBmNDA3ZDFkMTNiMDBmYjgxN2E1MDM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV2luZG93U2hlbGwuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93
U2hlbGwuaApAQCAtMzcsMTEgKzM3LDEzIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEhUTUxEb2N1bWVudDsKIAog
Ly8gVjhXaW5kb3dTaGVsbCByZXByZXNlbnRzIGFsbCB0aGUgcGVyLWdsb2JhbCBvYmplY3Qgc3Rh
dGUgZm9yIGEgRnJhbWUgdGhhdAogLy8gcGVyc2lzdCBiZXR3ZWVuIG5hdmlnYXRpb25zLgpAQCAt
NTQsNiArNTYsOSBAQCBwdWJsaWM6CiAgICAgLy8gVXBkYXRlIGRvY3VtZW50IG9iamVjdCBvZiB0
aGUgZnJhbWUuCiAgICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCisgICAgdm9pZCBuYW1lZEl0
ZW1BZGRlZChIVE1MRG9jdW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIG5h
bWVkSXRlbVJlbW92ZWQoSFRNTERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAg
ICAvLyBVcGRhdGUgdGhlIHNlY3VyaXR5IG9yaWdpbiBvZiBhIGRvY3VtZW50CiAgICAgLy8gKGUu
Zy4sIGFmdGVyIHNldHRpbmcgZG9jb3VtZW50LmRvbWFpbikuCiAgICAgdm9pZCB1cGRhdGVTZWN1
cml0eU9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IGQ2ZjA1
ZjRhNjljZjViZWUwNjgxMmViYmE5YjI2YTQ5ZGQxMDA2ZjEuLjhhNzJhM2EzMmI5Y2IzMDYyMDhl
Y2IzODkzNzYwMGQyM2JmZWM5MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAK
QEAgLTI4NCw2ICsyODQsOCBAQCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjpp
bnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkqIHByb3h5LCBXcmFwcGVyVAogICAgIGlmICghaW5z
dGFuY2UuSXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFw
cGVyIGZvciBmYWlsZWQgYWxsb2NhdGlvbnMuCiAgICAgICAgIHNldERPTVdyYXBwZXIoaW5zdGFu
Y2UsIHR5cGUsIGltcGwpOworICAgICAgICBpZiAodHlwZSA9PSAmVjhIVE1MRG9jdW1lbnQ6Omlu
Zm8pCisgICAgICAgICAgICBpbnN0YW5jZSA9IFY4SFRNTERvY3VtZW50OjpXcmFwSW5TaGFkb3dP
YmplY3QoaW5zdGFuY2UsIHN0YXRpY19jYXN0PE5vZGUqPihpbXBsKSk7CiAgICAgfQogICAgIHJl
dHVybiBpbnN0YW5jZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA4NmYyZWI1MzIxMjMzYmU3MTk2ODViNWFjYTUw
ZTg5MDg0NzI0NmYzLi4yNGFjNDdjZWQ3MDI1ZGIxM2RiYTA0MjdhNDQyYzBiODVmOGJiNGNhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3Rv
bS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0
b20uY3BwCkBAIC00OSw0OCArNDksMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12ODo6
SGFuZGxlPHY4OjpCb29sZWFuPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0eURlbGV0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
Cit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhIVE1MRG9jdW1lbnQ6OldyYXBJblNoYWRvd09iamVj
dCh2ODo6TG9jYWw8djg6Ok9iamVjdD4gd3JhcHBlciwgTm9kZSogaW1wbCkKIHsKLSAgICAvLyBP
bmx5IGhhbmRsZSBkb2N1bWVudC5hbGwuICBJbnNlcnQgdGhlIG1hcmtlciBvYmplY3QgaW50byB0
aGUKLSAgICAvLyBzaGFkb3cgaW50ZXJuYWwgZmllbGQgdG8gc2lnbmFsIHRoYXQgZG9jdW1lbnQu
YWxsIGlzIG5vIGxvbmdlcgotICAgIC8vIHNoYWRvd2VkLgotICAgIEF0b21pY1N0cmluZyBrZXkg
PSB2OFN0cmluZ1RvQXRvbWljV2ViQ29yZVN0cmluZyhuYW1lKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWxsLCAoImFsbCIpKTsKLSAgICBpZiAoa2V5ICE9
IGFsbCkKLSAgICAgICAgcmV0dXJuIGRlbGV0aW9uTm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsK
LQotICAgIEFTU0VSVChpbmZvLkhvbGRlcigpLT5JbnRlcm5hbEZpZWxkQ291bnQoKSA9PSBWOEhU
TUxEb2N1bWVudDo6aW50ZXJuYWxGaWVsZENvdW50KTsKLSAgICB2ODo6TG9jYWw8djg6OlZhbHVl
PiBtYXJrZXIgPSBpbmZvLkhvbGRlcigpLT5HZXRJbnRlcm5hbEZpZWxkKFY4SFRNTERvY3VtZW50
OjptYXJrZXJJbmRleCk7Ci0gICAgaW5mby5Ib2xkZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhU
TUxEb2N1bWVudDo6c2hhZG93SW5kZXgsIG1hcmtlcik7Ci0gICAgcmV0dXJuIHY4OjpUcnVlKCk7
Ci19Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6bmFtZWRQcm9wZXJ0
eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQuTmFtZWRQcm9wZXJ0
eUdldHRlciIpOwotICAgIEF0b21pY1N0cmluZyBrZXkgPSB2OFN0cmluZ1RvQXRvbWljV2ViQ29y
ZVN0cmluZyhuYW1lKTsKLQotICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgZG9jdW1lbnQuYWxsLiAg
SWYgdGhlIHZhbHVlIGluIHRoZSBzaGFkb3cKLSAgICAvLyBpbnRlcm5hbCBmaWVsZCBpcyBub3Qg
dGhlIG1hcmtlciBvYmplY3QsIHRoZW4gZG9jdW1lbnQuYWxsIGhhcwotICAgIC8vIGJlZW4gdGVt
cG9yYXJpbHkgc2hhZG93ZWQgYW5kIHdlIHJldHVybiB0aGUgdmFsdWUuCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFsbCwgKCJhbGwiKSk7Ci0gICAgaWYgKGtl
eSA9PSBhbGwpIHsKLSAgICAgICAgQVNTRVJUKGluZm8uSG9sZGVyKCktPkludGVybmFsRmllbGRD
b3VudCgpID09IFY4SFRNTERvY3VtZW50OjppbnRlcm5hbEZpZWxkQ291bnQpOwotICAgICAgICB2
ODo6TG9jYWw8djg6OlZhbHVlPiBtYXJrZXIgPSBpbmZvLkhvbGRlcigpLT5HZXRJbnRlcm5hbEZp
ZWxkKFY4SFRNTERvY3VtZW50OjptYXJrZXJJbmRleCk7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlID0gaW5mby5Ib2xkZXIoKS0+R2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1
bWVudDo6c2hhZG93SW5kZXgpOwotICAgICAgICBpZiAobWFya2VyICE9IHZhbHVlKQotICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlOworICAgIERFRklORV9TVEFUSUNfTE9DQUwodjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+LCBzaGFkb3dUZW1wbGF0ZSwgKCkpOworICAgIGlmIChz
aGFkb3dUZW1wbGF0ZS5Jc0VtcHR5KCkpIHsKKyAgICAgICAgc2hhZG93VGVtcGxhdGUgPSB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0
ZTo6TmV3KCkpOworICAgICAgICBpZiAoc2hhZG93VGVtcGxhdGUuSXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBzaGFkb3dUZW1w
bGF0ZS0+U2V0Q2xhc3NOYW1lKHY4OjpTdHJpbmc6Ok5ldygiSFRNTERvY3VtZW50IikpOworICAg
ICAgICBzaGFkb3dUZW1wbGF0ZS0+SW5oZXJpdChWOEhUTUxEb2N1bWVudDo6R2V0VGVtcGxhdGUo
KSk7CisgICAgICAgIHNoYWRvd1RlbXBsYXRlLT5JbnN0YW5jZVRlbXBsYXRlKCktPlNldEludGVy
bmFsRmllbGRDb3VudChWOEhUTUxEb2N1bWVudDo6aW50ZXJuYWxGaWVsZENvdW50KTsKICAgICB9
CiAKLSAgICBIVE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4SFRNTERvY3VtZW50Ojp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBzaGFkb3dD
b25zdHJ1Y3RvciA9IHNoYWRvd1RlbXBsYXRlLT5HZXRGdW5jdGlvbigpOworICAgIGlmIChzaGFk
b3dDb25zdHJ1Y3Rvci5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9i
amVjdD4oKTsKIAotICAgIC8vIEZhc3QgY2FzZSBmb3IgbmFtZWQgZWxlbWVudHMgdGhhdCBhcmUg
bm90IHRoZXJlLgorICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBzaGFkb3cgPSBzaGFkb3dDb25z
dHJ1Y3Rvci0+TmV3SW5zdGFuY2UoKTsKKyAgICBpZiAoc2hhZG93LklzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0
RE9NV3JhcHBlcihzaGFkb3csICZWOEhUTUxEb2N1bWVudDo6aW5mbywgaW1wbCk7CisgICAgc2hh
ZG93LT5TZXRQcm90b3R5cGUod3JhcHBlcik7CisgICAgcmV0dXJuIHNoYWRvdzsKK30KKwordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTERvY3VtZW50OjpHZXROYW1lZFByb3BlcnR5KEhUTUxE
b2N1bWVudCogaHRtbERvY3VtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKK3sKICAgICBp
ZiAoIWh0bWxEb2N1bWVudC0+aGFzTmFtZWRJdGVtKGtleS5pbXBsKCkpICYmICFodG1sRG9jdW1l
bnQtPmhhc0V4dHJhTmFtZWRJdGVtKGtleS5pbXBsKCkpKQogICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGl0ZW1zID0g
aHRtbERvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbXMoa2V5KTsKICAgICBpZiAoIWl0ZW1zLT5s
ZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAg
ICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAogICAgIGlmIChpdGVtcy0+bGVu
Z3RoKCkgPT0gMSkgewogICAgICAgICBOb2RlKiBub2RlID0gaXRlbXMtPmZpcnN0SXRlbSgpOwpA
QCAtMTA0LDEzICs5NCw2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6
bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICByZXR1cm4gdG9W
OChpdGVtcy5yZWxlYXNlKCkpOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MRG9j
dW1lbnQ6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3Qgdjg6OkFj
Y2Vzc29ySW5mbyAmaW5mbykgCi17Ci0gICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50Lklu
ZGV4ZWRQcm9wZXJ0eUdldHRlciIpOwotICAgIHY4OjpMb2NhbDx2ODo6SW50ZWdlcj4gaW5kZXhW
OCA9IHY4OjpJbnRlZ2VyOjpOZXdGcm9tVW5zaWduZWQoaW5kZXgpOwotICAgIHJldHVybiBuYW1l
ZFByb3BlcnR5R2V0dGVyKGluZGV4VjgtPlRvU3RyaW5nKCksIGluZm8pOwotfQotCiAvLyBIVE1M
RG9jdW1lbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCiAvLyBDb25jYXRlbmF0ZXMgImFyZ3MiIHRvIGEgc3RyaW5nLiBJ
ZiBhcmdzIGlzIGVtcHR5LCByZXR1cm5zIGVtcHR5IHN0cmluZy4KQEAgLTE5MywxMCArMTc2LDgg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTERvY3VtZW50OjphbGxBY2Nlc3NvckdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKIAogdm9pZCBWOEhUTUxEb2N1bWVudDo6YWxsQWNj
ZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFU
UygiRE9NLkhUTUxEb2N1bWVudC5hbGwuX3NldCIpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gaG9sZGVyID0gaW5mby5Ib2xkZXIoKTsKLSAgICBBU1NFUlQoaW5mby5Ib2xkZXIoKS0+SW50
ZXJuYWxGaWVsZENvdW50KCkgPT0gVjhIVE1MRG9jdW1lbnQ6OmludGVybmFsRmllbGRDb3VudCk7
Ci0gICAgaW5mby5Ib2xkZXIoKS0+U2V0SW50ZXJuYWxGaWVsZChWOEhUTUxEb2N1bWVudDo6c2hh
ZG93SW5kZXgsIHZhbHVlKTsKKyAgICAvLyBKdXN0IGVtdWxhdGUgYSBub3JtYWwgSlMgYmVoYXZp
b3VyLS0taW5zdGFsbCBhIHByb3BlcnR5IG9uIHRoaXMuCisgICAgaW5mby5UaGlzKCktPkZvcmNl
U2V0KG5hbWUsIHZhbHVlKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSFRNTERv
Y3VtZW50KiBpbXBsLCBib29sIGZvcmNlTmV3T2JqZWN0KQpAQCAtMjEwLDEyICsxOTEsNiBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MRG9jdW1lbnQqIGltcGwsIGJvb2wgZm9yY2VO
ZXdPYmplY3QpCiAgICAgICAgIGlmIChWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZl
KGltcGwtPmZyYW1lKCkpKQogICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxsKCktPnVwZGF0
ZURvY3VtZW50V3JhcHBlcih3cmFwcGVyKTsKICAgICB9Ci0gICAgLy8gQ3JlYXRlIG1hcmtlciBv
YmplY3QgYW5kIGluc2VydCBpdCBpbiB0d28gaW50ZXJuYWwgZmllbGRzLgotICAgIC8vIFRoaXMg
aXMgdXNlZCB0byBpbXBsZW1lbnQgdGVtcG9yYXJ5IHNoYWRvd2luZyBvZiBkb2N1bWVudC5hbGwu
Ci0gICAgQVNTRVJUKHdyYXBwZXItPkludGVybmFsRmllbGRDb3VudCgpID09IFY4SFRNTERvY3Vt
ZW50OjppbnRlcm5hbEZpZWxkQ291bnQpOwotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBtYXJr
ZXIgPSB2ODo6T2JqZWN0OjpOZXcoKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRlcm5hbEZpZWxkKFY4
SFRNTERvY3VtZW50OjptYXJrZXJJbmRleCwgbWFya2VyKTsKLSAgICB3cmFwcGVyLT5TZXRJbnRl
cm5hbEZpZWxkKFY4SFRNTERvY3VtZW50OjpzaGFkb3dJbmRleCwgbWFya2VyKTsKICAgICByZXR1
cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCA1NTljMWUwNDIwMWFiOWNm
MmFkZWUyOTE5ZjA5NGJhNTI5YWVlNGQ3Li41Nzk4NzgzZTNhYTFmYTZhODI5MmUzZjNiZjhiNmM4
MmZkNTM4NWY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAtMzIzLDkgKzMyMyw5IEBAIHZvaWQg
SFRNTERvY3VtZW50OjpyZW1vdmVJdGVtRnJvbU1hcChIYXNoQ291bnRlZFNldDxBdG9taWNTdHJp
bmdJbXBsKj4mIG1hcCwgY29uCiB7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CisgICAgbWFwLnJlbW92ZShuYW1lLmltcGwoKSk7CiAgICAgaWYgKEZyYW1lKiBmID0g
ZnJhbWUoKSkKICAgICAgICAgZi0+c2NyaXB0KCktPm5hbWVkSXRlbVJlbW92ZWQodGhpcywgbmFt
ZSk7Ci0gICAgbWFwLnJlbW92ZShuYW1lLmltcGwoKSk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50
OjphZGROYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>