<?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>84304</bug_id>
          
          <creation_ts>2012-04-18 17:18:37 -0700</creation_ts>
          <short_desc>WebFrameLoaderClient::dispatchWillSendSubmitEvent() needs to be implemented for WebKit2</short_desc>
          <delta_ts>2012-05-03 14:47:14 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>605256</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-04-18 17:18:37 -0700</bug_when>
    <thetext>WebFrameLoaderClient::dispatchWillSendSubmitEvent() needs to be implemented for WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607154</commentid>
    <comment_count>1</comment_count>
      <attachid>138223</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-04-20 23:19:34 -0700</bug_when>
    <thetext>Created attachment 138223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607329</commentid>
    <comment_count>2</comment_count>
      <attachid>138223</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-04-21 21:59:41 -0700</bug_when>
    <thetext>Comment on attachment 138223
Patch

As with all new API additions, this should have an API test in TestWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609300</commentid>
    <comment_count>3</comment_count>
      <attachid>138699</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-04-24 17:30:24 -0700</bug_when>
    <thetext>Created attachment 138699
Patch with test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609304</commentid>
    <comment_count>4</comment_count>
      <attachid>138699</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-24 17:33:00 -0700</bug_when>
    <thetext>Comment on attachment 138699
Patch with test

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:743
&gt; +    WebFrame* sourceFrame = static_cast&lt;WebFrameLoaderClient*&gt;(formState-&gt;sourceDocument()-&gt;frame()-&gt;loader()-&gt;client())-&gt;webFrame();

Can sourceDocument()-&gt;frame() be 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609317</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-04-24 17:47:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 138699 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138699&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:743
&gt; &gt; +    WebFrame* sourceFrame = static_cast&lt;WebFrameLoaderClient*&gt;(formState-&gt;sourceDocument()-&gt;frame()-&gt;loader()-&gt;client())-&gt;webFrame();
&gt; 
&gt; Can sourceDocument()-&gt;frame() be 0?

I don&apos;t know, but I copied this line from WebFrameLoaderClient::dispatchWillSubmitForm(). In what cases would a document&apos;s frame be 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609479</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-04-24 23:15:00 -0700</bug_when>
    <thetext>A document created with document.implementation.createDocument, XMLHttpRequest.responseXML, or XSLTProcessor will have a null frame. I don&apos;t know if form.submit() will work in WebKit trunk in such document, but nothing obvious prevents it from working conceptually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610102</commentid>
    <comment_count>7</comment_count>
      <attachid>138223</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-04-25 15:38:33 -0700</bug_when>
    <thetext>Comment on attachment 138223
Patch

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:288
&gt; +    WKBundlePageWillSendSubmitEventCallback                             willSendSubmitEvent;

This will break the nighties. You need to mark this as being in version 1 and set the kWKBundlePageFormClientCurrentVersion to 1 as well (see https://trac.webkit.org/changeset/90162)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610128</commentid>
    <comment_count>8</comment_count>
      <attachid>138889</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-04-25 16:09:33 -0700</bug_when>
    <thetext>Created attachment 138889
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614619</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-05-02 13:48:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; A document created with document.implementation.createDocument, XMLHttpRequest.responseXML, or XSLTProcessor will have a null frame. I don&apos;t know if form.submit() will work in WebKit trunk in such document, but nothing obvious prevents it from working conceptually.

HTMLFormElement null checks the frame and doesn&apos;t dispatch these events if the frame is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614729</commentid>
    <comment_count>10</comment_count>
      <attachid>138889</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-02 15:32:26 -0700</bug_when>
    <thetext>Comment on attachment 138889
Patch v3

Your patch is not applying, and because of that, the EWS servers aren’t testing it. You should figure out why and fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614746</commentid>
    <comment_count>11</comment_count>
      <attachid>139899</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-05-02 15:53:34 -0700</bug_when>
    <thetext>Created attachment 139899
Patch v4

Patch that should apply to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614779</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-05-02 16:18:06 -0700</bug_when>
    <thetext>Ah, it&apos;s failing because this patch relies on another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614976</commentid>
    <comment_count>13</comment_count>
      <attachid>139945</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-05-02 21:31:31 -0700</bug_when>
    <thetext>Created attachment 139945
Patch v5

Nudge the EWS bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614979</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 21:34:15 -0700</bug_when>
    <thetext>Attachment 139945 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Tools/TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp:38:  The parameter name &quot;bundle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp:38:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615365</commentid>
    <comment_count>15</comment_count>
      <attachid>139945</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-03 10:02:23 -0700</bug_when>
    <thetext>Comment on attachment 139945
Patch v5

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

r=me

&gt; Tools/TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp:45
&gt; +    WKBundlePostMessage(InjectedBundleController::shared().bundle(), Util::toWK(&quot;DidReceiveWillSendSubmitEvent&quot;).get(), values);

You should probably check the values here as well.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html:7
&gt; +                    return;

Why is this window.location.search check and early return necessary?

&gt; Tools/TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html:15
&gt; +            &lt;input type=&quot;hidden&quot; name=&quot;hiddenField&quot; value=&quot;hidden field&quot;&gt;

It might be nice to add more fields + values here so that you can check they are being reported correctly through the API (see previous comment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615653</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2012-05-03 14:47:14 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 139945 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139945&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp:45
&gt; &gt; +    WKBundlePostMessage(InjectedBundleController::shared().bundle(), Util::toWK(&quot;DidReceiveWillSendSubmitEvent&quot;).get(), values);
&gt; 
&gt; You should probably check the values here as well.

The values are checked in the UI process.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html:7
&gt; &gt; +                    return;
&gt; 
&gt; Why is this window.location.search check and early return necessary?

The form is submitted back to itself, which I figured would trigger another onload event. I was trying to prevent an infinite loop of this, though I&apos;m not sure it&apos;s necessary.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html:15
&gt; &gt; +            &lt;input type=&quot;hidden&quot; name=&quot;hiddenField&quot; value=&quot;hidden field&quot;&gt;
&gt; 
&gt; It might be nice to add more fields + values here so that you can check they are being reported correctly through the API (see previous comment).

OK, I added a password field. Only text field values are passed, so there&apos;s not a lot of value in other input types.

Thanks for the review. Landed in &lt;http://trac.webkit.org/changeset/116016&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138223</attachid>
            <date>2012-04-20 23:19:34 -0700</date>
            <delta_ts>2012-04-25 15:38:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0003-WebFrameLoaderClient-dispatchWillSendSubmitEvent-nee.patch</filename>
            <type>text/plain</type>
            <size>9521</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBmYzMwNDkxMTU4YzUxODMyZTQ0NWE2NjNhMTA4MzVhMjRhMGIwNWJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxOCBBcHIgMjAxMiAyMDowOTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy8z
XSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkKIG5l
ZWRzIHRvIGJlIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgpEZWNsYXJlIHdp
bGxTZW5kU3VibWl0RXZlbnQgb24gV0tCdW5kbGVQYWdlRm9ybUNsaWVudC4KCiogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJtaXRFdmVudCk6CkZy
b20gdGhlIFN0cmluZyBwYWlyIHZlY3RvciwgY3JlYXRlIGEgbWFwIGZyb20gY29udHJvbCBuYW1l
IHRvIHZhbHVlLgpDYWxsIHRoZSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2ZW50LgoKKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKRGVj
bGFyZSB3aWxsU2VuZFN1Ym1pdEV2ZW50LgoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCk6CkNhbGwgdGhlIGluamVjdGVkIGJ1bmRsZSBmb3Jt
IGNsaWVudCdzIHdpbGxTZW5kU3VibWl0RXZlbnQuCgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKVW4tc3R1YiB3aWxsU2VuZFN1Ym1pdEV2ZW50Lgot
LS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyNiArKysrKysrKysrKysrKysrKysrKwogLi4uL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmggfCAgICAyICsrCiAuLi4vSW5qZWN0ZWRCdW5kbGVQYWdlRm9y
bUNsaWVudC5jcHAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysKIC4uLi9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggIHwgICAgMSArCiAuLi4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8ICAgMTMgKysrKysr
KysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAg
fCAgICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNDRjMTZiMS4uMGNjMzZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDMxIEBACiAyMDEyLTA0LTE4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CiAKKyAgICAgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRF
dmVudCgpIG5lZWRzIHRvIGJlCisgICAgICAgIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMwNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSB3aWxs
U2VuZFN1Ym1pdEV2ZW50IG9uIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU2Vu
ZFN1Ym1pdEV2ZW50KToKKyAgICAgICAgRnJvbSB0aGUgU3RyaW5nIHBhaXIgdmVjdG9yLCBjcmVh
dGUgYSBtYXAgZnJvbSBjb250cm9sIG5hbWUgdG8gdmFsdWUuCisgICAgICAgIENhbGwgdGhlIGNs
aWVudCdzIHdpbGxTZW5kU3VibWl0RXZlbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAgICAgRGVjbGFy
ZSB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgorICAgICAgICBDYWxs
IHRoZSBpbmplY3RlZCBidW5kbGUgZm9ybSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2ZW50Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICBVbi1zdHViIHdpbGxTZW5kU3VibWl0RXZlbnQuCisKKzIwMTItMDQtMTgg
IEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKwogICAgICAgICBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkgc2hvdWxkIGJlIGdpdmVu
IG1vcmUKICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm0gYmVpbmcgc3VibWl0dGVk
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI5Nwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggNWE0ZDBmNi4uZjhlN2U1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0yNzQsNiArMjc0LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlVGV4dERpZENoYW5nZUluVGV4dEZpZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWcKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRBcmVh
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRt
bFRleHRBcmVhRWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRQZXJmb3Jt
QWN0aW9uSW5UZXh0RmllbGRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
Tm9kZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVtZW50SGFuZGxlLCBXS0lucHV0RmllbGRBY3Rpb25U
eXBlIGFjdGlvblR5cGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sRm9ybUVs
ZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlRnJhbWVSZWYgc291
cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFNl
bmRTdWJtaXRFdmVudENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIGh0bWxGb3JtRWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tCdW5kbGVGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IHsK
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yODQsNiArMjg1LDcgQEAgc3RydWN0IFdLQnVu
ZGxlUGFnZUZvcm1DbGllbnQgewogICAgIFdLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRB
cmVhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dERpZENoYW5nZUluVGV4dEFy
ZWE7CiAgICAgV0tCdW5kbGVQYWdlU2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQ7CiAgICAg
V0tCdW5kbGVQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWxsU3VibWl0Rm9ybTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsU2VuZFN1Ym1p
dEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxTZW5kU3VibWl0
RXZlbnQ7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRm9ybUNsaWVudCBXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmNwcAppbmRleCAzOTkyNGVjLi4zNjU0MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKQEAgLTgzLDYgKzgzLDIxIEBAIGJvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6c2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxk
KFdlYlBhZ2UqIHBhZ2UsCiAgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZFBlcmZvcm1BY3Rpb25J
blRleHRGaWVsZCh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIGFjdGlvblR5
cGUsIHRvQVBJKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJtaXRFdmVudChXZWJQYWdlKiBwYWdl
LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJGcmFtZSogZnJhbWUsIFdlYkZyYW1l
KiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYg
dmFsdWVzKQoreworICAgIGlmICghbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gbm9kZUhh
bmRsZSA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoZm9ybUVsZW1lbnQp
OworCisgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtYXA7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1hcC5zZXQodmFsdWVz
W2ldLmZpcnN0LCBXZWJTdHJpbmc6OmNyZWF0ZSh2YWx1ZXNbaV0uc2Vjb25kKSk7CisgICAgUmVm
UHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IHRleHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9u
YXJ5OjphZG9wdChtYXApOworCisgICAgbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCh0b0FQ
SShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoc291
cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5m
byk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZv
cm0oV2ViUGFnZSogcGFnZSwgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViRnJhbWUq
IGZyYW1lLCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3Ry
aW5nLCBTdHJpbmc+ID4mIHZhbHVlcywgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewog
ICAgIGlmICghbV9jbGllbnQud2lsbFN1Ym1pdEZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5oCmluZGV4IDg5MzY5ZGYuLjQ1NTAyOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYlBhZ2UqLCBXZWJDb3Jl
OjpIVE1MVGV4dEFyZWFFbGVtZW50KiwgV2ViRnJhbWUqKTsKICAgICBib29sIHNob3VsZFBlcmZv
cm1BY3Rpb25JblRleHRGaWVsZChXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCos
IFdLSW5wdXRGaWVsZEFjdGlvblR5cGUsIFdlYkZyYW1lKik7ICAgIAogICAgIHZvaWQgd2lsbFN1
Ym1pdEZvcm0oV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwg
V2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPiA+JiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKKyAgICB2b2lkIHdpbGxTZW5k
U3VibWl0RXZlbnQoV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1l
KiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywg
U3RyaW5nPiA+Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZGM5NjE2My4uMGNhYTVmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTczMiw2ICs3MzIsMTkgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJj
ZUVycm9yJgogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3kobV9mcmFtZS0+ZnJhbWVJRCgpLCBlcnJvciwgSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPEZv
cm1TdGF0ZT4gcHJwRm9ybVN0YXRlKQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQ
dHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7CisgICAgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtID0gZm9ybVN0YXRlLT5mb3JtKCk7CisgICAgV2ViRnJhbWUqIHNvdXJjZUZyYW1l
ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihmb3JtU3RhdGUtPnNvdXJjZURv
Y3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisKKyAg
ICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS53aWxsU2VuZFN1Ym1pdEV2ZW50
KHdlYlBhZ2UsIGZvcm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCBmb3JtU3RhdGUtPnRleHRGaWVs
ZFZhbHVlcygpKTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxs
U3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1T
dGF0ZT4gcHJwRm9ybVN0YXRlKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDdmYThkZS4uYjg1NjJk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3koY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoUGFzc1JlZlB0cjxXZWJD
b3JlOjpGb3JtU3RhdGU+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hX
aWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSBPVkVSUklE
RTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0tIAoxLjcuOS4yIChBcHBsZSBHaXQtMzAp
Cgo=
</data>
<flag name="review"
          id="143519"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138699</attachid>
            <date>2012-04-24 17:30:24 -0700</date>
            <delta_ts>2012-04-25 16:09:33 -0700</delta_ts>
            <desc>Patch with test</desc>
            <filename>0003-WebFrameLoaderClient-dispatchWillSendSubmitEvent-nee.patch</filename>
            <type>text/plain</type>
            <size>25495</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBjZjYzNTc4M2U5NGRlNzExMGNkNDk2NzE3NTUxMDMxYmQyMGZiNDlmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxOCBBcHIgMjAxMiAyMDowOTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy8z
XSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkKIG5l
ZWRzIHRvIGJlIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291
cmNlL1dlYktpdDI6CgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmg6CkRlY2xhcmUgd2lsbFNlbmRTdWJtaXRFdmVudCBvbiBXS0J1bmRsZVBhZ2VGb3JtQ2xp
ZW50LgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwOgooV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU2Vu
ZFN1Ym1pdEV2ZW50KToKRnJvbSB0aGUgU3RyaW5nIHBhaXIgdmVjdG9yLCBjcmVhdGUgYSBtYXAg
ZnJvbSBjb250cm9sIG5hbWUgdG8gdmFsdWUuCkNhbGwgdGhlIGNsaWVudCdzIHdpbGxTZW5kU3Vi
bWl0RXZlbnQuCgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudC5oOgpEZWNsYXJlIHdpbGxTZW5kU3VibWl0RXZlbnQuCgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KToKQ2FsbCB0aGUgaW5q
ZWN0ZWQgYnVuZGxlIGZvcm0gY2xpZW50J3Mgd2lsbFNlbmRTdWJtaXRFdmVudC4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgpVbi1zdHViIHdpbGxT
ZW5kU3VibWl0RXZlbnQuCgpUb29sczoKCiogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CkFkZGVkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgoKKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHA6IEFkZGVk
LgooVGVzdFdlYktpdEFQSTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgpM
b29rIGZvciB0aGUgIkRpZFJlY2VpdmVXaWxsU2VuZFN1Ym1pdEV2ZW50IiBtZXNzYWdlLiBUaGUg
bWVzc2FnZSBib2R5CndpbGwgYmUgdGhlIGRpY3Rpb25hcnkgb2YgZm9ybSBjb250cm9sIG5hbWVz
IGFuZCB2YWx1ZXMgcGFzc2VkIHRvIHRoZQppbmplY3RlZCBidW5kbGUncyB3aWxsU2VuZFN1Ym1p
dEV2ZW50IGhhbmRsZXI7IGxvb2sgZm9yIHRoZSBwYWlyCiJ0ZXh0RmllbGQiIC0+ICJ0ZXh0IGZp
ZWxkIi4KKFRlc3RXZWJLaXRBUEk6OnNldEluamVjdGVkQnVuZGxlQ2xpZW50KToKKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJt
aXRFdmVudF9CdW5kbGUuY3BwOiBBZGRlZC4KKFRlc3RXZWJLaXRBUEk6OndpbGxTZW5kU3VibWl0
RXZlbnQpOgpQb3N0IGEgbWVzc2FnZSB0byB0aGUgVGVzdFdlYktpdEFQSSBwcm9jZXNzIHdpdGgg
dGhlIGRpY3Rpb25hcnkgb2YgZm9ybQpjb250cm9sIG5hbWVzIGFuZCB2YWx1ZXMgdGhhdCB3ZSBy
ZWNlaXZlZC4KKFRlc3RXZWJLaXRBUEk6OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpXaWxsU2Vu
ZFN1Ym1pdEV2ZW50VGVzdCk6CihUZXN0V2ViS2l0QVBJOjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVz
dDo6ZGlkQ3JlYXRlUGFnZSk6ClNldCB1cCB0aGUgcGFnZSdzIGZvcm0gY2xpZW50LgoKKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbDogQWRkZWQu
Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDI2ICsrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuaCB8ICAgIDIgKwogLi4uL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3Bw
ICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5oICB8ICAgIDEgKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCAgICAgICAgfCAgIDEzICsrKysKIC4uLi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwgICAgMiArLQogVG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICsrKysrKysrKwog
Li4uL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgIDEy
ICsrKysKIC4uLi9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwICAgICAgICAg
IHwgICA2NyArKysrKysrKysrKysrKysrKysrKwogLi4uL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRT
dWJtaXRFdmVudF9CdW5kbGUuY3BwICAgfCAgIDY1ICsrKysrKysrKysrKysrKysrKysKIC4uLi9U
ZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgICAgICAgIHwgICAxOSArKysr
KysKIDExIGZpbGVzIGNoYW5nZWQsIDI1MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxT
ZW5kU3VibWl0RXZlbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRp
bmctZm9ybS5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ0YzE2YjEuLjBjYzM2ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwzMSBAQAogMjAxMi0wNC0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRA
YXBwbGUuY29tPgogCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxT
ZW5kU3VibWl0RXZlbnQoKSBuZWVkcyB0byBiZQorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgV2Vi
S2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQz
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgIERl
Y2xhcmUgd2lsbFNlbmRTdWJtaXRFdmVudCBvbiBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVu
dDo6d2lsbFNlbmRTdWJtaXRFdmVudCk6CisgICAgICAgIEZyb20gdGhlIFN0cmluZyBwYWlyIHZl
Y3RvciwgY3JlYXRlIGEgbWFwIGZyb20gY29udHJvbCBuYW1lIHRvIHZhbHVlLgorICAgICAgICBD
YWxsIHRoZSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6CisgICAg
ICAgIERlY2xhcmUgd2lsbFNlbmRTdWJtaXRFdmVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KToKKyAg
ICAgICAgQ2FsbCB0aGUgaW5qZWN0ZWQgYnVuZGxlIGZvcm0gY2xpZW50J3Mgd2lsbFNlbmRTdWJt
aXRFdmVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgVW4tc3R1YiB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisy
MDEyLTA0LTE4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKICAgICAg
ICAgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpIHNob3Vs
ZCBiZSBnaXZlbiBtb3JlCiAgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb3JtIGJlaW5n
IHN1Ym1pdHRlZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODQyOTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDVhNGQwZjYuLmY4ZTdlNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMjc0LDYgKzI3NCw3IEBAIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRGaWVsZENhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnCiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdl
SW5UZXh0QXJlYUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFu
ZGxlUmVmIGh0bWxUZXh0QXJlYUVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hv
dWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSwgV0tJbnB1dEZp
ZWxkQWN0aW9uVHlwZSBhY3Rpb25UeXBlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxTdWJtaXRG
b3JtQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
aHRtbEZvcm1FbGVtZW50SGFuZGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZUZy
YW1lUmVmIHNvdXJjZUZyYW1lLCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS1R5cGVSZWYqIHVz
ZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVdpbGxTZW5kU3VibWl0RXZlbnRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sRm9ybUVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLQnVuZGxlRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2
YWx1ZXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRm9y
bUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMjg0LDYgKzI4NSw3IEBAIHN0
cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IHsKICAgICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hh
bmdlSW5UZXh0QXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHRleHREaWRDaGFu
Z2VJblRleHRBcmVhOwogICAgIFdLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRG
aWVsZENhbGxiYWNrICAgICAgICAgICAgICAgICAgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZp
ZWxkOwogICAgIFdLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07CisgICAgV0tCdW5kbGVQYWdlV2ls
bFNlbmRTdWJtaXRFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxs
U2VuZFN1Ym1pdEV2ZW50OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGll
bnQgV0tCdW5kbGVQYWdlRm9ybUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudC5jcHAKaW5kZXggMzk5MjRlYy4uMzY1NDMwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCkBAIC04Myw2ICs4MywyMSBA
QCBib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3VsZFBlcmZvcm1BY3Rpb25J
blRleHRGaWVsZChXZWJQYWdlKiBwYWdlLAogICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRQZXJm
b3JtQWN0aW9uSW5UZXh0RmllbGQodG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkp
LCBhY3Rpb25UeXBlLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCit2
b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2Vi
UGFnZSogcGFnZSwgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1l
LCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+ID4mIHZhbHVlcykKK3sKKyAgICBpZiAoIW1fY2xpZW50LndpbGxTZW5kU3VibWl0RXZl
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGU+IG5vZGVIYW5kbGUgPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKGZv
cm1FbGVtZW50KTsKKworICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICBtYXAu
c2V0KHZhbHVlc1tpXS5maXJzdCwgV2ViU3RyaW5nOjpjcmVhdGUodmFsdWVzW2ldLnNlY29uZCkp
OworICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiB0ZXh0RmllbGRzTWFwID0gSW1tdXRh
YmxlRGljdGlvbmFyeTo6YWRvcHQobWFwKTsKKworICAgIG1fY2xpZW50LndpbGxTZW5kU3VibWl0
RXZlbnQodG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCB0b0FQSShmcmFtZSks
IHRvQVBJKHNvdXJjZUZyYW1lKSwgdG9BUEkodGV4dEZpZWxkc01hcC5nZXQoKSksIG1fY2xpZW50
LmNsaWVudEluZm8pOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6Ondp
bGxTdWJtaXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQs
IFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1ZXMsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2Vy
RGF0YSkKIHsKICAgICBpZiAoIW1fY2xpZW50LndpbGxTdWJtaXRGb3JtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaAppbmRleCA4OTM2OWRmLi40NTUwMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaApAQCAtNTMsNiAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShXZWJQYWdl
KiwgV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudCosIFdlYkZyYW1lKik7CiAgICAgYm9vbCBz
aG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQqLCBXS0lucHV0RmllbGRBY3Rpb25UeXBlLCBXZWJGcmFtZSopOyAgICAKICAgICB2
b2lkIHdpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBX
ZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxT
dHJpbmcsIFN0cmluZz4gPiYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9p
ZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQq
LCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4gPiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGRjOTYxNjMuLjBjYWE1ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03MzIsNiArNzMyLDE5IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlVuYWJsZVRvSW1wbGVtZW50UG9saWN5KG1fZnJhbWUtPmZyYW1lSUQoKSwgZXJyb3IsIElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwogfQogCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoUGFz
c1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSkKK3sKKyAgICBXZWJQYWdlKiB3ZWJQYWdl
ID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0YXRlOworICAgIEhU
TUxGb3JtRWxlbWVudCogZm9ybSA9IGZvcm1TdGF0ZS0+Zm9ybSgpOworICAgIFdlYkZyYW1lKiBz
b3VyY2VGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZm9ybVN0YXRl
LT5zb3VyY2VEb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFt
ZSgpOworCisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkud2lsbFNlbmRT
dWJtaXRFdmVudCh3ZWJQYWdlLCBmb3JtLCBtX2ZyYW1lLCBzb3VyY2VGcmFtZSwgZm9ybVN0YXRl
LT50ZXh0RmllbGRWYWx1ZXMoKSk7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA3ZmE4
ZGUuLmI4NTYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwNiw3ICsx
MDYsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsK
ICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NS
ZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRl
PikgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHJldmVydFRvUHJvdmlzaW9uYWxT
dGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE0OWU3M2MuLjZkZmE1OGIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMyBAQAorMjAxMi0wNC0yNCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0
RXZlbnQoKSBuZWVkcyB0byBiZQorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0MgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRl
ZCBuZXcgZmlsZXMgdG8gcHJvamVjdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIExv
b2sgZm9yIHRoZSAiRGlkUmVjZWl2ZVdpbGxTZW5kU3VibWl0RXZlbnQiIG1lc3NhZ2UuIFRoZSBt
ZXNzYWdlIGJvZHkKKyAgICAgICAgd2lsbCBiZSB0aGUgZGljdGlvbmFyeSBvZiBmb3JtIGNvbnRy
b2wgbmFtZXMgYW5kIHZhbHVlcyBwYXNzZWQgdG8gdGhlCisgICAgICAgIGluamVjdGVkIGJ1bmRs
ZSdzIHdpbGxTZW5kU3VibWl0RXZlbnQgaGFuZGxlcjsgbG9vayBmb3IgdGhlIHBhaXIKKyAgICAg
ICAgInRleHRGaWVsZCIgLT4gInRleHQgZmllbGQiLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRF
dmVudF9CdW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxTZW5k
U3VibWl0RXZlbnQpOgorICAgICAgICBQb3N0IGEgbWVzc2FnZSB0byB0aGUgVGVzdFdlYktpdEFQ
SSBwcm9jZXNzIHdpdGggdGhlIGRpY3Rpb25hcnkgb2YgZm9ybQorICAgICAgICBjb250cm9sIG5h
bWVzIGFuZCB2YWx1ZXMgdGhhdCB3ZSByZWNlaXZlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdDo6ZGlkQ3JlYXRlUGFn
ZSk6CisgICAgICAgIFNldCB1cCB0aGUgcGFnZSdzIGZvcm0gY2xpZW50LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA0LTE5ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hl
c0BsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0dUS10gMyBmYXN0LyBsYXlvdXQgdGVzdHMg
ZmFpbGluZyBhZnRlciB1cGdyYWRpbmcgbGlic291cCB0byAyLjM3LjkyCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGI4MjU3OWYuLjRlZjI2NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01MCw2ICs1MCw5IEBACiAJCTUyQ0I0NzQxMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2FkQWx0ZXJu
YXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDQjQ3NDAxNDQ4RkI5MzAwODczOTk1IC8qIExv
YWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgKi87IH07CiAJCTUy
RTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkU1Q0U0NTE0RDIxRTlEMDAzQjJCRDgg
LyogUGFyZW50RnJhbWUuY3BwICovOyB9OwogCQk1MkU1Q0U0OTE0RDIxRUFCMDAzQjJCRDggLyog
UGFyZW50RnJhbWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyRTVDRTQ4MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5k
bGUuY3BwICovOyB9OworCQk3NkUxODJEQTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJt
aXRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NkUxODJEOTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgKi87
IH07CisJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3Bw
ICovOyB9OworCQk3NkUxODJERjE1NDc2N0U2MDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZv
cm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRt
bCAqLzsgfTsKIAkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAxOTIx
NDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk5MzBBRDQwMjE1
MDY5OEQwMDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUQ0MDExNTA2OThCMzAwNjc5NzBG
IC8qIGxvdHMtb2YtdGV4dC5odG1sICovOyB9OwogCQk5MzYxMDAyOTE0REM5NUE3MDA2MTM3OUQg
LyogbG90cy1vZi1pZnJhbWVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlEIC8qIGxvdHMtb2Yt
aWZyYW1lcy5odG1sICovOyB9OwpAQCAtMTcxLDYgKzE3NCw3IEBACiAJCQlmaWxlcyA9ICgKIAkJ
CQlCNTVGMTFCRTE1MTkxQTA2MDA5MTU5MTYgLyogQWhlbS50dGYgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQjU1RjExQjcxNTE3RDAzMzAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0
b21Gb250Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNzZFMTgyREYxNTQ3NjdFNjAw
RjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJNTE0MkIyNzMxNTE3QzhDODAwQzMyQjE5IC8qIENvbnRleHRNZW51Q2FuQ29weVVSTC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxN0U3RTA0MTUxMTE5QzEwMEQwQjAwOCAv
KiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQkzNzkwMjhCOTE0RkFDMjRDMDA3RTZCNDMgLyogYWNjZXB0c0Zp
cnN0TW91c2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTI0Miw2ICsyNDYsOSBAQAog
CQk1MkNCNDc0MDE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRo
Tm9uRGlyZWN0b3J5VVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRTVDRTQ1MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRG
cmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJlbnRGcmFt
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRTVDRTQ4MTREMjFFQUIwMDNC
MkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGFyZW50RnJhbWVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzZFMTgyRDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbFNlbmRTdWJtaXRF
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2RTE4MkRDMTU0NzU2OTEw
MEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFERCAvKiBh
dXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1
dG8tc3VibWl0dGluZy1mb3JtLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdCdWlsZGVyLmNwcDsgcGF0aCA9IFdURi9T
dHJpbmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEw
NDg2QUE3NjAwRDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGlu
Y2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRlc3RXZWJLaXRBUEk7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9m
LXRleHQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzAsNiArNTM3LDggQEAKIAkJCQlC
QzIyRDMxNzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAqLywKIAkJ
CQk1MjBCQ0Y0QjE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgKi8sCiAJCQkJNTIw
QkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLywKKwkJCQk3
NkUxODJEOTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgKi8sCisJ
CQkJNzZFMTgyREMxNTQ3NTY5MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxl
LmNwcCAqLywKIAkJCQlCQzkwMUUyMjE0OTJBRENFMDA3NEE2NjcgLyogV0tDb25uZWN0aW9uLmNw
cCAqLywKIAkJCQlCQzkwMUUzMTE0OTJBRjM5MDA3NEE2NjcgLyogV0tDb25uZWN0aW9uX0J1bmRs
ZS5jcHAgKi8sCiAJCQkJQkM3QjYxOUExMjk5RkU5RTAwRDE3NEE0IC8qIFdLUHJlZmVyZW5jZXMu
Y3BwICovLApAQCAtNTc3LDYgKzU4Niw3IEBACiAJCQkJQkNBQTQ4NTUxNEEwMjE2NDAwODhGQUM0
IC8qIHNpbXBsZS10YWxsLmh0bWwgKi8sCiAJCQkJQkM5MDk3NzgxMjU1NzFBQjAwMDgzNzU2IC8q
IHNpbXBsZS5odG1sICovLAogCQkJCUMwMkI3ODgyMTI2NjE1NDEwMDI2QkYwRiAvKiBzcGFjZWJh
ci1zY3JvbGxpbmcuaHRtbCAqLywKKwkJCQk3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0
by1zdWJtaXR0aW5nLWZvcm0uaHRtbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg0Niw2ICs4NTYsNyBAQAogCQkJCTUxNDJC
MjcxMTUxN0M4OEIwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDNTQwRjc3NjE1MkU0REEwMDBBNDBDOEMgLyogU2ltcGxpZnlNYXJrdXAubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1MUZDRjc5QTE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzZFMTgyREExNTQ3
NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC04NzUsNiArODg2LDcgQEAKIAkJCQlCQzIyRDMxOTE0REM2OEI5MDBGRkIxREQgLyogVXNlck1l
c3NhZ2VfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQUY0RUNFMTUwNkYwNjQwMDdG
RDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkNGN0ExMTUzNEIyQTAwMDEwNDQ5MSAvKiBTaG91bGRH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzZF
MTgyREQxNTQ3NTY5MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjA4ZWM2Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIK
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkaWRSZWNlaXZlTWVz
c2FnZTsKKworc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUo
V0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIGJvZHksIGNv
bnN0IHZvaWQqKQoreworICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gdHJ1ZTsKKworICAgIEVYUEVD
VF9XS19TVFJFUSgiRGlkUmVjZWl2ZVdpbGxTZW5kU3VibWl0RXZlbnQiLCBtZXNzYWdlTmFtZSk7
CisKKyAgICBFWFBFQ1RfRVEoV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCksIFdLR2V0VHlwZUlEKGJv
ZHkpKTsKKyAgICBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9u
YXJ5UmVmPihib2R5KTsKKworICAgIFdLU3RyaW5nUmVmIHRleHRGaWVsZFZhbHVlV0sgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleSh2YWx1ZXMsIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ0ZXh0RmllbGQiKSkpOworICAgIEVYUEVDVF9X
S19TVFJFUSgidGV4dCBmaWVsZCIsIHRleHRGaWVsZFZhbHVlV0spOworfQorCitzdGF0aWMgdm9p
ZCBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYgY29udGV4dCkKK3sKKyAgICBX
S0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKKyAgICBt
ZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGll
bnQpKTsKKyAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC5kaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSA9IGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlOworCisgICAg
V0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dCwgJmluamVjdGVkQnVuZGxl
Q2xpZW50KTsKK30KKworVEVTVChXZWJLaXQyLCBXaWxsU2VuZFN1Ym1pdEV2ZW50KQoreworICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiV2lsbFNlbmRTdWJtaXRFdmVudFRlc3QiKSk7
CisgICAgc2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSk7CisKKyAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdl
YlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJhdXRvLXN1
Ym1pdHRpbmctZm9ybSIsICJodG1sIikpLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmRpZFJlY2Vp
dmVNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRf
QnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1
Ym1pdEV2ZW50X0J1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZTAyYjhkMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRl
c3QuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0J1bmRsZVBhZ2UuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBX
aWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRlc3QgeworcHVi
bGljOgorICAgIFdpbGxTZW5kU3VibWl0RXZlbnRUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVu
dGlmaWVyKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1
bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOworfTsKKworc3RhdGljIEluamVjdGVkQnVuZGxl
VGVzdDo6UmVnaXN0ZXI8V2lsbFNlbmRTdWJtaXRFdmVudFRlc3Q+IHJlZ2lzdHJhcigiV2lsbFNl
bmRTdWJtaXRFdmVudFRlc3QiKTsKKworc3RhdGljIHZvaWQgd2lsbFNlbmRTdWJtaXRFdmVudChX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwg
V0tCdW5kbGVGcmFtZVJlZiwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgY29uc3Qgdm9pZCopCit7
CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXI6OnNoYXJl
ZCgpLmJ1bmRsZSgpLCBVdGlsOjp0b1dLKCJEaWRSZWNlaXZlV2lsbFNlbmRTdWJtaXRFdmVudCIp
LmdldCgpLCB2YWx1ZXMpOworfQorCitXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdDo6V2lsbFNlbmRT
dWJtaXRFdmVudFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgOiBJbmpl
Y3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBXaWxsU2VuZFN1Ym1pdEV2
ZW50VGVzdDo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKQoreworICAgIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQgZm9ybUNsaWVudDsKKyAgICBt
ZW1zZXQoJmZvcm1DbGllbnQsIDAsIHNpemVvZihmb3JtQ2xpZW50KSk7CisgICAgCisgICAgZm9y
bUNsaWVudC52ZXJzaW9uID0gMDsKKyAgICBmb3JtQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOwor
ICAgIGZvcm1DbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCA9IHdpbGxTZW5kU3VibWl0RXZlbnQ7
CisgICAgCisgICAgV0tCdW5kbGVQYWdlU2V0Rm9ybUNsaWVudChwYWdlLCAmZm9ybUNsaWVudCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI2ZWVlYwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRpbmct
Zm9ybS5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gc3VibWl0Rm9ybUlmTmVjZXNzYXJ5KCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmZv
cm1zWzBdLnN1Ym1pdC5jbGljaygpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdWJtaXRGb3JtSWZOZWNlc3NhcnkoKSI+
CisgICAgICAgIDxmb3JtIGFjdGlvbj0iIyIgbWV0aG9kPSJHRVQiPgorICAgICAgICAgICAgPGlu
cHV0IHR5cGU9InRleHQiIG5hbWU9InRleHRGaWVsZCIgdmFsdWU9InRleHQgZmllbGQiPgorICAg
ICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGlkZGVuRmllbGQiIHZhbHVlPSJo
aWRkZW4gZmllbGQiPgorICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3Vi
bWl0Ij4KKyAgICAgICAgPC9mb3JtPgorICAgIDwvYm9keT4KKzwvaHRtbD4KLS0gCjEuNy45LjIg
KEFwcGxlIEdpdC0zMCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138889</attachid>
            <date>2012-04-25 16:09:33 -0700</date>
            <delta_ts>2012-05-02 15:53:34 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>0003-WebFrameLoaderClient-dispatchWillSendSubmitEvent-nee.patch</filename>
            <type>text/plain</type>
            <size>27305</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBkMzg1MTBjMWI4N2JkZWQ2NDIwOGExOGM0NGZhMDg2NmZiOWUwODQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxOCBBcHIgMjAxMiAyMDowOTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy8z
XSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkKIG5l
ZWRzIHRvIGJlIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291
cmNlL1dlYktpdDI6CgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmg6CkRlY2xhcmUgd2lsbFNlbmRTdWJtaXRFdmVudCBvbiBXS0J1bmRsZVBhZ2VGb3JtQ2xp
ZW50LgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwOgooV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU2Vu
ZFN1Ym1pdEV2ZW50KToKRnJvbSB0aGUgU3RyaW5nIHBhaXIgdmVjdG9yLCBjcmVhdGUgYSBtYXAg
ZnJvbSBjb250cm9sIG5hbWUgdG8gdmFsdWUuCkNhbGwgdGhlIGNsaWVudCdzIHdpbGxTZW5kU3Vi
bWl0RXZlbnQuCgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudC5oOgpEZWNsYXJlIHdpbGxTZW5kU3VibWl0RXZlbnQuCgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KToKQ2FsbCB0aGUgaW5q
ZWN0ZWQgYnVuZGxlIGZvcm0gY2xpZW50J3Mgd2lsbFNlbmRTdWJtaXRFdmVudC4KCiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgpVbi1zdHViIHdpbGxT
ZW5kU3VibWl0RXZlbnQuCgoqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwOgooV2ViS2l0KToK
U2V0IHRoZSBpbnRlcmZhY2Ugc2l6ZXMgZm9yIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ7IHZlcnNp
b24gMSBpbmNsdWRlcwp3aWxsU2VuZFN1Ym1pdEV2ZW50LgoKKiBTaGFyZWQvQVBJQ2xpZW50VHJh
aXRzLmg6CkRlY2xhcmUgYSBzcGVjaWFsaXphdGlvbiBmb3IgV0tCdW5kbGVQYWdlRm9ybUNsaWVu
dC4KCiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKQnVt
cCB0aGUgV0tCdW5kbGVQYWdlRm9ybUNsaWVudCB2ZXJzaW9uIG51bWJlci4KClRvb2xzOgoKKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQWRk
ZWQgbmV3IGZpbGVzIHRvIHByb2plY3QuCgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
aWxsU2VuZFN1Ym1pdEV2ZW50LmNwcDogQWRkZWQuCihUZXN0V2ViS2l0QVBJOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6Ckxvb2sgZm9yIHRoZSAiRGlkUmVjZWl2ZVdpbGxT
ZW5kU3VibWl0RXZlbnQiIG1lc3NhZ2UuIFRoZSBtZXNzYWdlIGJvZHkKd2lsbCBiZSB0aGUgZGlj
dGlvbmFyeSBvZiBmb3JtIGNvbnRyb2wgbmFtZXMgYW5kIHZhbHVlcyBwYXNzZWQgdG8gdGhlCmlu
amVjdGVkIGJ1bmRsZSdzIHdpbGxTZW5kU3VibWl0RXZlbnQgaGFuZGxlcjsgbG9vayBmb3IgdGhl
IHBhaXIKInRleHRGaWVsZCIgLT4gInRleHQgZmllbGQiLgooVGVzdFdlYktpdEFQSTo6c2V0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQpOgooVGVzdFdlYktpdEFQSTo6VEVTVCk6CgoqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHA6IEFkZGVkLgoo
VGVzdFdlYktpdEFQSTo6d2lsbFNlbmRTdWJtaXRFdmVudCk6ClBvc3QgYSBtZXNzYWdlIHRvIHRo
ZSBUZXN0V2ViS2l0QVBJIHByb2Nlc3Mgd2l0aCB0aGUgZGljdGlvbmFyeSBvZiBmb3JtCmNvbnRy
b2wgbmFtZXMgYW5kIHZhbHVlcyB0aGF0IHdlIHJlY2VpdmVkLgooVGVzdFdlYktpdEFQSTo6V2ls
bFNlbmRTdWJtaXRFdmVudFRlc3Q6OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0KToKKFRlc3RXZWJL
aXRBUEk6OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpkaWRDcmVhdGVQYWdlKToKU2V0IHVwIHRo
ZSBwYWdlJ3MgZm9ybSBjbGllbnQuCgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9hdXRv
LXN1Ym1pdHRpbmctZm9ybS5odG1sOiBBZGRlZC4KLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwICAgICAgICAgIHwgICAgNSArKwogU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oICAgICAgICAgICAgfCAgICA0ICsr
CiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCB8ICAg
IDggKystCiAuLi4vSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgICAgICAgICAgICAg
ICB8ICAgMTUgKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmggIHwgICAgMSArCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwICAgICAgICB8ICAgMTEgKysrLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICsrKysrKysrKwogLi4uL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgIDEyICsrKysKIC4uLi9UZXN0cy9X
ZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwICAgICAgICAgIHwgICA2NyArKysrKysrKysr
KysrKysrKysrKwogLi4uL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUu
Y3BwICAgfCAgIDY1ICsrKysrKysrKysrKysrKysrKysKIC4uLi9UZXN0cy9XZWJLaXQyL2F1dG8t
c3VibWl0dGluZy1mb3JtLmh0bWwgICAgICAgIHwgICAxOSArKysrKysKIDEyIGZpbGVzIGNoYW5n
ZWQsIDI3MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
aWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbAoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCAzODJlMmI0Li5jNTU5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDIgQEAK
IDIwMTItMDQtMTggIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAorICAg
ICAgICBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkg
bmVlZHMgdG8gYmUKKyAgICAgICAgaW1wbGVtZW50ZWQgZm9yIFdlYktpdDIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MzA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICBEZWNsYXJlIHdpbGxTZW5kU3Vi
bWl0RXZlbnQgb24gV0tCdW5kbGVQYWdlRm9ybUNsaWVudC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTZW5kU3VibWl0
RXZlbnQpOgorICAgICAgICBGcm9tIHRoZSBTdHJpbmcgcGFpciB2ZWN0b3IsIGNyZWF0ZSBhIG1h
cCBmcm9tIGNvbnRyb2wgbmFtZSB0byB2YWx1ZS4KKyAgICAgICAgQ2FsbCB0aGUgY2xpZW50J3Mg
d2lsbFNlbmRTdWJtaXRFdmVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oOgorICAgICAgICBEZWNsYXJlIHdpbGxT
ZW5kU3VibWl0RXZlbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCk6CisgICAgICAgIENhbGwgdGhlIGlu
amVjdGVkIGJ1bmRsZSBmb3JtIGNsaWVudCdzIHdpbGxTZW5kU3VibWl0RXZlbnQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgIFVuLXN0dWIgd2lsbFNlbmRTdWJtaXRFdmVudC4KKworICAgICAgICAqIFNoYXJlZC9B
UElDbGllbnRUcmFpdHMuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgU2V0IHRoZSBp
bnRlcmZhY2Ugc2l6ZXMgZm9yIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ7IHZlcnNpb24gMSBpbmNs
dWRlcworICAgICAgICB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICogU2hhcmVkL0FQ
SUNsaWVudFRyYWl0cy5oOgorICAgICAgICBEZWNsYXJlIGEgc3BlY2lhbGl6YXRpb24gZm9yIFdL
QnVuZGxlUGFnZUZvcm1DbGllbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICBCdW1wIHRoZSBXS0J1bmRsZVBhZ2VG
b3JtQ2xpZW50IHZlcnNpb24gbnVtYmVyLgorCisyMDEyLTA0LTE4ICBKb24gSG9uZXljdXR0ICA8
amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKICAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpIHNob3VsZCBiZSBnaXZlbiBtb3JlCiAgICAgICAgIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBmb3JtIGJlaW5nIHN1Ym1pdHRlZAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyOTcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKaW5kZXggNGY1ZDhmYS4uOTVhMTZkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKQEAgLTYwLDQgKzYwLDkgQEAgY29u
c3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD46OmludGVyZmFjZVNpemVz
QnlWZXJzaW9uW10gPSB7CiAgICAgc2l6ZW9mKFdLUGFnZVVJQ2xpZW50KQogfTsKICAgICAKK2Nv
bnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlRm9ybUNsaWVudD46OmludGVy
ZmFjZVNpemVzQnlWZXJzaW9uW10gPSB7CisgICAgb2Zmc2V0b2YoV0tCdW5kbGVQYWdlRm9ybUNs
aWVudCwgd2lsbFNlbmRTdWJtaXRFdmVudCksCisgICAgc2l6ZW9mKFdLQnVuZGxlUGFnZUZvcm1D
bGllbnQpCit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElDbGllbnRUcmFpdHMuaAppbmRleCAxNmY4NmEwLi5jOWYyODZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC02MCw2ICs2MCwxMCBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnQ+IHsKICAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1
Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ+IHsKKyAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOworfTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBBUElDbGllbnRUcmFpdHNfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmgKaW5kZXggNWE0ZDBmNi4uNzAxMDRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCkBAIC0yNzQsMjAgKzI3NCwyNiBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VU
ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZwogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlVGV4dERpZENoYW5nZUluVGV4dEFyZWFDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sVGV4dEFyZWFF
bGVtZW50SGFuZGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rpb25JblRl
eHRGaWVsZENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxl
UmVmIGh0bWxJbnB1dEVsZW1lbnRIYW5kbGUsIFdLSW5wdXRGaWVsZEFjdGlvblR5cGUgYWN0aW9u
VHlwZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsU3VibWl0Rm9ybUNhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxGb3JtRWxlbWVudEhhbmRs
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVGcmFtZVJlZiBzb3VyY2VGcmFtZSwg
V0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsU2VuZFN1Ym1pdEV2
ZW50Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
aHRtbEZvcm1FbGVtZW50SGFuZGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZUZy
YW1lUmVmIHNvdXJjZUZyYW1lLCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnQgewogICAgIGludCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgCisgICAgLy8g
VmVyc2lvbiAwLgogICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEJlZ2luRWRpdGluZ0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nOwogICAg
IFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dEZpZWxkRGlkRW5kRWRpdGluZzsKICAgICBXS0J1bmRsZVBhZ2VUZXh0
RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHRleHRE
aWRDaGFuZ2VJblRleHRGaWVsZDsKICAgICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0
QXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRB
cmVhOwogICAgIFdLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZENhbGxi
YWNrICAgICAgICAgICAgICAgICAgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkOwogICAg
IFdLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07CisgICAgCisgICAgLy8gVmVyc2lvbiAxLgorICAg
IFdLQnVuZGxlUGFnZVdpbGxTZW5kU3VibWl0RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lsbFNlbmRTdWJtaXRFdmVudDsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1
bmRsZVBhZ2VGb3JtQ2xpZW50IFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ7CiAKLWVudW0geyBrV0tC
dW5kbGVQYWdlRm9ybUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMCB9OworZW51bSB7IGtXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50Q3VycmVudFZlcnNpb24gPSAxIH07CiAKIC8vIENvbnRleHRNZW51IGNs
aWVudAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlR2V0Q29udGV4dE1lbnVGcm9tRGVmYXVs
dENvbnRleHRNZW51Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUhpdFRl
c3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tBcnJheVJlZiBkZWZhdWx0TWVudSwgV0tBcnJh
eVJlZiogbmV3TWVudSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRl
eCAzOTkyNGVjLi4zNjU0MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudC5jcHAKQEAgLTgzLDYgKzgzLDIxIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudDo6c2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKFdlYlBhZ2UqIHBhZ2Us
CiAgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZCh0b0FQ
SShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIGFjdGlvblR5cGUsIHRvQVBJKGZyYW1l
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9y
bUNsaWVudDo6d2lsbFNlbmRTdWJtaXRFdmVudChXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm1FbGVtZW50LCBXZWJGcmFtZSogZnJhbWUsIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwg
Y29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYgdmFsdWVzKQoreworICAg
IGlmICghbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gbm9kZUhhbmRsZSA9IEluamVjdGVk
QnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoZm9ybUVsZW1lbnQpOworCisgICAgSW1tdXRh
YmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtYXA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2
YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1hcC5zZXQodmFsdWVzW2ldLmZpcnN0LCBXZWJT
dHJpbmc6OmNyZWF0ZSh2YWx1ZXNbaV0uc2Vjb25kKSk7CisgICAgUmVmUHRyPEltbXV0YWJsZURp
Y3Rpb25hcnk+IHRleHRGaWVsZHNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjphZG9wdChtYXAp
OworCisgICAgbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVudCh0b0FQSShwYWdlKSwgdG9BUEko
bm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoc291cmNlRnJhbWUpLCB0b0FQ
SSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSogcGFn
ZSwgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lLCBXZWJGcmFt
ZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4m
IHZhbHVlcywgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGll
bnQud2lsbFN1Ym1pdEZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5oCmluZGV4IDg5MzY5ZGYuLjQ1NTAyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MVGV4dEFyZWFF
bGVtZW50KiwgV2ViRnJhbWUqKTsKICAgICBib29sIHNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRG
aWVsZChXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCosIFdLSW5wdXRGaWVsZEFj
dGlvblR5cGUsIFdlYkZyYW1lKik7ICAgIAogICAgIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV2ViUGFn
ZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNvdXJj
ZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiwgUmVmUHRy
PEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKKyAgICB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV2Vi
UGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+Jik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggOTIzZjNlZC4uMGNhYTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTczMiw4ICs3MzIsMTcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJgogICAgIHdl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hYmxlVG9JbXBsZW1lbnRQb2xp
Y3kobV9mcmFtZS0+ZnJhbWVJRCgpLCBlcnJvciwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCit2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSkKIHsKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0YXRlOworICAgIEhUTUxG
b3JtRWxlbWVudCogZm9ybSA9IGZvcm1TdGF0ZS0+Zm9ybSgpOworICAgIFdlYkZyYW1lKiBzb3Vy
Y2VGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZm9ybVN0YXRlLT5z
b3VyY2VEb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgp
OworCisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkud2lsbFNlbmRTdWJt
aXRFdmVudCh3ZWJQYWdlLCBmb3JtLCBtX2ZyYW1lLCBzb3VyY2VGcmFtZSwgZm9ybVN0YXRlLT50
ZXh0RmllbGRWYWx1ZXMoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFN1Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNDllNzNjLi42ZGZhNThiIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTIt
MDQtMjQgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KCkgbmVlZHMg
dG8gYmUKKyAgICAgICAgaW1wbGVtZW50ZWQgZm9yIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MzA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgbmV3IGZpbGVzIHRv
IHByb2plY3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNl
bmRTdWJtaXRFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICBMb29rIGZvciB0aGUgIkRp
ZFJlY2VpdmVXaWxsU2VuZFN1Ym1pdEV2ZW50IiBtZXNzYWdlLiBUaGUgbWVzc2FnZSBib2R5Cisg
ICAgICAgIHdpbGwgYmUgdGhlIGRpY3Rpb25hcnkgb2YgZm9ybSBjb250cm9sIG5hbWVzIGFuZCB2
YWx1ZXMgcGFzc2VkIHRvIHRoZQorICAgICAgICBpbmplY3RlZCBidW5kbGUncyB3aWxsU2VuZFN1
Ym1pdEV2ZW50IGhhbmRsZXI7IGxvb2sgZm9yIHRoZSBwYWlyCisgICAgICAgICJ0ZXh0RmllbGQi
IC0+ICJ0ZXh0IGZpZWxkIi4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNldEluamVjdGVkQnVu
ZGxlQ2xpZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3aWxsU2VuZFN1Ym1pdEV2ZW50KToK
KyAgICAgICAgUG9zdCBhIG1lc3NhZ2UgdG8gdGhlIFRlc3RXZWJLaXRBUEkgcHJvY2VzcyB3aXRo
IHRoZSBkaWN0aW9uYXJ5IG9mIGZvcm0KKyAgICAgICAgY29udHJvbCBuYW1lcyBhbmQgdmFsdWVz
IHRoYXQgd2UgcmVjZWl2ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXaWxsU2VuZFN1Ym1p
dEV2ZW50VGVzdDo6V2lsbFNlbmRTdWJtaXRFdmVudFRlc3QpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6V2lsbFNlbmRTdWJtaXRFdmVudFRlc3Q6OmRpZENyZWF0ZVBhZ2UpOgorICAgICAgICBT
ZXQgdXAgdGhlIHBhZ2UncyBmb3JtIGNsaWVudC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sOiBBZGRlZC4KKwogMjAxMi0w
NC0xOSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAbGludXguaW50ZWwu
Y29tPgogCiAgICAgICAgIFtHVEtdIDMgZmFzdC8gbGF5b3V0IHRlc3RzIGZhaWxpbmcgYWZ0ZXIg
dXBncmFkaW5nIGxpYnNvdXAgdG8gMi4zNy45MgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBi
ODI1NzlmLi40ZWYyNjUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTAsNiArNTAsOSBA
QAogCQk1MkNCNDc0MTE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdX
aXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyQ0I0NzQwMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwICovOyB9OwogCQk1MkU1Q0U0NjE0RDIxRTlE
MDAzQjJCRDggLyogUGFyZW50RnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1l
LmNwcCAqLzsgfTsKIAkJNTJFNUNFNDkxNEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCAqLzsgfTsK
KwkJNzZFMTgyREExNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZFMTgyRDkxNTQ3
NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovOyB9OworCQk3NkUxODJE
RDE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZFMTgyREMxNTQ3NTY5
MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCAqLzsgfTsKKwkJNzZF
MTgyREYxNTQ3NjdFNjAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZFMTgyREUx
NTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgKi87IH07CiAJCTgx
QjUwMTkzMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1
OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLzsgfTsKIAkJOTMwQUQ0MDIxNTA2OThEMDAwNjc5NzBG
IC8qIGxvdHMtb2YtdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9mLXRl
eHQuaHRtbCAqLzsgfTsKIAkJOTM2MTAwMjkxNERDOTVBNzAwNjEzNzlEIC8qIGxvdHMtb2YtaWZy
YW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNjEwMDI4MTREQzk1N0IwMDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCAq
LzsgfTsKQEAgLTE3MSw2ICsxNzQsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJQjU1RjExQkUxNTE5
MUEwNjAwOTE1OTE2IC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUI1NUYx
MUI3MTUxN0QwMzMwMDkxNTkxNiAvKiBhdHRyaWJ1dGVkU3RyaW5nQ3VzdG9tRm9udC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTc2RTE4MkRGMTU0NzY3RTYwMEYxRkFERCAvKiBhdXRv
LXN1Ym1pdHRpbmctZm9ybS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNDJCMjcz
MTUxN0M4QzgwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1MTdFN0UwNDE1MTExOUMxMDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQ
cnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMzc5MDI4QjkxNEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1vdXNlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yNDIsNiArMjQ2LDkgQEAKIAkJNTJDQjQ3NDAxNDQ4
RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVS
TC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkQWx0ZXJuYXRl
SFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MkU1Q0U0NTE0RDIxRTlEMDAzQjJCRDggLyogUGFyZW50RnJhbWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFyZW50RnJhbWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50
RnJhbWVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
cmVudEZyYW1lX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2RTE4
MkQ5MTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2ls
bFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5n
LWZvcm0uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvLXN1Ym1pdHRpbmct
Zm9ybS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCNTAxOTIxNDBGMjMy
MzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gU3RyaW5nQnVpbGRlci5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVpbGRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1
RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9
IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0Lmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi10ZXh0Lmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTMwLDYgKzUzNyw4IEBACiAJCQkJQkMyMkQzMTcxNERDNjhC
ODAwRkZCMUREIC8qIFVzZXJNZXNzYWdlX0J1bmRsZS5jcHAgKi8sCiAJCQkJNTIwQkNGNEIxNDFF
QjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICovLAogCQkJCTUyMEJDRjRBMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi8sCisJCQkJNzZFMTgyRDkxNTQ3NTUw
MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovLAorCQkJCTc2RTE4MkRDMTU0
NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgKi8sCiAJCQkJ
QkM5MDFFMjIxNDkyQURDRTAwNzRBNjY3IC8qIFdLQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJQkM5
MDFFMzExNDkyQUYzOTAwNzRBNjY3IC8qIFdLQ29ubmVjdGlvbl9CdW5kbGUuY3BwICovLAogCQkJ
CUJDN0I2MTlBMTI5OUZFOUUwMEQxNzRBNCAvKiBXS1ByZWZlcmVuY2VzLmNwcCAqLywKQEAgLTU3
Nyw2ICs1ODYsNyBAQAogCQkJCUJDQUE0ODU1MTRBMDIxNjQwMDg4RkFDNCAvKiBzaW1wbGUtdGFs
bC5odG1sICovLAogCQkJCUJDOTA5Nzc4MTI1NTcxQUIwMDA4Mzc1NiAvKiBzaW1wbGUuaHRtbCAq
LywKIAkJCQlDMDJCNzg4MjEyNjYxNTQxMDAyNkJGMEYgLyogc3BhY2ViYXItc2Nyb2xsaW5nLmh0
bWwgKi8sCisJCQkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1m
b3JtLmh0bWwgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFJlc291cmNlczsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC04NDYsNiArODU2LDcgQEAKIAkJCQk1MTQyQjI3MTE1MTdDODhCMDBD
MzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU0
MEY3NzYxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc2RTE4MkRBMTU0NzU1MDEwMEYxRkFERCAv
KiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtODc1LDYgKzg4Niw3
IEBACiAJCQkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVzZXJNZXNzYWdlX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0FGNEVDRTE1MDZGMDY0MDA3RkQ1N0UgLyogTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUZDRjdBMTE1MzRCMkEwMDAxMDQ0OTEgLyogU2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc2RTE4MkREMTU0NzU2OTEw
MEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1
Ym1pdEV2ZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2Vu
ZFN1Ym1pdEV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGVj
NmNkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgZGlkUmVjZWl2ZU1lc3NhZ2U7CisKK3N0YXRp
YyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwg
V0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBib2R5LCBjb25zdCB2b2lkKikKK3sK
KyAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IHRydWU7CisKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkRp
ZFJlY2VpdmVXaWxsU2VuZFN1Ym1pdEV2ZW50IiwgbWVzc2FnZU5hbWUpOworCisgICAgRVhQRUNU
X0VRKFdLRGljdGlvbmFyeUdldFR5cGVJRCgpLCBXS0dldFR5cGVJRChib2R5KSk7CisgICAgV0tE
aWN0aW9uYXJ5UmVmIHZhbHVlcyA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4oYm9keSk7
CisKKyAgICBXS1N0cmluZ1JlZiB0ZXh0RmllbGRWYWx1ZVdLID0gc3RhdGljX2Nhc3Q8V0tTdHJp
bmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkodmFsdWVzLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygidGV4dEZpZWxkIikpKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQg
ZmllbGQiLCB0ZXh0RmllbGRWYWx1ZVdLKTsKK30KKworc3RhdGljIHZvaWQgc2V0SW5qZWN0ZWRC
dW5kbGVDbGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHQpCit7CisgICAgV0tDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CisgICAgbWVtc2V0KCZpbmplY3Rl
ZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CisgICAgaW5q
ZWN0ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBk
aWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKKworICAgIFdLQ29udGV4dFNldElu
amVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQsICZpbmplY3RlZEJ1bmRsZUNsaWVudCk7Cit9CisK
K1RFU1QoV2ViS2l0MiwgV2lsbFNlbmRTdWJtaXRFdmVudCkKK3sKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIldpbGxTZW5kU3VibWl0RXZlbnRUZXN0IikpOworICAgIHNldEluamVj
dGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCkpOworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
YWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiYXV0by1zdWJtaXR0aW5nLWZvcm0i
LCAiaHRtbCIpKS5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5k
bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZmIyYWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRT
dWJtaXRFdmVudF9CdW5kbGUuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVUZXN0LmgiCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVQYWdl
Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgV2lsbFNlbmRTdWJtaXRF
dmVudFRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK3B1YmxpYzoKKyAgICBXaWxs
U2VuZFN1Ym1pdEV2ZW50VGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcik7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxl
UGFnZVJlZiBwYWdlKTsKK307CisKK3N0YXRpYyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVy
PFdpbGxTZW5kU3VibWl0RXZlbnRUZXN0PiByZWdpc3RyYXIoIldpbGxTZW5kU3VibWl0RXZlbnRU
ZXN0Iik7CisKK3N0YXRpYyB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV0tCdW5kbGVQYWdlUmVm
LCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIGNvbnN0IHZvaWQqKQoreworICAgIFdLQnVuZGxl
UG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpzaGFyZWQoKS5idW5kbGUoKSwg
VXRpbDo6dG9XSygiRGlkUmVjZWl2ZVdpbGxTZW5kU3VibWl0RXZlbnQiKS5nZXQoKSwgdmFsdWVz
KTsKK30KKworV2lsbFNlbmRTdWJtaXRFdmVudFRlc3Q6OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0
KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgIDogSW5qZWN0ZWRCdW5kbGVUZXN0
KGlkZW50aWZpZXIpCit7Cit9CisKK3ZvaWQgV2lsbFNlbmRTdWJtaXRFdmVudFRlc3Q6OmRpZENy
ZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKK3sKKyAg
ICBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IGZvcm1DbGllbnQ7CisgICAgbWVtc2V0KCZmb3JtQ2xp
ZW50LCAwLCBzaXplb2YoZm9ybUNsaWVudCkpOworICAgIAorICAgIGZvcm1DbGllbnQudmVyc2lv
biA9IDE7CisgICAgZm9ybUNsaWVudC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBmb3JtQ2xpZW50
LndpbGxTZW5kU3VibWl0RXZlbnQgPSB3aWxsU2VuZFN1Ym1pdEV2ZW50OworICAgIAorICAgIFdL
QnVuZGxlUGFnZVNldEZvcm1DbGllbnQocGFnZSwgJmZvcm1DbGllbnQpOworfQorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyNmVlZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbApAQCAt
MCwwICsxLDE5IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHN1Ym1pdEZvcm1JZk5lY2Vzc2FyeSgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQu
Y2xpY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgor
ICAgIDxib2R5IG9ubG9hZD0ic3VibWl0Rm9ybUlmTmVjZXNzYXJ5KCkiPgorICAgICAgICA8Zm9y
bSBhY3Rpb249IiMiIG1ldGhvZD0iR0VUIj4KKyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBuYW1lPSJ0ZXh0RmllbGQiIHZhbHVlPSJ0ZXh0IGZpZWxkIj4KKyAgICAgICAgICAgIDxpbnB1
dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImhpZGRlbkZpZWxkIiB2YWx1ZT0iaGlkZGVuIGZpZWxkIj4K
KyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCI+CisgICAgICAg
IDwvZm9ybT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Ci0tIAoxLjcuOS4yIChBcHBsZSBHaXQtMzAp
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139899</attachid>
            <date>2012-05-02 15:53:34 -0700</date>
            <delta_ts>2012-05-02 21:31:31 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>0003-WebFrameLoaderClient-dispatchWillSendSubmitEvent-nee.patch</filename>
            <type>text/plain</type>
            <size>27321</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA0N2U4OGM2OGEwN2Y5NGU5OWI0OGVhYWQ5ZGFkNzVlMTFiOTdhOWU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxOCBBcHIgMjAxMiAyMDowOTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoKSBuZWVkcyB0
bwogYmUgaW1wbGVtZW50ZWQgZm9yIFdlYktpdDIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NDMwNAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2Uv
V2ViS2l0MjoKCiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aDoKRGVjbGFyZSB3aWxsU2VuZFN1Ym1pdEV2ZW50IG9uIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQu
CgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVu
dC5jcHA6CihXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTZW5kU3Vi
bWl0RXZlbnQpOgpGcm9tIHRoZSBTdHJpbmcgcGFpciB2ZWN0b3IsIGNyZWF0ZSBhIG1hcCBmcm9t
IGNvbnRyb2wgbmFtZSB0byB2YWx1ZS4KQ2FsbCB0aGUgY2xpZW50J3Mgd2lsbFNlbmRTdWJtaXRF
dmVudC4KCiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50Lmg6CkRlY2xhcmUgd2lsbFNlbmRTdWJtaXRFdmVudC4KCiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgpDYWxsIHRoZSBpbmplY3Rl
ZCBidW5kbGUgZm9ybSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2ZW50LgoKKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6ClVuLXN0dWIgd2lsbFNlbmRT
dWJtaXRFdmVudC4KCiogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHA6CihXZWJLaXQpOgpTZXQg
dGhlIGludGVyZmFjZSBzaXplcyBmb3IgV0tCdW5kbGVQYWdlRm9ybUNsaWVudDsgdmVyc2lvbiAx
IGluY2x1ZGVzCndpbGxTZW5kU3VibWl0RXZlbnQuCgoqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMu
aDoKRGVjbGFyZSBhIHNwZWNpYWxpemF0aW9uIGZvciBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LgoK
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgpCdW1wIHRo
ZSBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IHZlcnNpb24gbnVtYmVyLgoKVG9vbHM6CgoqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgpBZGRlZCBu
ZXcgZmlsZXMgdG8gcHJvamVjdC4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxT
ZW5kU3VibWl0RXZlbnQuY3BwOiBBZGRlZC4KKFRlc3RXZWJLaXRBUEk6OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKTG9vayBmb3IgdGhlICJEaWRSZWNlaXZlV2lsbFNlbmRT
dWJtaXRFdmVudCIgbWVzc2FnZS4gVGhlIG1lc3NhZ2UgYm9keQp3aWxsIGJlIHRoZSBkaWN0aW9u
YXJ5IG9mIGZvcm0gY29udHJvbCBuYW1lcyBhbmQgdmFsdWVzIHBhc3NlZCB0byB0aGUKaW5qZWN0
ZWQgYnVuZGxlJ3Mgd2lsbFNlbmRTdWJtaXRFdmVudCBoYW5kbGVyOyBsb29rIGZvciB0aGUgcGFp
cgoidGV4dEZpZWxkIiAtPiAidGV4dCBmaWVsZCIuCihUZXN0V2ViS2l0QVBJOjpzZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudCk6CihUZXN0V2ViS2l0QVBJOjpURVNUKToKCiogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcDogQWRkZWQuCihUZXN0
V2ViS2l0QVBJOjp3aWxsU2VuZFN1Ym1pdEV2ZW50KToKUG9zdCBhIG1lc3NhZ2UgdG8gdGhlIFRl
c3RXZWJLaXRBUEkgcHJvY2VzcyB3aXRoIHRoZSBkaWN0aW9uYXJ5IG9mIGZvcm0KY29udHJvbCBu
YW1lcyBhbmQgdmFsdWVzIHRoYXQgd2UgcmVjZWl2ZWQuCihUZXN0V2ViS2l0QVBJOjpXaWxsU2Vu
ZFN1Ym1pdEV2ZW50VGVzdDo6V2lsbFNlbmRTdWJtaXRFdmVudFRlc3QpOgooVGVzdFdlYktpdEFQ
STo6V2lsbFNlbmRTdWJtaXRFdmVudFRlc3Q6OmRpZENyZWF0ZVBhZ2UpOgpTZXQgdXAgdGhlIHBh
Z2UncyBmb3JtIGNsaWVudC4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3Vi
bWl0dGluZy1mb3JtLmh0bWw6IEFkZGVkLgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKysrKysrKwogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAgICAgICAgICAgfCAgICA1ICsrCiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmggICAgICAgICAgICB8ICAgIDQgKysKIC4u
Li9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIHwgICAgOCAr
Ky0KIC4uLi9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCAgICAgICAgICAgICAgIHwg
ICAxNSArKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuaCAgfCAgICAxICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgICAgICAgIHwgICAxMSArKystCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMzAgKysrKysrKysrCiAuLi4vVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICAgMTIgKysrKwogLi4uL1Rlc3RzL1dlYktp
dDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgICAgICAgICAgfCAgIDY3ICsrKysrKysrKysrKysr
KysrKysrCiAuLi4vVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAg
ICB8ICAgNjUgKysrKysrKysrKysrKysrKysrKwogLi4uL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJt
aXR0aW5nLWZvcm0uaHRtbCAgICAgICAgfCAgIDE5ICsrKysrKwogMTIgZmlsZXMgY2hhbmdlZCwg
MjcyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxT
ZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGU1ZTBkNmMuLjNhMmQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MiBAQAogMjAx
Mi0wNC0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCisgICAgICAg
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoKSBuZWVk
cyB0byBiZQorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgIERlY2xhcmUgd2lsbFNlbmRTdWJtaXRF
dmVudCBvbiBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJtaXRFdmVu
dCk6CisgICAgICAgIEZyb20gdGhlIFN0cmluZyBwYWlyIHZlY3RvciwgY3JlYXRlIGEgbWFwIGZy
b20gY29udHJvbCBuYW1lIHRvIHZhbHVlLgorICAgICAgICBDYWxsIHRoZSBjbGllbnQncyB3aWxs
U2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6CisgICAgICAgIERlY2xhcmUgd2lsbFNlbmRT
dWJtaXRFdmVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KToKKyAgICAgICAgQ2FsbCB0aGUgaW5qZWN0
ZWQgYnVuZGxlIGZvcm0gY2xpZW50J3Mgd2lsbFNlbmRTdWJtaXRFdmVudC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgVW4tc3R1YiB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICogU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICBTZXQgdGhlIGludGVy
ZmFjZSBzaXplcyBmb3IgV0tCdW5kbGVQYWdlRm9ybUNsaWVudDsgdmVyc2lvbiAxIGluY2x1ZGVz
CisgICAgICAgIHdpbGxTZW5kU3VibWl0RXZlbnQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xp
ZW50VHJhaXRzLmg6CisgICAgICAgIERlY2xhcmUgYSBzcGVjaWFsaXphdGlvbiBmb3IgV0tCdW5k
bGVQYWdlRm9ybUNsaWVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgIEJ1bXAgdGhlIFdLQnVuZGxlUGFnZUZvcm1D
bGllbnQgdmVyc2lvbiBudW1iZXIuCisKKzIwMTItMDQtMTggIEpvbiBIb25leWN1dHQgIDxqaG9u
ZXljdXR0QGFwcGxlLmNvbT4KKwogICAgICAgICBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hX
aWxsU2VuZFN1Ym1pdEV2ZW50KCkgc2hvdWxkIGJlIGdpdmVuIG1vcmUKICAgICAgICAgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIGZvcm0gYmVpbmcgc3VibWl0dGVkCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDI5NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmNwcAppbmRleCBkZjM1OTBmLi5mMThkMjYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcApAQCAtNjEsNCArNjEsOSBAQCBjb25zdCBz
aXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZl
cnNpb25bXSA9IHsKICAgICBzaXplb2YoV0tQYWdlVUlDbGllbnQpCiB9OwogICAgIAorY29uc3Qg
c2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Pjo6aW50ZXJmYWNl
U2l6ZXNCeVZlcnNpb25bXSA9IHsKKyAgICBvZmZzZXRvZihXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50
LCB3aWxsU2VuZFN1Ym1pdEV2ZW50KSwKKyAgICBzaXplb2YoV0tCdW5kbGVQYWdlRm9ybUNsaWVu
dCkKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5oCmluZGV4IDE2Zjg2YTAuLmM5ZjI4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTYwLDYgKzYwLDEwIEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD4gewogICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bMl07CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
UElDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlRm9ybUNsaWVudD4geworICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bMl07Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEFQSUNsaWVudFRyYWl0c19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaAppbmRleCA3NTJlODA4Li40NDE3NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmgKQEAgLTI4MywyMCArMjgzLDI2IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVRleHRE
aWRDaGFuZ2VJblRleHRGaWVsZENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnCiB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYUNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxUZXh0QXJlYUVsZW1l
bnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogdHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZp
ZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
aHRtbElucHV0RWxlbWVudEhhbmRsZSwgV0tJbnB1dEZpZWxkQWN0aW9uVHlwZSBhY3Rpb25UeXBl
LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2spKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbEZvcm1FbGVtZW50SGFuZGxlLCBX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZUZyYW1lUmVmIHNvdXJjZUZyYW1lLCBXS0Rp
Y3Rpb25hcnlSZWYgdmFsdWVzLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxTZW5kU3VibWl0RXZlbnRD
YWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1s
Rm9ybUVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlRnJhbWVS
ZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRm9ybUNsaWVudCB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICAKKyAgICAvLyBWZXJz
aW9uIDAuCiAgICAgV0tCdW5kbGVQYWdlVGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmc7CiAgICAgV0tC
dW5kbGVQYWdlVGV4dEZpZWxkRGlkRW5kRWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0RmllbGREaWRFbmRFZGl0aW5nOwogICAgIFdLQnVuZGxlUGFnZVRleHREaWRD
aGFuZ2VJblRleHRGaWVsZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdGV4dERpZENo
YW5nZUluVGV4dEZpZWxkOwogICAgIFdLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRBcmVh
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dERpZENoYW5nZUluVGV4dEFyZWE7
CiAgICAgV0tCdW5kbGVQYWdlU2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQ7CiAgICAgV0tC
dW5kbGVQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWxsU3VibWl0Rm9ybTsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tC
dW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWxsU2VuZFN1Ym1pdEV2ZW50OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxl
UGFnZUZvcm1DbGllbnQgV0tCdW5kbGVQYWdlRm9ybUNsaWVudDsKIAotZW51bSB7IGtXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07CitlbnVtIHsga1dLQnVuZGxlUGFn
ZUZvcm1DbGllbnRDdXJyZW50VmVyc2lvbiA9IDEgfTsKIAogLy8gQ29udGV4dE1lbnUgY2xpZW50
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VHZXRDb250ZXh0TWVudUZyb21EZWZhdWx0Q29u
dGV4dE1lbnVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlSGl0VGVzdFJl
c3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS0FycmF5UmVmIGRlZmF1bHRNZW51LCBXS0FycmF5UmVm
KiBuZXdNZW51LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCmluZGV4IDM5
OTI0ZWMuLjM2NTQzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmNwcApAQCAtODMsNiArODMsMjEgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50OjpzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViUGFnZSogcGFnZSwKICAg
ICByZXR1cm4gbV9jbGllbnQuc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKHRvQVBJKHBh
Z2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgYWN0aW9uVHlwZSwgdG9BUEkoZnJhbWUpLCBt
X2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xp
ZW50Ojp3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudCog
Zm9ybUVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25z
dCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1ZXMpCit7CisgICAgaWYg
KCFtX2NsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlID0gSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShmb3JtRWxlbWVudCk7CisKKyAgICBJbW11dGFibGVE
aWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVl
cy5zaXplKCk7ICsraSkKKyAgICAgICAgbWFwLnNldCh2YWx1ZXNbaV0uZmlyc3QsIFdlYlN0cmlu
Zzo6Y3JlYXRlKHZhbHVlc1tpXS5zZWNvbmQpKTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlv
bmFyeT4gdGV4dEZpZWxkc01hcCA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmFkb3B0KG1hcCk7CisK
KyAgICBtX2NsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50KHRvQVBJKHBhZ2UpLCB0b0FQSShub2Rl
SGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRl
eHRGaWVsZHNNYXAuZ2V0KCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiBwYWdlLCBI
VE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJGcmFtZSogZnJhbWUsIFdlYkZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYgdmFs
dWVzLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC53
aWxsU3VibWl0Rm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
LmgKaW5kZXggODkzNjlkZi4uNDU1MDI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgdGV4
dERpZENoYW5nZUluVGV4dEFyZWEoV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1l
bnQqLCBXZWJGcmFtZSopOwogICAgIGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxk
KFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV0tJbnB1dEZpZWxkQWN0aW9u
VHlwZSwgV2ViRnJhbWUqKTsgICAgCiAgICAgdm9pZCB3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiwg
V2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSogc291cmNlRnJh
bWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mLCBSZWZQdHI8QVBJ
T2JqZWN0PiYgdXNlckRhdGEpOworICAgIHZvaWQgd2lsbFNlbmRTdWJtaXRFdmVudChXZWJQYWdl
KiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSogc291cmNl
RnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA0MDhhNGYyLi4yMTRlZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtNzM5LDggKzczOSwxNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImCiAgICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbmFibGVUb0ltcGxlbWVudFBvbGljeSht
X2ZyYW1lLT5mcmFtZUlEKCksIGVycm9yLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rl
cih1c2VyRGF0YS5nZXQoKSkpKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikKK3ZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRy
PEZvcm1TdGF0ZT4gcHJwRm9ybVN0YXRlKQogeworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBS
ZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7CisgICAgSFRNTEZvcm1F
bGVtZW50KiBmb3JtID0gZm9ybVN0YXRlLT5mb3JtKCk7CisgICAgV2ViRnJhbWUqIHNvdXJjZUZy
YW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihmb3JtU3RhdGUtPnNvdXJj
ZURvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisK
KyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS53aWxsU2VuZFN1Ym1pdEV2
ZW50KHdlYlBhZ2UsIGZvcm0sIG1fZnJhbWUsIHNvdXJjZUZyYW1lLCBmb3JtU3RhdGUtPnRleHRG
aWVsZFZhbHVlcygpKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hX
aWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZv
cm1TdGF0ZT4gcHJwRm9ybVN0YXRlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDk4MzE5OTIuLjk1NGUwMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNC0y
NCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoKSBuZWVkcyB0byBi
ZQorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBuZXcgZmlsZXMgdG8gcHJv
amVjdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1
Ym1pdEV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIExvb2sgZm9yIHRoZSAiRGlkUmVj
ZWl2ZVdpbGxTZW5kU3VibWl0RXZlbnQiIG1lc3NhZ2UuIFRoZSBtZXNzYWdlIGJvZHkKKyAgICAg
ICAgd2lsbCBiZSB0aGUgZGljdGlvbmFyeSBvZiBmb3JtIGNvbnRyb2wgbmFtZXMgYW5kIHZhbHVl
cyBwYXNzZWQgdG8gdGhlCisgICAgICAgIGluamVjdGVkIGJ1bmRsZSdzIHdpbGxTZW5kU3VibWl0
RXZlbnQgaGFuZGxlcjsgbG9vayBmb3IgdGhlIHBhaXIKKyAgICAgICAgInRleHRGaWVsZCIgLT4g
InRleHQgZmllbGQiLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2V0SW5qZWN0ZWRCdW5kbGVD
bGllbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxTZW5kU3VibWl0RXZlbnQpOgorICAg
ICAgICBQb3N0IGEgbWVzc2FnZSB0byB0aGUgVGVzdFdlYktpdEFQSSBwcm9jZXNzIHdpdGggdGhl
IGRpY3Rpb25hcnkgb2YgZm9ybQorICAgICAgICBjb250cm9sIG5hbWVzIGFuZCB2YWx1ZXMgdGhh
dCB3ZSByZWNlaXZlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldpbGxTZW5kU3VibWl0RXZl
bnRUZXN0OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdDo6ZGlkQ3JlYXRlUGFnZSk6CisgICAgICAgIFNldCB1
cCB0aGUgcGFnZSdzIGZvcm0gY2xpZW50LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTAy
ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KIAogICAgICAgICB3
ZWJraXRweTogUmVtb3ZlIGRpcmVjdCBjaGVja3MgZm9yIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2lu
JyBpbiB0aGUgbGF5b3V0IHRlc3QgY2xhc3Nlcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzYwYmMyNC4uODVjMzY1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUyLDYgKzUyLDkg
QEAKIAkJNTJDQjQ3NDExNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5n
V2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MkNCNDc0MDE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0ZUhU
TUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCAqLzsgfTsKIAkJNTJFNUNFNDYxNEQyMUU5
RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTVDRTQ1MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFt
ZS5jcHAgKi87IH07CiAJCTUyRTVDRTQ5MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9C
dW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTJFNUNFNDgxNEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi87IH07
CisJCTc2RTE4MkRBMTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2RTE4MkQ5MTU0
NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLzsgfTsKKwkJNzZFMTgy
REQxNTQ3NTY5MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2RTE4MkRDMTU0NzU2
OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgKi87IH07CisJCTc2
RTE4MkRGMTU0NzY3RTYwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2RTE4MkRF
MTU0NzVBODMwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovOyB9OwogCQk4
MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUI1MDE5MjE0MEYyMzIzMDBEOUVC
NTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi87IH07CiAJCTkzMEFENDAyMTUwNjk4RDAwMDY3OTcw
RiAvKiBsb3RzLW9mLXRleHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1vZi10
ZXh0Lmh0bWwgKi87IH07CiAJCTkzNjEwMDI5MTREQzk1QTcwMDYxMzc5RCAvKiBsb3RzLW9mLWlm
cmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzYxMDAyODE0REM5NTdCMDA2MTM3OUQgLyogbG90cy1vZi1pZnJhbWVzLmh0bWwg
Ki87IH07CkBAIC0xNzMsNiArMTc2LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUI1NUYxMUJFMTUx
OTFBMDYwMDkxNTkxNiAvKiBBaGVtLnR0ZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlCNTVG
MTFCNzE1MTdEMDMzMDA5MTU5MTYgLyogYXR0cmlidXRlZFN0cmluZ0N1c3RvbUZvbnQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk3NkUxODJERjE1NDc2N0U2MDBGMUZBREQgLyogYXV0
by1zdWJtaXR0aW5nLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTQyQjI3
MzE1MTdDOEM4MDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTE3RTdFMDQxNTExMTlDMTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hl
UHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTM3OTAyOEI5MTRGQUMyNEMwMDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RNb3VzZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjQ2LDYgKzI1MCw5IEBACiAJCTUyQ0I0NzQwMTQ0
OEZCOTMwMDg3Mzk5NSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlV
UkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcmVudEZyYW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDgxNEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVu
dEZyYW1lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXJlbnRGcmFtZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NkUx
ODJEOTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZFMTgyREMxNTQ3NTY5MTAwRjFGQUREIC8qIFdp
bGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQUREIC8qIGF1dG8tc3VibWl0dGlu
Zy1mb3JtLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0by1zdWJtaXR0aW5n
LWZvcm0uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQjUwMTkyMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0cmluZ0J1aWxkZXIuY3BwOyBwYXRoID0gV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZC
NUUgLyogVGVzdFdlYktpdEFQSSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gVGVzdFdlYktpdEFQSTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJOTMwQUQ0MDExNTA2OThCMzAwNjc5NzBGIC8qIGxvdHMtb2YtdGV4dC5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxvdHMtb2YtdGV4dC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNiw2ICs1NDMsOCBAQAogCQkJCUJDMjJEMzE3MTREQzY4
QjgwMEZGQjFERCAvKiBVc2VyTWVzc2FnZV9CdW5kbGUuY3BwICovLAogCQkJCTUyMEJDRjRCMTQx
RUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLywKIAkJCQk1MjBCQ0Y0QTE0MUVCMDlF
MDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwICovLAorCQkJCTc2RTE4MkQ5MTU0NzU1
MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAqLywKKwkJCQk3NkUxODJEQzE1
NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwICovLAogCQkJ
CUJDOTAxRTIyMTQ5MkFEQ0UwMDc0QTY2NyAvKiBXS0Nvbm5lY3Rpb24uY3BwICovLAogCQkJCUJD
OTAxRTMxMTQ5MkFGMzkwMDc0QTY2NyAvKiBXS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcCAqLywKIAkJ
CQlCQzdCNjE5QTEyOTlGRTlFMDBEMTc0QTQgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCkBAIC01
ODMsNiArNTkyLDcgQEAKIAkJCQlCQ0FBNDg1NTE0QTAyMTY0MDA4OEZBQzQgLyogc2ltcGxlLXRh
bGwuaHRtbCAqLywKIAkJCQlCQzkwOTc3ODEyNTU3MUFCMDAwODM3NTYgLyogc2ltcGxlLmh0bWwg
Ki8sCiAJCQkJQzAyQjc4ODIxMjY2MTU0MTAwMjZCRjBGIC8qIHNwYWNlYmFyLXNjcm9sbGluZy5o
dG1sICovLAorCQkJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmct
Zm9ybS5odG1sICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtODUzLDYgKzg2Myw3IEBACiAJCQkJQzU0MEY3NzYxNTJFNERBMDAw
QTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQ0Y3OUEx
NTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMzkzRTIwMTUyMzk0NEEwMDVGMzlDNSAvKiBET01XaW5kb3dFeHRl
bnNpb25CYXNpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NkUxODJEQTE1NDc1NTAxMDBGMUZB
REQgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTg4Myw2ICs4
OTQsNyBAQAogCQkJCTkzQUY0RUNFMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RkNGN0ExMTUzNEIyQTAwMDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9C
dW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEzOTNFMjIxNTIzOTUyRDAwNUYzOUM1IC8q
IERPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
NkUxODJERDE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMDhlYzZjZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5o
IgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZFJlY2VpdmVN
ZXNzYWdlOworCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgYm9keSwg
Y29uc3Qgdm9pZCopCit7CisgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSB0cnVlOworCisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJEaWRSZWNlaXZlV2lsbFNlbmRTdWJtaXRFdmVudCIsIG1lc3NhZ2VOYW1l
KTsKKworICAgIEVYUEVDVF9FUShXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSwgV0tHZXRUeXBlSUQo
Ym9keSkpOworICAgIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMgPSBzdGF0aWNfY2FzdDxXS0RpY3Rp
b25hcnlSZWY+KGJvZHkpOworCisgICAgV0tTdHJpbmdSZWYgdGV4dEZpZWxkVmFsdWVXSyA9IHN0
YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KHZhbHVlcywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInRleHRGaWVsZCIpKSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJ0ZXh0IGZpZWxkIiwgdGV4dEZpZWxkVmFsdWVXSyk7Cit9CisKK3N0YXRpYyB2
b2lkIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0KQoreworICAg
IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVjdGVkQnVuZGxlQ2xpZW50OworICAg
IG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNs
aWVudCkpOworICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlID0gZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGU7CisKKyAg
ICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LCAmaW5qZWN0ZWRCdW5k
bGVDbGllbnQpOworfQorCitURVNUKFdlYktpdDIsIFdpbGxTZW5kU3VibWl0RXZlbnQpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCIp
KTsKKyAgICBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpKTsKKworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImF1dG8t
c3VibWl0dGluZy1mb3JtIiwgImh0bWwiKSkuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmZGlkUmVj
ZWl2ZU1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVu
dF9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5k
U3VibWl0RXZlbnRfQnVuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wMGZiMmFmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcApAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
VGVzdC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQnVuZGxlUGFnZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNz
IFdpbGxTZW5kU3VibWl0RXZlbnRUZXN0IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVzdCB7Citw
dWJsaWM6CisgICAgV2lsbFNlbmRTdWJtaXRFdmVudFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlk
ZW50aWZpZXIpOworCisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYg
YnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7Cit9OworCitzdGF0aWMgSW5qZWN0ZWRCdW5k
bGVUZXN0OjpSZWdpc3RlcjxXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdD4gcmVnaXN0cmFyKCJXaWxs
U2VuZFN1Ym1pdEV2ZW50VGVzdCIpOworCitzdGF0aWMgdm9pZCB3aWxsU2VuZFN1Ym1pdEV2ZW50
KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmLCBXS0J1bmRsZUZyYW1lUmVm
LCBXS0J1bmRsZUZyYW1lUmVmLCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBjb25zdCB2b2lkKikK
K3sKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlQ29udHJvbGxlcjo6c2hh
cmVkKCkuYnVuZGxlKCksIFV0aWw6OnRvV0soIkRpZFJlY2VpdmVXaWxsU2VuZFN1Ym1pdEV2ZW50
IikuZ2V0KCksIHZhbHVlcyk7Cit9CisKK1dpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpXaWxsU2Vu
ZFN1Ym1pdEV2ZW50VGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICA6IElu
amVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQoreworfQorCit2b2lkIFdpbGxTZW5kU3VibWl0
RXZlbnRUZXN0OjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdl
UmVmIHBhZ2UpCit7CisgICAgV0tCdW5kbGVQYWdlRm9ybUNsaWVudCBmb3JtQ2xpZW50OworICAg
IG1lbXNldCgmZm9ybUNsaWVudCwgMCwgc2l6ZW9mKGZvcm1DbGllbnQpKTsKKyAgICAKKyAgICBm
b3JtQ2xpZW50LnZlcnNpb24gPSAxOworICAgIGZvcm1DbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7
CisgICAgZm9ybUNsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50ID0gd2lsbFNlbmRTdWJtaXRFdmVu
dDsKKyAgICAKKyAgICBXS0J1bmRsZVBhZ2VTZXRGb3JtQ2xpZW50KHBhZ2UsICZmb3JtQ2xpZW50
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjZlZWVjCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGlu
Zy1mb3JtLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBzdWJtaXRGb3JtSWZOZWNlc3NhcnkoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNo
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Zm9ybXNbMF0uc3VibWl0LmNsaWNrKCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN1Ym1pdEZvcm1JZk5lY2Vzc2FyeSgp
Ij4KKyAgICAgICAgPGZvcm0gYWN0aW9uPSIjIiBtZXRob2Q9IkdFVCI+CisgICAgICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGV4dEZpZWxkIiB2YWx1ZT0idGV4dCBmaWVsZCI+Cisg
ICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJoaWRkZW5GaWVsZCIgdmFsdWU9
ImhpZGRlbiBmaWVsZCI+CisgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJz
dWJtaXQiPgorICAgICAgICA8L2Zvcm0+CisgICAgPC9ib2R5PgorPC9odG1sPgotLSAKMS43Ljku
NiAoQXBwbGUgR2l0LTMxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139945</attachid>
            <date>2012-05-02 21:31:31 -0700</date>
            <delta_ts>2012-05-03 10:02:23 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>0001-WebFrameLoaderClient-dispatchWillSendSubmitEvent-nee.patch</filename>
            <type>text/plain</type>
            <size>27285</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA4YzRkNjE4ZGFiN2MxMDQ4ZjE1MjhiNTgyN2I1NWRhM2QwNGNmNDViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAyIE1heSAyMDEyIDIxOjA1OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpIG5lZWRzIHRv
CiBiZSBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0MgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg0MzA0CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9X
ZWJLaXQyOgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5o
OgpEZWNsYXJlIHdpbGxTZW5kU3VibWl0RXZlbnQgb24gV0tCdW5kbGVQYWdlRm9ybUNsaWVudC4K
CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
LmNwcDoKKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJt
aXRFdmVudCk6CkZyb20gdGhlIFN0cmluZyBwYWlyIHZlY3RvciwgY3JlYXRlIGEgbWFwIGZyb20g
Y29udHJvbCBuYW1lIHRvIHZhbHVlLgpDYWxsIHRoZSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2
ZW50LgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuaDoKRGVjbGFyZSB3aWxsU2VuZFN1Ym1pdEV2ZW50LgoKKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCk6CkNhbGwgdGhlIGluamVjdGVk
IGJ1bmRsZSBmb3JtIGNsaWVudCdzIHdpbGxTZW5kU3VibWl0RXZlbnQuCgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKVW4tc3R1YiB3aWxsU2VuZFN1
Ym1pdEV2ZW50LgoKKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcDoKKFdlYktpdCk6ClNldCB0
aGUgaW50ZXJmYWNlIHNpemVzIGZvciBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50OyB2ZXJzaW9uIDEg
aW5jbHVkZXMKd2lsbFNlbmRTdWJtaXRFdmVudC4KCiogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5o
OgpEZWNsYXJlIGEgc3BlY2lhbGl6YXRpb24gZm9yIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQuCgoq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CkJ1bXAgdGhl
IFdLQnVuZGxlUGFnZUZvcm1DbGllbnQgdmVyc2lvbiBudW1iZXIuCgpUb29sczoKCiogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CkFkZGVkIG5l
dyBmaWxlcyB0byBwcm9qZWN0LgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNl
bmRTdWJtaXRFdmVudC5jcHA6IEFkZGVkLgooVGVzdFdlYktpdEFQSTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgpMb29rIGZvciB0aGUgIkRpZFJlY2VpdmVXaWxsU2VuZFN1
Ym1pdEV2ZW50IiBtZXNzYWdlLiBUaGUgbWVzc2FnZSBib2R5CndpbGwgYmUgdGhlIGRpY3Rpb25h
cnkgb2YgZm9ybSBjb250cm9sIG5hbWVzIGFuZCB2YWx1ZXMgcGFzc2VkIHRvIHRoZQppbmplY3Rl
ZCBidW5kbGUncyB3aWxsU2VuZFN1Ym1pdEV2ZW50IGhhbmRsZXI7IGxvb2sgZm9yIHRoZSBwYWly
CiJ0ZXh0RmllbGQiIC0+ICJ0ZXh0IGZpZWxkIi4KKFRlc3RXZWJLaXRBUEk6OnNldEluamVjdGVk
QnVuZGxlQ2xpZW50KToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgoKKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwOiBBZGRlZC4KKFRlc3RX
ZWJLaXRBUEk6OndpbGxTZW5kU3VibWl0RXZlbnQpOgpQb3N0IGEgbWVzc2FnZSB0byB0aGUgVGVz
dFdlYktpdEFQSSBwcm9jZXNzIHdpdGggdGhlIGRpY3Rpb25hcnkgb2YgZm9ybQpjb250cm9sIG5h
bWVzIGFuZCB2YWx1ZXMgdGhhdCB3ZSByZWNlaXZlZC4KKFRlc3RXZWJLaXRBUEk6OldpbGxTZW5k
U3VibWl0RXZlbnRUZXN0OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCk6CihUZXN0V2ViS2l0QVBJ
OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdDo6ZGlkQ3JlYXRlUGFnZSk6ClNldCB1cCB0aGUgcGFn
ZSdzIGZvcm0gY2xpZW50LgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0by1zdWJt
aXR0aW5nLWZvcm0uaHRtbDogQWRkZWQuCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcCAgICAgICAgICB8ICAgIDUgKysKIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCAgICAgICAgICAgIHwgICAgNCArKwogLi4u
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggfCAgICA4ICsr
LQogLi4uL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwICAgICAgICAgICAgICAgfCAg
IDE1ICsrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVu
dC5oICB8ICAgIDEgKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCAgICAgICAgfCAgIDExICsrKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAzMCArKysrKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgIHwgICAxMiArKysrCiAuLi4vVGVzdHMvV2ViS2l0
Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCAgICAgICAgICB8ICAgNjcgKysrKysrKysrKysrKysr
KysrKysKIC4uLi9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCAg
IHwgICA2NSArKysrKysrKysrKysrKysrKysrCiAuLi4vVGVzdHMvV2ViS2l0Mi9hdXRvLXN1Ym1p
dHRpbmctZm9ybS5odG1sICAgICAgICB8ICAgMTkgKysrKysrCiAxMiBmaWxlcyBjaGFuZ2VkLCAy
NzIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNl
bmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNzBmNmIxNy4uYTM2NGEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEy
LTA0LTE4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKKyAgICAgICAg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpIG5lZWRz
IHRvIGJlCisgICAgICAgIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSB3aWxsU2VuZFN1Ym1pdEV2
ZW50IG9uIFdLQnVuZGxlUGFnZUZvcm1DbGllbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU2VuZFN1Ym1pdEV2ZW50
KToKKyAgICAgICAgRnJvbSB0aGUgU3RyaW5nIHBhaXIgdmVjdG9yLCBjcmVhdGUgYSBtYXAgZnJv
bSBjb250cm9sIG5hbWUgdG8gdmFsdWUuCisgICAgICAgIENhbGwgdGhlIGNsaWVudCdzIHdpbGxT
ZW5kU3VibWl0RXZlbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAgICAgRGVjbGFyZSB3aWxsU2VuZFN1
Ym1pdEV2ZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgorICAgICAgICBDYWxsIHRoZSBpbmplY3Rl
ZCBidW5kbGUgZm9ybSBjbGllbnQncyB3aWxsU2VuZFN1Ym1pdEV2ZW50LgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICBVbi1zdHViIHdpbGxTZW5kU3VibWl0RXZlbnQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xp
ZW50VHJhaXRzLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIFNldCB0aGUgaW50ZXJm
YWNlIHNpemVzIGZvciBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50OyB2ZXJzaW9uIDEgaW5jbHVkZXMK
KyAgICAgICAgd2lsbFNlbmRTdWJtaXRFdmVudC4KKworICAgICAgICAqIFNoYXJlZC9BUElDbGll
bnRUcmFpdHMuaDoKKyAgICAgICAgRGVjbGFyZSBhIHNwZWNpYWxpemF0aW9uIGZvciBXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgQnVtcCB0aGUgV0tCdW5kbGVQYWdlRm9ybUNs
aWVudCB2ZXJzaW9uIG51bWJlci4KKworMjAxMi0wNC0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgorCiAgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxTZW5kU3VibWl0RXZlbnQoKSBzaG91bGQgYmUgZ2l2ZW4gbW9yZQogICAgICAgICBpbmZvcm1h
dGlvbiBhYm91dCB0aGUgZm9ybSBiZWluZyBzdWJtaXR0ZWQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElDbGllbnRUcmFpdHMuY3BwCmluZGV4IGRmMzU5MGYuLmYxOGQyNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCkBAIC02MSw0ICs2MSw5IEBAIGNvbnN0IHNp
emVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVy
c2lvbltdID0gewogICAgIHNpemVvZihXS1BhZ2VVSUNsaWVudCkKIH07CiAgICAgCitjb25zdCBz
aXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGllbnQ+OjppbnRlcmZhY2VT
aXplc0J5VmVyc2lvbltdID0geworICAgIG9mZnNldG9mKFdLQnVuZGxlUGFnZUZvcm1DbGllbnQs
IHdpbGxTZW5kU3VibWl0RXZlbnQpLAorICAgIHNpemVvZihXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50
KQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xp
ZW50VHJhaXRzLmgKaW5kZXggMTZmODZhMC4uYzlmMjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElDbGllbnRUcmFpdHMuaApAQCAtNjAsNiArNjAsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50PiB7CiAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsyXTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFQ
SUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50PiB7CisgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsyXTsKK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gQVBJQ2xpZW50VHJhaXRzX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCmluZGV4IDc1MmU4MDguLjQ0MTc1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aApAQCAtMjgzLDIwICsyODMsMjYgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlVGV4dERp
ZENoYW5nZUluVGV4dEZpZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWcKIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRBcmVhQ2FsbGJhY2spKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbFRleHRBcmVhRWxlbWVu
dEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0Rmll
bGRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBo
dG1sSW5wdXRFbGVtZW50SGFuZGxlLCBXS0lucHV0RmllbGRBY3Rpb25UeXBlIGFjdGlvblR5cGUs
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFjaykoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sRm9ybUVsZW1lbnRIYW5kbGUsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRGlj
dGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxG
b3JtRWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVGcmFtZVJl
ZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAKIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IHsKICAgICBpbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIAorICAgIC8vIFZlcnNp
b24gMC4KICAgICBXS0J1bmRsZVBhZ2VUZXh0RmllbGREaWRCZWdpbkVkaXRpbmdDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZzsKICAgICBXS0J1
bmRsZVBhZ2VUZXh0RmllbGREaWRFbmRFZGl0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRleHRGaWVsZERpZEVuZEVkaXRpbmc7CiAgICAgV0tCdW5kbGVQYWdlVGV4dERpZENo
YW5nZUluVGV4dEZpZWxkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RGlkQ2hh
bmdlSW5UZXh0RmllbGQ7CiAgICAgV0tCdW5kbGVQYWdlVGV4dERpZENoYW5nZUluVGV4dEFyZWFD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYTsK
ICAgICBXS0J1bmRsZVBhZ2VTaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgIHNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZDsKICAgICBXS0J1
bmRsZVBhZ2VXaWxsU3VibWl0Rm9ybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxTdWJtaXRGb3JtOworICAgIAorICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1
bmRsZVBhZ2VXaWxsU2VuZFN1Ym1pdEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxTZW5kU3VibWl0RXZlbnQ7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50OwogCi1lbnVtIHsga1dLQnVuZGxl
UGFnZUZvcm1DbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsKK2VudW0geyBrV0tCdW5kbGVQYWdl
Rm9ybUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMSB9OwogCiAvLyBDb250ZXh0TWVudSBjbGllbnQK
IHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUdldENvbnRleHRNZW51RnJvbURlZmF1bHRDb250
ZXh0TWVudUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVIaXRUZXN0UmVz
dWx0UmVmIGhpdFRlc3RSZXN1bHQsIFdLQXJyYXlSZWYgZGVmYXVsdE1lbnUsIFdLQXJyYXlSZWYq
IG5ld01lbnUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKaW5kZXggMzk5
MjRlYy4uMzY1NDMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwCkBAIC04Myw2ICs4MywyMSBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChXZWJQYWdlKiBwYWdlLAogICAg
IHJldHVybiBtX2NsaWVudC5zaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQodG9BUEkocGFn
ZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCBhY3Rpb25UeXBlLCB0b0FQSShmcmFtZSksIG1f
Y2xpZW50LmNsaWVudEluZm8pOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFnZSwgSFRNTEZvcm1FbGVtZW50KiBm
b3JtRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lLCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4mIHZhbHVlcykKK3sKKyAgICBpZiAo
IW1fY2xpZW50LndpbGxTZW5kU3VibWl0RXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
ZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IG5vZGVIYW5kbGUgPSBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKGZvcm1FbGVtZW50KTsKKworICAgIEltbXV0YWJsZURp
Y3Rpb25hcnk6Ok1hcFR5cGUgbWFwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVz
LnNpemUoKTsgKytpKQorICAgICAgICBtYXAuc2V0KHZhbHVlc1tpXS5maXJzdCwgV2ViU3RyaW5n
OjpjcmVhdGUodmFsdWVzW2ldLnNlY29uZCkpOworICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9u
YXJ5PiB0ZXh0RmllbGRzTWFwID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWFwKTsKKwor
ICAgIG1fY2xpZW50LndpbGxTZW5kU3VibWl0RXZlbnQodG9BUEkocGFnZSksIHRvQVBJKG5vZGVI
YW5kbGUuZ2V0KCkpLCB0b0FQSShmcmFtZSksIHRvQVBJKHNvdXJjZUZyYW1lKSwgdG9BUEkodGV4
dEZpZWxkc01hcC5nZXQoKSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhU
TUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1
ZXMsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIW1fY2xpZW50Lndp
bGxTdWJtaXRGb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
aAppbmRleCA4OTM2OWRmLi40NTUwMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0
RGlkQ2hhbmdlSW5UZXh0QXJlYShXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVu
dCosIFdlYkZyYW1lKik7CiAgICAgYm9vbCBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQo
V2ViUGFnZSosIFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqLCBXS0lucHV0RmllbGRBY3Rpb25U
eXBlLCBXZWJGcmFtZSopOyAgICAKICAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqLCBX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFt
ZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYsIFJlZlB0cjxBUElP
YmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9pZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2Uq
LCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VG
cmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPiYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDQwOGE0ZjIuLjIxNGVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC03MzksOCArNzM5LDE3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
VW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3QgUmVzb3VyY2VFcnJvciYKICAgICB3ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYWJsZVRvSW1wbGVtZW50UG9saWN5KG1f
ZnJhbWUtPmZyYW1lSUQoKSwgZXJyb3IsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
KHVzZXJEYXRhLmdldCgpKSkpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoUGFzc1JlZlB0cjxGb3JtU3RhdGU+KQordm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NSZWZQdHI8
Rm9ybVN0YXRlPiBwcnBGb3JtU3RhdGUpCiB7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
ZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSA9IHBycEZvcm1TdGF0ZTsKKyAgICBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0gPSBmb3JtU3RhdGUtPmZvcm0oKTsKKyAgICBXZWJGcmFtZSogc291cmNlRnJh
bWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZvcm1TdGF0ZS0+c291cmNl
RG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKwor
ICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLndpbGxTZW5kU3VibWl0RXZl
bnQod2ViUGFnZSwgZm9ybSwgbV9mcmFtZSwgc291cmNlRnJhbWUsIGZvcm1TdGF0ZS0+dGV4dEZp
ZWxkVmFsdWVzKCkpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPiBwcnBGb3JtU3RhdGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMjM4YTVhOC4uMzhjZGFhNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA1LTAy
ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudCgpIG5lZWRzIHRvIGJl
CisgICAgICAgIGltcGxlbWVudGVkIGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVkIG5ldyBmaWxlcyB0byBwcm9q
ZWN0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3Vi
bWl0RXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgTG9vayBmb3IgdGhlICJEaWRSZWNl
aXZlV2lsbFNlbmRTdWJtaXRFdmVudCIgbWVzc2FnZS4gVGhlIG1lc3NhZ2UgYm9keQorICAgICAg
ICB3aWxsIGJlIHRoZSBkaWN0aW9uYXJ5IG9mIGZvcm0gY29udHJvbCBuYW1lcyBhbmQgdmFsdWVz
IHBhc3NlZCB0byB0aGUKKyAgICAgICAgaW5qZWN0ZWQgYnVuZGxlJ3Mgd2lsbFNlbmRTdWJtaXRF
dmVudCBoYW5kbGVyOyBsb29rIGZvciB0aGUgcGFpcgorICAgICAgICAidGV4dEZpZWxkIiAtPiAi
dGV4dCBmaWVsZCIuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzZXRJbmplY3RlZEJ1bmRsZUNs
aWVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbFNlbmRTdWJtaXRFdmVudCk6CisgICAg
ICAgIFBvc3QgYSBtZXNzYWdlIHRvIHRoZSBUZXN0V2ViS2l0QVBJIHByb2Nlc3Mgd2l0aCB0aGUg
ZGljdGlvbmFyeSBvZiBmb3JtCisgICAgICAgIGNvbnRyb2wgbmFtZXMgYW5kIHZhbHVlcyB0aGF0
IHdlIHJlY2VpdmVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2lsbFNlbmRTdWJtaXRFdmVu
dFRlc3Q6OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OldpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgU2V0IHVw
IHRoZSBwYWdlJ3MgZm9ybSBjbGllbnQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbDogQWRkZWQuCisKIDIwMTItMDUtMDIg
IFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJraXQub3JnPgogCiAgICAgICAgIHdl
YmtpdHB5OiBSZW1vdmUgc3lzLnBsYXRmb3JtIGFjY2Vzc2VzIGluIENyYXNoTG9ncy4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNzYwYmMyNC4uODVjMzY1YyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTUyLDYgKzUyLDkgQEAKIAkJNTJDQjQ3NDExNDQ4RkI5MzAwODczOTk1IC8qIExv
YWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNCNDc0MDE0NDhGQjkzMDA4NzM5
OTUgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCAqLzsg
fTsKIAkJNTJFNUNFNDYxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTVDRTQ1MTREMjFFOUQw
MDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgKi87IH07CiAJCTUyRTVDRTQ5MTREMjFFQUIwMDNC
MkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJFNUNFNDgxNEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZy
YW1lX0J1bmRsZS5jcHAgKi87IH07CisJCTc2RTE4MkRBMTU0NzU1MDEwMEYxRkFERCAvKiBXaWxs
U2VuZFN1Ym1pdEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc2RTE4MkQ5MTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50
LmNwcCAqLzsgfTsKKwkJNzZFMTgyREQxNTQ3NTY5MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0
RXZlbnRfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2RTE4MkRDMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1
bmRsZS5jcHAgKi87IH07CisJCTc2RTE4MkRGMTU0NzY3RTYwMEYxRkFERCAvKiBhdXRvLXN1Ym1p
dHRpbmctZm9ybS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc2RTE4MkRFMTU0NzVBODMwMEYxRkFERCAvKiBhdXRvLXN1Ym1pdHRpbmct
Zm9ybS5odG1sICovOyB9OwogCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVp
bGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi87IH07CiAJCTkz
MEFENDAyMTUwNjk4RDAwMDY3OTcwRiAvKiBsb3RzLW9mLXRleHQuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBRDQwMTE1MDY5OEIz
MDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0Lmh0bWwgKi87IH07CiAJCTkzNjEwMDI5MTREQzk1QTcw
MDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzYxMDAyODE0REM5NTdCMDA2MTM3OUQgLyog
bG90cy1vZi1pZnJhbWVzLmh0bWwgKi87IH07CkBAIC0xNzMsNiArMTc2LDcgQEAKIAkJCWZpbGVz
ID0gKAogCQkJCUI1NUYxMUJFMTUxOTFBMDYwMDkxNTkxNiAvKiBBaGVtLnR0ZiBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlCNTVGMTFCNzE1MTdEMDMzMDA5MTU5MTYgLyogYXR0cmlidXRlZFN0
cmluZ0N1c3RvbUZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk3NkUxODJERjE1
NDc2N0U2MDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1MTQyQjI3MzE1MTdDOEM4MDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5D
b3B5VVJMLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3RTdFMDQxNTExMTlDMTAw
RDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTM3OTAyOEI5MTRGQUMyNEMwMDdFNkI0MyAvKiBh
Y2NlcHRzRmlyc3RNb3VzZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjQ2LDYgKzI1
MCw5IEBACiAJCTUyQ0I0NzQwMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8q
IFBhcmVudEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
cmVudEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDgxNEQy
MUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NkUxODJEOTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJt
aXRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsU2Vu
ZFN1Ym1pdEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZFMTgyREMx
NTQ3NTY5MTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZFMTgyREUxNTQ3NUE4MzAwRjFG
QUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0cmluZ0J1aWxkZXIuY3BwOyBwYXRo
ID0gV1RGL1N0cmluZ0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRh
YmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQSTsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTMwQUQ0MDExNTA2OThCMzAwNjc5NzBGIC8q
IGxvdHMtb2YtdGV4dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxvdHMtb2Yt
dGV4dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNiw2ICs1NDMsOCBA
QAogCQkJCUJDMjJEMzE3MTREQzY4QjgwMEZGQjFERCAvKiBVc2VyTWVzc2FnZV9CdW5kbGUuY3Bw
ICovLAogCQkJCTUyMEJDRjRCMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLywK
IAkJCQk1MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwICov
LAorCQkJCTc2RTE4MkQ5MTU0NzU1MDEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNw
cCAqLywKKwkJCQk3NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVu
dF9CdW5kbGUuY3BwICovLAogCQkJCUJDOTAxRTIyMTQ5MkFEQ0UwMDc0QTY2NyAvKiBXS0Nvbm5l
Y3Rpb24uY3BwICovLAogCQkJCUJDOTAxRTMxMTQ5MkFGMzkwMDc0QTY2NyAvKiBXS0Nvbm5lY3Rp
b25fQnVuZGxlLmNwcCAqLywKIAkJCQlCQzdCNjE5QTEyOTlGRTlFMDBEMTc0QTQgLyogV0tQcmVm
ZXJlbmNlcy5jcHAgKi8sCkBAIC01ODMsNiArNTkyLDcgQEAKIAkJCQlCQ0FBNDg1NTE0QTAyMTY0
MDA4OEZBQzQgLyogc2ltcGxlLXRhbGwuaHRtbCAqLywKIAkJCQlCQzkwOTc3ODEyNTU3MUFCMDAw
ODM3NTYgLyogc2ltcGxlLmh0bWwgKi8sCiAJCQkJQzAyQjc4ODIxMjY2MTU0MTAwMjZCRjBGIC8q
IHNwYWNlYmFyLXNjcm9sbGluZy5odG1sICovLAorCQkJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFE
RCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNv
dXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODUzLDYgKzg2Myw3IEBACiAJ
CQkJQzU0MEY3NzYxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMzkzRTIwMTUyMzk0NEEwMDVG
MzlDNSAvKiBET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
NkUxODJEQTE1NDc1NTAxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTg4Myw2ICs4OTQsNyBAQAogCQkJCTkzQUY0RUNFMTUwNkYwNjQwMDdGRDU3
RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRkNGN0ExMTUzNEIyQTAwMDEwNDQ5MSAvKiBTaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEzOTNF
MjIxNTIzOTUyRDAwNUYzOUM1IC8qIERPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3NkUxODJERDE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRT
dWJtaXRFdmVudF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhlYzZjZAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2ZW50
LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3
LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0
YXRpYyBib29sIGRpZFJlY2VpdmVNZXNzYWdlOworCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lLCBXS1R5cGVSZWYgYm9keSwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkUmVjZWl2ZU1lc3Nh
Z2UgPSB0cnVlOworCisgICAgRVhQRUNUX1dLX1NUUkVRKCJEaWRSZWNlaXZlV2lsbFNlbmRTdWJt
aXRFdmVudCIsIG1lc3NhZ2VOYW1lKTsKKworICAgIEVYUEVDVF9FUShXS0RpY3Rpb25hcnlHZXRU
eXBlSUQoKSwgV0tHZXRUeXBlSUQoYm9keSkpOworICAgIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMg
PSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KGJvZHkpOworCisgICAgV0tTdHJpbmdSZWYg
dGV4dEZpZWxkVmFsdWVXSyA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KHZhbHVlcywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInRleHRG
aWVsZCIpKSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0IGZpZWxkIiwgdGV4dEZpZWxkVmFs
dWVXSyk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KFdLQ29udGV4
dFJlZiBjb250ZXh0KQoreworICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVj
dGVkQnVuZGxlQ2xpZW50OworICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNp
emVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOworICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmRp
ZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlID0gZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGU7CisKKyAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChj
b250ZXh0LCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQpOworfQorCitURVNUKFdlYktpdDIsIFdpbGxT
ZW5kU3VibWl0RXZlbnQpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0
ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJXaWxs
U2VuZFN1Ym1pdEV2ZW50VGVzdCIpKTsKKyAgICBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250
ZXh0LmdldCgpKTsKKworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkp
OworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoImF1dG8tc3VibWl0dGluZy1mb3JtIiwgImh0bWwiKSkuZ2V0KCkpOwor
ICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGZiMmFmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNw
cApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlUGFnZS5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK2NsYXNzIFdpbGxTZW5kU3VibWl0RXZlbnRUZXN0IDogcHVibGljIElu
amVjdGVkQnVuZGxlVGVzdCB7CitwdWJsaWM6CisgICAgV2lsbFNlbmRTdWJtaXRFdmVudFRlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpOworCisgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7Cit9Owor
CitzdGF0aWMgSW5qZWN0ZWRCdW5kbGVUZXN0OjpSZWdpc3RlcjxXaWxsU2VuZFN1Ym1pdEV2ZW50
VGVzdD4gcmVnaXN0cmFyKCJXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdCIpOworCitzdGF0aWMgdm9p
ZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0RpY3Rpb25hcnlSZWYg
dmFsdWVzLCBjb25zdCB2b2lkKikKK3sKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVk
QnVuZGxlQ29udHJvbGxlcjo6c2hhcmVkKCkuYnVuZGxlKCksIFV0aWw6OnRvV0soIkRpZFJlY2Vp
dmVXaWxsU2VuZFN1Ym1pdEV2ZW50IikuZ2V0KCksIHZhbHVlcyk7Cit9CisKK1dpbGxTZW5kU3Vi
bWl0RXZlbnRUZXN0OjpXaWxsU2VuZFN1Ym1pdEV2ZW50VGVzdChjb25zdCBzdGQ6OnN0cmluZyYg
aWRlbnRpZmllcikKKyAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQoreworfQor
Cit2b2lkIFdpbGxTZW5kU3VibWl0RXZlbnRUZXN0OjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVm
IGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCit7CisgICAgV0tCdW5kbGVQYWdlRm9ybUNs
aWVudCBmb3JtQ2xpZW50OworICAgIG1lbXNldCgmZm9ybUNsaWVudCwgMCwgc2l6ZW9mKGZvcm1D
bGllbnQpKTsKKyAgICAKKyAgICBmb3JtQ2xpZW50LnZlcnNpb24gPSAxOworICAgIGZvcm1DbGll
bnQuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgZm9ybUNsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50
ID0gd2lsbFNlbmRTdWJtaXRFdmVudDsKKyAgICAKKyAgICBXS0J1bmRsZVBhZ2VTZXRGb3JtQ2xp
ZW50KHBhZ2UsICZmb3JtQ2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2F1dG8tc3Vi
bWl0dGluZy1mb3JtLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYXV0
by1zdWJtaXR0aW5nLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hMjZlZWVjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL2F1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBzdWJt
aXRGb3JtSWZOZWNlc3NhcnkoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubG9jYXRpb24uc2VhcmNoKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0LmNsaWNrKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN1
Ym1pdEZvcm1JZk5lY2Vzc2FyeSgpIj4KKyAgICAgICAgPGZvcm0gYWN0aW9uPSIjIiBtZXRob2Q9
IkdFVCI+CisgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGV4dEZpZWxkIiB2
YWx1ZT0idGV4dCBmaWVsZCI+CisgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l
PSJoaWRkZW5GaWVsZCIgdmFsdWU9ImhpZGRlbiBmaWVsZCI+CisgICAgICAgICAgICA8aW5wdXQg
dHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiPgorICAgICAgICA8L2Zvcm0+CisgICAgPC9ib2R5
PgorPC9odG1sPgotLSAKMS43LjkuNiAoQXBwbGUgR2l0LTMxKQoK
</data>
<flag name="review"
          id="145684"
          type_id="1"
          status="+"
          setter="jberlin"
    />
          </attachment>
      

    </bug>

</bugzilla>