<?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>47560</bug_id>
          
          <creation_ts>2010-10-12 16:06:50 -0700</creation_ts>
          <short_desc>Ignore document.write() when it comes from a network task</short_desc>
          <delta_ts>2010-10-21 18:27:55 -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>
          
          <blocked>41115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>simonjam</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>293158</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-12 16:06:50 -0700</bug_when>
    <thetext>The recommendation for setting the ignore-destructive-writes flag has just been updated:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=9767

We should update HTMLScriptRunner to match.

I believe this will fix: http://code.google.com/p/chromium/issues/detail?id=57196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296530</commentid>
    <comment_count>1</comment_count>
      <attachid>71224</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-19 16:43:01 -0700</bug_when>
    <thetext>Created attachment 71224
Patch

I&apos;ve re-implemented NestingLevelIncrementer in Document, but would like to reuse the one in html/parser. If this patch is good, I can move NestingLevelIncrementer somewhere where it can be shared either right before or right after this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296540</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-19 16:53:05 -0700</bug_when>
    <thetext>A couple of notes:

 - This mitigates http://code.google.com/p/chromium/issues/detail?id=57196. With this patch, instead of showing a blank page, just the GlobalSign seal doesn&apos;t work (the seal graphic displays a message that says JS is disabled instead of saying the cert is valid). This is because the write() that injects the JS for the seal is now neutralized instead of letting it blow away the page. The app still needs to be updated to understand that WebKit supports defer now.
 - Due to https://bugs.webkit.org/show_bug.cgi?id=47940, I couldn&apos;t use the typical webkit-patch upload. So I manually did git format-patch and uploaded. It used a format that confuses the review tool and adds some stray characters to the end. I&apos;ll make sure this is resolved before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296578</commentid>
    <comment_count>3</comment_count>
      <attachid>71224</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-19 18:09:22 -0700</bug_when>
    <thetext>Comment on attachment 71224
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71224&amp;action=review

&gt; WebCore/dom/Document.h:1223
&gt; -    // http://www.whatwg.org/specs/web-apps/current-work/#write-neutralised
&gt; -    bool m_writeDisabled;
&gt; +    // http://dev.w3.org/html5/spec/Overview.html#ignore-destructive-writes-counter

We usually reference www.whatwg.org for whatever reason.  I don&apos;t think the document will be on dev.w3.org in the long term.  In the long term the W3C docs move the to TR namespace.

&gt; WebCore/dom/ScriptElement.cpp:198
&gt; +            OwnPtr&lt;DestructiveWriteCountIncrementer&gt; ignoreDesctructiveWriteCountIncrementer;
&gt; +            if (!m_scriptElement-&gt;sourceAttributeValue().isEmpty())
&gt; +                ignoreDesctructiveWriteCountIncrementer = document-&gt;ignoreDestructiveWriteCountIncrementer();

Do we need the malloc here?  That seems unfortunately.  You can look at UserGestureIndicator to see one way to avoid this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296579</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-19 18:09:50 -0700</bug_when>
    <thetext>(Sorry for the shallow review, just catching up during a meeting.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297121</commentid>
    <comment_count>5</comment_count>
      <attachid>71359</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-20 16:36:10 -0700</bug_when>
    <thetext>Created attachment 71359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297122</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-20 16:36:38 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; We usually reference www.whatwg.org for whatever reason.  I don&apos;t think the document will be on dev.w3.org in the long term.  In the long term the W3C docs move the to TR namespace.

Done.

&gt; Do we need the malloc here?  That seems unfortunately.  You can look at UserGestureIndicator to see one way to avoid this.

Done. I temporarily added IgnoreDestructiveWriteCountIncrementer to Document.h. If everything looks good to you, I&apos;ll move it out to a new file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297200</commentid>
    <comment_count>7</comment_count>
      <attachid>71359</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-20 18:54:55 -0700</bug_when>
    <thetext>Comment on attachment 71359
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71359&amp;action=review

&gt; WebCore/dom/Document.h:1349
&gt; +    IgnoreDestructiveWriteCountIncrementer()

Did you mean for this to be a destructor?  Can we add a test that observes the difference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297476</commentid>
    <comment_count>8</comment_count>
      <attachid>71447</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-21 09:55:58 -0700</bug_when>
    <thetext>Created attachment 71447
Add test. Factor new class out to new file.

Oops. Good catch. I added a test that fails w/o the dtor and factored IgnoreDestructiveWriteCountIncrementer out to a new file.

Want to take another quick look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297532</commentid>
    <comment_count>9</comment_count>
      <attachid>71447</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 11:45:01 -0700</bug_when>
    <thetext>Comment on attachment 71447
Add test. Factor new class out to new file.

View in context: https://bugs.webkit.org/attachment.cgi?id=71447&amp;action=review

&gt; WebCore/dom/ScriptElement.cpp:197
&gt; +            bool external = !m_scriptElement-&gt;sourceAttributeValue().isEmpty();

Why can&apos;t an inline script have a sourceAttributeValue ?  I guess that would cause the script to be external.  What happens if we have a defer script that kicks off a load and then an inline script later comes and removes the src attribute (before the script executes)?  Will the script no longer be write disabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297533</commentid>
    <comment_count>10</comment_count>
      <attachid>71447</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 11:45:27 -0700</bug_when>
    <thetext>Comment on attachment 71447
Add test. Factor new class out to new file.

Regardless of the answer to that question, we&apos;d like a test for that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297716</commentid>
    <comment_count>11</comment_count>
      <attachid>71508</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-10-21 16:36:15 -0700</bug_when>
    <thetext>Created attachment 71508
Fix src removal bug

&gt; Why can&apos;t an inline script have a sourceAttributeValue ?  I guess that would cause the script to be external.

From the spec: &quot;For the purposes of these steps, the script is considered to be from an external file if, while the running a script algorithm above was running for this script, the script element had a src attribute specified.&quot;

&gt; What happens if we have a defer script that kicks off a load and then an inline script later comes and removes the src attribute (before the script executes)?  Will the script no longer be write disabled?

Good catch! The spec does say &quot;had a src attribute&quot; not &quot;has.&quot; I fixed that up and added a test case that failed previously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297749</commentid>
    <comment_count>12</comment_count>
      <attachid>71508</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 17:41:50 -0700</bug_when>
    <thetext>Comment on attachment 71508
Fix src removal bug

Thanks Tony.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297772</commentid>
    <comment_count>13</comment_count>
      <attachid>71508</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 18:27:49 -0700</bug_when>
    <thetext>Comment on attachment 71508
Fix src removal bug

Clearing flags on attachment: 71508

Committed r70282: &lt;http://trac.webkit.org/changeset/70282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297773</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 18:27:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71224</attachid>
            <date>2010-10-19 16:43:01 -0700</date>
            <delta_ts>2010-10-20 16:36:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Update-write-neutralizing.patch</filename>
            <type>text/plain</type>
            <size>15442</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">RnJvbSBhNmFlZGNiNTdhODBlMmU2NjE1ODA1ZTc5NWYwZTNhOGRmZjQ2MGRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUb255IEdlbnRpbGNvcmUgPHRvbnlnQGNocm9taXVtLm9yZz4K
RGF0ZTogVHVlLCAxOSBPY3QgMjAxMCAxMDozNDozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFVw
ZGF0ZSB3cml0ZSBuZXV0cmFsaXppbmcKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKwogLi4uL2RlZmVyLWRvdWJs
ZS1kZWZlci13cml0ZS1leHBlY3RlZC50eHQgICAgICAgICAgfCAgICAxIC0KIC4uLi9kZWZlci1k
b3VibGUtZGVmZXItd3JpdGUuaHRtbCAgICAgICAgICAgICAgICAgIHwgICAgNiAtLS0KIC4uLi9k
ZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICAgIHwgICAgMSAtCiAu
Li4vZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1sICB8ICAgIDYg
LS0tCiAuLi4vZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItd3JpdGUuaHRtbCAgICB8
ICAgIDQgKy0KIC4uLi90d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAg
ICAgIHwgICAgMSAtCiAuLi4vZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMu
aHRtbCAgICB8ICAgIDcgLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMjggKysrKysrKysrKysrKysKIFdlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLS0KIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKysrLS0K
IFdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICA0
MCArKysrKy0tLS0tLS0tLS0tLS0tCiBXZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDMgLQogV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcCAgICAgICAgICAgfCAgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDg0IGluc2Vy
dGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS1kZWZlci13cml0ZS1leHBl
Y3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUuaHRtbAogZGVsZXRlIG1vZGUgMTAw
NzU1IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13
cml0ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUuaHRtbAogZGVsZXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13
cml0ZXMtZXhwZWN0ZWQudHh0CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy5odG1sCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI4NWU4
ZTYuLmQ1N2JkZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0xOSAgVG9ueSBHZW50
aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIElnbm9yZSBkb2N1bWVudC53cml0ZSgpIHdoZW4gaXQgY29t
ZXMgZnJvbSBhIG5ldHdvcmsgdGFzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc1NjAKKworICAgICAgICB3cml0ZSgpcyBmcm9tIGRlZmVycmVkIHNj
cmlwdHMgYXJlIG5vdyBpZ25vcmVkLiBUaGlzIG1hdGNoZXMgdGhlIGxhdGVzdAorICAgICAgICBG
aXJlZm94IDQgYmV0YSBiZWhhdmlvci4gVGhlIGRlZmVyLXdyaXRlIGV4cGVjdGF0aW9ucyBhcmUg
dXBkYXRlZCwgYW5kCisgICAgICAgIHRoZSBvdGhlciB0ZXN0cyBhcmUgbm93IGFsbCBtb290IHNp
bmNlIGRlZmVycmVkIHNjcml0cyBjYW4ndCB3cml0ZSgpLgorCisgICAgICAgICogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3Vi
bGUtZGVmZXItd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLXdy
aXRlLmh0bWw6IFVwZGF0ZWQgdG8gbWF0Y2ggRkY0LgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxT
Y3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMuaHRtbDog
UmVtb3ZlZC4KKwogMjAxMC0xMC0xOSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVy
LWRvdWJsZS1kZWZlci13cml0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDdlZjIyZTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS1kZWZlci13cml0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdy
aXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MTIwNTAuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91Ymxl
LWRlZmVyLXdyaXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAotPHNjcmlwdCBkZWZlciBzcmM9ImRh
dGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdGQUlMJyk7IGRvY3VtZW50LndyaXRl
KCc8c2NyaXB0IGRlZmVyIHNyYz1cJ2RhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRl
KCZxdW90O1BBU1MmcXVvdDspO1wnPjwvc2NyaXB0PicpOyBkb2N1bWVudC5jbG9zZSgpOyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOGQwNGY5Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMSAyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTVlMWQzLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13
cml0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci08L3NjcmlwdD4KLUZBSUwKLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQv
amF2YXNjcmlwdCxkb2N1bWVudC53cml0ZWxuKDEpOyBkb2N1bWVudC53cml0ZSgnPHNjcmlwdCBz
cmM9XCdkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53cml0ZWxuKDIpXCc+PC9zY3JpcHQ+
Jyk7Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2RlZmVyLXdyaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci13cml0ZS5odG1sCmluZGV4IDBjMGJiZmYuLmMyOWRkYWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLXdyaXRl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXIt
d3JpdGUuaHRtbApAQCAtMiw1ICsyLDUgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+Ci1G
QUlMCi08c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3Jp
dGUoJ1BBU1MnKTsiPjwvc2NyaXB0PgorUEFTUworPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4
dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdGQUlMJyk7Ij48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
dHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdlZjIyZTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSArMCwwIEBACi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRiMGQzNzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KLUZBSUwK
LTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53cml0ZSgn
UEFTUycpOyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2phdmFzY3Jp
cHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjIwOWE5Li4yZGNiYWM3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMxIEBACisyMDEwLTEwLTE5ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SWdub3JlIGRvY3VtZW50LndyaXRlKCkgd2hlbiBpdCBjb21lcyBmcm9tIGEgbmV0d29yayB0YXNr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzU2MAor
CisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgdXBkYXRlIHRvIHRoZSBzcGVjIG1hZGUgYnk6
CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgSXQgYWxzbyBtYXRjaGVzIHRoZSBsYXRlc3QgRmlyZWZveCA0IGJldGEu
IFRoZSBub3RhYmxlIGNoYW5nZSBpcyB0aGF0CisgICAgICAgIGRvY3VtZW50LndyaXRlIGZyb20g
YSBkZWZlcnJlZCBzY3JpcHQgbm8gbG9uZ2VyIHdvcmtzLiBUaGlzIGF2b2lkcworICAgICAgICBi
bG93aW5nIHRoZSBwYXRjaCBhd2F5LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6d3JpdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI6OkRlc3RydWN0aXZlV3JpdGVD
b3VudEluY3JlbWVudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppZ25vcmVEZXN0
cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcik6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudERhdGE6OlNjcmlwdEVsZW1l
bnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNj
cmlwdCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRS
dW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudCk6CisKIDIwMTAtMTAt
MTkgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlODllYjcyLi4wOTE2ZTY5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0zNjQsNyArMzY0LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29u
c3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MLCBjb24KICAgICAsIG1fZnJh
bWVFbGVtZW50c1Nob3VsZElnbm9yZVNjcm9sbGluZyhmYWxzZSkKICAgICAsIG1fY29udGFpbnNW
YWxpZGl0eVN0eWxlUnVsZXMoZmFsc2UpCiAgICAgLCBtX3VwZGF0ZUZvY3VzQXBwZWFyYW5jZVJl
c3RvcmVzU2VsZWN0aW9uKGZhbHNlKQotICAgICwgbV93cml0ZURpc2FibGVkKGZhbHNlKQorICAg
ICwgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQoMCkKICAgICAsIG1fdGl0bGUoIiIpCiAg
ICAgLCBtX3Jhd1RpdGxlKCIiKQogICAgICwgbV90aXRsZVNldEV4cGxpY2l0bHkoZmFsc2UpCkBA
IC0yMTI5LDEwICsyMTI5LDggQEAgdm9pZCBEb2N1bWVudDo6d3JpdGUoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICAgICAgcHJpbnRmKCJC
ZWdpbm5pbmcgYSBkb2N1bWVudC53cml0ZSBhdCAlZFxuIiwgZWxhcHNlZFRpbWUoKSk7CiAjZW5k
aWYKIAotICAgIC8vIElmIHRoZSBpbnNlcnRpb24gcG9pbnQgaXMgdW5kZWZpbmVkIGFuZCB0aGUg
RG9jdW1lbnQgaGFzIHRoZQotICAgIC8vICJ3cml0ZS1uZXV0cmFsaXNlZCIgZmxhZyBzZXQsIHRo
ZW4gYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgYm9vbCBoYXNJbnNlcnRpb25Qb2ludCA9IG1fcGFy
c2VyICYmIG1fcGFyc2VyLT5oYXNJbnNlcnRpb25Qb2ludCgpOwotICAgIGlmICghaGFzSW5zZXJ0
aW9uUG9pbnQgJiYgd3JpdGVEaXNhYmxlZCgpKQorICAgIGlmICghaGFzSW5zZXJ0aW9uUG9pbnQg
JiYgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghaGFzSW5zZXJ0aW9uUG9pbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhOTg5MDFlLi45ZTA0YjVmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTE0Myw2ICsxNDMsMjQgQEAgY2xhc3MgVG91Y2hMaXN0OwogCiB0eXBlZGVmIGludCBF
eGNlcHRpb25Db2RlOwogCisvLyBGSVhNRTogVXNlIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgK
K2NsYXNzIERlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1l
bnRlcih1bnNpZ25lZCYgY291bnQpCisgICAgICAgIDogbV9jb3VudCgmY291bnQpCisgICAgewor
ICAgICAgICArKygqbV9jb3VudCk7CisgICAgfQorCisgICAgRGVzdHJ1Y3RpdmVXcml0ZUNvdW50
SW5jcmVtZW50ZXIoKQorICAgIHsKKyAgICAgICAgLS0oKm1fY291bnQpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICB1bnNpZ25lZCogbV9jb3VudDsKK307CisKIGNsYXNzIEZvcm1FbGVtZW50S2V5
IHsKIHB1YmxpYzoKICAgICBGb3JtRWxlbWVudEtleShBdG9taWNTdHJpbmdJbXBsKiA9IDAsIEF0
b21pY1N0cmluZ0ltcGwqID0gMCk7CkBAIC0xMDMwLDggKzEwNDgsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwogI2VuZGlm
CiAKLSAgICBib29sIHdyaXRlRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dyaXRlRGlzYWJs
ZWQ7IH0KLSAgICB2b2lkIHNldFdyaXRlRGlzYWJsZWQoYm9vbCBmbGFnKSB7IG1fd3JpdGVEaXNh
YmxlZCA9IGZsYWc7IH0KKyAgICBQYXNzT3duUHRyPERlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyPiBpZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcigpIHsgcmV0dXJu
IGFkb3B0UHRyKG5ldyBEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcihtX2lnbm9yZURl
c3RydWN0aXZlV3JpdGVDb3VudCkpOyB9CiAKICAgICAvLyBVc2VkIHRvIGFsbG93IGVsZW1lbnQg
dGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9hZGVyIHRvIGRl
bGF5IHRoZSAnbG9hZCcgZXZlbnQuCiAgICAgdm9pZCBpbmNyZW1lbnRMb2FkRXZlbnREZWxheUNv
dW50KCkgeyArK21fbG9hZEV2ZW50RGVsYXlDb3VudDsgfQpAQCAtMTIwMyw4ICsxMjIwLDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXM7CiAgICAgYm9v
bCBtX3VwZGF0ZUZvY3VzQXBwZWFyYW5jZVJlc3RvcmVzU2VsZWN0aW9uOwogCi0gICAgLy8gaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jd3JpdGUtbmV1
dHJhbGlzZWQKLSAgICBib29sIG1fd3JpdGVEaXNhYmxlZDsKKyAgICAvLyBodHRwOi8vZGV2Lncz
Lm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjaWdub3JlLWRlc3RydWN0aXZlLXdyaXRlcy1j
b3VudGVyCisgICAgdW5zaWduZWQgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQ7CiAKICAg
ICBTdHJpbmcgbV90aXRsZTsKICAgICBTdHJpbmcgbV9yYXdUaXRsZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggNDZjODVlMy4uZTQ5NGFiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTU3LDE0
ICs1Nyw2IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoU2NyaXB0
RWxlbWVudERhdGEmIGRhdGEsIGNvbnN0IFN0cmluZyYKIAogICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdAogCi0gICAgLy8gSWYg
dGhlIGVsZW1lbnQncyBEb2N1bWVudCBoYXMgYW4gYWN0aXZlIHBhcnNlciwgYW5kIHRoZSBwYXJz
ZXIncyBzY3JpcHQKLSAgICAvLyBuZXN0aW5nIGxldmVsIGlzIG5vbi16ZXJvLCBidXQgdGhpcyBz
Y3JpcHQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIHRoZQotICAgIC8vICJwYXJzZXItaW5zZXJ0ZWQi
IGZsYWcgc2V0LCB0aGUgdXNlciBhZ2VudCBtdXN0IHNldCB0aGUgZWxlbWVudCdzCi0gICAgLy8g
IndyaXRlLW5ldXRyYWxpc2VkIiBmbGFnLgotICAgIERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBk
YXRhLmVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCk7Ci0gICAgaWYgKHBhcnNlciAmJiBw
YXJzZXItPmhhc0luc2VydGlvblBvaW50KCkpCi0gICAgICAgIGRhdGEuc2V0V3JpdGVEaXNhYmxl
ZCh0cnVlKTsKLQogICAgIGlmICghc291cmNlVXJsLmlzRW1wdHkoKSkgewogICAgICAgICBkYXRh
LnJlcXVlc3RTY3JpcHQoc291cmNlVXJsKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTQyLDcgKzEz
NCw2IEBAIFNjcmlwdEVsZW1lbnREYXRhOjpTY3JpcHRFbGVtZW50RGF0YShTY3JpcHRFbGVtZW50
KiBzY3JpcHRFbGVtZW50LCBFbGVtZW50KiBlbGVtCiAgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkK
ICAgICAsIG1fY2FjaGVkU2NyaXB0KDApCiAgICAgLCBtX2NyZWF0ZWRCeVBhcnNlcihmYWxzZSkK
LSAgICAsIG1fd3JpdGVEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fcmVxdWVzdGVkKGZhbHNlKQog
ICAgICwgbV9ldmFsdWF0ZWQoZmFsc2UpCiAgICAgLCBtX2ZpcmVkTG9hZChmYWxzZSkKQEAgLTE5
MSw3ICsxODIsOSBAQCB2b2lkIFNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlwdChjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogICAgIGlmIChtX2V2YWx1YXRlZCB8fCBz
b3VyY2VDb2RlLmlzRW1wdHkoKSB8fCAhc2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9lbGVtZW50LT5kb2N1bWVu
dCgpLT5mcmFtZSgpKSB7CisgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICBpZiAoIWZyYW1lLT5zY3JpcHQoKS0+
Y2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQogICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC0xOTksMjUgKzE5MiwxNCBAQCB2b2lkIFNjcmlwdEVsZW1lbnREYXRhOjpldmFs
dWF0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogCiAgICAgICAg
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3Nj
cmlwdAogCi0gICAgICAgIC8vIElmIHRoZSBzY3JpcHQgZWxlbWVudCdzICJ3cml0ZS1uZXV0cmFs
aXNlZCIgZmxhZyBpcyBzZXQsIHRoZW4gZmxhZwotICAgICAgICAvLyB0aGUgRG9jdW1lbnQgdGhl
IHNjcmlwdCBlbGVtZW50IHdhcyBpbiB3aGVuIHRoZSAid3JpdGUtbmV1dHJhbGlzZWQiCi0gICAg
ICAgIC8vIGZsYWcgd2FzIHNldCBhcyBiZWluZyBpdHNlbGYgIndyaXRlLW5ldXRyYWxpc2VkIi4g
TGV0IG5ldXRyYWxpc2VkIGRvYwotICAgICAgICAvLyBiZSB0aGF0IERvY3VtZW50LgotICAgICAg
ICBpZiAobV93cml0ZURpc2FibGVkKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+d3JpdGVEaXNhYmxlZCgpKTsKLSAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+c2V0V3JpdGVEaXNhYmxlZCh0cnVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IENyZWF0ZSBhIHNjcmlwdCBmcm9tIHRoZSBzY3JpcHQgZWxlbWVudCBub2RlLCB1c2luZyB0aGUg
c2NyaXB0Ci0gICAgICAgIC8vIGJsb2NrJ3Mgc291cmNlIGFuZCB0aGUgc2NyaXB0IGJsb2NrJ3Mg
dHlwZS4KLSAgICAgICAgLy8gTm90ZTogVGhpcyBpcyB3aGVyZSB0aGUgc2NyaXB0IGlzIGNvbXBp
bGVkIGFuZCBhY3R1YWxseSBleGVjdXRlZC4KLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLT5ldmFs
dWF0ZShzb3VyY2VDb2RlKTsKLQotICAgICAgICAvLyBSZW1vdmUgdGhlICJ3cml0ZS1uZXV0cmFs
aXNlZCIgZmxhZyBmcm9tIG5ldXRyYWxpc2VkIGRvYywgaWYgaXQgd2FzCi0gICAgICAgIC8vIHNl
dCBpbiB0aGUgZWFybGllciBzdGVwLgotICAgICAgICBpZiAobV93cml0ZURpc2FibGVkKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQobV9lbGVtZW50LT5kb2N1bWVudCgpLT53cml0ZURpc2FibGVkKCkp
OwotICAgICAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZXRXcml0ZURpc2FibGVkKGZh
bHNlKTsKKyAgICAgICAgeworICAgICAgICAgICAgT3duUHRyPERlc3RydWN0aXZlV3JpdGVDb3Vu
dEluY3JlbWVudGVyPiBpZ25vcmVEZXNjdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI7Cisg
ICAgICAgICAgICBpZiAoIW1fc2NyaXB0RWxlbWVudC0+c291cmNlQXR0cmlidXRlVmFsdWUoKS5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgICAgaWdub3JlRGVzY3RydWN0aXZlV3JpdGVDb3VudElu
Y3JlbWVudGVyID0gZG9jdW1lbnQtPmlnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVu
dGVyKCk7CisgICAgICAgICAgICAvLyBDcmVhdGUgYSBzY3JpcHQgZnJvbSB0aGUgc2NyaXB0IGVs
ZW1lbnQgbm9kZSwgdXNpbmcgdGhlIHNjcmlwdAorICAgICAgICAgICAgLy8gYmxvY2sncyBzb3Vy
Y2UgYW5kIHRoZSBzY3JpcHQgYmxvY2sncyB0eXBlLgorICAgICAgICAgICAgLy8gTm90ZTogVGhp
cyBpcyB3aGVyZSB0aGUgc2NyaXB0IGlzIGNvbXBpbGVkIGFuZCBhY3R1YWxseSBleGVjdXRlZC4K
KyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVhdGUoc291cmNlQ29kZSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBEb2N1bWVudDo6dXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAppbmRleCA2OThmZmJjLi5jNjYzZTQzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBA
IC04Miw4ICs4Miw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9lbGVtZW50OyB9CiAgICAgYm9vbCBjcmVhdGVkQnlQYXJzZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NyZWF0ZWRCeVBhcnNlcjsgfQogICAgIHZvaWQgc2V0Q3JlYXRlZEJ5UGFyc2VyKGJv
b2wgdmFsdWUpIHsgbV9jcmVhdGVkQnlQYXJzZXIgPSB2YWx1ZTsgfQotICAgIGJvb2wgd3JpdGVE
aXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JpdGVEaXNhYmxlZDsgfQotICAgIHZvaWQgc2V0
V3JpdGVEaXNhYmxlZChib29sIHZhbHVlKSB7IG1fd3JpdGVEaXNhYmxlZCA9IHZhbHVlOyB9CiAg
ICAgYm9vbCBoYXZlRmlyZWRMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ZpcmVkTG9hZDsg
fQogICAgIHZvaWQgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KGJvb2wgZmlyZWRMb2FkKSB7IG1fZmly
ZWRMb2FkID0gZmlyZWRMb2FkOyB9CiAKQEAgLTEwMSw3ICs5OSw2IEBAIHByaXZhdGU6CiAgICAg
RWxlbWVudCogbV9lbGVtZW50OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gbV9jYWNoZWRTY3JpcHQ7CiAgICAgYm9vbCBtX2NyZWF0ZWRCeVBhcnNlcjsgLy8gSFRNTDU6
ICJwYXJzZXItaW5zZXJ0ZWQiCi0gICAgYm9vbCBtX3dyaXRlRGlzYWJsZWQ7IC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3dyaXRlLW5ldXRyYWxp
c2VkCiAgICAgYm9vbCBtX3JlcXVlc3RlZDsKICAgICBib29sIG1fZXZhbHVhdGVkOyAvLyBIVE1M
NTogImFscmVhZHkgc3RhcnRlZCIKICAgICBib29sIG1fZmlyZWRMb2FkOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggNGY1NGY0Mi4uNzAwYzVhMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0xMzUsNiArMTM1LDcgQEAg
dm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZl
bnQoUGVuZGluZ1NjcmlwdCYgcGVuZGkKICAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVu
dCA9IHBlbmRpbmdTY3JpcHQucmVsZWFzZUVsZW1lbnRBbmRDbGVhcigpOwogICAgIHsKICAgICAg
ICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3Jp
cHROZXN0aW5nTGV2ZWwpOworICAgICAgICBPd25QdHI8RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5j
cmVtZW50ZXI+IGRlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyID0gbV9kb2N1bWVudC0+
aWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIoKTsKICAgICAgICAgaWYgKGVy
cm9yT2NjdXJyZWQpCiAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaEV2ZW50KGNy
ZWF0ZVNjcmlwdEVycm9yRXZlbnQoKSk7CiAgICAgICAgIGVsc2UgewotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71359</attachid>
            <date>2010-10-20 16:36:10 -0700</date>
            <delta_ts>2010-10-21 09:55:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47560-20101020163609.patch</filename>
            <type>text/plain</type>
            <size>14866</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNGJmYWY5OGJlNDdmODQ3YjIzMzBkZGMwNjVhOTliYWM4NjQ3YzMzLi44OTI2YWU3
OWI4MmNkOTk1MWM3NDcyYmRkZmI2NDA1NjU4OWJlM2NiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTAtMjAgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZ25vcmUgZG9jdW1l
bnQud3JpdGUoKSB3aGVuIGl0IGNvbWVzIGZyb20gYSBuZXR3b3JrIHRhc2sKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NTYwCisKKyAgICAgICAgd3Jp
dGUoKXMgZnJvbSBkZWZlcnJlZCBzY3JpcHRzIGFyZSBub3cgaWdub3JlZC4gVGhpcyBtYXRjaGVz
IHRoZSBsYXRlc3QKKyAgICAgICAgRmlyZWZveCA0IGJldGEgYmVoYXZpb3IuIFRoZSBkZWZlci13
cml0ZSBleHBlY3RhdGlvbnMgYXJlIHVwZGF0ZWQsIGFuZAorICAgICAgICB0aGUgb3RoZXIgdGVz
dHMgYXJlIG5vdyBhbGwgbW9vdCBzaW5jZSBkZWZlcnJlZCBzY3JpdHMgY2FuJ3Qgd3JpdGUoKS4K
KworICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS1kZWZl
ci13cml0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRlLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9k
ZWZlci1kb3VibGUtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
U2NyaXB0RWxlbWVudC9kZWZlci13cml0ZS5odG1sOiBVcGRhdGVkIHRvIG1hdGNoIEZGNC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90
d28tZGVmZXItd3JpdGVzLmh0bWw6IFJlbW92ZWQuCisKIDIwMTAtMTAtMjAgIERhbmllbCBCYXRl
cyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1k
b3VibGUtZGVmZXItd3JpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0
MDE2YzhlZjEyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVm
ZXItd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXIt
ZG91YmxlLWRlZmVyLXdyaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDQxMjA1MGIyZTQzYjY5NDkxYjU0MzQ3MzVmMmQ2ZmU1MTRlZjk5ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
PC9zY3JpcHQ+Ci1GQUlMCi08c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2phdmFzY3JpcHQs
ZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsgZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQgZGVmZXIgc3Jj
PVwnZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJnF1b3Q7UEFTUyZxdW90Oyk7
XCc+PC9zY3JpcHQ+Jyk7IGRvY3VtZW50LmNsb3NlKCk7Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9k
ZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCA4ZDA0Zjk2MWEwMzcxMTdjMWVhYTY5YWM2MGViMzYzZDM3YWU3OGQxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSArMCwwIEBACi0xIDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NWUxZDNkYjNmOTYzYzhmOTdhOTc2NTJhMDRh
NmNhMWZjZGFjOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdy
aXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAotPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9q
YXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMSk7IGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHNy
Yz1cJ2RhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMilcJz48L3NjcmlwdD4n
KTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvZGVmZXItd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2RlZmVyLXdyaXRlLmh0bWwKaW5kZXggMGMwYmJmZjQ1NjE3NmYxNmQ5NjYzYWEw
OTlmYzM2ODE5ZTRkYjljMS4uYzI5ZGRhYzE0ZmIyM2E1N2JhMTM4NDI4MzE2MDUyZWY1Y2Y5ZjA3
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVm
ZXItd3JpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9kZWZlci13cml0ZS5odG1sCkBAIC0yLDUgKzIsNSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiA8L3Nj
cmlwdD4KLUZBSUwKLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1
bWVudC53cml0ZSgnUEFTUycpOyI+PC9zY3JpcHQ+CitQQVNTCis8c2NyaXB0IGRlZmVyIHNyYz0i
ZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRl
ZmVyLXdyaXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC90d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIwZDM3ODczMDVkODI0YmE4NzZlMmI2MTRl
MzZjMWM2ZjA0NWI3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3Jp
dGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAotPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9q
YXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdQQVNTJyk7Ij48L3NjcmlwdD4KLTxzY3JpcHQgZGVm
ZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53cml0ZSgnRkFJTCcpOyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDgyZTgyMzAzMTIzMjU2YzAzNjI2MjAzMTM1NTA0NjE0NzdiZTdlNzguLjcxMGI4YjYx
ZDgyNjZhYzNhMmU2YzgwZTQ4MTIyZjQzMTgyNjk4MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTAt
MjAgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZ25vcmUgZG9jdW1lbnQud3JpdGUo
KSB3aGVuIGl0IGNvbWVzIGZyb20gYSBuZXR3b3JrIHRhc2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NTYwCisKKyAgICAgICAgVGhpcyBpbXBsZW1l
bnRzIHRoZSB1cGRhdGUgdG8gdGhlIHNwZWMgbWFkZSBieToKKyAgICAgICAgaHR0cDovL3d3dy53
My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBJdCBhbHNv
IG1hdGNoZXMgdGhlIGxhdGVzdCBGaXJlZm94IDQgYmV0YS4gVGhlIG5vdGFibGUgY2hhbmdlIGlz
IHRoYXQKKyAgICAgICAgZG9jdW1lbnQud3JpdGUgZnJvbSBhIGRlZmVycmVkIHNjcmlwdCBubyBs
b25nZXIgd29ya3MuIFRoaXMgYXZvaWRzCisgICAgICAgIGJsb3dpbmcgdGhlIHBhdGNoIGF3YXku
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3cml0ZSk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZXN0cnVjdGl2ZVdyaXRl
Q291bnRJbmNyZW1lbnRlcjo6RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omlnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyKToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50RGF0YTo6U2NyaXB0RWxlbWVudERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudERhdGE6OmV2YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKiBkb20v
U2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdT
Y3JpcHRBbmREaXNwYXRjaEV2ZW50KToKKwogMjAxMC0xMC0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjcwMTY1LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGU4OWViNzIxZjA2YjY4MThlOWI5ZTM1ZTFiNDZlZWUz
YTE2N2Y0M2MuLjA5MTZlNjkyODI3N2ZmZGVmZmMzMjFmNjY3MjA1NDRlMzM3NmE3MmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTM2NCw3ICszNjQsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwsIGNvbgogICAgICwg
bV9mcmFtZUVsZW1lbnRzU2hvdWxkSWdub3JlU2Nyb2xsaW5nKGZhbHNlKQogICAgICwgbV9jb250
YWluc1ZhbGlkaXR5U3R5bGVSdWxlcyhmYWxzZSkKICAgICAsIG1fdXBkYXRlRm9jdXNBcHBlYXJh
bmNlUmVzdG9yZXNTZWxlY3Rpb24oZmFsc2UpCi0gICAgLCBtX3dyaXRlRGlzYWJsZWQoZmFsc2Up
CisgICAgLCBtX2lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudCgwKQogICAgICwgbV90aXRsZSgi
IikKICAgICAsIG1fcmF3VGl0bGUoIiIpCiAgICAgLCBtX3RpdGxlU2V0RXhwbGljaXRseShmYWxz
ZSkKQEAgLTIxMjksMTAgKzIxMjksOCBAQCB2b2lkIERvY3VtZW50Ojp3cml0ZShjb25zdCBTZWdt
ZW50ZWRTdHJpbmcmIHRleHQsIERvY3VtZW50KiBvd25lckRvY3VtZW50KQogICAgICAgICBwcmlu
dGYoIkJlZ2lubmluZyBhIGRvY3VtZW50LndyaXRlIGF0ICVkXG4iLCBlbGFwc2VkVGltZSgpKTsK
ICNlbmRpZgogCi0gICAgLy8gSWYgdGhlIGluc2VydGlvbiBwb2ludCBpcyB1bmRlZmluZWQgYW5k
IHRoZSBEb2N1bWVudCBoYXMgdGhlCi0gICAgLy8gIndyaXRlLW5ldXRyYWxpc2VkIiBmbGFnIHNl
dCwgdGhlbiBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBib29sIGhhc0luc2VydGlvblBvaW50ID0g
bV9wYXJzZXIgJiYgbV9wYXJzZXItPmhhc0luc2VydGlvblBvaW50KCk7Ci0gICAgaWYgKCFoYXNJ
bnNlcnRpb25Qb2ludCAmJiB3cml0ZURpc2FibGVkKCkpCisgICAgaWYgKCFoYXNJbnNlcnRpb25Q
b2ludCAmJiBtX2lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFoYXNJbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE5ODkwMWU4ZjhmNmMwZmU5
MGE1NGRlZmEzNzA3YTExZDI2M2JiYzEuLmNjODU1ZjhlNjNkZThiMjhiYzM4ZDc3MmU1NGNmZTky
NjY1ZTlkY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMTAzMCw5ICsxMDMwLDYgQEAgcHVibGljOgogICAgIHZvaWQg
d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKTsKICNlbmRpZgogCi0g
ICAgYm9vbCB3cml0ZURpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV93cml0ZURpc2FibGVkOyB9
Ci0gICAgdm9pZCBzZXRXcml0ZURpc2FibGVkKGJvb2wgZmxhZykgeyBtX3dyaXRlRGlzYWJsZWQg
PSBmbGFnOyB9Ci0KICAgICAvLyBVc2VkIHRvIGFsbG93IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRh
IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9hZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcg
ZXZlbnQuCiAgICAgdm9pZCBpbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCkgeyArK21fbG9h
ZEV2ZW50RGVsYXlDb3VudDsgfQogICAgIHZvaWQgZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3Vu
dCgpOwpAQCAtMTA0OSw2ICsxMDQ2LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJYTUxW
ZXJzaW9uKCkgeyBtX3htbFZlcnNpb24gPSBTdHJpbmcoKTsgfQogCiBwcml2YXRlOgorICAgIGZy
aWVuZCBjbGFzcyBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKKwogICAg
IHZvaWQgZGV0YWNoUGFyc2VyKCk7CiAKICAgICB0eXBlZGVmIHZvaWQgKCpBcmd1bWVudHNDYWxs
YmFjaykoY29uc3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcs
IERvY3VtZW50Kiwgdm9pZCogZGF0YSk7CkBAIC0xMjAzLDggKzEyMDIsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9jb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlczsKICAgICBib29sIG1fdXBkYXRl
Rm9jdXNBcHBlYXJhbmNlUmVzdG9yZXNTZWxlY3Rpb247CiAKLSAgICAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN3cml0ZS1uZXV0cmFsaXNlZAot
ICAgIGJvb2wgbV93cml0ZURpc2FibGVkOworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2lnbm9yZS1kZXN0cnVjdGl2ZS13cml0ZXMtY291
bnRlcgorICAgIHVuc2lnbmVkIG1faWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50OwogCiAgICAg
U3RyaW5nIG1fdGl0bGU7CiAgICAgU3RyaW5nIG1fcmF3VGl0bGU7CkBAIC0xMzM2LDYgKzEzMzUs
MjggQEAgcHJpdmF0ZToKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRz
OwogfTsKIAorLy8gRklYTUU6IE1vdmUgdG8gYSBuZXcgZmlsZS4KK2NsYXNzIElnbm9yZURlc3Ry
dWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcihEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgICAgIDogbV9jb3VudChkb2N1bWVudCA/ICZkb2N1bWVudC0+bV9pZ25vcmVEZXN0cnVjdGl2
ZVdyaXRlQ291bnQgOiAwKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2NvdW50KQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICArKygqbV9jb3VudCk7CisgICAgfQorCisgICAgSWdub3JlRGVz
dHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2Nv
dW50KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAtLSgqbV9jb3VudCk7CisgICAgfQor
Citwcml2YXRlOgorICAgIHVuc2lnbmVkKiBtX2NvdW50OworfTsKKwogaW5saW5lIGJvb2wgRG9j
dW1lbnQ6Omhhc0VsZW1lbnRXaXRoSWQoQXRvbWljU3RyaW5nSW1wbCogaWQpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlkKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
IGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNDZjODVlM2VkNzg2ZDc5YzBh
NDAyMDg1OWYzYTNiNTZiMDA2NzIxNC4uNmJhMGQ4NTBhZmZmYjFkNDgzNTZkM2M2MTM3OWQ1MmJm
ZDNiNjdlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTU3LDE0ICs1Nyw2IEBAIHZvaWQgU2Ny
aXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoU2NyaXB0RWxlbWVudERhdGEmIGRhdGEs
IGNvbnN0IFN0cmluZyYKIAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdAogCi0gICAgLy8gSWYgdGhlIGVsZW1lbnQncyBEb2N1
bWVudCBoYXMgYW4gYWN0aXZlIHBhcnNlciwgYW5kIHRoZSBwYXJzZXIncyBzY3JpcHQKLSAgICAv
LyBuZXN0aW5nIGxldmVsIGlzIG5vbi16ZXJvLCBidXQgdGhpcyBzY3JpcHQgZWxlbWVudCBkb2Vz
IG5vdCBoYXZlIHRoZQotICAgIC8vICJwYXJzZXItaW5zZXJ0ZWQiIGZsYWcgc2V0LCB0aGUgdXNl
ciBhZ2VudCBtdXN0IHNldCB0aGUgZWxlbWVudCdzCi0gICAgLy8gIndyaXRlLW5ldXRyYWxpc2Vk
IiBmbGFnLgotICAgIERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkYXRhLmVsZW1lbnQoKS0+ZG9j
dW1lbnQoKS0+cGFyc2VyKCk7Ci0gICAgaWYgKHBhcnNlciAmJiBwYXJzZXItPmhhc0luc2VydGlv
blBvaW50KCkpCi0gICAgICAgIGRhdGEuc2V0V3JpdGVEaXNhYmxlZCh0cnVlKTsKLQogICAgIGlm
ICghc291cmNlVXJsLmlzRW1wdHkoKSkgewogICAgICAgICBkYXRhLnJlcXVlc3RTY3JpcHQoc291
cmNlVXJsKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTQyLDcgKzEzNCw2IEBAIFNjcmlwdEVsZW1l
bnREYXRhOjpTY3JpcHRFbGVtZW50RGF0YShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBF
bGVtZW50KiBlbGVtCiAgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fY2FjaGVkU2Ny
aXB0KDApCiAgICAgLCBtX2NyZWF0ZWRCeVBhcnNlcihmYWxzZSkKLSAgICAsIG1fd3JpdGVEaXNh
YmxlZChmYWxzZSkKICAgICAsIG1fcmVxdWVzdGVkKGZhbHNlKQogICAgICwgbV9ldmFsdWF0ZWQo
ZmFsc2UpCiAgICAgLCBtX2ZpcmVkTG9hZChmYWxzZSkKQEAgLTE5MSw3ICsxODIsOSBAQCB2b2lk
IFNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiBzb3VyY2VDb2RlKQogICAgIGlmIChtX2V2YWx1YXRlZCB8fCBzb3VyY2VDb2RlLmlzRW1wdHko
KSB8fCAhc2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKSB7Cisg
ICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAg
ICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJh
bWUoKSkgewogICAgICAgICBpZiAoIWZyYW1lLT5zY3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMo
QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTksMjUg
KzE5MiwxMyBAQCB2b2lkIFNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlwdChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogCiAgICAgICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NjcmlwdAogCi0gICAgICAgIC8v
IElmIHRoZSBzY3JpcHQgZWxlbWVudCdzICJ3cml0ZS1uZXV0cmFsaXNlZCIgZmxhZyBpcyBzZXQs
IHRoZW4gZmxhZwotICAgICAgICAvLyB0aGUgRG9jdW1lbnQgdGhlIHNjcmlwdCBlbGVtZW50IHdh
cyBpbiB3aGVuIHRoZSAid3JpdGUtbmV1dHJhbGlzZWQiCi0gICAgICAgIC8vIGZsYWcgd2FzIHNl
dCBhcyBiZWluZyBpdHNlbGYgIndyaXRlLW5ldXRyYWxpc2VkIi4gTGV0IG5ldXRyYWxpc2VkIGRv
YwotICAgICAgICAvLyBiZSB0aGF0IERvY3VtZW50LgotICAgICAgICBpZiAobV93cml0ZURpc2Fi
bGVkKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d3JpdGVE
aXNhYmxlZCgpKTsKLSAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2V0V3JpdGVE
aXNhYmxlZCh0cnVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIENyZWF0ZSBhIHNjcmlwdCBm
cm9tIHRoZSBzY3JpcHQgZWxlbWVudCBub2RlLCB1c2luZyB0aGUgc2NyaXB0Ci0gICAgICAgIC8v
IGJsb2NrJ3Mgc291cmNlIGFuZCB0aGUgc2NyaXB0IGJsb2NrJ3MgdHlwZS4KLSAgICAgICAgLy8g
Tm90ZTogVGhpcyBpcyB3aGVyZSB0aGUgc2NyaXB0IGlzIGNvbXBpbGVkIGFuZCBhY3R1YWxseSBl
eGVjdXRlZC4KLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLT5ldmFsdWF0ZShzb3VyY2VDb2RlKTsK
LQotICAgICAgICAvLyBSZW1vdmUgdGhlICJ3cml0ZS1uZXV0cmFsaXNlZCIgZmxhZyBmcm9tIG5l
dXRyYWxpc2VkIGRvYywgaWYgaXQgd2FzCi0gICAgICAgIC8vIHNldCBpbiB0aGUgZWFybGllciBz
dGVwLgotICAgICAgICBpZiAobV93cml0ZURpc2FibGVkKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
bV9lbGVtZW50LT5kb2N1bWVudCgpLT53cml0ZURpc2FibGVkKCkpOwotICAgICAgICAgICAgbV9l
bGVtZW50LT5kb2N1bWVudCgpLT5zZXRXcml0ZURpc2FibGVkKGZhbHNlKTsKKyAgICAgICAgewor
ICAgICAgICAgICAgYm9vbCBleHRlcm5hbCA9ICFtX3NjcmlwdEVsZW1lbnQtPnNvdXJjZUF0dHJp
YnV0ZVZhbHVlKCkuaXNFbXB0eSgpOworICAgICAgICAgICAgSWdub3JlRGVzdHJ1Y3RpdmVXcml0
ZUNvdW50SW5jcmVtZW50ZXIgaWdub3JlRGVzY3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
KGV4dGVybmFsID8gZG9jdW1lbnQuZ2V0KCkgOiAwKTsKKyAgICAgICAgICAgIC8vIENyZWF0ZSBh
IHNjcmlwdCBmcm9tIHRoZSBzY3JpcHQgZWxlbWVudCBub2RlLCB1c2luZyB0aGUgc2NyaXB0Cisg
ICAgICAgICAgICAvLyBibG9jaydzIHNvdXJjZSBhbmQgdGhlIHNjcmlwdCBibG9jaydzIHR5cGUu
CisgICAgICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIHdoZXJlIHRoZSBzY3JpcHQgaXMgY29tcGls
ZWQgYW5kIGFjdHVhbGx5IGV4ZWN1dGVkLgorICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLT5l
dmFsdWF0ZShzb3VyY2VDb2RlKTsKICAgICAgICAgfQogCiAgICAgICAgIERvY3VtZW50Ojp1cGRh
dGVTdHlsZUZvckFsbERvY3VtZW50cygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCmluZGV4IDY5OGZmYmM4ZGE2
ZjBhZDUxZGEyOTc0ZmI2MWY0MDQwYmViNTIyMzEuLmM2NjNlNDM3NjM4NDA4MDc2N2MxMThjYmQ1
NzQ3Yzg5ODZjZTM3ZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTgyLDggKzgyLDYgQEAgcHVibGlj
OgogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KICAg
ICBib29sIGNyZWF0ZWRCeVBhcnNlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlZEJ5UGFyc2Vy
OyB9CiAgICAgdm9pZCBzZXRDcmVhdGVkQnlQYXJzZXIoYm9vbCB2YWx1ZSkgeyBtX2NyZWF0ZWRC
eVBhcnNlciA9IHZhbHVlOyB9Ci0gICAgYm9vbCB3cml0ZURpc2FibGVkKCkgY29uc3QgeyByZXR1
cm4gbV93cml0ZURpc2FibGVkOyB9Ci0gICAgdm9pZCBzZXRXcml0ZURpc2FibGVkKGJvb2wgdmFs
dWUpIHsgbV93cml0ZURpc2FibGVkID0gdmFsdWU7IH0KICAgICBib29sIGhhdmVGaXJlZExvYWRF
dmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyZWRMb2FkOyB9CiAgICAgdm9pZCBzZXRIYXZlRmly
ZWRMb2FkRXZlbnQoYm9vbCBmaXJlZExvYWQpIHsgbV9maXJlZExvYWQgPSBmaXJlZExvYWQ7IH0K
IApAQCAtMTAxLDcgKzk5LDYgQEAgcHJpdmF0ZToKICAgICBFbGVtZW50KiBtX2VsZW1lbnQ7CiAg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKICAg
ICBib29sIG1fY3JlYXRlZEJ5UGFyc2VyOyAvLyBIVE1MNTogInBhcnNlci1pbnNlcnRlZCIKLSAg
ICBib29sIG1fd3JpdGVEaXNhYmxlZDsgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay8jd3JpdGUtbmV1dHJhbGlzZWQKICAgICBib29sIG1fcmVxdWVz
dGVkOwogICAgIGJvb2wgbV9ldmFsdWF0ZWQ7IC8vIEhUTUw1OiAiYWxyZWFkeSBzdGFydGVkIgog
ICAgIGJvb2wgbV9maXJlZExvYWQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTY3JpcHRSdW5uZXIuY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcAppbmRleCA0ZjU0ZjQyOTI4NzBhY2Q1Mzg1NGZjNDcxMDg3MGRkOWRmMTRmMmQxLi5mMThm
ODA4YzI2OWMyZTk1NDhlOTIwNzBmOWNmY2NmOWQzN2Y5NDgyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTEzNSw2ICsxMzUsNyBAQCB2b2lkIEhUTUxTY3Jp
cHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChQZW5kaW5nU2Ny
aXB0JiBwZW5kaQogICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gcGVuZGluZ1Nj
cmlwdC5yZWxlYXNlRWxlbWVudEFuZENsZWFyKCk7CiAgICAgewogICAgICAgICBOZXN0aW5nTGV2
ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZl
bCk7CisgICAgICAgIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIGlnbm9y
ZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyKG1fZG9jdW1lbnQpOwogICAgICAgICBp
ZiAoZXJyb3JPY2N1cnJlZCkKICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmRpc3BhdGNoRXZl
bnQoY3JlYXRlU2NyaXB0RXJyb3JFdmVudCgpKTsKICAgICAgICAgZWxzZSB7Cg==
</data>
<flag name="review"
          id="61391"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="61415"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71447</attachid>
            <date>2010-10-21 09:55:58 -0700</date>
            <delta_ts>2010-10-21 16:36:15 -0700</delta_ts>
            <desc>Add test. Factor new class out to new file.</desc>
            <filename>0001-ignore-destructive-write-count.patch</filename>
            <type>text/plain</type>
            <size>24427</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">RnJvbSBkY2JjNDY2OGFlZmFjN2FiOGQ3ZjNhYTE2MjRhNWU5ZDQ5NTlmNGI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUb255IEdlbnRpbGNvcmUgPHRvbnlnQGNocm9taXVtLm9yZz4K
RGF0ZTogV2VkLCAyMCBPY3QgMjAxMCAxOToyODoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGln
bm9yZSBkZXN0cnVjdGl2ZSB3cml0ZSBjb3VudAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKwogLi4uL2RlZmVyLWRv
dWJsZS1kZWZlci13cml0ZS1leHBlY3RlZC50eHQgICAgICAgICAgfCAgICAxIC0KIC4uLi9kZWZl
ci1kb3VibGUtZGVmZXItd3JpdGUuaHRtbCAgICAgICAgICAgICAgICAgIHwgICAgNiAtLQogLi4u
L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQgICAgICAgICAgICAgICAgfCAgICAxIC0K
IC4uLi9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRlLmh0bWwgIHwgICAg
NiAtLQogLi4uL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLXdyaXRlLmh0bWwgICAg
fCAgICA0ICstCiAuLi4vdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQgICAgICAgICAgICAg
ICAgICB8ICAgIDEgLQogLi4uL2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVz
Lmh0bWwgICAgfCAgICA3IC0tLQogLi4uL3dyaXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUtZXhwZWN0
ZWQudHh0ICAgICAgICAgfCAgICAxICsKIC4uLi93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLmh0
bWwgICAgICAgICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArKysrKysrKysrCiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwgICAgNCArKwog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAgICA0
ICsrCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDYgKy0tCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDkgKystLQogLi4uL2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oICAgfCAgIDU3ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgNDAgKysrKy0tLS0tLS0tLS0K
IFdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
MyAtCiBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwICAgICAgICAgICB8
ICAgIDIgKwogMjEgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9u
cygtKQogZGVsZXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L2RlZmVyLWRvdWJsZS1kZWZlci13cml0ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3Vi
bGUtZGVmZXItd3JpdGUuaHRtbAogZGVsZXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9k
ZWZlci1kb3VibGUtd3JpdGUuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMtZXhwZWN0ZWQudHh0CiBk
ZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
dHdvLWRlZmVyLXdyaXRlcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXItaWdub3JlZC13cml0ZS1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJDb3JlL2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGNmYzRkOGMuLjk4YWM2ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMC0y
MCAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSWdub3JlIGRvY3VtZW50LndyaXRlKCkgd2hl
biBpdCBjb21lcyBmcm9tIGEgbmV0d29yayB0YXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzU2MAorCisgICAgICAgIHdyaXRlKClzIGZyb20gZGVm
ZXJyZWQgc2NyaXB0cyBhcmUgbm93IGlnbm9yZWQuIFRoaXMgbWF0Y2hlcyB0aGUgbGF0ZXN0Cisg
ICAgICAgIEZpcmVmb3ggNCBiZXRhIGJlaGF2aW9yLiBUaGUgZGVmZXItd3JpdGUgZXhwZWN0YXRp
b25zIGFyZSB1cGRhdGVkLCBhbmQKKyAgICAgICAgdGhlIG90aGVyIHRlc3RzIGFyZSBub3cgYWxs
IG1vb3Qgc2luY2UgZGVmZXJyZWQgc2NyaXRzIGNhbid0IHdyaXRlKCkuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2Rl
ZmVyLWRvdWJsZS1kZWZlci13cml0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdy
aXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
ZGVmZXItd3JpdGUuaHRtbDogVXBkYXRlZCB0byBtYXRjaCBGRjQuCisgICAgICAgICogZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRl
cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3dy
aXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLiBWZXJpZmllcyB0
aGF0IGFmdGVyIGEgd3JpdGUgZnJvbSBhIG5ldHdvcmsgdGFzayBpcyBpZ25vcmVkLCBhIHdyaXRl
IHdoaWNoIGlzIG5vdCBmcm9tIGEgbmV0d29yayB0YXNrIHN0aWxsIGJsb3dzIGF3YXkgdGhlIGRv
Y3VtZW50LgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3dyaXRlLWFmdGVy
LWlnbm9yZWQtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKwogMjAxMC0xMC0yMSAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5za2lwIHBsdWdpbnMvcGFzcy1kaWZmZXJl
bnQtbnBwLXN0cnVjdC5odG1sIG9uIFNub3dMZW9wYXJkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXIt
ZG91YmxlLWRlZmVyLXdyaXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggN2VmMjJlOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3Jp
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQxMjA1MC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUt
ZGVmZXItd3JpdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci1GQUlMCi08c2NyaXB0IGRlZmVyIHNyYz0iZGF0
YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsgZG9jdW1lbnQud3JpdGUo
JzxzY3JpcHQgZGVmZXIgc3JjPVwnZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUo
JnF1b3Q7UEFTUyZxdW90Oyk7XCc+PC9zY3JpcHQ+Jyk7IGRvY3VtZW50LmNsb3NlKCk7Ij48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZDA0Zjk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0xIDIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NWUxZDMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdy
aXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAotPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9q
YXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMSk7IGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHNy
Yz1cJ2RhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMilcJz48L3NjcmlwdD4n
KTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvZGVmZXItd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2RlZmVyLXdyaXRlLmh0bWwKaW5kZXggMGMwYmJmZi4uYzI5ZGRhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItd3JpdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci13
cml0ZS5odG1sCkBAIC0yLDUgKzIsNSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KLUZB
SUwKLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53cml0
ZSgnUEFTUycpOyI+PC9zY3JpcHQ+CitQQVNTCis8c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0
L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90
d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2VmMjJlOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC90d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L3R3by1kZWZlci13cml0ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGIwZDM3OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw3ICswLDAgQEAKLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAot
PHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdQ
QVNTJyk7Ij48L3NjcmlwdD4KLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlw
dCxkb2N1bWVudC53cml0ZSgnRkFJTCcpOyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3dy
aXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdlZjIyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVk
LXdyaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ3YmJkNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3dyaXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUuaHRtbApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJkb2N1bWVudC53cml0
ZSgnUEFTUycpIj4KK0ZBSUwKKzxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlw
dCxkb2N1bWVudC53cml0ZSgnRkFJTCcpOyI+PC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk4YmM3ZS4uN2UwNjRhYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMSBAQAorMjAxMC0xMC0yMCAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSWdu
b3JlIGRvY3VtZW50LndyaXRlKCkgd2hlbiBpdCBjb21lcyBmcm9tIGEgbmV0d29yayB0YXNrCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzU2MAorCisg
ICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgdXBkYXRlIHRvIHRoZSBzcGVjIG1hZGUgYnk6Cisg
ICAgICAgIGh0dHA6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD05NzY3
CisKKyAgICAgICAgSXQgYWxzbyBtYXRjaGVzIHRoZSBsYXRlc3QgRmlyZWZveCA0IGJldGEuIFRo
ZSBub3RhYmxlIGNoYW5nZSBpcyB0aGF0CisgICAgICAgIGRvY3VtZW50LndyaXRlIGZyb20gYSBk
ZWZlcnJlZCBzY3JpcHQgbm8gbG9uZ2VyIHdvcmtzLiBUaGlzIGF2b2lkcworICAgICAgICBibG93
aW5nIHRoZSBwYXRjaCBhd2F5LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6d3JpdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI6OkRlc3RydWN0aXZlV3JpdGVDb3Vu
dEluY3JlbWVudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppZ25vcmVEZXN0cnVj
dGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcik6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudERhdGE6OlNjcmlwdEVsZW1lbnRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlw
dCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudCk6CisKIDIwMTAtMTAtMjEg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDFmMjU1MDAuLjI2YjY5MmQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMTE0MSw2ICsxMTQxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Rv
bS9FeGNlcHRpb25Db2RlLmNwcCBcCiAJV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oIFwKIAlX
ZWJDb3JlL2RvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBcCisJV2ViQ29yZS9kb20v
SWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBcCiAJV2ViQ29yZS9kb20v
SW5wdXRFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggXAogCVdlYkNv
cmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTFhOTZlMS4uZmFlODE3YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTEyMTIsNiArMTIxMiw3IEBACiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkNvZGUuY3BwJywK
ICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQ29kZS5oJywKICAgICAgICAgICAgICdkb20vRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgnLAorICAgICAgICAgICAgJ2RvbS9JZ25vcmVEZXN0
cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdkb20vSW5wdXRF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0lucHV0RWxlbWVudC5oJywKICAgICAgICAg
ICAgICdkb20vSGFzaENoYW5nZUV2ZW50LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZmQ5NDIxYy4uMGQ5YzIyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC00MjIwMyw2ICs0MjIwMywxMCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEln
bm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cSW5wdXRFbGVtZW50Lmgi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0ZmNmNTRlLi5lYWI0MTMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU5Nyw2ICsyNTk3LDcgQEAKIAkJOEE5QTU4NzUxMUU4
NEM4MTAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBOUE1ODczMTFFODRDODEwMDhBQ0ZEMSAvKiBKU1BlcmZv
cm1hbmNlLmggKi87IH07CiAJCThBOUE1ODg3MTFFODRGMzcwMDhBQ0ZEMSAvKiBKU1RpbWluZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTlBNTg3
NjExRTg0Qzk4MDA4QUNGRDEgLyogSlNUaW1pbmcuY3BwICovOyB9OwogCQk4QTlBNTg4ODExRTg0
RjM3MDA4QUNGRDEgLyogSlNUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBOUE1ODc3MTFFODRDOTgwMDhBQ0ZEMSAvKiBKU1RpbWluZy5oICov
OyB9OworCQk4QUI0QkM3NzEyNkZEQjcxMDBERUI3MjcgLyogSWdub3JlRGVzdHJ1Y3RpdmVXcml0
ZUNvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhBQjRCQzc2MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk4QUY0RTU1NTExREM1QTM2MDAwRUQzREUg
LyogTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QUY0RTU1MjExREM1QTM2MDAwRUQzREUgLyogTmF2aWdhdGlvbi5jcHAgKi87IH07
CiAJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QUY0RTU1MzExREM1QTM2MDAwRUQz
REUgLyogTmF2aWdhdGlvbi5oICovOyB9OwogCQk4QUY0RTU1QjExREM1QTYzMDAwRUQzREUgLyog
VGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTU4MTFEQzVBNjMwMDBFRDNERSAvKiBUaW1pbmcuY3BwICovOyB9OwpAQCAtODY1OSw2
ICs4NjYwLDcgQEAKIAkJOEE5QTU4NzMxMUU4NEM4MTAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQZXJmb3JtYW5jZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTlBNTg3NjExRTg0Qzk4MDA4QUNGRDEgLyogSlNU
aW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUaW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTlBNTg3NzExRTg0Qzk4MDA4QUNG
RDEgLyogSlNUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUaW1p
bmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEFCNEJDNzYxMjZGREI3MTAwREVC
NzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBRjRFNTUyMTFEQzVBMzYw
MDBFRDNERSAvKiBOYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5hdmlnYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QUY0
RTU1MzExREM1QTM2MDAwRUQzREUgLyogTmF2aWdhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBRjRFNTU0MTFEQzVBMzYwMDBFRDNERSAvKiBOYXZpZ2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE4MDk1LDYgKzE4MDk3LDcgQEAKIAkJCQlBODUzMTIzQzExRDA0NzFCMDBENEQwNzcgLyogRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggKi8sCiAJCQkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5
NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovLAogCQkJCTg0ODJCNzQ0MTE5OEMzMkUwMEJGQjAw
NSAvKiBIYXNoQ2hhbmdlRXZlbnQuaWRsICovLAorCQkJCThBQjRCQzc2MTI2RkRCNzEwMERFQjcy
NyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oICovLAogCQkJCTA4
NzAwQkU2MEYwODZDNTMwMDkxOTQxOSAvKiBJbnB1dEVsZW1lbnQuY3BwICovLAogCQkJCTA4NTkx
QUE0MEYwODVDNEUwMDlCQUNCMSAvKiBJbnB1dEVsZW1lbnQuaCAqLywKIAkJCQk4NTAzMUIyRDBB
NDRFRkM3MDBGOTkyRTAgLyogS2V5Ym9hcmRFdmVudC5jcHAgKi8sCkBAIC0yMTEzNyw2ICsyMTE0
MCw3IEBACiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5p
bWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVF
QSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCThBQjRCQzc3
MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTg5ZWI3Mi4uMDkxNmU2OSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCwgY29uCiAgICAgLCBt
X2ZyYW1lRWxlbWVudHNTaG91bGRJZ25vcmVTY3JvbGxpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRh
aW5zVmFsaWRpdHlTdHlsZVJ1bGVzKGZhbHNlKQogICAgICwgbV91cGRhdGVGb2N1c0FwcGVhcmFu
Y2VSZXN0b3Jlc1NlbGVjdGlvbihmYWxzZSkKLSAgICAsIG1fd3JpdGVEaXNhYmxlZChmYWxzZSkK
KyAgICAsIG1faWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50KDApCiAgICAgLCBtX3RpdGxlKCIi
KQogICAgICwgbV9yYXdUaXRsZSgiIikKICAgICAsIG1fdGl0bGVTZXRFeHBsaWNpdGx5KGZhbHNl
KQpAQCAtMjEyOSwxMCArMjEyOSw4IEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlKGNvbnN0IFNlZ21l
bnRlZFN0cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCiAgICAgICAgIHByaW50
ZigiQmVnaW5uaW5nIGEgZG9jdW1lbnQud3JpdGUgYXQgJWRcbiIsIGVsYXBzZWRUaW1lKCkpOwog
I2VuZGlmCiAKLSAgICAvLyBJZiB0aGUgaW5zZXJ0aW9uIHBvaW50IGlzIHVuZGVmaW5lZCBhbmQg
dGhlIERvY3VtZW50IGhhcyB0aGUKLSAgICAvLyAid3JpdGUtbmV1dHJhbGlzZWQiIGZsYWcgc2V0
LCB0aGVuIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGJvb2wgaGFzSW5zZXJ0aW9uUG9pbnQgPSBt
X3BhcnNlciAmJiBtX3BhcnNlci0+aGFzSW5zZXJ0aW9uUG9pbnQoKTsKLSAgICBpZiAoIWhhc0lu
c2VydGlvblBvaW50ICYmIHdyaXRlRGlzYWJsZWQoKSkKKyAgICBpZiAoIWhhc0luc2VydGlvblBv
aW50ICYmIG1faWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50KQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoIWhhc0luc2VydGlvblBvaW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTk4OTAxZS4uMjIxY2EyZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMDMwLDkgKzEwMzAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXREaWRF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwogI2VuZGlmCiAKLSAgICBib29sIHdy
aXRlRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dyaXRlRGlzYWJsZWQ7IH0KLSAgICB2b2lk
IHNldFdyaXRlRGlzYWJsZWQoYm9vbCBmbGFnKSB7IG1fd3JpdGVEaXNhYmxlZCA9IGZsYWc7IH0K
LQogICAgIC8vIFVzZWQgdG8gYWxsb3cgZWxlbWVudCB0aGF0IGxvYWRzIGRhdGEgd2l0aG91dCBn
b2luZyB0aHJvdWdoIGEgRnJhbWVMb2FkZXIgdG8gZGVsYXkgdGhlICdsb2FkJyBldmVudC4KICAg
ICB2b2lkIGluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKSB7ICsrbV9sb2FkRXZlbnREZWxh
eUNvdW50OyB9CiAgICAgdm9pZCBkZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CkBAIC0x
MDQ5LDYgKzEwNDYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGVhclhNTFZlcnNpb24oKSB7
IG1feG1sVmVyc2lvbiA9IFN0cmluZygpOyB9CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyOworCiAgICAgdm9pZCBkZXRh
Y2hQYXJzZXIoKTsKIAogICAgIHR5cGVkZWYgdm9pZCAoKkFyZ3VtZW50c0NhbGxiYWNrKShjb25z
dCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZywgRG9jdW1lbnQq
LCB2b2lkKiBkYXRhKTsKQEAgLTEyMDMsOCArMTIwMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzOwogICAgIGJvb2wgbV91cGRhdGVGb2N1c0FwcGVh
cmFuY2VSZXN0b3Jlc1NlbGVjdGlvbjsKIAotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3dyaXRlLW5ldXRyYWxpc2VkCi0gICAgYm9vbCBt
X3dyaXRlRGlzYWJsZWQ7CisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jaWdub3JlLWRlc3RydWN0aXZlLXdyaXRlcy1jb3VudGVyCisgICAg
dW5zaWduZWQgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQ7CiAKICAgICBTdHJpbmcgbV90
aXRsZTsKICAgICBTdHJpbmcgbV9yYXdUaXRsZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0ln
bm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggYi9XZWJDb3JlL2RvbS9JZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmQyZGQ1MDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9J
Z25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXJfaAorI2RlZmluZSBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcl9oCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgICAgIDogbV9jb3Vu
dChkb2N1bWVudCA/ICZkb2N1bWVudC0+bV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQgOiAw
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX2NvdW50KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICArKygqbV9jb3VudCk7CisgICAgfQorCisgICAgfklnbm9yZURlc3RydWN0aXZlV3JpdGVD
b3VudEluY3JlbWVudGVyKCkKKyAgICB7CisgICAgICAgIGlmICghbV9jb3VudCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgLS0oKm1fY291bnQpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICB1bnNpZ25lZCogbV9jb3VudDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CmluZGV4IDQ2Yzg1ZTMuLmFiZDBhZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIklnbm9yZURlc3RydWN0
aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01
NywxNCArNTgsNiBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KFNj
cmlwdEVsZW1lbnREYXRhJiBkYXRhLCBjb25zdCBTdHJpbmcmCiAKICAgICAvLyBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzY3JpcHQKIAotICAgIC8v
IElmIHRoZSBlbGVtZW50J3MgRG9jdW1lbnQgaGFzIGFuIGFjdGl2ZSBwYXJzZXIsIGFuZCB0aGUg
cGFyc2VyJ3Mgc2NyaXB0Ci0gICAgLy8gbmVzdGluZyBsZXZlbCBpcyBub24temVybywgYnV0IHRo
aXMgc2NyaXB0IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSB0aGUKLSAgICAvLyAicGFyc2VyLWluc2Vy
dGVkIiBmbGFnIHNldCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBzZXQgdGhlIGVsZW1lbnQncwotICAg
IC8vICJ3cml0ZS1uZXV0cmFsaXNlZCIgZmxhZy4KLSAgICBEb2N1bWVudFBhcnNlciogcGFyc2Vy
ID0gZGF0YS5lbGVtZW50KCktPmRvY3VtZW50KCktPnBhcnNlcigpOwotICAgIGlmIChwYXJzZXIg
JiYgcGFyc2VyLT5oYXNJbnNlcnRpb25Qb2ludCgpKQotICAgICAgICBkYXRhLnNldFdyaXRlRGlz
YWJsZWQodHJ1ZSk7Ci0KICAgICBpZiAoIXNvdXJjZVVybC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ZGF0YS5yZXF1ZXN0U2NyaXB0KHNvdXJjZVVybCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE0Miw3
ICsxMzUsNiBAQCBTY3JpcHRFbGVtZW50RGF0YTo6U2NyaXB0RWxlbWVudERhdGEoU2NyaXB0RWxl
bWVudCogc2NyaXB0RWxlbWVudCwgRWxlbWVudCogZWxlbQogICAgICwgbV9lbGVtZW50KGVsZW1l
bnQpCiAgICAgLCBtX2NhY2hlZFNjcmlwdCgwKQogICAgICwgbV9jcmVhdGVkQnlQYXJzZXIoZmFs
c2UpCi0gICAgLCBtX3dyaXRlRGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3RlZChmYWxz
ZSkKICAgICAsIG1fZXZhbHVhdGVkKGZhbHNlKQogICAgICwgbV9maXJlZExvYWQoZmFsc2UpCkBA
IC0xOTEsNyArMTgzLDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50RGF0YTo6ZXZhbHVhdGVTY3JpcHQo
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKICAgICBpZiAobV9ldmFsdWF0ZWQg
fHwgc291cmNlQ29kZS5pc0VtcHR5KCkgfHwgIXNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKSkgeworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCk7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgaWYgKCFmcmFtZS0+c2NyaXB0
KCktPmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMTk5LDI1ICsxOTMsMTMgQEAgdm9pZCBTY3JpcHRFbGVtZW50RGF0YTo6
ZXZhbHVhdGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKIAogICAg
ICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
LyNzY3JpcHQKIAotICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGVsZW1lbnQncyAid3JpdGUtbmV1
dHJhbGlzZWQiIGZsYWcgaXMgc2V0LCB0aGVuIGZsYWcKLSAgICAgICAgLy8gdGhlIERvY3VtZW50
IHRoZSBzY3JpcHQgZWxlbWVudCB3YXMgaW4gd2hlbiB0aGUgIndyaXRlLW5ldXRyYWxpc2VkIgot
ICAgICAgICAvLyBmbGFnIHdhcyBzZXQgYXMgYmVpbmcgaXRzZWxmICJ3cml0ZS1uZXV0cmFsaXNl
ZCIuIExldCBuZXV0cmFsaXNlZCBkb2MKLSAgICAgICAgLy8gYmUgdGhhdCBEb2N1bWVudC4KLSAg
ICAgICAgaWYgKG1fd3JpdGVEaXNhYmxlZCkgewotICAgICAgICAgICAgQVNTRVJUKCFtX2VsZW1l
bnQtPmRvY3VtZW50KCktPndyaXRlRGlzYWJsZWQoKSk7Ci0gICAgICAgICAgICBtX2VsZW1lbnQt
PmRvY3VtZW50KCktPnNldFdyaXRlRGlzYWJsZWQodHJ1ZSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBDcmVhdGUgYSBzY3JpcHQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQgbm9kZSwgdXNpbmcg
dGhlIHNjcmlwdAotICAgICAgICAvLyBibG9jaydzIHNvdXJjZSBhbmQgdGhlIHNjcmlwdCBibG9j
aydzIHR5cGUuCi0gICAgICAgIC8vIE5vdGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNjcmlwdCBpcyBj
b21waWxlZCBhbmQgYWN0dWFsbHkgZXhlY3V0ZWQuCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS0+
ZXZhbHVhdGUoc291cmNlQ29kZSk7Ci0KLSAgICAgICAgLy8gUmVtb3ZlIHRoZSAid3JpdGUtbmV1
dHJhbGlzZWQiIGZsYWcgZnJvbSBuZXV0cmFsaXNlZCBkb2MsIGlmIGl0IHdhcwotICAgICAgICAv
LyBzZXQgaW4gdGhlIGVhcmxpZXIgc3RlcC4KLSAgICAgICAgaWYgKG1fd3JpdGVEaXNhYmxlZCkg
ewotICAgICAgICAgICAgQVNTRVJUKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+d3JpdGVEaXNhYmxl
ZCgpKTsKLSAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2V0V3JpdGVEaXNhYmxl
ZChmYWxzZSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGJvb2wgZXh0ZXJuYWwgPSAhbV9zY3Jp
cHRFbGVtZW50LT5zb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpLmlzRW1wdHkoKTsKKyAgICAgICAgICAg
IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIGlnbm9yZURlc2N0cnVjdGl2
ZVdyaXRlQ291bnRJbmNyZW1lbnRlcihleHRlcm5hbCA/IGRvY3VtZW50LmdldCgpIDogMCk7Cisg
ICAgICAgICAgICAvLyBDcmVhdGUgYSBzY3JpcHQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQgbm9k
ZSwgdXNpbmcgdGhlIHNjcmlwdAorICAgICAgICAgICAgLy8gYmxvY2sncyBzb3VyY2UgYW5kIHRo
ZSBzY3JpcHQgYmxvY2sncyB0eXBlLgorICAgICAgICAgICAgLy8gTm90ZTogVGhpcyBpcyB3aGVy
ZSB0aGUgc2NyaXB0IGlzIGNvbXBpbGVkIGFuZCBhY3R1YWxseSBleGVjdXRlZC4KKyAgICAgICAg
ICAgIGZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVhdGUoc291cmNlQ29kZSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBEb2N1bWVudDo6dXBkYXRlU3R5bGVGb3JBbGxEb2N1bWVudHMoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAppbmRleCA2OThmZmJjLi5jNjYzZTQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC04Miw4ICs4
Miw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9l
bGVtZW50OyB9CiAgICAgYm9vbCBjcmVhdGVkQnlQYXJzZXIoKSBjb25zdCB7IHJldHVybiBtX2Ny
ZWF0ZWRCeVBhcnNlcjsgfQogICAgIHZvaWQgc2V0Q3JlYXRlZEJ5UGFyc2VyKGJvb2wgdmFsdWUp
IHsgbV9jcmVhdGVkQnlQYXJzZXIgPSB2YWx1ZTsgfQotICAgIGJvb2wgd3JpdGVEaXNhYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fd3JpdGVEaXNhYmxlZDsgfQotICAgIHZvaWQgc2V0V3JpdGVEaXNh
YmxlZChib29sIHZhbHVlKSB7IG1fd3JpdGVEaXNhYmxlZCA9IHZhbHVlOyB9CiAgICAgYm9vbCBo
YXZlRmlyZWRMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ZpcmVkTG9hZDsgfQogICAgIHZv
aWQgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KGJvb2wgZmlyZWRMb2FkKSB7IG1fZmlyZWRMb2FkID0g
ZmlyZWRMb2FkOyB9CiAKQEAgLTEwMSw3ICs5OSw2IEBAIHByaXZhdGU6CiAgICAgRWxlbWVudCog
bV9lbGVtZW50OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNo
ZWRTY3JpcHQ7CiAgICAgYm9vbCBtX2NyZWF0ZWRCeVBhcnNlcjsgLy8gSFRNTDU6ICJwYXJzZXIt
aW5zZXJ0ZWQiCi0gICAgYm9vbCBtX3dyaXRlRGlzYWJsZWQ7IC8vIGh0dHA6Ly93d3cud2hhdHdn
Lm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3dyaXRlLW5ldXRyYWxpc2VkCiAgICAg
Ym9vbCBtX3JlcXVlc3RlZDsKICAgICBib29sIG1fZXZhbHVhdGVkOyAvLyBIVE1MNTogImFscmVh
ZHkgc3RhcnRlZCIKICAgICBib29sIG1fZmlyZWRMb2FkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggNGY1NGY0Mi4uNzVkYjY0NCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
SFRNTFNjcmlwdFJ1bm5lckhvc3QuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRTdHJlYW0uaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291
bnRJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCkBA
IC0xMzUsNiArMTM2LDcgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1Nj
cmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYgcGVuZGkKICAgICBSZWZQdHI8RWxl
bWVudD4gc2NyaXB0RWxlbWVudCA9IHBlbmRpbmdTY3JpcHQucmVsZWFzZUVsZW1lbnRBbmRDbGVh
cigpOwogICAgIHsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOworICAgICAgICBJZ25vcmVEZXN0cnVj
dGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlciBpZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlcihtX2RvY3VtZW50KTsKICAgICAgICAgaWYgKGVycm9yT2NjdXJyZWQpCiAgICAgICAg
ICAgICBzY3JpcHRFbGVtZW50LT5kaXNwYXRjaEV2ZW50KGNyZWF0ZVNjcmlwdEVycm9yRXZlbnQo
KSk7CiAgICAgICAgIGVsc2UgewotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="61488"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71508</attachid>
            <date>2010-10-21 16:36:15 -0700</date>
            <delta_ts>2010-10-21 18:27:49 -0700</delta_ts>
            <desc>Fix src removal bug</desc>
            <filename>0001-ignore-destructive-write-count.patch</filename>
            <type>text/plain</type>
            <size>25835</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">RnJvbSAwMmUxYWYyMzBjOTRmYTRiNGM1NjA2NDBmNTRmZTMwZWEzZDk0YzJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUb255IEdlbnRpbGNvcmUgPHRvbnlnQGNocm9taXVtLm9yZz4K
RGF0ZTogV2VkLCAyMCBPY3QgMjAxMCAxOToyODoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGln
bm9yZSBkZXN0cnVjdGl2ZSB3cml0ZSBjb3VudAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysKIC4uLi9kZWZlci1k
b3VibGUtZGVmZXItd3JpdGUtZXhwZWN0ZWQudHh0ICAgICAgICAgIHwgICAgMSAtCiAuLi4vZGVm
ZXItZG91YmxlLWRlZmVyLXdyaXRlLmh0bWwgICAgICAgICAgICAgICAgICB8ICAgIDYgLS0KIC4u
Li9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICAgIHwgICAgMSAt
CiAuLi4vZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1sICB8ICAg
IDYgLS0KIC4uLi9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci13cml0ZS5odG1sICAg
IHwgICAgNCArLQogLi4uL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1zb3VyY2UtZXhwZWN0ZWQu
dHh0ICAgfCAgICAxICsKIC4uLi9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtc291
cmNlLmh0bWwgIHwgICAxMiArKysrCiAuLi4vdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQg
ICAgICAgICAgICAgICAgICB8ICAgIDEgLQogLi4uL2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28t
ZGVmZXItd3JpdGVzLmh0bWwgICAgfCAgICA3IC0tLQogLi4uL3dyaXRlLWFmdGVyLWlnbm9yZWQt
d3JpdGUtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAgICAxICsKIC4uLi93cml0ZS1hZnRlci1pZ25v
cmVkLXdyaXRlLmh0bWwgICAgICAgICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArKysrKysrKysrCiBX
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEg
KwogV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICAxICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAg
IHwgICAgNCArKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAg
ICAgICAgfCAgICA0ICsrCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDYgKy0tCiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDkgKystLQogLi4uL2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlci5oICAgfCAgIDU3ICsrKysrKysrKysrKysrKysrKysrCiBXZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysr
Ky0tLS0tLS0tLS0KIFdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMyAtCiBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3Bw
ICAgICAgICAgICB8ICAgIDIgKwogMjMgZmlsZXMgY2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyks
IDY1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS1kZWZlci13cml0ZS1leHBlY3RlZC50eHQK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUuaHRtbAogZGVsZXRlIG1vZGUgMTAwNzU1IExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBl
Y3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1zb3VyY2UtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvcmVtb3ZlLXNvdXJjZS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50
eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxT
Y3JpcHRFbGVtZW50L3dyaXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUuaHRtbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
LmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOTdiZmEyYy4uYTM2YWQwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEw
LTEwLTIwICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBJZ25vcmUgZG9jdW1lbnQud3JpdGUo
KSB3aGVuIGl0IGNvbWVzIGZyb20gYSBuZXR3b3JrIHRhc2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NTYwCisKKyAgICAgICAgd3JpdGUoKXMgZnJv
bSBkZWZlcnJlZCBzY3JpcHRzIGFyZSBub3cgaWdub3JlZC4gVGhpcyBtYXRjaGVzIHRoZSBsYXRl
c3QKKyAgICAgICAgRmlyZWZveCA0IGJldGEgYmVoYXZpb3IuIFRoZSBkZWZlci13cml0ZSBleHBl
Y3RhdGlvbnMgYXJlIHVwZGF0ZWQsIGFuZAorICAgICAgICB0aGUgb3RoZXIgdGVzdHMgYXJlIG5v
dyBhbGwgbW9vdCBzaW5jZSBkZWZlcnJlZCBzY3JpdHMgY2FuJ3Qgd3JpdGUoKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS1kZWZlci13cml0ZS1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3Vi
bGUtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9kZWZlci13cml0ZS5odG1sOiBVcGRhdGVkIHRvIG1hdGNoIEZGNC4KKyAgICAgICAgKiBm
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtc291cmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLXNvdXJjZS5o
dG1sOiBBZGRlZC4gVmVyaWZpZXMgdGhhdCB3cml0ZXMgYXJlIHN0aWxsIGlnbm9yZWQgd2hlbiB0
aGUgc3JjIGlzIHJlbW92ZWQgYWZ0ZXIgdGhlIHNjcmlwdCBpcyByZXF1ZXN0ZWQgYnV0IGJlZm9y
ZSBpdCBpcyBleGVjdXRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90
d28tZGVmZXItd3JpdGVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXItaWdub3JlZC13cml0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLiBWZXJpZmllcyB0aGF0IGFmdGVyIGEgd3JpdGUgZnJvbSBh
IG5ldHdvcmsgdGFzayBpcyBpZ25vcmVkLCBhIHdyaXRlIHdoaWNoIGlzIG5vdCBmcm9tIGEgbmV0
d29yayB0YXNrIHN0aWxsIGJsb3dzIGF3YXkgdGhlIGRvY3VtZW50LgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L3dyaXRlLWFmdGVyLWlnbm9yZWQtd3JpdGUuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMTAtMjEgIEp1bGllIFBhcmVudCAgPGpwYXJlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXIt
ZG91YmxlLWRlZmVyLXdyaXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggN2VmMjJlOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLWRlZmVyLXdyaXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtZGVmZXItd3Jp
dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQxMjA1MC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUt
ZGVmZXItd3JpdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+Ci1GQUlMCi08c2NyaXB0IGRlZmVyIHNyYz0iZGF0
YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsgZG9jdW1lbnQud3JpdGUo
JzxzY3JpcHQgZGVmZXIgc3JjPVwnZGF0YTp0ZXh0L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUo
JnF1b3Q7UEFTUyZxdW90Oyk7XCc+PC9zY3JpcHQ+Jyk7IGRvY3VtZW50LmNsb3NlKCk7Ij48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9kZWZlci1kb3VibGUtd3JpdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZDA0Zjk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0xIDIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2RlZmVyLWRvdWJsZS13cml0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdyaXRl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NWUxZDMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItZG91YmxlLXdy
aXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLTwvc2NyaXB0PgotRkFJTAotPHNjcmlwdCBkZWZlciBzcmM9ImRhdGE6dGV4dC9q
YXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMSk7IGRvY3VtZW50LndyaXRlKCc8c2NyaXB0IHNy
Yz1cJ2RhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlbG4oMilcJz48L3NjcmlwdD4n
KTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvZGVmZXItd3JpdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L2RlZmVyLXdyaXRlLmh0bWwKaW5kZXggMGMwYmJmZi4uYzI5ZGRhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvZGVmZXItd3JpdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9kZWZlci13
cml0ZS5odG1sCkBAIC0yLDUgKzIsNSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KLUZB
SUwKLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53cml0
ZSgnUEFTUycpOyI+PC9zY3JpcHQ+CitQQVNTCis8c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0
L2phdmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLXNvdXJjZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1v
dmUtc291cmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43ZWYyMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvcmVtb3ZlLXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVt
b3ZlLXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
cmVtb3ZlLXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5
ZGFjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9yZW1vdmUtc291cmNlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworfQorCit2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Citz
Y3JpcHQuc3JjID0gImRhdGE6dGV4dC9qYXZhc2NyaXB0LGRvY3VtZW50LndyaXRlKCdGQUlMJyk7
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOyI7Citkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFw
cGVuZENoaWxkKHNjcmlwdCk7CitzY3JpcHQuc3JjID0gIiI7Cis8L3NjcmlwdD4KK1BBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3R3by1kZWZl
ci13cml0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdlZjIyZTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC90d28tZGVmZXItd3JpdGVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDRiMGQzNzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvdHdvLWRlZmVyLXdyaXRlcy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNyArMCwwIEBACi08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4K
LUZBSUwKLTxzY3JpcHQgZGVmZXIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkb2N1bWVudC53
cml0ZSgnUEFTUycpOyI+PC9zY3JpcHQ+Ci08c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2ph
dmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXItaWdub3Jl
ZC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXItaWdub3JlZC13cml0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXItaWdub3JlZC13cml0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvd3JpdGUtYWZ0ZXIt
aWdub3JlZC13cml0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZk
N2JiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC93cml0ZS1hZnRlci1pZ25vcmVkLXdyaXRlLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iZG9jdW1l
bnQud3JpdGUoJ1BBU1MnKSI+CitGQUlMCis8c2NyaXB0IGRlZmVyIHNyYz0iZGF0YTp0ZXh0L2ph
dmFzY3JpcHQsZG9jdW1lbnQud3JpdGUoJ0ZBSUwnKTsiPjwvc2NyaXB0PgorCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc1OWMzOGUuLjU3
OGYzOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTAtMjAgIFRvbnkgR2VudGlsY29yZSAgPHRvbnln
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAg
ICAgIElnbm9yZSBkb2N1bWVudC53cml0ZSgpIHdoZW4gaXQgY29tZXMgZnJvbSBhIG5ldHdvcmsg
dGFzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc1
NjAKKworICAgICAgICBUaGlzIGltcGxlbWVudHMgdGhlIHVwZGF0ZSB0byB0aGUgc3BlYyBtYWRl
IGJ5OgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/
aWQ9OTc2NworCisgICAgICAgIEl0IGFsc28gbWF0Y2hlcyB0aGUgbGF0ZXN0IEZpcmVmb3ggNCBi
ZXRhLiBUaGUgbm90YWJsZSBjaGFuZ2UgaXMgdGhhdAorICAgICAgICBkb2N1bWVudC53cml0ZSBm
cm9tIGEgZGVmZXJyZWQgc2NyaXB0IG5vIGxvbmdlciB3b3Jrcy4gVGhpcyBhdm9pZHMKKyAgICAg
ICAgYmxvd2luZyB0aGUgcGF0Y2ggYXdheS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OndyaXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyOjpEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aWdub3Jl
RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnREYXRhOjpTY3JpcHRF
bGVtZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50RGF0YTo6ZXZhbHVh
dGVTY3JpcHQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQpOgorCiAyMDEw
LTEwLTIxICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMWYyNTUwMC4uMjZiNjkyZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCkBAIC0xMTQxLDYgKzExNDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNv
cmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKIAlXZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgg
XAogCVdlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIFwKKwlXZWJDb3Jl
L2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIFwKIAlXZWJDb3Jl
L2RvbS9JbnB1dEVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaCBcCiAJ
V2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhMWE5NmUxLi5mYWU4MTdhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMTIxMiw2ICsxMjEyLDcgQEAKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQ29kZS5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25Db2RlLmgnLAogICAgICAgICAgICAgJ2Rv
bS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCcsCisgICAgICAgICAgICAnZG9tL0lnbm9y
ZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgnLAogICAgICAgICAgICAgJ2RvbS9J
bnB1dEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vSW5wdXRFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBmZDk0MjFjLi4wZDljMjI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTQyMjAzLDYgKzQyMjAzLDEwIEBACiAJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxJbnB1dEVsZW1l
bnQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDU0ZDFmZTUuLjA5OGY5MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTk3LDYgKzI1OTcsNyBAQAogCQk4QTlBNTg3
NTExRTg0QzgxMDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE5QTU4NzMxMUU4NEM4MTAwOEFDRkQxIC8qIEpT
UGVyZm9ybWFuY2UuaCAqLzsgfTsKIAkJOEE5QTU4ODcxMUU4NEYzNzAwOEFDRkQxIC8qIEpTVGlt
aW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
OUE1ODc2MTFFODRDOTgwMDhBQ0ZEMSAvKiBKU1RpbWluZy5jcHAgKi87IH07CiAJCThBOUE1ODg4
MTFFODRGMzcwMDhBQ0ZEMSAvKiBKU1RpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEE5QTU4NzcxMUU4NEM5ODAwOEFDRkQxIC8qIEpTVGltaW5n
LmggKi87IH07CisJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2
ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEFCNEJDNzYxMjZGREI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0
aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCThBRjRFNTU1MTFEQzVBMzYwMDBF
RDNERSAvKiBOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhBRjRFNTUyMTFEQzVBMzYwMDBFRDNERSAvKiBOYXZpZ2F0aW9uLmNwcCAq
LzsgfTsKIAkJOEFGNEU1NTYxMURDNUEzNjAwMEVEM0RFIC8qIE5hdmlnYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBRjRFNTUzMTFEQzVBMzYw
MDBFRDNERSAvKiBOYXZpZ2F0aW9uLmggKi87IH07CiAJCThBRjRFNTVCMTFEQzVBNjMwMDBFRDNE
RSAvKiBUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEFGNEU1NTgxMURDNUE2MzAwMEVEM0RFIC8qIFRpbWluZy5jcHAgKi87IH07CkBAIC04
NjYwLDYgKzg2NjEsNyBAQAogCQk4QTlBNTg3MzExRTg0QzgxMDA4QUNGRDEgLyogSlNQZXJmb3Jt
YW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1BlcmZvcm1hbmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBOUE1ODc2MTFFODRDOTgwMDhBQ0ZEMSAv
KiBKU1RpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Rp
bWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBOUE1ODc3MTFFODRDOTgw
MDhBQ0ZEMSAvKiBKU1RpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1RpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QUI0QkM3NjEyNkZEQjcx
MDBERUI3MjcgLyogSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50
SW5jcmVtZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFGNEU1NTIxMURD
NUEzNjAwMEVEM0RFIC8qIE5hdmlnYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTmF2aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBRjRFNTUzMTFEQzVBMzYwMDBFRDNERSAvKiBOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOEFGNEU1NTQxMURDNUEzNjAwMEVEM0RFIC8qIE5hdmlnYXRpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTgwOTgsNiArMTgxMDAsNyBAQAogCQkJCUE4NTMxMjNDMTFEMDQ3MUIwMEQ0RDA3NyAv
KiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCAqLywKIAkJCQkyNDQyQkJGODExOTRDOUQz
MDBENDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8sCiAJCQkJODQ4MkI3NDQxMTk4QzMyRTAw
QkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5pZGwgKi8sCisJCQkJOEFCNEJDNzYxMjZGREI3MTAw
REVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi8sCiAJ
CQkJMDg3MDBCRTYwRjA4NkM1MzAwOTE5NDE5IC8qIElucHV0RWxlbWVudC5jcHAgKi8sCiAJCQkJ
MDg1OTFBQTQwRjA4NUM0RTAwOUJBQ0IxIC8qIElucHV0RWxlbWVudC5oICovLAogCQkJCTg1MDMx
QjJEMEE0NEVGQzcwMEY5OTJFMCAvKiBLZXlib2FyZEV2ZW50LmNwcCAqLywKQEAgLTIxMTQxLDYg
KzIxMTQ0LDcgQEAKIAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlU
cmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBT
VkdBbmltYXRlZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5MDIxQUQxMjZFRjVFOTAw
OTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOEFC
NEJDNzcxMjZGREI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlODllYjcyLi4wOTE2ZTY5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0zNjQsNyArMzY0LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBm
cmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MLCBjb24KICAg
ICAsIG1fZnJhbWVFbGVtZW50c1Nob3VsZElnbm9yZVNjcm9sbGluZyhmYWxzZSkKICAgICAsIG1f
Y29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoZmFsc2UpCiAgICAgLCBtX3VwZGF0ZUZvY3VzQXBw
ZWFyYW5jZVJlc3RvcmVzU2VsZWN0aW9uKGZhbHNlKQotICAgICwgbV93cml0ZURpc2FibGVkKGZh
bHNlKQorICAgICwgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQoMCkKICAgICAsIG1fdGl0
bGUoIiIpCiAgICAgLCBtX3Jhd1RpdGxlKCIiKQogICAgICwgbV90aXRsZVNldEV4cGxpY2l0bHko
ZmFsc2UpCkBAIC0yMTI5LDEwICsyMTI5LDggQEAgdm9pZCBEb2N1bWVudDo6d3JpdGUoY29uc3Qg
U2VnbWVudGVkU3RyaW5nJiB0ZXh0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICAgICAg
cHJpbnRmKCJCZWdpbm5pbmcgYSBkb2N1bWVudC53cml0ZSBhdCAlZFxuIiwgZWxhcHNlZFRpbWUo
KSk7CiAjZW5kaWYKIAotICAgIC8vIElmIHRoZSBpbnNlcnRpb24gcG9pbnQgaXMgdW5kZWZpbmVk
IGFuZCB0aGUgRG9jdW1lbnQgaGFzIHRoZQotICAgIC8vICJ3cml0ZS1uZXV0cmFsaXNlZCIgZmxh
ZyBzZXQsIHRoZW4gYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgYm9vbCBoYXNJbnNlcnRpb25Qb2lu
dCA9IG1fcGFyc2VyICYmIG1fcGFyc2VyLT5oYXNJbnNlcnRpb25Qb2ludCgpOwotICAgIGlmICgh
aGFzSW5zZXJ0aW9uUG9pbnQgJiYgd3JpdGVEaXNhYmxlZCgpKQorICAgIGlmICghaGFzSW5zZXJ0
aW9uUG9pbnQgJiYgbV9pZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghaGFzSW5zZXJ0aW9uUG9pbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhOTg5MDFlLi4yMjFj
YTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTEwMzAsOSArMTAzMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHdlYmtp
dERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kik7CiAjZW5kaWYKIAotICAgIGJv
b2wgd3JpdGVEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JpdGVEaXNhYmxlZDsgfQotICAg
IHZvaWQgc2V0V3JpdGVEaXNhYmxlZChib29sIGZsYWcpIHsgbV93cml0ZURpc2FibGVkID0gZmxh
ZzsgfQotCiAgICAgLy8gVXNlZCB0byBhbGxvdyBlbGVtZW50IHRoYXQgbG9hZHMgZGF0YSB3aXRo
b3V0IGdvaW5nIHRocm91Z2ggYSBGcmFtZUxvYWRlciB0byBkZWxheSB0aGUgJ2xvYWQnIGV2ZW50
LgogICAgIHZvaWQgaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpIHsgKyttX2xvYWRFdmVu
dERlbGF5Q291bnQ7IH0KICAgICB2b2lkIGRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
QEAgLTEwNDksNiArMTA0Niw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyWE1MVmVyc2lv
bigpIHsgbV94bWxWZXJzaW9uID0gU3RyaW5nKCk7IH0KIAogcHJpdmF0ZToKKyAgICBmcmllbmQg
Y2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI7CisKICAgICB2b2lk
IGRldGFjaFBhcnNlcigpOwogCiAgICAgdHlwZWRlZiB2b2lkICgqQXJndW1lbnRzQ2FsbGJhY2sp
KGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1
bWVudCosIHZvaWQqIGRhdGEpOwpAQCAtMTIwMyw4ICsxMjAyLDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXM7CiAgICAgYm9vbCBtX3VwZGF0ZUZvY3Vz
QXBwZWFyYW5jZVJlc3RvcmVzU2VsZWN0aW9uOwogCi0gICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jd3JpdGUtbmV1dHJhbGlzZWQKLSAgICBi
b29sIG1fd3JpdGVEaXNhYmxlZDsKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrLyNpZ25vcmUtZGVzdHJ1Y3RpdmUtd3JpdGVzLWNvdW50ZXIK
KyAgICB1bnNpZ25lZCBtX2lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudDsKIAogICAgIFN0cmlu
ZyBtX3RpdGxlOwogICAgIFN0cmluZyBtX3Jhd1RpdGxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBiL1dlYkNvcmUvZG9t
L0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOWQxODM1YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
ZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyX2gKKyNkZWZpbmUg
SWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXJfaAorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlciA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgSWdub3JlRGVzdHJ1Y3Rp
dmVXcml0ZUNvdW50SW5jcmVtZW50ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgICAgICA6IG1f
Y291bnQoZG9jdW1lbnQgPyAmZG9jdW1lbnQtPm1faWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50
IDogMCkKKyAgICB7CisgICAgICAgIGlmICghbV9jb3VudCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgKysoKm1fY291bnQpOworICAgIH0KKworICAgIH5JZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlcigpCisgICAgeworICAgICAgICBpZiAoIW1fY291bnQpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIC0tKCptX2NvdW50KTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgdW5zaWduZWQqIG1fY291bnQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcAppbmRleCA0NmM4NWUzLi4yOGM3NTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJJZ25vcmVEZXN0
cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpA
QCAtNTcsMTQgKzU4LDYgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVu
dChTY3JpcHRFbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgU3RyaW5nJgogCiAgICAgLy8gaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2NyaXB0CiAKLSAg
ICAvLyBJZiB0aGUgZWxlbWVudCdzIERvY3VtZW50IGhhcyBhbiBhY3RpdmUgcGFyc2VyLCBhbmQg
dGhlIHBhcnNlcidzIHNjcmlwdAotICAgIC8vIG5lc3RpbmcgbGV2ZWwgaXMgbm9uLXplcm8sIGJ1
dCB0aGlzIHNjcmlwdCBlbGVtZW50IGRvZXMgbm90IGhhdmUgdGhlCi0gICAgLy8gInBhcnNlci1p
bnNlcnRlZCIgZmxhZyBzZXQsIHRoZSB1c2VyIGFnZW50IG11c3Qgc2V0IHRoZSBlbGVtZW50J3MK
LSAgICAvLyAid3JpdGUtbmV1dHJhbGlzZWQiIGZsYWcuCi0gICAgRG9jdW1lbnRQYXJzZXIqIHBh
cnNlciA9IGRhdGEuZWxlbWVudCgpLT5kb2N1bWVudCgpLT5wYXJzZXIoKTsKLSAgICBpZiAocGFy
c2VyICYmIHBhcnNlci0+aGFzSW5zZXJ0aW9uUG9pbnQoKSkKLSAgICAgICAgZGF0YS5zZXRXcml0
ZURpc2FibGVkKHRydWUpOwotCiAgICAgaWYgKCFzb3VyY2VVcmwuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGRhdGEucmVxdWVzdFNjcmlwdChzb3VyY2VVcmwpOwogICAgICAgICByZXR1cm47CkBAIC0x
NDIsNyArMTM1LDYgQEAgU2NyaXB0RWxlbWVudERhdGE6OlNjcmlwdEVsZW1lbnREYXRhKFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEVsZW1lbnQqIGVsZW0KICAgICAsIG1fZWxlbWVudChl
bGVtZW50KQogICAgICwgbV9jYWNoZWRTY3JpcHQoMCkKICAgICAsIG1fY3JlYXRlZEJ5UGFyc2Vy
KGZhbHNlKQotICAgICwgbV93cml0ZURpc2FibGVkKGZhbHNlKQogICAgICwgbV9yZXF1ZXN0ZWQo
ZmFsc2UpCiAgICAgLCBtX2V2YWx1YXRlZChmYWxzZSkKICAgICAsIG1fZmlyZWRMb2FkKGZhbHNl
KQpAQCAtMTkxLDcgKzE4Myw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudERhdGE6OmV2YWx1YXRlU2Ny
aXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAgaWYgKG1fZXZhbHVh
dGVkIHx8IHNvdXJjZUNvZGUuaXNFbXB0eSgpIHx8ICFzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQt
PmRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0g
bV9lbGVtZW50LT5kb2N1bWVudCgpOworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIGlmICghZnJhbWUtPnNj
cmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTE5OSwyNSArMTkzLDEyIEBAIHZvaWQgU2NyaXB0RWxlbWVudERh
dGE6OmV2YWx1YXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAK
ICAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay8jc2NyaXB0CiAKLSAgICAgICAgLy8gSWYgdGhlIHNjcmlwdCBlbGVtZW50J3MgIndyaXRl
LW5ldXRyYWxpc2VkIiBmbGFnIGlzIHNldCwgdGhlbiBmbGFnCi0gICAgICAgIC8vIHRoZSBEb2N1
bWVudCB0aGUgc2NyaXB0IGVsZW1lbnQgd2FzIGluIHdoZW4gdGhlICJ3cml0ZS1uZXV0cmFsaXNl
ZCIKLSAgICAgICAgLy8gZmxhZyB3YXMgc2V0IGFzIGJlaW5nIGl0c2VsZiAid3JpdGUtbmV1dHJh
bGlzZWQiLiBMZXQgbmV1dHJhbGlzZWQgZG9jCi0gICAgICAgIC8vIGJlIHRoYXQgRG9jdW1lbnQu
Ci0gICAgICAgIGlmIChtX3dyaXRlRGlzYWJsZWQpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9l
bGVtZW50LT5kb2N1bWVudCgpLT53cml0ZURpc2FibGVkKCkpOwotICAgICAgICAgICAgbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT5zZXRXcml0ZURpc2FibGVkKHRydWUpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gQ3JlYXRlIGEgc2NyaXB0IGZyb20gdGhlIHNjcmlwdCBlbGVtZW50IG5vZGUsIHVz
aW5nIHRoZSBzY3JpcHQKLSAgICAgICAgLy8gYmxvY2sncyBzb3VyY2UgYW5kIHRoZSBzY3JpcHQg
YmxvY2sncyB0eXBlLgotICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIHdoZXJlIHRoZSBzY3JpcHQg
aXMgY29tcGlsZWQgYW5kIGFjdHVhbGx5IGV4ZWN1dGVkLgotICAgICAgICBmcmFtZS0+c2NyaXB0
KCktPmV2YWx1YXRlKHNvdXJjZUNvZGUpOwotCi0gICAgICAgIC8vIFJlbW92ZSB0aGUgIndyaXRl
LW5ldXRyYWxpc2VkIiBmbGFnIGZyb20gbmV1dHJhbGlzZWQgZG9jLCBpZiBpdCB3YXMKLSAgICAg
ICAgLy8gc2V0IGluIHRoZSBlYXJsaWVyIHN0ZXAuCi0gICAgICAgIGlmIChtX3dyaXRlRGlzYWJs
ZWQpIHsKLSAgICAgICAgICAgIEFTU0VSVChtX2VsZW1lbnQtPmRvY3VtZW50KCktPndyaXRlRGlz
YWJsZWQoKSk7Ci0gICAgICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNldFdyaXRlRGlz
YWJsZWQoZmFsc2UpOworICAgICAgICB7CisgICAgICAgICAgICBJZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlciBpZ25vcmVEZXNjdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50
ZXIobV9yZXF1ZXN0ZWQgPyBkb2N1bWVudC5nZXQoKSA6IDApOworICAgICAgICAgICAgLy8gQ3Jl
YXRlIGEgc2NyaXB0IGZyb20gdGhlIHNjcmlwdCBlbGVtZW50IG5vZGUsIHVzaW5nIHRoZSBzY3Jp
cHQKKyAgICAgICAgICAgIC8vIGJsb2NrJ3Mgc291cmNlIGFuZCB0aGUgc2NyaXB0IGJsb2NrJ3Mg
dHlwZS4KKyAgICAgICAgICAgIC8vIE5vdGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNjcmlwdCBpcyBj
b21waWxlZCBhbmQgYWN0dWFsbHkgZXhlY3V0ZWQuCisgICAgICAgICAgICBmcmFtZS0+c2NyaXB0
KCktPmV2YWx1YXRlKHNvdXJjZUNvZGUpOwogICAgICAgICB9CiAKICAgICAgICAgRG9jdW1lbnQ6
OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNjk4ZmZi
Yy4uYzY2M2U0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtODIsOCArODIsNiBAQCBwdWJsaWM6CiAg
ICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogICAgIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVkQnlQYXJzZXI7IH0K
ICAgICB2b2lkIHNldENyZWF0ZWRCeVBhcnNlcihib29sIHZhbHVlKSB7IG1fY3JlYXRlZEJ5UGFy
c2VyID0gdmFsdWU7IH0KLSAgICBib29sIHdyaXRlRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3dyaXRlRGlzYWJsZWQ7IH0KLSAgICB2b2lkIHNldFdyaXRlRGlzYWJsZWQoYm9vbCB2YWx1ZSkg
eyBtX3dyaXRlRGlzYWJsZWQgPSB2YWx1ZTsgfQogICAgIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9maXJlZExvYWQ7IH0KICAgICB2b2lkIHNldEhhdmVGaXJlZExv
YWRFdmVudChib29sIGZpcmVkTG9hZCkgeyBtX2ZpcmVkTG9hZCA9IGZpcmVkTG9hZDsgfQogCkBA
IC0xMDEsNyArOTksNiBAQCBwcml2YXRlOgogICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwogICAgIGJv
b2wgbV9jcmVhdGVkQnlQYXJzZXI7IC8vIEhUTUw1OiAicGFyc2VyLWluc2VydGVkIgotICAgIGJv
b2wgbV93cml0ZURpc2FibGVkOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFw
cHMvY3VycmVudC13b3JrLyN3cml0ZS1uZXV0cmFsaXNlZAogICAgIGJvb2wgbV9yZXF1ZXN0ZWQ7
CiAgICAgYm9vbCBtX2V2YWx1YXRlZDsgLy8gSFRNTDU6ICJhbHJlYWR5IHN0YXJ0ZWQiCiAgICAg
Ym9vbCBtX2ZpcmVkTG9hZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNj
cmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3Bw
CmluZGV4IDRmNTRmNDIuLjc1ZGI2NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxTY3JpcHRSdW5uZXJI
b3N0LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0U3RyZWFtLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIK
ICNpbmNsdWRlICJOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgpAQCAtMTM1LDYgKzEzNiw3IEBA
IHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2
ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1l
bnQgPSBwZW5kaW5nU2NyaXB0LnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIoKTsKICAgICB7CiAgICAg
ICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2Ny
aXB0TmVzdGluZ0xldmVsKTsKKyAgICAgICAgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5j
cmVtZW50ZXIgaWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIobV9kb2N1bWVu
dCk7CiAgICAgICAgIGlmIChlcnJvck9jY3VycmVkKQogICAgICAgICAgICAgc2NyaXB0RWxlbWVu
dC0+ZGlzcGF0Y2hFdmVudChjcmVhdGVTY3JpcHRFcnJvckV2ZW50KCkpOwogICAgICAgICBlbHNl
IHsKLS0gCjEuNy4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>