<?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>199848</bug_id>
          
          <creation_ts>2019-07-16 20:52:10 -0700</creation_ts>
          <short_desc>[WebKit] Add PageLoadState::Observer C API</short_desc>
          <delta_ts>2019-08-05 23:44:11 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=189336</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=200465</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>rniwa</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1553429</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-16 20:52:10 -0700</bug_when>
    <thetext>[Win][WebKit] Add PageLoadState::Observer C API

WKPageLoaderClientV0::didReceiveTitleForFrame has been deprecated
in r235398. There is no WebKit C API to get the timing of title
changed. Cocoa and glib WebKit API exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553436</commentid>
    <comment_count>1</comment_count>
      <attachid>374275</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-16 20:58:26 -0700</bug_when>
    <thetext>Created attachment 374275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553447</commentid>
    <comment_count>2</comment_count>
      <attachid>374280</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-16 21:21:45 -0700</bug_when>
    <thetext>Created attachment 374280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554245</commentid>
    <comment_count>3</comment_count>
      <attachid>374280</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-19 10:46:36 -0700</bug_when>
    <thetext>Comment on attachment 374280
Patch

There&apos;s nothing windows specific about this.  Why not make it cross-platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554634</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-21 18:42:45 -0700</bug_when>
    <thetext>Agreed. Will do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554664</commentid>
    <comment_count>5</comment_count>
      <attachid>374591</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-22 03:09:55 -0700</bug_when>
    <thetext>Created attachment 374591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555295</commentid>
    <comment_count>6</comment_count>
      <attachid>374755</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-23 20:22:09 -0700</bug_when>
    <thetext>Created attachment 374755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555303</commentid>
    <comment_count>7</comment_count>
      <attachid>374758</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-23 20:51:19 -0700</bug_when>
    <thetext>Created attachment 374758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556053</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-26 00:54:25 -0700</bug_when>
    <thetext>r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556600</commentid>
    <comment_count>9</comment_count>
      <attachid>374758</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-29 10:11:39 -0700</bug_when>
    <thetext>Comment on attachment 374758
Patch

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

Please add a unit test in TestWebKitAPI that verifies these are actually called.  Just adding a change to MiniBrowser and hoping we would notice any regressions is not sufficient regression protection.

&gt; Source/WebKit/UIProcess/API/APIStateClient.h:32
&gt; +class StateClient {

This is duplicate with PageLoadState::Observer.

&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:2306
&gt; +        void willChangeIsLoading() override

I would make the class final or make these overrides final. It&apos;s not too big of a deal in this case because it&apos;s a function scoped class, but it&apos;s something we try to do.

&gt; Source/WebKit/UIProcess/WebPageLoadStateObserver.h:36
&gt; +    WebPageLoadStateObserver(std::unique_ptr&lt;API::StateClient&gt;&amp;&amp; client)

This should be UniqueRef if it&apos;s never null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556904</commentid>
    <comment_count>10</comment_count>
      <attachid>375146</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-29 23:00:38 -0700</bug_when>
    <thetext>Created attachment 375146
Patch

* Addressed review feedbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556905</commentid>
    <comment_count>11</comment_count>
      <attachid>375147</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-30 00:23:04 -0700</bug_when>
    <thetext>Created attachment 375147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556994</commentid>
    <comment_count>12</comment_count>
      <attachid>375147</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-30 10:18:11 -0700</bug_when>
    <thetext>Comment on attachment 375147
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:639
&gt; +void WebPageProxy::setPageLoadStateObserver(UniqueRef&lt;PageLoadState::Observer&gt;&amp;&amp; observer)

My earlier feedback was mistaken.  We ought to be able to call WKPageSetPageStateClient with nullptr and have it clear the observer.  That would bring this back to a std::unique_ptr.  Please do that, add that to the test, and r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557173</commentid>
    <comment_count>13</comment_count>
      <attachid>375147</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-30 19:11:24 -0700</bug_when>
    <thetext>Comment on attachment 375147
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:639
&gt;&gt; +void WebPageProxy::setPageLoadStateObserver(UniqueRef&lt;PageLoadState::Observer&gt;&amp;&amp; observer)
&gt; 
&gt; My earlier feedback was mistaken.  We ought to be able to call WKPageSetPageStateClient with nullptr and have it clear the observer.  That would bring this back to a std::unique_ptr.  Please do that, add that to the test, and r=me.

WKPageSetPageStateClient can accept nullptr without modification for this patch. 
However, I get the idea. I&apos;ll change WebPageProxy::setPageLoadStateObserver to take a std::unique_ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557177</commentid>
    <comment_count>14</comment_count>
      <attachid>375203</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-30 19:36:59 -0700</bug_when>
    <thetext>Created attachment 375203
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557187</commentid>
    <comment_count>15</comment_count>
      <attachid>375203</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-30 22:14:59 -0700</bug_when>
    <thetext>Comment on attachment 375203
Patch for landing

Clearing flags on attachment: 375203

Committed r248029: &lt;https://trac.webkit.org/changeset/248029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557188</commentid>
    <comment_count>16</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-30 22:15:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557189</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-30 22:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/53745381&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558734</commentid>
    <comment_count>18</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-08-05 23:44:11 -0700</bug_when>
    <thetext>Filed: Bug 200465 – [WebKit] ASSERTION FAILED: m_observers.isEmpty() if WKPageSetPageStateClient is used</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374275</attachid>
            <date>2019-07-16 20:58:26 -0700</date>
            <delta_ts>2019-07-16 21:21:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190717125824.patch</filename>
            <type>text/plain</type>
            <size>24182</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0ZjgwOTgwYWMzZDkyNmQw
MTJiNjg4YmY1NDBkYThjODg1ZTgyZmMuLjZiNzc3ZmQ1Njc2NTA5ZjE1MzRiMTk2NGE3OWE3NmJl
ZmI3YjE1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTktMDctMTYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl1bV2ViS2l0
XSBBZGQgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIG5vIFdlYktpdCBDIEFQSSB0byBn
ZXQgdGhlIHRpbWluZyBvZiB0aXRsZSBjaGFuZ2VkIHNpbmNlCisgICAgICAgIFdLUGFnZUxvYWRl
ckNsaWVudFYwOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSBoYXMgYmVlbiByZW1vdmVkIGluCisg
ICAgICAgIHIyMzUzOTguIENvY29hIGFuZCBnbGliIFdlYktpdCBBUEkgZXhpc3QuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dL
UGFnZVByaXZhdGVXaW4uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dpbi9X
S1BhZ2VTdGF0ZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dpbi9B
UElTdGF0ZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6On5TdGF0
ZUNsaWVudCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlSXNMb2FkaW5n
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUlzTG9hZGluZyk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpT
dGF0ZUNsaWVudDo6ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6
d2lsbENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFu
Z2VBY3RpdmVVUkwpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUhhc09u
bHlTZWN1cmVDb250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUhh
c09ubHlTZWN1cmVDb250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hh
bmdlQ2FuR29CYWNrKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdv
QmFjayk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJk
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdvRm9yd2FyZCk6Cisg
ICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9n
cmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VOZXR3b3JrUmVxdWVz
dHNJblByb2dyZXNzKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VDZXJ0
aWZpY2F0ZUluZm8pOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlQ2VydGlm
aWNhdGVJbmZvKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VXZWJQcm9j
ZXNzSXNSZXNwb25zaXZlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZVdl
YlByb2Nlc3NJc1Jlc3BvbnNpdmUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkU3dh
cFdlYlByb2Nlc3Nlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy93
aW4vUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYWdl
TG9hZFN0YXRlT2JzZXJ2ZXI6OlBhZ2VMb2FkU3RhdGVPYnNlcnZlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL3dpbi9XZWJQYWdlUHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldFN0YXRlQ2xpZW50KToKKwogMjAxOS0wNy0xNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbWVtYmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpp
bmRleCA4MGJjMjIxNDAzNjYyODA5NjIzMjVmYjExNWRiNWZhNjMxY2Q2MGVhLi42MjgzMjNjZjE4
NTE4YmUwMjFmMzc4MzVkNzlmNDI0ZTA3ZGExMDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
QEAgLTQ0LDYgKzQ0LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBVSVByb2Nl
c3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL2N1cmwvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5jcHAKIAorICAgIFVJUHJvY2Vzcy9B
UEkvQy93aW4vV0tQYWdlUHJpdmF0ZVdpbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mvd2luL1dL
Vmlldy5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvd2luL0FQSVdlYnNpdGVEYXRhU3RvcmVXaW4u
Y3BwCkBAIC0zNTUsNiArMzU2LDggQEAgc2V0KFdlYktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURF
UlMKIGxpc3QoQVBQRU5EIFdlYktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBTaGFy
ZWQvQVBJL2Mvd2luL1dLQmFzZVdpbi5oCiAKKyAgICBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFn
ZVByaXZhdGVXaW4uaAorICAgIFVJUHJvY2Vzcy9BUEkvQy93aW4vV0tQYWdlU3RhdGVDbGllbnQu
aAogICAgIFVJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmgKICkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFnZVByaXZhdGVXaW4uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTllZDQ4ODg0YjEyMmY0OTBlNGQ5NmVmNWE1OWVmOTgzODFmMzcxMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2lu
LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255IEludGVy
YWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIldLUGFnZVN0YXRlQ2xpZW50LmgiCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJu
ICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50
KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCk7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy93aW4vV0tQYWdlU3RhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL3dpbi9XS1BhZ2VTdGF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NmI4OTNhYWRj
YjU5MmQ1Nzc5YWY0N2MyMWRiNzQyNzVmYmMyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tQYWdlU3RhdGVDbGllbnQuaApAQCAtMCwwICsx
LDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0
YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0
L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K3R5cGVkZWYgdm9pZCAoKldLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrKShjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVN0YXRlQ2xpZW50RGlk
Q2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBj
b25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaWVudEluZm87Cit9IFdLUGFnZVN0YXRlQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlU3RhdGVDbGllbnRWMCB7CisgICAgV0tQYWdlU3RhdGVDbGllbnRCYXNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisg
ICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUlzTG9hZGluZzsKKyAg
ICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZENoYW5nZUlzTG9hZGluZzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdp
bGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFu
Z2VUaXRsZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVN0YXRl
Q2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUFjdGl2ZVVSTDsK
KyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudDsKKyAgICBXS1Bh
Z2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAgIFdLUGFnZVN0YXRlQ2xp
ZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bENoYW5nZUVzdGltYXRlZFByb2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlRXN0aW1h
dGVkUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2FuR29CYWNrOworICAgIFdL
UGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkQ2hhbmdlQ2FuR29CYWNrOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENo
YW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUNh
bkdvRm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBX
S1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOworICAgIFdLUGFn
ZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzczsKKyAgICBXS1BhZ2VTdGF0
ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VDZXJ0
aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9u
c2l2ZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmU7Cisg
ICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRTd2FwV2ViUHJvY2Vzc2VzOworCit9IFdLUGFnZVN0YXRlQ2xpZW50
VjA7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd2luL0FQSVN0YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd2luL0FQSVN0YXRlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM2OTJiZDZi
ZTk5ODBhNmU1NzJhNzEwZTFlNzNmNzM2Y2VkODY3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93aW4vQVBJU3RhdGVDbGllbnQuaApAQCAtMCwwICsxLDU5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlu
bWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV0tQYWdlLmgi
CisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBTdGF0ZUNsaWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+U3RhdGVDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdl
SXNMb2FkaW5nKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hhbmdlVGl0bGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUFjdGl2
ZVVSTCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3
aWxsQ2hhbmdlQ2FuR29CYWNrKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNhbkdv
QmFjaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdp
bGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3dhcFdlYlByb2Nlc3NlcygpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyYWYwZTgxNWNkYjQ4YmZiOWRl
MDk3ZmFjNmIyYTIzYjA4Yjk3MzY4Li5jNDUxOGQ1MjA1MDQ2NWZlZDhjMWE0YmRiZTY1OWM1NzJh
ZmMxN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0
LDYgKzc0LDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJPcHRpb25hbENhbGxiYWNrSUQuaCIKICNpbmNsdWRlICJQYWdlQ2xp
ZW50LmgiCisjaW5jbHVkZSAiUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGx1
Z2luSW5mb3JtYXRpb24uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlByaW50SW5mby5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBhZDI0ZGM0ZWUzZDMyZWJlOGY2MWFmMDA2MTRmZDcwMDlhN2Q0M2EyLi41Y2EwMWU1MTk5
ZTQ1NGRkMTNmYzAwMjRmMTQwZWFiY2VhZGIzOWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTYzLDYgKzE2Myw3IEBAIGNsYXNzIExvYWRlckNsaWVudDsKIGNs
YXNzIE5hdmlnYXRpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xpZW50OwogY2xhc3MgUG9saWN5Q2xp
ZW50OworY2xhc3MgU3RhdGVDbGllbnQ7CiBjbGFzcyBVSUNsaWVudDsKIGNsYXNzIFVSTFJlcXVl
c3Q7CiB9CkBAIC0zNjQsNiArMzY1LDEwIEBAIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0
IFdURjo6TWFjaFNlbmRSaWdodCY+IE1hY2hTZW5kUmlnaHRDYWxsYmFjazsKIHR5cGVkZWYgR2Vu
ZXJpY0NhbGxiYWNrPGJvb2wsIGJvb2wsIFN0cmluZywgZG91YmxlLCBkb3VibGUsIHVpbnQ2NF90
PiBOb3dQbGF5aW5nSW5mb0NhbGxiYWNrOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXSU4pCitj
bGFzcyBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXI7CisjZW5kaWYKKwogdXNpbmcgU3BlbGxEb2N1bWVu
dFRhZyA9IGludDY0X3Q7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U+CkBAIC01MDIsNiArNTA3LDEwIEBAIHB1Ymxp
YzoKICAgICBBUEk6Okljb25Mb2FkaW5nQ2xpZW50JiBpY29uTG9hZGluZ0NsaWVudCgpIHsgcmV0
dXJuICptX2ljb25Mb2FkaW5nQ2xpZW50OyB9CiAgICAgdm9pZCBzZXRJY29uTG9hZGluZ0NsaWVu
dChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJY29uTG9hZGluZ0NsaWVudD4mJik7CiAKKyNpZiBQTEFU
Rk9STShXSU4pCisgICAgdm9pZCBzZXRTdGF0ZUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpT
dGF0ZUNsaWVudD4mJik7CisjZW5kaWYKKwogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsK
ICAgICB2b2lkIHNldERyYXdpbmdBcmVhKHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiYmKTsKIApAQCAtMjExNiw2ICsyMTI1LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QVBJOjpDb250ZXh0TWVudUNsaWVudD4gbV9jb250ZXh0TWVudUNsaWVudDsKICNlbmRpZgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5qZWN0
ZWRCdW5kbGVDbGllbnQ7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
YWdlTG9hZFN0YXRlT2JzZXJ2ZXI+IG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyOworI2VuZGlmCiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViTmF2aWdhdGlvblN0YXRlPiBtX25hdmlnYXRpb25TdGF0
ZTsKICAgICBTdHJpbmcgbV9mYWlsaW5nUHJvdmlzaW9uYWxMb2FkVVJMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VMb2FkU3RhdGVPYnNlcnZlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAwZTMwMzZlMGVkN2FiZDcyMWZlYjQ2NDA0YTZlM2NjYjEwZTkyMDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUxvYWRTdGF0ZU9ic2VydmVy
LmgKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgU29ueSBJbnRl
cmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJBUElTdGF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2VMb2FkU3RhdGUuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBhZ2VMb2FkU3RhdGVPYnNlcnZlciA6IHB1Ymxp
YyBQYWdlTG9hZFN0YXRlOjpPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgUGFnZUxvYWRTdGF0ZU9ic2VydmVyKHN0ZDo6dW5pcXVlX3B0cjxBUEk6
OlN0YXRlQ2xpZW50PiYmIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVu
dCkpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHdpbGxDaGFuZ2VJc0xvYWRp
bmcoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VJc0xvYWRp
bmcoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlSXNMb2FkaW5nKCk7CisgICAgfQorCisg
ICAgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGll
bnQtPndpbGxDaGFuZ2VUaXRsZSgpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUo
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZVRpdGxlKCk7Cisg
ICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlQWN0aXZlVVJMKCkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlQWN0aXZlVVJMKCk7CisgICAgfQorCisgICAgdm9p
ZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQt
PmRpZENoYW5nZUFjdGl2ZVVSTCgpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUhhc09u
bHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxs
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5n
ZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50
LT5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpOworICAgIH0KKworICAgIHZvaWQgd2ls
bENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xp
ZW50LT53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICB9CisKKyAgICB2b2lkIGRp
ZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xp
ZW50LT5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAgIH0KKworICAgIHZvaWQgd2ls
bENoYW5nZUNhbkdvQmFjaygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2ls
bENoYW5nZUNhbkdvQmFjaygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQ2FuR29CYWNr
KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VDYW5Hb0JhY2so
KTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQoKSBvdmVycmlkZQor
ICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQoKTsKKyAgICB9
CisKKyAgICB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCk7CisgICAgfQorCisgICAgdm9p
ZCB3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisgICAgewor
ICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKTsK
KyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0
c0luUHJvZ3Jlc3MoKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUlu
Zm8oKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VDZXJ0aWZp
Y2F0ZUluZm8oKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbygp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQ2VydGlmaWNhdGVJ
bmZvKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2VzKCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRTd2FwV2ViUHJvY2Vzc2VzKCk7CisgICAgfQor
CisgICAgdm9pZCB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUo
KTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jl
c3BvbnNpdmUoKTsKKyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpTdGF0ZUNsaWVu
dD4gbV9jbGllbnQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViUGFnZVByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQYWdlUHJveHlXaW4uY3BwCmluZGV4IDhkNTg1OTJkNTRmNWI5MGJhM2UzYmMyM2ZjN2M4Yjhm
ZTE0MTU4MzMuLmZkOTZkNjc2ZDVjOWI3N2FhM2JjMzUxNGM0ZmFkYzRjNWRhOTY3NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQYWdlUHJveHlXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQYWdlUHJveHlXaW4uY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAKICNpbmNsdWRlICJQYWdl
Q2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51REIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJB
Z2VudC5oPgogCkBAIC03MCw1ICs3MSwxMyBAQCBQbGF0Zm9ybVZpZXdXaWRnZXQgV2ViUGFnZVBy
b3h5Ojp2aWV3V2lkZ2V0KCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudEltcGwm
PihwYWdlQ2xpZW50KCkpLnZpZXdXaWRnZXQoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNl
dFN0YXRlQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OlN0YXRlQ2xpZW50PiYmIGNsaWVudCkK
K3sKKyAgICBpZiAobV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpCisgICAgICAgIHBhZ2VMb2FkU3Rh
dGUoKS5yZW1vdmVPYnNlcnZlcigqbV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOworICAgIG1fcGFn
ZUxvYWRTdGF0ZU9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlTG9hZFN0YXRlT2JzZXJ2
ZXI+KFdURk1vdmUoY2xpZW50KSk7CisgICAgcGFnZUxvYWRTdGF0ZSgpLmFkZE9ic2VydmVyKCpt
X3BhZ2VMb2FkU3RhdGVPYnNlcnZlcik7Cit9CisKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDI2MGY3
Yjc3MmI5MzhlNDI1MGVkMTk0MjIzZGE2OWUwNDY0YThlMS4uOTg4ZThmMmU2MjU3Y2U0MTUzMTcw
NWYyZjZkNGI3YmU2YjlmMTVhMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA3LTE2ICBGdWppaSBIaXJvbm9y
aSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgV0tQYWdlU3RhdGVDbGllbnRWMDo6ZGlkQ2hhbmdl
VGl0bGUgdG8gZ2V0IHRoZSB0aW1pbmcgb2YgdGl0bGUKKyAgICAgICAgY2hhbmdlZC4KKworICAg
ICAgICAqIE1pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcDoKKyAgICAgICAg
KFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJyb3dzZXJXaW5kb3cpOgorICAgICAgICAoV2Vi
S2l0QnJvd3NlcldpbmRvdzo6ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoV2ViS2l0QnJvd3Nl
cldpbmRvdzo6ZGlkRmluaXNoTmF2aWdhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogTWluaUJy
b3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaDoKKwogMjAxOS0wNy0xNSAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBKU0dsb2JhbE9iamVjdCB0
eXBlIG1hY3JvcyBzaG91bGQgc3VwcG9ydCBmZWF0dXJlIGZsYWdzIGFuZCBXZWFrUmVmIHNob3Vs
ZCBoYXZlIG9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dz
ZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cu
Y3BwCmluZGV4IDAwNGIwYTlkMWFkYWM4ZTU4ZjIwMTAyNWYzODQ3ZGE1NmFlZWQ5NjguLmI1MGVi
NjRlODM5ZjgxMGNhMzE2M2YxMmM5YzZmNzUzNGM5M2U4MmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJLaXQvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
Q3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0luc3BlY3Rvci5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1BhZ2VQcml2YXRlV2luLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUHJvdGVjdGlv
blNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUHJvdGVjdGlvblNwYWNlQ3VybC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVSZWZDdXJsLmg+CkBAIC0xMzcsNyArMTM4
LDYgQEAgV2ViS2l0QnJvd3NlcldpbmRvdzo6V2ViS2l0QnJvd3NlcldpbmRvdyhXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmYsIEhXTkQgbWFpblcKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50
VjAgbmF2aWdhdGlvbkNsaWVudCA9IHsgfTsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UudmVy
c2lvbiA9IDA7CiAgICAgbmF2aWdhdGlvbkNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlzOwot
ICAgIG5hdmlnYXRpb25DbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmln
YXRpb247CiAgICAgbmF2aWdhdGlvbkNsaWVudC5kaWRDb21taXROYXZpZ2F0aW9uID0gZGlkQ29t
bWl0TmF2aWdhdGlvbjsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSA9IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKICAgICBX
S1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChwYWdlLCAmbmF2aWdhdGlvbkNsaWVudC5iYXNl
KTsKQEAgLTE0OCw2ICsxNDgsMTIgQEAgV2ViS2l0QnJvd3NlcldpbmRvdzo6V2ViS2l0QnJvd3Nl
cldpbmRvdyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmYsIEhXTkQgbWFpblcKICAgICB1aUNs
aWVudC5jcmVhdGVOZXdQYWdlID0gY3JlYXRlTmV3UGFnZTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQocGFnZSwgJnVpQ2xpZW50LmJhc2UpOwogCisgICAgV0tQYWdlU3RhdGVDbGllbnRWMCBz
dGF0ZUNsaWVudCA9IHsgfTsKKyAgICBzdGF0ZUNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAg
IHN0YXRlQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgc3RhdGVDbGllbnQuZGlk
Q2hhbmdlVGl0bGUgPSBkaWRDaGFuZ2VUaXRsZTsKKyAgICBXS1BhZ2VTZXRQYWdlU3RhdGVDbGll
bnQocGFnZSwgJnN0YXRlQ2xpZW50LmJhc2UpOworCiAgICAgdXBkYXRlUHJveHlTZXR0aW5ncygp
OwogICAgIHJlc2V0Wm9vbSgpOwogfQpAQCAtMjg3LDExICsyOTMsMTIgQEAgc3RhdGljIFdlYktp
dEJyb3dzZXJXaW5kb3cmIHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogICAgIHJldHVybiAqY29uc3RfY2FzdDxXZWJLaXRCcm93c2VyV2luZG93Kj4oc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViS2l0QnJvd3NlcldpbmRvdyo+KGNsaWVudEluZm8pKTsKIH0KIAotdm9p
ZCBXZWJLaXRCcm93c2VyV2luZG93OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdl
LCBXS05hdmlnYXRpb25SZWYgbmF2aWdhdGlvbiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQordm9pZCBXZWJLaXRCcm93c2VyV2luZG93OjpkaWRDaGFuZ2VUaXRs
ZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIGF1dG8mIHRoaXNXaW5kb3cgPSB0b1dl
YktpdEJyb3dzZXJXaW5kb3coY2xpZW50SW5mbyk7CisgICAgYXV0byBwYWdlID0gV0tWaWV3R2V0
UGFnZSh0aGlzV2luZG93Lm1fdmlldy5nZXQoKSk7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHRpdGxlID0gYWRvcHRXSyhXS1BhZ2VDb3B5VGl0bGUocGFnZSkpOwogICAgIHN0ZDo6d3N0
cmluZyB0aXRsZVN0cmluZyA9IGNyZWF0ZVN0cmluZyh0aXRsZS5nZXQoKSkgKyBMIiBbV2ViS2l0
XSI7Ci0gICAgYXV0byYgdGhpc1dpbmRvdyA9IHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjbGllbnRJ
bmZvKTsKICAgICBTZXRXaW5kb3dUZXh0KHRoaXNXaW5kb3cubV9oTWFpblduZCwgdGl0bGVTdHJp
bmcuY19zdHIoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJL
aXRCcm93c2VyV2luZG93LmggYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3Nlcldp
bmRvdy5oCmluZGV4IDg3NjgyN2JjZmM2OTA4ZGI4NWEyZjU2NjYyMzc1M2YwMmMzNjdjY2QuLmVl
YTdkZGU1OGRiMTUxN2RkYWYwNDUyMzNhYTBlYWVmZTBjZTMyY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmgKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBjYW5UcnVzdFNlcnZlckNlcnRpZmljYXRlKFdLUHJvdGVjdGlvblNwYWNl
UmVmKTsKIAotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmLCBX
S05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IGRpZENoYW5nZVRpdGxlKGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21taXRO
YXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V0tQYWdlUmVmLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBjb25zdCB2b2lkKik7CiAg
ICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmln
dXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmLCBj
b25zdCB2b2lkICopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374280</attachid>
            <date>2019-07-16 21:21:45 -0700</date>
            <delta_ts>2019-07-22 03:09:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190717132144.patch</filename>
            <type>text/plain</type>
            <size>31428</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0ZjgwOTgwYWMzZDkyNmQw
MTJiNjg4YmY1NDBkYThjODg1ZTgyZmMuLmE1NDBlOGE3MTIyNGNmY2QzMzNmZmZmYzJhOGI2Y2Yy
M2Q0YWRhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDctMTYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl1bV2ViS2l0
XSBBZGQgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIG5vIFdlYktpdCBDIEFQSSB0byBn
ZXQgdGhlIHRpbWluZyBvZiB0aXRsZSBjaGFuZ2VkIHNpbmNlCisgICAgICAgIFdLUGFnZUxvYWRl
ckNsaWVudFYwOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSBoYXMgYmVlbiByZW1vdmVkIGluCisg
ICAgICAgIHIyMzUzOTguIENvY29hIGFuZCBnbGliIFdlYktpdCBBUEkgZXhpc3QuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dL
UGFnZVByaXZhdGVXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLUGFnZVNldFBhZ2VTdGF0ZUNs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93aW4vV0tQYWdlU3RhdGVDbGllbnQu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93aW4vQVBJU3RhdGVDbGllbnQuaDog
QWRkZWQuCisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp+U3RhdGVDbGllbnQpOgorICAgICAg
ICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUlzTG9hZGluZyk6CisgICAgICAgIChBUEk6
OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VJc0xvYWRpbmcpOgorICAgICAgICAoQVBJOjpTdGF0ZUNs
aWVudDo6d2lsbENoYW5nZVRpdGxlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENo
YW5nZVRpdGxlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VBY3RpdmVV
UkwpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlQWN0aXZlVVJMKToKKyAg
ICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCk6
CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVu
dCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUNhbkdvQmFjayk6Cisg
ICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VDYW5Hb0JhY2spOgorICAgICAgICAo
QVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUNhbkdvRm9yd2FyZCk6CisgICAgICAgIChBUEk6
OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQpOgorICAgICAgICAoQVBJOjpTdGF0
ZUNsaWVudDo6d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpOgorICAgICAgICAo
QVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyk6Cisg
ICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKToKKyAg
ICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSk6
CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25z
aXZlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZFN3YXBXZWJQcm9jZXNzZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VMb2FkU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUxvYWRTdGF0ZU9ic2VydmVy
OjpQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUGFn
ZVByb3h5V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRTdGF0ZUNs
aWVudCk6CisKIDIwMTktMDctMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgcmVkdW5kYW50IFdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uIG1lbWJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggODBiYzIyMTQwMzY2
MjgwOTYyMzI1ZmIxMTVkYjVmYTYzMWNkNjBlYS4uNjI4MzIzY2YxODUxOGJlMDIxZjM3ODM1ZDc5
ZjQyNGUwN2RhMTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC00NCw2ICs0NCw3IEBA
IGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQ
cm90ZWN0aW9uU3BhY2VDdXJsLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZkN1cmwuY3BwCiAKKyAgICBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFnZVBy
aXZhdGVXaW4uY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuY3BwCiAKICAgICBV
SVByb2Nlc3MvQVBJL3dpbi9BUElXZWJzaXRlRGF0YVN0b3JlV2luLmNwcApAQCAtMzU1LDYgKzM1
Niw4IEBAIHNldChXZWJLaXRfUFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiBsaXN0KEFQUEVORCBX
ZWJLaXRfUFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiAgICAgU2hhcmVkL0FQSS9jL3dpbi9XS0Jh
c2VXaW4uaAogCisgICAgVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmgKKyAg
ICBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFnZVN0YXRlQ2xpZW50LmgKICAgICBVSVByb2Nlc3Mv
QVBJL0Mvd2luL1dLVmlldy5oCiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTU0YmMxMTNm
ZjZkYjViMWI0ZGQ1NmNmMzhlMTI5NjcwMzk3MjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFnZVByaXZhdGVXaW4uY3BwCkBAIC0wLDAg
KzEsMjAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50ZXJhY3RpdmUgRW50
ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS1BhZ2VQcml2YXRlV2luLmgiCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRl
ICJBUElTdGF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgorCituYW1lc3BhY2UgQVBJIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVN0YXRlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBs
ZTxXS1BhZ2VTdGF0ZUNsaWVudFYwPiBWZXJzaW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIEFQ
SQorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCit2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNs
aWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCit7Cisg
ICAgY2xhc3MgU3RhdGVDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tQYWdlU3RhdGVDbGll
bnRCYXNlPiwgcHVibGljIEFQSTo6U3RhdGVDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAg
ZXhwbGljaXQgU3RhdGVDbGllbnQoY29uc3QgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxpemUoY2xpZW50KTsKKyAgICAgICAgfQor
ICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgd2lsbENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUlzTG9hZGlu
ZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hh
bmdlSXNMb2FkaW5nKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAg
ICAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5nKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUlzTG9hZGluZyhtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdl
VGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50Lndp
bGxDaGFuZ2VUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2Ns
aWVudC53aWxsQ2hhbmdlVGl0bGUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVRpdGxlKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZVRpdGxlKG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VBY3Rp
dmVVUkwoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50Lndp
bGxDaGFuZ2VBY3RpdmVVUkwpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
bV9jbGllbnQud2lsbENoYW5nZUFjdGl2ZVVSTChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUFjdGl2ZVVSTCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VB
Y3RpdmVVUkwobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZvaWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRl
bnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENo
YW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
ICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3Zl
cnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VIYXNP
bmx5U2VjdXJlQ29udGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBt
X2NsaWVudC5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudChtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50Lndp
bGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MobV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlRXN0aW1h
dGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VD
YW5Hb0JhY2soKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VDYW5Hb0JhY2spCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2lsbENoYW5nZUNhbkdvQmFjayhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VDYW5Hb0JhY2soKSBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUNhbkdvQmFj
aykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFu
Z2VDYW5Hb0JhY2sobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUNhbkdvRm9yd2FyZCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29Gb3J3
YXJkKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lk
IGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNhbkdvRm9yd2FyZChtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdl
TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZU5l
dHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygp
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdl
TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbyhtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFu
Z2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8obV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5n
ZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VXZWJQcm9j
ZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVdlYlByb2Nlc3NJ
c1Jlc3BvbnNpdmUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGll
bnQuZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZShtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2VzKCkgb3Zl
cnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRTd2FwV2ViUHJv
Y2Vzc2VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRp
ZFN3YXBXZWJQcm9jZXNzZXMobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQor
ICAgIH07CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRTdGF0ZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PFN0YXRlQ2xpZW50PihjbGllbnQpKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0Mvd2luL1dLUGFnZVByaXZhdGVXaW4uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTllZDQ4ODg0
YjEyMmY0OTBlNGQ5NmVmNWE1OWVmOTgzODFmMzcxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1BhZ2VQcml2YXRlV2luLmgKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVy
dGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldLUGFn
ZVN0YXRlQ2xpZW50LmgiCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93
aW4vV0tQYWdlU3RhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dp
bi9XS1BhZ2VTdGF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NmI4OTNhYWRjYjU5MmQ1Nzc5YWY0
N2MyMWRiNzQyNzVmYmMyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy93aW4vV0tQYWdlU3RhdGVDbGllbnQuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgdm9p
ZCAoKldLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrKShjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJh
Y2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VTdGF0
ZUNsaWVudEJhc2UgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWVudEluZm87Cit9IFdLUGFnZVN0YXRlQ2xpZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tQ
YWdlU3RhdGVDbGllbnRWMCB7CisgICAgV0tQYWdlU3RhdGVDbGllbnRCYXNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lv
biAwLgorICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUlzTG9hZGluZzsKKyAgICBXS1BhZ2VTdGF0
ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZENoYW5nZUlzTG9hZGluZzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VUaXRsZTsKKyAg
ICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENo
YW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUFj
dGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VT
dGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENo
YW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUVzdGlt
YXRlZFByb2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7
CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2FuR29CYWNrOworICAgIFdLUGFnZVN0YXRlQ2xp
ZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
Q2hhbmdlQ2FuR29CYWNrOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsK
KyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNs
aWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hh
bmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzczsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxD
aGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VD
ZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87
CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBX
S1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmU7CisgICAgV0tQYWdlU3Rh
dGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRTd2FwV2ViUHJvY2Vzc2VzOworCit9IFdLUGFnZVN0YXRlQ2xpZW50VjA7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd2luL0FQSVN0YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd2luL0FQSVN0YXRlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM2OTJiZDZiZTk5ODBhNmU1NzJh
NzEwZTFlNzNmNzM2Y2VkODY3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93aW4vQVBJU3RhdGVDbGllbnQuaApAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV0tQYWdlLmgiCisKK25hbWVzcGFj
ZSBBUEkgeworCitjbGFzcyBTdGF0ZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3Rh
dGVDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlSXNMb2FkaW5nKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
VGl0bGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUFjdGl2ZVVSTCgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdp
bGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ2Fu
R29CYWNrKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNhbkdvQmFjaygpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
Q2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlQ2VydGlmaWNhdGVJbmZvKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VXZWJQ
cm9jZXNzSXNSZXNwb25zaXZlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVdlYlBy
b2Nlc3NJc1Jlc3BvbnNpdmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3dhcFdlYlByb2Nl
c3NlcygpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyYWYwZTgxNWNkYjQ4YmZiOWRlMDk3ZmFjNmIyYTIz
YjA4Yjk3MzY4Li42YTgyZDcyNzhiOWM0NGNlNjQ4OGMwNGJkOWIwZTg1NDcxMjAyYmE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIyOSw2ICsyMjksMTAg
QEAKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgIlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5LmgiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggYWQyNGRjNGVlM2QzMmViZThmNjFhZjAwNjE0ZmQ3MDA5YTdkNDNhMi4uNWNh
MDFlNTE5OWU0NTRkZDEzZmMwMDI0ZjE0MGVhYmNlYWRiMzlhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBjbGFzcyBMb2FkZXJDbGll
bnQ7CiBjbGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgTmF2aWdhdGlvbkNsaWVudDsKIGNsYXNzIFBv
bGljeUNsaWVudDsKK2NsYXNzIFN0YXRlQ2xpZW50OwogY2xhc3MgVUlDbGllbnQ7CiBjbGFzcyBV
UkxSZXF1ZXN0OwogfQpAQCAtMzY0LDYgKzM2NSwxMCBAQCB0eXBlZGVmIEdlbmVyaWNDYWxsYmFj
azxjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmPiBNYWNoU2VuZFJpZ2h0Q2FsbGJhY2s7CiB0eXBl
ZGVmIEdlbmVyaWNDYWxsYmFjazxib29sLCBib29sLCBTdHJpbmcsIGRvdWJsZSwgZG91YmxlLCB1
aW50NjRfdD4gTm93UGxheWluZ0luZm9DYWxsYmFjazsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V0lOKQorY2xhc3MgUGFnZUxvYWRTdGF0ZU9ic2VydmVyOworI2VuZGlmCisKIHVzaW5nIFNwZWxs
RG9jdW1lbnRUYWcgPSBpbnQ2NF90OwogCiBjbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJsaWMgQVBJ
OjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlPgpAQCAtNTAyLDYgKzUwNywxMCBA
QCBwdWJsaWM6CiAgICAgQVBJOjpJY29uTG9hZGluZ0NsaWVudCYgaWNvbkxvYWRpbmdDbGllbnQo
KSB7IHJldHVybiAqbV9pY29uTG9hZGluZ0NsaWVudDsgfQogICAgIHZvaWQgc2V0SWNvbkxvYWRp
bmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+JiYpOwogCisj
aWYgUExBVEZPUk0oV0lOKQorICAgIHZvaWQgc2V0U3RhdGVDbGllbnQoc3RkOjp1bmlxdWVfcHRy
PEFQSTo6U3RhdGVDbGllbnQ+JiYpOworI2VuZGlmCisKICAgICB2b2lkIGluaXRpYWxpemVXZWJQ
YWdlKCk7CiAgICAgdm9pZCBzZXREcmF3aW5nQXJlYShzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0Fy
ZWFQcm94eT4mJik7CiAKQEAgLTIxMTYsNiArMjEyNSw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFQSTo6Q29udGV4dE1lbnVDbGllbnQ+IG1fY29udGV4dE1lbnVDbGllbnQ7CiAj
ZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50PiBt
X2luamVjdGVkQnVuZGxlQ2xpZW50OworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UGFnZUxvYWRTdGF0ZU9ic2VydmVyPiBtX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKKyNl
bmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYk5hdmlnYXRpb25TdGF0ZT4gbV9uYXZpZ2F0
aW9uU3RhdGU7CiAgICAgU3RyaW5nIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlTG9hZFN0YXRlT2JzZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMGUzMDM2ZTBlZDdhYmQ3MjFmZWI0NjQwNGE2ZTNjY2IxMGU5MjA3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VMb2FkU3RhdGVP
YnNlcnZlci5oCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNv
bnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiQVBJU3RhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJQYWdlTG9hZFN0YXRl
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIg
OiBwdWJsaWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFBhZ2VMb2FkU3RhdGVPYnNlcnZlcihzdGQ6OnVuaXF1ZV9w
dHI8QVBJOjpTdGF0ZUNsaWVudD4mJiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoV1RGTW92
ZShjbGllbnQpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCB3aWxsQ2hhbmdl
SXNMb2FkaW5nKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdl
SXNMb2FkaW5nKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VJc0xvYWRpbmcoKSBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUlzTG9hZGluZygpOworICAg
IH0KKworICAgIHZvaWQgd2lsbENoYW5nZVRpdGxlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IG1fY2xpZW50LT53aWxsQ2hhbmdlVGl0bGUoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5n
ZVRpdGxlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VUaXRs
ZSgpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZUFjdGl2ZVVSTCgpOworICAgIH0KKwor
ICAgIHZvaWQgZGlkQ2hhbmdlQWN0aXZlVVJMKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1f
Y2xpZW50LT5kaWRDaGFuZ2VBY3RpdmVVUkwoKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFu
Z2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVu
dC0+d2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCk7CisgICAgfQorCisgICAgdm9pZCBk
aWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBt
X2NsaWVudC0+ZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKTsKKyAgICB9CisKKyAgICB2
b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgfQorCisgICAg
dm9pZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICB9CisKKyAgICB2
b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGll
bnQtPndpbGxDaGFuZ2VDYW5Hb0JhY2soKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNh
bkdvQmFjaygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQ2Fu
R29CYWNrKCk7CisgICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCk7
CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQoKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUNhbkdvRm9yd2FyZCgpOworICAgIH0KKwor
ICAgIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSBvdmVycmlkZQor
ICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dy
ZXNzKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dy
ZXNzKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VOZXR3b3Jr
UmVxdWVzdHNJblByb2dyZXNzKCk7CisgICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlQ2VydGlm
aWNhdGVJbmZvKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdl
Q2VydGlmaWNhdGVJbmZvKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VDZXJ0aWZpY2F0
ZUluZm8oKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUNlcnRp
ZmljYXRlSW5mbygpOworICAgIH0KKworICAgIHZvaWQgZGlkU3dhcFdlYlByb2Nlc3NlcygpIG92
ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkU3dhcFdlYlByb2Nlc3NlcygpOwor
ICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNw
b25zaXZlKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25z
aXZlKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VXZWJQcm9j
ZXNzSXNSZXNwb25zaXZlKCk7CisgICAgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6U3Rh
dGVDbGllbnQ+IG1fY2xpZW50OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViUGFnZVByb3h5V2luLmNwcAppbmRleCA4ZDU4NTkyZDU0ZjViOTBiYTNlM2JjMjNm
YzdjOGI4ZmUxNDE1ODMzLi5mZDk2ZDY3NmQ1YzliNzdhYTNiYzM1MTRjNGZhZGM0YzVkYTk2Nzcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2luLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogCiAjaW5jbHVk
ZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudURCLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Vc2VyQWdlbnQuaD4KIApAQCAtNzAsNSArNzEsMTMgQEAgUGxhdGZvcm1WaWV3V2lkZ2V0IFdl
YlBhZ2VQcm94eTo6dmlld1dpZGdldCgpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VDbGll
bnRJbXBsJj4ocGFnZUNsaWVudCgpKS52aWV3V2lkZ2V0KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRTdGF0ZUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpTdGF0ZUNsaWVudD4mJiBj
bGllbnQpCit7CisgICAgaWYgKG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyKQorICAgICAgICBwYWdl
TG9hZFN0YXRlKCkucmVtb3ZlT2JzZXJ2ZXIoKm1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyKTsKKyAg
ICBtX3BhZ2VMb2FkU3RhdGVPYnNlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUxvYWRTdGF0
ZU9ic2VydmVyPihXVEZNb3ZlKGNsaWVudCkpOworICAgIHBhZ2VMb2FkU3RhdGUoKS5hZGRPYnNl
cnZlcigqbV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDQyNjBmN2I3NzJiOTM4ZTQyNTBlZDE5NDIyM2RhNjllMDQ2NGE4ZTEuLjk4OGU4ZjJlNjI1N2Nl
NDE1MzE3MDVmMmY2ZDRiN2JlNmI5ZjE1YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOS0wNy0xNiAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luXVtXZWJL
aXRdIEFkZCBQYWdlTG9hZFN0YXRlOjpPYnNlcnZlciBDIEFQSQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdLUGFnZVN0YXRlQ2xpZW50VjA6OmRp
ZENoYW5nZVRpdGxlIHRvIGdldCB0aGUgdGltaW5nIG9mIHRpdGxlCisgICAgICAgIGNoYW5nZWQu
CisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHA6Cisg
ICAgICAgIChXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93KToKKyAgICAg
ICAgKFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZENoYW5nZVRpdGxlKToKKyAgICAgICAgKFdlYktp
dEJyb3dzZXJXaW5kb3c6OmRpZEZpbmlzaE5hdmlnYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IE1pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93Lmg6CisKIDIwMTktMDctMTUgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSlNHbG9iYWxP
YmplY3QgdHlwZSBtYWNyb3Mgc2hvdWxkIHN1cHBvcnQgZmVhdHVyZSBmbGFncyBhbmQgV2Vha1Jl
ZiBzaG91bGQgaGF2ZSBvbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJL
aXRCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2Vy
V2luZG93LmNwcAppbmRleCAwMDRiMGE5ZDFhZGFjOGU1OGYyMDEwMjVmMzg0N2RhNTZhZWVkOTY4
Li5iNTBlYjY0ZTgzOWY4MTBjYTMxNjNmMTJjOWM2Zjc1MzRjOTNlODJjIDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSA8V2ViS2l0L1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJbnNwZWN0b3IuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZVdpbi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1By
b3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5oPgpAQCAtMTM3
LDcgKzEzOCw2IEBAIFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJyb3dzZXJXaW5kb3coV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiBjb25mLCBIV05EIG1haW5XCiAgICAgV0tQYWdlTmF2aWdhdGlv
bkNsaWVudFYwIG5hdmlnYXRpb25DbGllbnQgPSB7IH07CiAgICAgbmF2aWdhdGlvbkNsaWVudC5i
YXNlLnZlcnNpb24gPSAwOwogICAgIG5hdmlnYXRpb25DbGllbnQuYmFzZS5jbGllbnRJbmZvID0g
dGhpczsKLSAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZEZpbmlzaE5hdmlnYXRpb24gPSBkaWRGaW5p
c2hOYXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkQ29tbWl0TmF2aWdhdGlvbiA9
IGRpZENvbW1pdE5hdmlnYXRpb247CiAgICAgbmF2aWdhdGlvbkNsaWVudC5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgPSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7
CiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQocGFnZSwgJm5hdmlnYXRpb25DbGll
bnQuYmFzZSk7CkBAIC0xNDgsNiArMTQ4LDEyIEBAIFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktp
dEJyb3dzZXJXaW5kb3coV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25mLCBIV05EIG1haW5XCiAg
ICAgdWlDbGllbnQuY3JlYXRlTmV3UGFnZSA9IGNyZWF0ZU5ld1BhZ2U7CiAgICAgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KHBhZ2UsICZ1aUNsaWVudC5iYXNlKTsKIAorICAgIFdLUGFnZVN0YXRlQ2xp
ZW50VjAgc3RhdGVDbGllbnQgPSB7IH07CisgICAgc3RhdGVDbGllbnQuYmFzZS52ZXJzaW9uID0g
MDsKKyAgICBzdGF0ZUNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlzOworICAgIHN0YXRlQ2xp
ZW50LmRpZENoYW5nZVRpdGxlID0gZGlkQ2hhbmdlVGl0bGU7CisgICAgV0tQYWdlU2V0UGFnZVN0
YXRlQ2xpZW50KHBhZ2UsICZzdGF0ZUNsaWVudC5iYXNlKTsKKwogICAgIHVwZGF0ZVByb3h5U2V0
dGluZ3MoKTsKICAgICByZXNldFpvb20oKTsKIH0KQEAgLTI4NywxMSArMjkzLDEyIEBAIHN0YXRp
YyBXZWJLaXRCcm93c2VyV2luZG93JiB0b1dlYktpdEJyb3dzZXJXaW5kb3coY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKICAgICByZXR1cm4gKmNvbnN0X2Nhc3Q8V2ViS2l0QnJvd3NlcldpbmRvdyo+
KHN0YXRpY19jYXN0PGNvbnN0IFdlYktpdEJyb3dzZXJXaW5kb3cqPihjbGllbnRJbmZvKSk7CiB9
CiAKLXZvaWQgV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3ZvaWQgV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkQ2hh
bmdlVGl0bGUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBhdXRvJiB0aGlzV2luZG93
ID0gdG9XZWJLaXRCcm93c2VyV2luZG93KGNsaWVudEluZm8pOworICAgIGF1dG8gcGFnZSA9IFdL
Vmlld0dldFBhZ2UodGhpc1dpbmRvdy5tX3ZpZXcuZ2V0KCkpOwogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiB0aXRsZSA9IGFkb3B0V0soV0tQYWdlQ29weVRpdGxlKHBhZ2UpKTsKICAgICBz
dGQ6OndzdHJpbmcgdGl0bGVTdHJpbmcgPSBjcmVhdGVTdHJpbmcodGl0bGUuZ2V0KCkpICsgTCIg
W1dlYktpdF0iOwotICAgIGF1dG8mIHRoaXNXaW5kb3cgPSB0b1dlYktpdEJyb3dzZXJXaW5kb3co
Y2xpZW50SW5mbyk7CiAgICAgU2V0V2luZG93VGV4dCh0aGlzV2luZG93Lm1faE1haW5XbmQsIHRp
dGxlU3RyaW5nLmNfc3RyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci93
aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJy
b3dzZXJXaW5kb3cuaAppbmRleCA4NzY4MjdiY2ZjNjkwOGRiODVhMmY1NjY2MjM3NTNmMDJjMzY3
Y2NkLi5lZWE3ZGRlNThkYjE1MTdkZGFmMDQ1MjMzYWEwZWFlZmUwY2UzMmNjIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oCisrKyBiL1Rvb2xz
L01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgY2FuVHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZShXS1Byb3RlY3Rp
b25TcGFjZVJlZik7CiAKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKFdLUGFn
ZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0
aWMgdm9pZCBkaWRDaGFuZ2VUaXRsZShjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlk
Q29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFdLUGFnZVJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgY29uc3Qgdm9p
ZCopOwogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJl
c1JlZiwgY29uc3Qgdm9pZCAqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374591</attachid>
            <date>2019-07-22 03:09:55 -0700</date>
            <delta_ts>2019-07-23 20:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190722190954.patch</filename>
            <type>text/plain</type>
            <size>28351</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Njc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1ZDY3MGI3NTA3MGNjMDdi
ZWJmZmYxMmIxNDcxOTg1ZGJjYWFmODQuLmIyMGQ2MzAwODdkMTllZThhNWZhYjc3ZjAzNzQyYzA2
YmY5Y2JkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTktMDctMjIgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBXZWJLaXQgQyBBUEkgdG8gZ2V0IHRo
ZSB0aW1pbmcgb2YgdGl0bGUgY2hhbmdlZCBzaW5jZQorICAgICAgICBXS1BhZ2VMb2FkZXJDbGll
bnRWMDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgaGFzIGJlZW4gcmVtb3ZlZCBpbgorICAgICAg
ICByMjM1Mzk4LiBDb2NvYSBhbmQgZ2xpYiBXZWJLaXQgQVBJIGV4aXN0LgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElTdGF0ZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKEFQSTo6U3Rh
dGVDbGllbnQ6On5TdGF0ZUNsaWVudCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxs
Q2hhbmdlSXNMb2FkaW5nKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUlz
TG9hZGluZyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUpOgor
ICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJ
OjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChBUEk6OlN0YXRl
Q2xpZW50OjpkaWRDaGFuZ2VBY3RpdmVVUkwpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6
d2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGll
bnQ6OmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVD
bGllbnQ6OndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRl
Q2xpZW50OjpkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRl
Q2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29CYWNrKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6
OmRpZENoYW5nZUNhbkdvQmFjayk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hh
bmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNh
bkdvRm9yd2FyZCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlTmV0d29y
a1JlcXVlc3RzSW5Qcm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFu
Z2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6
OndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6
ZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6Ondp
bGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGll
bnQ6OmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUpOgorICAgICAgICAoQVBJOjpTdGF0
ZUNsaWVudDo6ZGlkU3dhcFdlYlByb2Nlc3Nlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlU3RhdGVDbGllbnQpOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6IEFkZGVkIFdLUGFnZVNldFBhZ2VT
dGF0ZUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGVPYnNlcnZlci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUxvYWRTdGF0ZU9ic2VydmVyOjpQYWdlTG9hZFN0
YXRlT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFN0YXRlQ2xpZW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMTktMDctMjEgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gW1dlYktpdDJdIEFkZCBsaW1p
dGVkIHN1cHBvcnQgZm9yIC1pc1Bvc2l0aW9uOmF0Qm91bmRhcnk6aW5EaXJlY3Rpb246IGluIFdL
Q29udGVudFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElT
dGF0ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVN0YXRlQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGM2OTJiZDZiZTk5ODBhNmU1NzJhNzEwZTFlNzNmNzM2Y2VkODY3Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElTdGF0ZUNs
aWVudC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgU29ueSBJ
bnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJXS1BhZ2UuaCIKKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIFN0YXRlQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdGF0ZUNsaWVudCgpIHsgfQorCisgICAgdmly
dHVhbCB2b2lkIHdpbGxDaGFuZ2VJc0xvYWRpbmcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2hhbmdlSXNMb2FkaW5nKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VUaXRsZSgp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB3aWxsQ2hhbmdlQWN0aXZlVVJMKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZUFjdGl2ZVVSTCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlSGFzT25seVNlY3Vy
ZUNvbnRlbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNv
bnRlbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlQ2FuR29CYWNrKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFu
Z2VDYW5Hb0ZvcndhcmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ2FuR29Gb3J3
YXJkKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblBy
b2dyZXNzKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUNlcnRpZmljYXRlSW5m
bygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2VzKCkgeyB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IGNjYzMzMGYzMDI0NzYxZmU3Mzk3NDQ1NjIyMzA1MjY2NzhiNzkwNDAuLjVlNDI2OTQxZDc3Mjcz
MzY2ODcyYjA1YTYzMDc3ZTJjMGFjNTI5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1
cmF0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU2Vz
c2lvblN0YXRlLmgiCisjaW5jbHVkZSAiQVBJU3RhdGVDbGllbnQuaCIKICNpbmNsdWRlICJBUElV
SUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSVdlYnNpdGVQb2xpY2llcy5oIgogI2luY2x1ZGUgIkFQ
SVdpbmRvd0ZlYXR1cmVzLmgiCkBAIC0xMzIsNiArMTMzLDEwIEBAIHRlbXBsYXRlPD4gc3RydWN0
IENsaWVudFRyYWl0czxXS1BhZ2VGaW5kQ2xpZW50QmFzZT4gewogdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50QmFzZT4gewogICAgIHR5cGVkZWYg
c3RkOjp0dXBsZTxXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudFYwPiBWZXJzaW9uczsKIH07CisKK3Rl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VTdGF0ZUNsaWVudEJhc2U+IHsKKyAg
ICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlU3RhdGVDbGllbnRWMD4gVmVyc2lvbnM7Cit9Owog
ICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCiAKQEAgLTIyODksNiArMjI5NCwxNjUgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQ
YWdlTmF2aWdhdGlvbkNsaWUKICAgICB3ZWJQYWdlUHJveHktPnNldE5hdmlnYXRpb25DbGllbnQo
bWFrZVVuaXF1ZVJlZjxOYXZpZ2F0aW9uQ2xpZW50Pih3a0NsaWVudCkpOwogfQogCit2b2lkIFdL
UGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRC
YXNlKiBjbGllbnQpCit7CisgICAgY2xhc3MgU3RhdGVDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGll
bnQ8V0tQYWdlU3RhdGVDbGllbnRCYXNlPiwgcHVibGljIEFQSTo6U3RhdGVDbGllbnQgeworICAg
IHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgU3RhdGVDbGllbnQoY29uc3QgV0tQYWdlU3RhdGVD
bGllbnRCYXNlKiBjbGllbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxpemUoY2xp
ZW50KTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgd2lsbENoYW5nZUlz
TG9hZGluZygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZUlzTG9hZGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC53aWxsQ2hhbmdlSXNMb2FkaW5nKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5n
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5n
ZUlzTG9hZGluZyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlVGl0bGUobV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoKSBvdmVy
cmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVRpdGxl
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5n
ZVRpdGxlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIHdpbGxDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VBY3RpdmVVUkwpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUFjdGl2ZVVSTChtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VBY3Rp
dmVVUkwoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRp
ZENoYW5nZUFjdGl2ZVVSTCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBt
X2NsaWVudC5kaWRDaGFuZ2VBY3RpdmVVUkwobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdl
SGFzT25seVNlY3VyZUNvbnRlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUhhc09ubHlT
ZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCht
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxs
Q2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcykKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZv
aWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAg
ICB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VDYW5Hb0JhY2spCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNhbkdvQmFjayhtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VD
YW5Hb0JhY2soKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LmRpZENoYW5nZUNhbkdvQmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC5kaWRDaGFuZ2VDYW5Hb0JhY2sobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
KyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUNhbkdv
Rm9yd2FyZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53
aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAg
IH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNh
bkdvRm9yd2FyZChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCB3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZU5ldHdvcmtSZXF1
ZXN0c0luUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9j
bGllbnQud2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1Jl
cXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgh
bV9jbGllbnQuZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VOZXR3b3JrUmVxdWVz
dHNJblByb2dyZXNzKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAg
ICAgICB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNl
cnRpZmljYXRlSW5mbyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VDZXJ0
aWZpY2F0ZUluZm8obV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZvaWQgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlkZQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNS
ZXNwb25zaXZlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50
LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3Bv
bnNpdmUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRp
ZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZShtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRTd2Fw
V2ViUHJvY2Vzc2VzKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kaWRTd2FwV2ViUHJvY2Vzc2VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIG1fY2xpZW50LmRpZFN3YXBXZWJQcm9jZXNzZXMobV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKKyAgICAgICAgfQorICAgIH07CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRTdGF0ZUNsaWVu
dChzdGQ6Om1ha2VfdW5pcXVlPFN0YXRlQ2xpZW50PihjbGllbnQpKTsKK30KKwogdm9pZCBXS1Bh
Z2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVm
IHNjcmlwdFJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGNh
bGxiYWNrKQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1l
KHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgdHJ1ZSwgW2NvbnRleHQsIGNhbGxiYWNrXShB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogcmV0dXJuVmFsdWUsIGJvb2wsIGNvbnN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGY1NjdkNDY4MzczNjAzOTlhOWQw
YzU0YzNhMDRhNTQwZDA2ZjA1OWQuLmRiZDA2MjZiMzdhZmViOTg0YjdmZWJmZGNlYTAwNWMyZjVh
ZWM1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC00Myw2ICs0
Myw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUxvYWRlckNsaWVudC5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFn
ZVBvbGljeUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VTdGF0ZUNsaWVudC5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VVSUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Bh
Z2VWaXNpYmlsaXR5VHlwZXMuaD4KIApAQCAtMjI5LDYgKzIzMCw4IEBAIFdLX0VYUE9SVCB2b2lk
IFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUxv
YWRlckNsaWVuCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFn
ZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVu
dCwgbWFjb3MoMTAuMTQuNCkpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRp
b25DbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRCYXNl
KiBjbGllbnQpOwogCitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlU3RhdGVDbGllbnQoV0tQ
YWdlUmVmIHBhZ2UsIFdLUGFnZVN0YXRlQ2xpZW50QmFzZSogY2xpZW50KTsKKwogdHlwZWRlZiB2
b2lkICgqV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uKShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlUnVuSmF2YVNj
cmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzY3JpcHQsIHZvaWQq
IGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBmdW5jdGlvbik7CiAjaWZkZWYg
X19CTE9DS1NfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlU3RhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVN0
YXRlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc2Yjg5M2FhZGNiNTkyZDU3NzlhZjQ3YzIxZGI3NDI3
NWZiYzI4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZVN0YXRlQ2xpZW50LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3Bs
dXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTdGF0
ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjaykoY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrKShjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlU3RhdGVDbGllbnRCYXNlIHsK
KyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBX
S1BhZ2VTdGF0ZUNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVN0YXRlQ2xpZW50
VjAgeworICAgIFdLUGFnZVN0YXRlQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1Bh
Z2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxDaGFuZ2VJc0xvYWRpbmc7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFu
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VJc0xv
YWRpbmc7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlVGl0bGU7CisgICAgV0tQYWdlU3RhdGVD
bGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWRDaGFuZ2VUaXRsZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VBY3RpdmVVUkw7CisgICAg
V0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWRDaGFuZ2VBY3RpdmVVUkw7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxs
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdl
SGFzT25seVNlY3VyZUNvbnRlbnQ7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VIYXNPbmx5U2Vj
dXJlQ29udGVudDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzczsK
KyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbENoYW5nZUNhbkdvQmFjazsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUNhbkdvQmFj
azsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQ7CisgICAgV0tQYWdlU3Rh
dGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQ7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlTmV0d29y
a1JlcXVlc3RzSW5Qcm9ncmVzczsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZU5ldHdvcmtSZXF1
ZXN0c0luUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZv
OworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmU7CisgICAgV0tQYWdlU3RhdGVDbGll
bnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRD
aGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkU3dhcFdlYlBy
b2Nlc3NlczsKKworfSBXS1BhZ2VTdGF0ZUNsaWVudFYwOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUxvYWRT
dGF0ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlTG9hZFN0YXRlT2Jz
ZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMGUzMDM2ZTBlZDdhYmQ3MjFmZWI0NjQwNGE2ZTNjY2IxMGU5
MjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUxvYWRT
dGF0ZU9ic2VydmVyLmgKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJBUElTdGF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2VMb2Fk
U3RhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBhZ2VMb2FkU3RhdGVPYnNl
cnZlciA6IHB1YmxpYyBQYWdlTG9hZFN0YXRlOjpPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUGFnZUxvYWRTdGF0ZU9ic2VydmVyKHN0ZDo6dW5p
cXVlX3B0cjxBUEk6OlN0YXRlQ2xpZW50PiYmIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChX
VEZNb3ZlKGNsaWVudCkpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHdpbGxD
aGFuZ2VJc0xvYWRpbmcoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxD
aGFuZ2VJc0xvYWRpbmcoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlSXNMb2FkaW5nKCk7
CisgICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VUaXRsZSgpOworICAgIH0KKworICAgIHZvaWQgZGlk
Q2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5n
ZVRpdGxlKCk7CisgICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlQWN0aXZlVVJMKCkgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlQWN0aXZlVVJMKCk7CisgICAg
fQorCisgICAgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgbV9jbGllbnQtPmRpZENoYW5nZUFjdGl2ZVVSTCgpOworICAgIH0KKworICAgIHZvaWQgd2ls
bENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1f
Y2xpZW50LT53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKTsKKyAgICB9CisKKyAgICB2
b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpOworICAgIH0KKwor
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICB9CisK
KyAgICB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAgIH0KKwor
ICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvQmFjaygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBt
X2NsaWVudC0+d2lsbENoYW5nZUNhbkdvQmFjaygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hh
bmdlQ2FuR29CYWNrKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFu
Z2VDYW5Hb0JhY2soKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQo
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VDYW5Hb0Zvcndh
cmQoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRl
CisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCk7CisgICAg
fQorCisgICAgdm9pZCB3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZU5l
dHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VD
ZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxD
aGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZUNlcnRp
ZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdl
Q2VydGlmaWNhdGVJbmZvKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2Vz
KCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRTd2FwV2ViUHJvY2Vzc2Vz
KCk7CisgICAgfQorCisgICAgdm9pZCB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZVdlYlByb2Nlc3NJ
c1Jlc3BvbnNpdmUoKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jl
c3BvbnNpdmUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZVdl
YlByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKKyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJ
OjpTdGF0ZUNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA3YzgxNzg0NzE5MWU5ZjU0MDJkMTQzYTRlZjg1ZWRlNGI2
MjU4MWViLi5kODAxMDg0NTU0NTFkZDliMWE2ODY2Yjg0NTNjZTY5MmUwM2VkZjZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJPcHRpb25hbENhbGxiYWNrSUQuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUGFnZUxvYWRTdGF0ZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24u
aCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlByaW50SW5m
by5oIgpAQCAtNjM1LDYgKzYzNiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SWNvbkxvYWRp
bmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+JgogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlSWNvbkxvYWRpbmdDbGllbnQo
aGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3RhdGVD
bGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6U3RhdGVDbGllbnQ+JiYgY2xpZW50KQoreworICAg
IGlmIChtX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcikKKyAgICAgICAgcGFnZUxvYWRTdGF0ZSgpLnJl
bW92ZU9ic2VydmVyKCptX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcik7CisgICAgbV9wYWdlTG9hZFN0
YXRlT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VMb2FkU3RhdGVPYnNlcnZlcj4oV1RG
TW92ZShjbGllbnQpKTsKKyAgICBwYWdlTG9hZFN0YXRlKCkuYWRkT2JzZXJ2ZXIoKm1fcGFnZUxv
YWRTdGF0ZU9ic2VydmVyKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZpbmRDbGllbnQo
c3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4mJiBmaW5kQ2xpZW50KQogewogICAgIGlm
ICghZmluZENsaWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBmNTY3NzhkN2M2OWY5NjM3MDFiMzViNDIyYTAzOWFhZGI4MjIwMjZiLi40NmRkYTUxOGNiNGFj
ZGNhM2FjYzI2NzViNGNkMGY2ZmFkNzQwYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTYzLDYgKzE2Myw3IEBAIGNsYXNzIExvYWRlckNsaWVudDsKIGNsYXNz
IE5hdmlnYXRpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xpZW50OwogY2xhc3MgUG9saWN5Q2xpZW50
OworY2xhc3MgU3RhdGVDbGllbnQ7CiBjbGFzcyBVSUNsaWVudDsKIGNsYXNzIFVSTFJlcXVlc3Q7
CiB9CkBAIC0yNDQsNiArMjQ1LDcgQEAgY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNs
YXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xh
c3MgUGFnZUNsaWVudDsKK2NsYXNzIFBhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKIGNsYXNzIFByb3Zp
c2lvbmFsUGFnZVByb3h5OwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsKIGNsYXNzIFJlbW90
ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKQEAgLTUwMiw2ICs1MDQsOCBAQCBw
dWJsaWM6CiAgICAgQVBJOjpJY29uTG9hZGluZ0NsaWVudCYgaWNvbkxvYWRpbmdDbGllbnQoKSB7
IHJldHVybiAqbV9pY29uTG9hZGluZ0NsaWVudDsgfQogICAgIHZvaWQgc2V0SWNvbkxvYWRpbmdD
bGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+JiYpOwogCisgICAg
dm9pZCBzZXRTdGF0ZUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpTdGF0ZUNsaWVudD4mJik7
CisKICAgICB2b2lkIGluaXRpYWxpemVXZWJQYWdlKCk7CiAgICAgdm9pZCBzZXREcmF3aW5nQXJl
YShzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJik7CiAKQEAgLTIxMjEsNiArMjEy
NSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6Q29udGV4dE1lbnVDbGll
bnQ+IG1fY29udGV4dE1lbnVDbGllbnQ7CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50PiBtX2luamVjdGVkQnVuZGxlQ2xpZW50OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxQYWdlTG9hZFN0YXRlT2JzZXJ2ZXI+IG1fcGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYk5hdmlnYXRpb25TdGF0ZT4gbV9uYXZpZ2F0
aW9uU3RhdGU7CiAgICAgU3RyaW5nIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NDY5YWMxYjk3
MWY2YTIwMjJmYzRiMWMwMGI2ZDkzMGQ0NzRkMDZlLi4wZDdmMTViZTI4NmY5OTcyZWI4Y2NkNzMy
NzNjZjk0NjEzZTBhYzU3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMjIgIEZ1amlpIEhpcm9ub3JpICA8
SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRkIFBhZ2VMb2Fk
U3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJyb3dzZXJXaW5kb3cpOgorICAg
ICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoV2Vi
S2l0QnJvd3NlcldpbmRvdzo6ZGlkRmluaXNoTmF2aWdhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaDoKKwogMjAxOS0wNy0yMSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBb
V2ViS2l0Ml0gQWRkIGxpbWl0ZWQgc3VwcG9ydCBmb3IgLWlzUG9zaXRpb246YXRCb3VuZGFyeTpp
bkRpcmVjdGlvbjogaW4gV0tDb250ZW50VmlldwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dl
YktpdEJyb3dzZXJXaW5kb3cuY3BwCmluZGV4IDAwNGIwYTlkMWFkYWM4ZTU4ZjIwMTAyNWYzODQ3
ZGE1NmFlZWQ5NjguLmJmZGQ1MjdiZTBhYjZiMTFmNTJlZjhkMGVmNDkzMzk0ODQ4NDJjNzMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKQEAgLTEz
Nyw3ICsxMzcsNiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIFdLUGFnZU5hdmlnYXRp
b25DbGllbnRWMCBuYXZpZ2F0aW9uQ2xpZW50ID0geyB9OwogICAgIG5hdmlnYXRpb25DbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9
IHRoaXM7Ci0gICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmlu
aXNoTmF2aWdhdGlvbjsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24g
PSBkaWRDb21taXROYXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OwogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHBhZ2UsICZuYXZpZ2F0aW9uQ2xp
ZW50LmJhc2UpOwpAQCAtMTQ4LDYgKzE0NywxMiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJL
aXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwog
ICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChwYWdlLCAmdWlDbGllbnQuYmFzZSk7CiAKKyAgICBXS1BhZ2VTdGF0ZUNs
aWVudFYwIHN0YXRlQ2xpZW50ID0geyB9OworICAgIHN0YXRlQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDA7CisgICAgc3RhdGVDbGllbnQuYmFzZS5jbGllbnRJbmZvID0gdGhpczsKKyAgICBzdGF0ZUNs
aWVudC5kaWRDaGFuZ2VUaXRsZSA9IGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVNldFBhZ2VT
dGF0ZUNsaWVudChwYWdlLCAmc3RhdGVDbGllbnQuYmFzZSk7CisKICAgICB1cGRhdGVQcm94eVNl
dHRpbmdzKCk7CiAgICAgcmVzZXRab29tKCk7CiB9CkBAIC0yODcsMTEgKzI5MiwxMiBAQCBzdGF0
aWMgV2ViS2l0QnJvd3NlcldpbmRvdyYgdG9XZWJLaXRCcm93c2VyV2luZG93KGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCiAgICAgcmV0dXJuICpjb25zdF9jYXN0PFdlYktpdEJyb3dzZXJXaW5kb3cq
PihzdGF0aWNfY2FzdDxjb25zdCBXZWJLaXRCcm93c2VyV2luZG93Kj4oY2xpZW50SW5mbykpOwog
fQogCi12b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdl
UmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZENo
YW5nZVRpdGxlKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgYXV0byYgdGhpc1dpbmRv
dyA9IHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjbGllbnRJbmZvKTsKKyAgICBhdXRvIHBhZ2UgPSBX
S1ZpZXdHZXRQYWdlKHRoaXNXaW5kb3cubV92aWV3LmdldCgpKTsKICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gdGl0bGUgPSBhZG9wdFdLKFdLUGFnZUNvcHlUaXRsZShwYWdlKSk7CiAgICAg
c3RkOjp3c3RyaW5nIHRpdGxlU3RyaW5nID0gY3JlYXRlU3RyaW5nKHRpdGxlLmdldCgpKSArIEwi
IFtXZWJLaXRdIjsKLSAgICBhdXRvJiB0aGlzV2luZG93ID0gdG9XZWJLaXRCcm93c2VyV2luZG93
KGNsaWVudEluZm8pOwogICAgIFNldFdpbmRvd1RleHQodGhpc1dpbmRvdy5tX2hNYWluV25kLCB0
aXRsZVN0cmluZy5jX3N0cigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
d2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRC
cm93c2VyV2luZG93LmgKaW5kZXggODc2ODI3YmNmYzY5MDhkYjg1YTJmNTY2NjIzNzUzZjAyYzM2
N2NjZC4uZWVhN2RkZTU4ZGIxNTE3ZGRhZjA0NTIzM2FhMGVhZWZlMGNlMzJjYyAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29s
cy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oCkBAIC02Myw3ICs2Myw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIGNhblRydXN0U2VydmVyQ2VydGlmaWNhdGUoV0tQcm90ZWN0
aW9uU3BhY2VSZWYpOwogCi0gICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1Bh
Z2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXS1BhZ2VSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVy
ZXNSZWYsIGNvbnN0IHZvaWQgKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374755</attachid>
            <date>2019-07-23 20:22:09 -0700</date>
            <delta_ts>2019-07-23 20:51:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190724122208.patch</filename>
            <type>text/plain</type>
            <size>32710</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkMjc2ZjZjODA1ODhiNWIz
OTc1MzQ0NjVmNGFlZGM0ZDAxNTkwMGEuLjE2Yjc5NDJkY2RjYmQxNTIxOTEwYmU0ZWE2NjUxMzQz
NTg0MmJiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDctMjMgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBXZWJLaXQgQyBBUEkgdG8gZ2V0IHRo
ZSB0aW1pbmcgb2YgdGl0bGUgY2hhbmdlZCBzaW5jZQorICAgICAgICBXS1BhZ2VMb2FkZXJDbGll
bnRWMDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgaGFzIGJlZW4gcmVtb3ZlZCBpbgorICAgICAg
ICByMjM1Mzk4LiBDb2NvYSBhbmQgZ2xpYiBXZWJLaXQgQVBJIGV4aXN0LgorCisgICAgICAgICog
UGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElTdGF0ZUNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6On5TdGF0ZUNsaWVudCk6Cisg
ICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlSXNMb2FkaW5nKToKKyAgICAgICAg
KEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUlzTG9hZGluZyk6CisgICAgICAgIChBUEk6OlN0
YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6
ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUFj
dGl2ZVVSTCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VBY3RpdmVVUkwp
OgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250
ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUhhc09ubHlTZWN1cmVD
b250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29CYWNr
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdvQmFjayk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAg
KEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdvRm9yd2FyZCk6CisgICAgICAgIChBUEk6
OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8p
OgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKToK
KyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25z
aXZlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jl
c3BvbnNpdmUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkU3dhcFdlYlByb2Nlc3Nl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1Bh
Z2VTZXRQYWdlU3RhdGVDbGllbnQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmg6IEFkZGVkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVyOjpXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNldFN0YXRlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MTktMDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBNb3ZlIGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5IFNQSSBmcm9tIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiB0byBXS1Byb2Nlc3NQb29sUHJpdmF0ZSB0byBtYWtl
IGl0IHJ1bnRpbWUgc3dpdGNoYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggODBiYzIy
MTQwMzY2MjgwOTYyMzI1ZmIxMTVkYjVmYTYzMWNkNjBlYS4uYzJiODY2NjU2OGEyYzJhYWEyZDhj
OWM0OWI3MzBlOWQyYzlhY2IzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yOTQsNiAr
Mjk0LDcgQEAgc2V0KFdlYktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUG9saWN5Q2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmgKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2lu
TG9hZFBvbGljeS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVN0YXRlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJU3RhdGVDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzY5MmJkNmJlOTk4MGE2ZTU3MmE3MTBlMWU3M2Y3MzZjZWQ4Njc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVN0YXRlQ2xpZW50LmgKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVy
dGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldLUGFn
ZS5oIgorCituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgU3RhdGVDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgflN0YXRlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENo
YW5nZUlzTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJc0xvYWRpbmco
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVRpdGxlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VB
Y3RpdmVVUkwoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWN0aXZlVVJMKCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUNhbkdvQmFjaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VD
YW5Hb0JhY2soKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFN3YXBXZWJQcm9jZXNzZXMoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggY2NjMzMwZjMwMjQ3NjFm
ZTczOTc0NDU2MjIzMDUyNjY3OGI3OTA0MC4uNWU0MjY5NDFkNzcyNzMzNjY4NzJiMDVhNjMwNzdl
MmMwYWM1MjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJBUElQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRlICJBUElTZXNzaW9uU3RhdGUuaCIKKyNp
bmNsdWRlICJBUElTdGF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5j
bHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCiAjaW5jbHVkZSAiQVBJV2luZG93RmVhdHVyZXMu
aCIKQEAgLTEzMiw2ICsxMzMsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdL
UGFnZUZpbmRDbGllbnRCYXNlPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQ
YWdlRmluZE1hdGNoZXNDbGllbnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZUZpbmRNYXRjaGVzQ2xpZW50VjA+IFZlcnNpb25zOwogfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVN0YXRlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VTdGF0ZUNsaWVudFYwPiBWZXJzaW9uczsKK307CiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBBUEkKIApAQCAtMjI4OSw2ICsyMjk0LDE2NSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZp
Z2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZQogICAgIHdlYlBhZ2VQcm94eS0+c2V0TmF2aWdhdGlvbkNsaWVudChtYWtlVW5pcXVlUmVmPE5h
dmlnYXRpb25DbGllbnQ+KHdrQ2xpZW50KSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UGFnZVN0YXRl
Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKK3sK
KyAgICBjbGFzcyBTdGF0ZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1BhZ2VTdGF0ZUNs
aWVudEJhc2U+LCBwdWJsaWMgQVBJOjpTdGF0ZUNsaWVudCB7CisgICAgcHVibGljOgorICAgICAg
ICBleHBsaWNpdCBTdGF0ZUNsaWVudChjb25zdCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgaW5pdGlhbGl6ZShjbGllbnQpOworICAgICAgICB9
CisgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlSXNMb2FkaW5nKCkgb3ZlcnJp
ZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlSXNMb2Fk
aW5nKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxD
aGFuZ2VJc0xvYWRpbmcobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgZGlkQ2hhbmdlSXNMb2FkaW5nKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VJc0xvYWRpbmcpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5nKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VUaXRsZSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZVRpdGxlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1f
Y2xpZW50LndpbGxDaGFuZ2VUaXRsZShtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAg
ICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlVGl0bGUpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlVGl0bGUobV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZUFj
dGl2ZVVSTCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZUFjdGl2ZVVSTCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC53aWxsQ2hhbmdlQWN0aXZlVVJMKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQWN0aXZlVVJM
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5n
ZUFjdGl2ZVVSTChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCB3aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxs
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUhh
c09ubHlTZWN1cmVDb250ZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IG1fY2xpZW50LmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VFc3Rp
bWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MobV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5n
ZUNhbkdvQmFjaygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGll
bnQud2lsbENoYW5nZUNhbkdvQmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29CYWNrKG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUNhbkdvQmFjaygpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29C
YWNrKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENo
YW5nZUNhbkdvQmFjayhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VDYW5Hb0Zv
cndhcmQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZv
aWQgZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdl
TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
ICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFu
Z2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENo
YW5nZUNlcnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV9jbGllbnQud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENo
YW5nZUNlcnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV9jbGllbnQuZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyhtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZVdlYlBy
b2Nlc3NJc1Jlc3BvbnNpdmUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZvaWQgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlV2ViUHJvY2Vz
c0lzUmVzcG9uc2l2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2Ns
aWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMoKSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFN3YXBXZWJQ
cm9jZXNzZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQu
ZGlkU3dhcFdlYlByb2Nlc3NlcyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9
CisgICAgfTsKKyAgICB0b0ltcGwocGFnZSktPnNldFN0YXRlQ2xpZW50KHN0ZDo6bWFrZV91bmlx
dWU8U3RhdGVDbGllbnQ+KGNsaWVudCkpOworfQorCiB2b2lkIFdLUGFnZVJ1bkphdmFTY3JpcHRJ
bk1haW5GcmFtZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgc2NyaXB0UmVmLCB2b2lk
KiBjb250ZXh0LCBXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24gY2FsbGJhY2spCiB7CiAgICAg
dG9JbXBsKHBhZ2VSZWYpLT5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUodG9JbXBsKHNjcmlwdFJl
ZiktPnN0cmluZygpLCB0cnVlLCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKiByZXR1cm5WYWx1ZSwgYm9vbCwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKaW5kZXggZjU2N2Q0NjgzNzM2MDM5OWE5ZDBjNTRjM2EwNGE1NDBkMDZm
MDU5ZC4uZGJkMDYyNmIzN2FmZWI5ODRiN2ZlYmZkY2VhMDA1YzJmNWFlYzU3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
IDxXZWJLaXQvV0tQYWdlTG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUG9saWN5Q2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVN0YXRlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLUGFnZVVJQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVZpc2liaWxpdHlUeXBl
cy5oPgogCkBAIC0yMjksNiArMjMwLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxv
YWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW4KIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcygxMC4xNC40
KSk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VS
ZWYgcGFnZSwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIGNsaWVudCk7CiAKK1dL
X0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQ
YWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpOworCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSdW5K
YXZhU2NyaXB0RnVuY3Rpb24pKFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmLCBXS0Vycm9yUmVm
LCB2b2lkKik7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHNjcmlwdCwgdm9pZCogY29udGV4dCwgV0tQYWdl
UnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGZ1bmN0aW9uKTsKICNpZmRlZiBfX0JMT0NLU19fCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NzZiODkzYWFkY2I1OTJkNTc3OWFmNDdjMjFkYjc0Mjc1ZmJjMjhiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGll
bnQuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50
ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5n
ZUNhbGxiYWNrKShjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
Cit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgeworICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdLUGFnZVN0YXRlQ2xpZW50
QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlU3RhdGVDbGllbnRWMCB7CisgICAgV0tQYWdl
U3RhdGVDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZVN0YXRlQ2xpZW50V2ls
bENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5n
ZUlzTG9hZGluZzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUlzTG9hZGluZzsKKyAgICBXS1Bh
Z2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxDaGFuZ2VUaXRsZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVRpdGxlOwor
ICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENo
YW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAg
IFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzOworICAgIFdLUGFnZVN0YXRl
Q2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2Fu
R29CYWNrOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQ2FuR29CYWNrOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUNhbkdv
Rm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dy
ZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzczsK
KyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3Rh
dGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVdlYlByb2Nlc3NJ
c1Jlc3BvbnNpdmU7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRTd2FwV2ViUHJvY2Vzc2VzOworCit9IFdL
UGFnZVN0YXRlQ2xpZW50VjA7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBlMTIyNDBiZWNmNjhkZTVmZDhiOGJiZjc3M2U1NzQ0YzVkZTI0ZmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlTG9hZFN0YXRlT2Jz
ZXJ2ZXIuaApAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255
IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkFQSVN0YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZUxvYWRTdGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVy
IDogcHVibGljIFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIoc3RkOjp1bmlx
dWVfcHRyPEFQSTo6U3RhdGVDbGllbnQ+JiYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KFdU
Rk1vdmUoY2xpZW50KSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgd2lsbENo
YW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENo
YW5nZUlzTG9hZGluZygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlSXNMb2FkaW5nKCkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VJc0xvYWRpbmcoKTsK
KyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBtX2NsaWVudC0+d2lsbENoYW5nZVRpdGxlKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRD
aGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdl
VGl0bGUoKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VBY3RpdmVVUkwoKTsKKyAgICB9
CisKKyAgICB2b2lkIGRpZENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBtX2NsaWVudC0+ZGlkQ2hhbmdlQWN0aXZlVVJMKCk7CisgICAgfQorCisgICAgdm9pZCB3aWxs
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9j
bGllbnQtPndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpOworICAgIH0KKworICAgIHZv
aWQgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgbV9jbGllbnQtPmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCk7CisgICAgfQorCisg
ICAgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAgIH0KKwor
ICAgIHZvaWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgfQorCisg
ICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29CYWNrKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1f
Y2xpZW50LT53aWxsQ2hhbmdlQ2FuR29CYWNrKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFu
Z2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5n
ZUNhbkdvQmFjaygpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZUNhbkdvRm9yd2Fy
ZCgpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQoKTsKKyAgICB9
CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlTmV0
d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUNl
cnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENo
YW5nZUNlcnRpZmljYXRlSW5mbygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQ2VydGlm
aWNhdGVJbmZvKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VD
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMo
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZFN3YXBXZWJQcm9jZXNzZXMo
KTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlV2ViUHJvY2Vzc0lz
UmVzcG9uc2l2ZSgpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVz
cG9uc2l2ZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZSgpOworICAgIH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxBUEk6
OlN0YXRlQ2xpZW50PiBtX2NsaWVudDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGQxNmZjZDJiMTM3MTM1NDIwMDRiYTZhZmUwOTdhZjFlZDMz
Mzk5ZGYuLjBmZTNkNmJhYWYxZjZkMjBmODI2ZWIyM2VmMjA5NTBhZDRjZmUwYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTE2LDYgKzExNiw3IEBACiAj
aW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZUxvYWRTdGF0ZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIgpAQCAtNjM1LDYgKzYzNiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
SWNvbkxvYWRpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+
JgogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlSWNvbkxvYWRp
bmdDbGllbnQoaGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0U3RhdGVDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6U3RhdGVDbGllbnQ+JiYgY2xpZW50
KQoreworICAgIGlmIChtX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcikKKyAgICAgICAgcGFnZUxv
YWRTdGF0ZSgpLnJlbW92ZU9ic2VydmVyKCptX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcik7Cisg
ICAgbV93ZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlBhZ2VM
b2FkU3RhdGVPYnNlcnZlcj4oV1RGTW92ZShjbGllbnQpKTsKKyAgICBwYWdlTG9hZFN0YXRlKCku
YWRkT2JzZXJ2ZXIoKm1fd2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVyKTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEZpbmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4m
JiBmaW5kQ2xpZW50KQogewogICAgIGlmICghZmluZENsaWVudCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1MjdkOGU0Nzc1YjQwOGY5MDExZDBhZTI5NWQwOTI2
N2RhYjk3ODE4Li42MWI4NDlhZGVkMDE0ODUzYTI1MjU0MDA3NjAxYzk4NmE4NzMxY2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTYzLDYgKzE2Myw3IEBAIGNs
YXNzIExvYWRlckNsaWVudDsKIGNsYXNzIE5hdmlnYXRpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xp
ZW50OwogY2xhc3MgUG9saWN5Q2xpZW50OworY2xhc3MgU3RhdGVDbGllbnQ7CiBjbGFzcyBVSUNs
aWVudDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CkBAIC0yNzAsNiArMjcxLDcgQEAgY2xhc3MgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VEZWJ1Z2dhYmxlOwog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI7Citj
bGFzcyBXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXI7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBj
bGFzcyBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7
CkBAIC01MDIsNiArNTA0LDggQEAgcHVibGljOgogICAgIEFQSTo6SWNvbkxvYWRpbmdDbGllbnQm
IGljb25Mb2FkaW5nQ2xpZW50KCkgeyByZXR1cm4gKm1faWNvbkxvYWRpbmdDbGllbnQ7IH0KICAg
ICB2b2lkIHNldEljb25Mb2FkaW5nQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okljb25Mb2Fk
aW5nQ2xpZW50PiYmKTsKIAorICAgIHZvaWQgc2V0U3RhdGVDbGllbnQoc3RkOjp1bmlxdWVfcHRy
PEFQSTo6U3RhdGVDbGllbnQ+JiYpOworCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFnZSgpOwog
ICAgIHZvaWQgc2V0RHJhd2luZ0FyZWEoc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+
JiYpOwogCkBAIC0yMTIzLDYgKzIxMjcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBUEk6OkNvbnRleHRNZW51Q2xpZW50PiBtX2NvbnRleHRNZW51Q2xpZW50OwogI2VuZGlmCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudD4gbV9pbmplY3Rl
ZEJ1bmRsZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViUGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyPiBtX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJOYXZpZ2F0aW9uU3RhdGU+IG1fbmF2aWdhdGlvblN0YXRlOwogICAgIFN0cmluZyBtX2ZhaWxp
bmdQcm92aXNpb25hbExvYWRVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwYTJiMTkyZmY4NzVkNWYwNWFkMmJlYzE0YTlhZWMzNDI0
MzAyY2Q5Li40Y2I1N2Y5MWVmODEzOTE1ODY4NzI2Yzk1Njk3Y2I4ZTRlZTc0MjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1MDIs
NiArMjUwMiw5IEBACiAJCTI2RjEwQkU2MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY1Rh
cEdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdL
U3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS1N5bnRoZXRpY1Rh
cEdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RjEw
QkU3MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTeW50aGV0aWNUYXBH
ZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNv
Z25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY5QTgzQTE4QTM0NjNG
MDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI3OTQ5ODAwMjJFODAwQkYw
MDgyRTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1BhZ2VTdGF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyNzk0OTgwMTIyRTgwMEQ0MDA4MkU2OEMgLyogQVBJU3RhdGVDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJU3RhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjc5NDk4MDIyMkU4MDBGNzAwODJFNjhDIC8qIFdlYlBhZ2VMb2FkU3Rh
dGVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlTG9h
ZFN0YXRlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkwRjQyNzEx
NzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MjMyREYxMThCMjlEMTEwMEQwNTk2RiAvKiBX
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMzJERjMxOEIyOUQ2ODAwRDA1OTZGIC8qIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzc2OSw2ICs3NzcyLDcgQEAKIAkJCQlBNTEzRjUzRTIxNTRBNUND
MDA2NjI4NDEgLyogV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuaCAqLywKIAkJCQlBNTQzRTMw
RjIxNUQ4Q0UyMDAyNzlDRDkgLyogV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmNwcCAqLywK
IAkJCQlBNTQzRTMwRTIxNUQ4Q0UyMDAyNzlDRDkgLyogV2ViUGFnZUluc3BlY3RvclRhcmdldEFn
ZW50LmggKi8sCisJCQkJMjc5NDk4MDIyMkU4MDBGNzAwODJFNjhDIC8qIFdlYlBhZ2VMb2FkU3Rh
dGVPYnNlcnZlci5oICovLAogCQkJCUJDMTExQjBCMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJQYWdl
UHJveHkuY3BwICovLAogCQkJCUJDMDMyRENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJv
eHkuaCAqLywKIAkJCQlCQ0JEMzhGQTEyNUJBQjlBMDBEMkMyOUYgLyogV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluICovLApAQCAtNzg2MSw2ICs3ODY1LDcgQEAKIAkJCQk3Q0U0RDIxRTFBNDkxNENB
MDBDN0YxNTIgLyogQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUFGREU2
NUYxOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgKi8sCiAJCQkJMUFGREU2
NjAxOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5oICovLAorCQkJCTI3OTQ5ODAx
MjJFODAwRDQwMDgyRTY4QyAvKiBBUElTdGF0ZUNsaWVudC5oICovLAogCQkJCTFBNEQ2NjQ3MThB
MkQ5MUEwMEQ4MkUyMSAvKiBBUElVSUNsaWVudC5oICovLAogCQkJCTUxRDEyNDM4MUU2REZEQjkw
MDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCAqLywKIAkJCQk1MUQxMjQzOTFFNkRGREI5
MDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5oICovLApAQCAtNzk5Miw2ICs3OTk3LDcgQEAK
IAkJCQlCQzE3NzQ2NDExOEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oICovLAogCQkJ
CTJERDEyQTA3MUE4MTc3RjMwMDJDNzRFNiAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
cy5oICovLAogCQkJCTJEQUJBNzcxMUE4MTdCMTcwMEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50c0ludGVybmFsLmggKi8sCisJCQkJMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhD
IC8qIFdLUGFnZVN0YXRlQ2xpZW50LmggKi8sCiAJCQkJMUFCOEExRjExODQwMEI2MjAwRTlBRTY5
IC8qIFdLUGFnZVVJQ2xpZW50LmggKi8sCiAJCQkJMkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8q
IFdLUGx1Z2luTG9hZFBvbGljeS5oICovLAogCQkJCUJDRDU5N0NGMTEyQjU2QUMwMEVDOEMyMyAv
KiBXS1ByZWZlcmVuY2VzLmNwcCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBhZWQ5YmFkMTZmODY3ZDc0ZGFkZmI1M2JmOWYyMzAzZmNiYTJi
YzhhLi5kMzc5NDI0ZTcxM2ZiZGFhMGRkYjljZWUxYmFhNWE0MmFjZTRlYmViIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTktMDctMjMgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisK
KyAgICAgICAgW1dlYktpdF0gQWRkIFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2Vy
L3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcDoKKyAgICAgICAgKFdlYktpdEJyb3dzZXJXaW5k
b3c6OldlYktpdEJyb3dzZXJXaW5kb3cpOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6
ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkRmluaXNo
TmF2aWdhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvd2luL1dlYktpdEJy
b3dzZXJXaW5kb3cuaDoKKwogMjAxOS0wNy0yMyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBbd2Via2l0cGVybF0gcHJlcGFyZS1DaGFuZ2VMb2df
dW5pdHRlc3QvcGFyc2VyX3VuaXR0ZXN0cy5wbCBpcyBmYWlsaW5nIG9uIFdpbmRvd3MgUGVybApk
aWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3Bw
IGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCmluZGV4IDAw
NGIwYTlkMWFkYWM4ZTU4ZjIwMTAyNWYzODQ3ZGE1NmFlZWQ5NjguLmJmZGQ1MjdiZTBhYjZiMTFm
NTJlZjhkMGVmNDkzMzk0ODQ4NDJjNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dp
bi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2Vi
S2l0QnJvd3NlcldpbmRvdy5jcHAKQEAgLTEzNyw3ICsxMzcsNiBAQCBXZWJLaXRCcm93c2VyV2lu
ZG93OjpXZWJLaXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdO
RCBtYWluVwogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBuYXZpZ2F0aW9uQ2xpZW50ID0g
eyB9OwogICAgIG5hdmlnYXRpb25DbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKICAgICBuYXZpZ2F0
aW9uQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAgbmF2aWdhdGlvbkNsaWVudC5k
aWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKICAgICBuYXZpZ2F0aW9u
Q2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24gPSBkaWRDb21taXROYXZpZ2F0aW9uOwogICAgIG5h
dmlnYXRpb25DbGllbnQuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9u
Q2xpZW50KHBhZ2UsICZuYXZpZ2F0aW9uQ2xpZW50LmJhc2UpOwpAQCAtMTQ4LDYgKzE0NywxMiBA
QCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBj
cmVhdGVOZXdQYWdlOwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlLCAmdWlDbGllbnQu
YmFzZSk7CiAKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFYwIHN0YXRlQ2xpZW50ID0geyB9OworICAg
IHN0YXRlQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgc3RhdGVDbGllbnQuYmFzZS5jbGll
bnRJbmZvID0gdGhpczsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFuZ2VUaXRsZSA9IGRpZENoYW5n
ZVRpdGxlOworICAgIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChwYWdlLCAmc3RhdGVDbGllbnQu
YmFzZSk7CisKICAgICB1cGRhdGVQcm94eVNldHRpbmdzKCk7CiAgICAgcmVzZXRab29tKCk7CiB9
CkBAIC0yODcsMTEgKzI5MiwxMiBAQCBzdGF0aWMgV2ViS2l0QnJvd3NlcldpbmRvdyYgdG9XZWJL
aXRCcm93c2VyV2luZG93KGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiAgICAgcmV0dXJuICpjb25z
dF9jYXN0PFdlYktpdEJyb3dzZXJXaW5kb3cqPihzdGF0aWNfY2FzdDxjb25zdCBXZWJLaXRCcm93
c2VyV2luZG93Kj4oY2xpZW50SW5mbykpOwogfQogCi12b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6
OmRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZp
Z2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lk
IFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZENoYW5nZVRpdGxlKGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CisgICAgYXV0byYgdGhpc1dpbmRvdyA9IHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjbGll
bnRJbmZvKTsKKyAgICBhdXRvIHBhZ2UgPSBXS1ZpZXdHZXRQYWdlKHRoaXNXaW5kb3cubV92aWV3
LmdldCgpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdGl0bGUgPSBhZG9wdFdLKFdL
UGFnZUNvcHlUaXRsZShwYWdlKSk7CiAgICAgc3RkOjp3c3RyaW5nIHRpdGxlU3RyaW5nID0gY3Jl
YXRlU3RyaW5nKHRpdGxlLmdldCgpKSArIEwiIFtXZWJLaXRdIjsKLSAgICBhdXRvJiB0aGlzV2lu
ZG93ID0gdG9XZWJLaXRCcm93c2VyV2luZG93KGNsaWVudEluZm8pOwogICAgIFNldFdpbmRvd1Rl
eHQodGhpc1dpbmRvdy5tX2hNYWluV25kLCB0aXRsZVN0cmluZy5jX3N0cigpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaCBiL1Rv
b2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmgKaW5kZXggODc2ODI3YmNm
YzY5MDhkYjg1YTJmNTY2NjIzNzUzZjAyYzM2N2NjZC4uZWVhN2RkZTU4ZGIxNTE3ZGRhZjA0NTIz
M2FhMGVhZWZlMGNlMzJjYyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktp
dEJyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3Nl
cldpbmRvdy5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNhblRydXN0
U2VydmVyQ2VydGlmaWNhdGUoV0tQcm90ZWN0aW9uU3BhY2VSZWYpOwogCi0gICAgc3RhdGljIHZv
aWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3Qg
dm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBX
S05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS1BhZ2VSZWYsIFdLQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgV0tQYWdlUmVmIGNy
ZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRp
b25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0IHZvaWQgKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374758</attachid>
            <date>2019-07-23 20:51:19 -0700</date>
            <delta_ts>2019-07-29 23:00:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190724125118.patch</filename>
            <type>text/plain</type>
            <size>35863</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkMjc2ZjZjODA1ODhiNWIz
OTc1MzQ0NjVmNGFlZGM0ZDAxNTkwMGEuLjE2Yjc5NDJkY2RjYmQxNTIxOTEwYmU0ZWE2NjUxMzQz
NTg0MmJiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMDctMjMgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBXZWJLaXQgQyBBUEkgdG8gZ2V0IHRo
ZSB0aW1pbmcgb2YgdGl0bGUgY2hhbmdlZCBzaW5jZQorICAgICAgICBXS1BhZ2VMb2FkZXJDbGll
bnRWMDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgaGFzIGJlZW4gcmVtb3ZlZCBpbgorICAgICAg
ICByMjM1Mzk4LiBDb2NvYSBhbmQgZ2xpYiBXZWJLaXQgQVBJIGV4aXN0LgorCisgICAgICAgICog
UGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElTdGF0ZUNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6On5TdGF0ZUNsaWVudCk6Cisg
ICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlSXNMb2FkaW5nKToKKyAgICAgICAg
KEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUlzTG9hZGluZyk6CisgICAgICAgIChBUEk6OlN0
YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6
ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUFj
dGl2ZVVSTCk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VBY3RpdmVVUkwp
OgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6d2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250
ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUhhc09ubHlTZWN1cmVD
b250ZW50KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcyk6CisgICAgICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29CYWNr
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdvQmFjayk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAg
KEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZUNhbkdvRm9yd2FyZCk6CisgICAgICAgIChBUEk6
OlN0YXRlQ2xpZW50Ojp3aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyk6CisgICAg
ICAgIChBUEk6OlN0YXRlQ2xpZW50OjpkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
KToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8p
OgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKToK
KyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25z
aXZlKToKKyAgICAgICAgKEFQSTo6U3RhdGVDbGllbnQ6OmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jl
c3BvbnNpdmUpOgorICAgICAgICAoQVBJOjpTdGF0ZUNsaWVudDo6ZGlkU3dhcFdlYlByb2Nlc3Nl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1Bh
Z2VTZXRQYWdlU3RhdGVDbGllbnQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmg6IEFkZGVkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVyOjpXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnNldFN0YXRlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MTktMDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBNb3ZlIGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5IFNQSSBmcm9tIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiB0byBXS1Byb2Nlc3NQb29sUHJpdmF0ZSB0byBtYWtl
IGl0IHJ1bnRpbWUgc3dpdGNoYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggODBiYzIy
MTQwMzY2MjgwOTYyMzI1ZmIxMTVkYjVmYTYzMWNkNjBlYS4uYzJiODY2NjU2OGEyYzJhYWEyZDhj
OWM0OWI3MzBlOWQyYzlhY2IzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdp
bi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yOTQsNiAr
Mjk0LDcgQEAgc2V0KFdlYktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUG9saWN5Q2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmgKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2lu
TG9hZFBvbGljeS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVN0YXRlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJU3RhdGVDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzY5MmJkNmJlOTk4MGE2ZTU3MmE3MTBlMWU3M2Y3MzZjZWQ4Njc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVN0YXRlQ2xpZW50LmgKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVy
dGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldLUGFn
ZS5oIgorCituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgU3RhdGVDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgflN0YXRlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENo
YW5nZUlzTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJc0xvYWRpbmco
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVRpdGxlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VB
Y3RpdmVVUkwoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWN0aXZlVVJMKCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUNhbkdvQmFjaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VD
YW5Hb0JhY2soKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFN3YXBXZWJQcm9jZXNzZXMoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggY2NjMzMwZjMwMjQ3NjFm
ZTczOTc0NDU2MjIzMDUyNjY3OGI3OTA0MC4uNWU0MjY5NDFkNzcyNzMzNjY4NzJiMDVhNjMwNzdl
MmMwYWM1MjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJBUElQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRlICJBUElTZXNzaW9uU3RhdGUuaCIKKyNp
bmNsdWRlICJBUElTdGF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5j
bHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCiAjaW5jbHVkZSAiQVBJV2luZG93RmVhdHVyZXMu
aCIKQEAgLTEzMiw2ICsxMzMsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdL
UGFnZUZpbmRDbGllbnRCYXNlPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQ
YWdlRmluZE1hdGNoZXNDbGllbnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZUZpbmRNYXRjaGVzQ2xpZW50VjA+IFZlcnNpb25zOwogfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVN0YXRlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1BhZ2VTdGF0ZUNsaWVudFYwPiBWZXJzaW9uczsKK307CiAgICAgCiB9IC8vIG5hbWVz
cGFjZSBBUEkKIApAQCAtMjI4OSw2ICsyMjk0LDE2NSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZp
Z2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZQogICAgIHdlYlBhZ2VQcm94eS0+c2V0TmF2aWdhdGlvbkNsaWVudChtYWtlVW5pcXVlUmVmPE5h
dmlnYXRpb25DbGllbnQ+KHdrQ2xpZW50KSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UGFnZVN0YXRl
Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKK3sK
KyAgICBjbGFzcyBTdGF0ZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1BhZ2VTdGF0ZUNs
aWVudEJhc2U+LCBwdWJsaWMgQVBJOjpTdGF0ZUNsaWVudCB7CisgICAgcHVibGljOgorICAgICAg
ICBleHBsaWNpdCBTdGF0ZUNsaWVudChjb25zdCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgaW5pdGlhbGl6ZShjbGllbnQpOworICAgICAgICB9
CisgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlSXNMb2FkaW5nKCkgb3ZlcnJp
ZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlSXNMb2Fk
aW5nKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxD
aGFuZ2VJc0xvYWRpbmcobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgZGlkQ2hhbmdlSXNMb2FkaW5nKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VJc0xvYWRpbmcpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5nKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VUaXRsZSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZVRpdGxlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1f
Y2xpZW50LndpbGxDaGFuZ2VUaXRsZShtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAg
ICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlVGl0bGUpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlVGl0bGUobV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZUFj
dGl2ZVVSTCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZUFjdGl2ZVVSTCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC53aWxsQ2hhbmdlQWN0aXZlVVJMKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQWN0aXZlVVJM
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5n
ZUFjdGl2ZVVSTChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCB3aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxs
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUhh
c09ubHlTZWN1cmVDb250ZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IG1fY2xpZW50LmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQ
cm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
d2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VFc3Rp
bWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MobV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5n
ZUNhbkdvQmFjaygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGll
bnQud2lsbENoYW5nZUNhbkdvQmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29CYWNrKG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUNhbkdvQmFjaygpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29C
YWNrKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENo
YW5nZUNhbkdvQmFjayhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VDYW5Hb0Zv
cndhcmQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZv
aWQgZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdl
TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
ICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFu
Z2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENo
YW5nZUNlcnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV9jbGllbnQud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENo
YW5nZUNlcnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV9jbGllbnQuZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyhtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZVdlYlBy
b2Nlc3NJc1Jlc3BvbnNpdmUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZvaWQgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlV2ViUHJvY2Vz
c0lzUmVzcG9uc2l2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2Ns
aWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMoKSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFN3YXBXZWJQ
cm9jZXNzZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQu
ZGlkU3dhcFdlYlByb2Nlc3NlcyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9
CisgICAgfTsKKyAgICB0b0ltcGwocGFnZSktPnNldFN0YXRlQ2xpZW50KHN0ZDo6bWFrZV91bmlx
dWU8U3RhdGVDbGllbnQ+KGNsaWVudCkpOworfQorCiB2b2lkIFdLUGFnZVJ1bkphdmFTY3JpcHRJ
bk1haW5GcmFtZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgc2NyaXB0UmVmLCB2b2lk
KiBjb250ZXh0LCBXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24gY2FsbGJhY2spCiB7CiAgICAg
dG9JbXBsKHBhZ2VSZWYpLT5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUodG9JbXBsKHNjcmlwdFJl
ZiktPnN0cmluZygpLCB0cnVlLCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKiByZXR1cm5WYWx1ZSwgYm9vbCwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKaW5kZXggZjU2N2Q0NjgzNzM2MDM5OWE5ZDBjNTRjM2EwNGE1NDBkMDZm
MDU5ZC4uZGJkMDYyNmIzN2FmZWI5ODRiN2ZlYmZkY2VhMDA1YzJmNWFlYzU3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
IDxXZWJLaXQvV0tQYWdlTG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUG9saWN5Q2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVN0YXRlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLUGFnZVVJQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVZpc2liaWxpdHlUeXBl
cy5oPgogCkBAIC0yMjksNiArMjMwLDggQEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxv
YWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW4KIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcygxMC4xNC40
KSk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VS
ZWYgcGFnZSwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIGNsaWVudCk7CiAKK1dL
X0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQ
YWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpOworCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSdW5K
YXZhU2NyaXB0RnVuY3Rpb24pKFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmLCBXS0Vycm9yUmVm
LCB2b2lkKik7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHNjcmlwdCwgdm9pZCogY29udGV4dCwgV0tQYWdl
UnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGZ1bmN0aW9uKTsKICNpZmRlZiBfX0JMT0NLU19fCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NzZiODkzYWFkY2I1OTJkNTc3OWFmNDdjMjFkYjc0Mjc1ZmJjMjhiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGll
bnQuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IFNvbnkgSW50
ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5n
ZUNhbGxiYWNrKShjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
Cit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgeworICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdLUGFnZVN0YXRlQ2xpZW50
QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlU3RhdGVDbGllbnRWMCB7CisgICAgV0tQYWdl
U3RhdGVDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZVN0YXRlQ2xpZW50V2ls
bENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5n
ZUlzTG9hZGluZzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUlzTG9hZGluZzsKKyAgICBXS1Bh
Z2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxDaGFuZ2VUaXRsZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVRpdGxlOwor
ICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENo
YW5nZUFjdGl2ZVVSTDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAg
IFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzOworICAgIFdLUGFnZVN0YXRl
Q2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2Fu
R29CYWNrOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQ2FuR29CYWNrOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUNhbkdv
Rm9yd2FyZDsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dy
ZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzczsK
KyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3Rh
dGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm87CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZVdlYlByb2Nlc3NJ
c1Jlc3BvbnNpdmU7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRTd2FwV2ViUHJvY2Vzc2VzOworCit9IFdL
UGFnZVN0YXRlQ2xpZW50VjA7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBlMTIyNDBiZWNmNjhkZTVmZDhiOGJiZjc3M2U1NzQ0YzVkZTI0ZmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlTG9hZFN0YXRlT2Jz
ZXJ2ZXIuaApAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBTb255
IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkFQSVN0YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZUxvYWRTdGF0ZS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVy
IDogcHVibGljIFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIoc3RkOjp1bmlx
dWVfcHRyPEFQSTo6U3RhdGVDbGllbnQ+JiYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KFdU
Rk1vdmUoY2xpZW50KSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgd2lsbENo
YW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENo
YW5nZUlzTG9hZGluZygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlSXNMb2FkaW5nKCkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VJc0xvYWRpbmcoKTsK
KyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBtX2NsaWVudC0+d2lsbENoYW5nZVRpdGxlKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRD
aGFuZ2VUaXRsZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdl
VGl0bGUoKTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VBY3RpdmVVUkwoKTsKKyAgICB9
CisKKyAgICB2b2lkIGRpZENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBtX2NsaWVudC0+ZGlkQ2hhbmdlQWN0aXZlVVJMKCk7CisgICAgfQorCisgICAgdm9pZCB3aWxs
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9j
bGllbnQtPndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpOworICAgIH0KKworICAgIHZv
aWQgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgbV9jbGllbnQtPmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCk7CisgICAgfQorCisg
ICAgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOworICAgIH0KKwor
ICAgIHZvaWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgfQorCisg
ICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29CYWNrKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1f
Y2xpZW50LT53aWxsQ2hhbmdlQ2FuR29CYWNrKCk7CisgICAgfQorCisgICAgdm9pZCBkaWRDaGFu
Z2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5n
ZUNhbkdvQmFjaygpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgp
IG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENoYW5nZUNhbkdvRm9yd2Fy
ZCgpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQoKTsKKyAgICB9
CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKCkgb3ZlcnJp
ZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlTmV0
d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpOworICAgIH0KKworICAgIHZvaWQgd2lsbENoYW5nZUNl
cnRpZmljYXRlSW5mbygpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+d2lsbENo
YW5nZUNlcnRpZmljYXRlSW5mbygpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlQ2VydGlm
aWNhdGVJbmZvKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VD
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMo
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZFN3YXBXZWJQcm9jZXNzZXMo
KTsKKyAgICB9CisKKyAgICB2b2lkIHdpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQ2hhbmdlV2ViUHJvY2Vzc0lz
UmVzcG9uc2l2ZSgpOworICAgIH0KKworICAgIHZvaWQgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVz
cG9uc2l2ZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZSgpOworICAgIH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxBUEk6
OlN0YXRlQ2xpZW50PiBtX2NsaWVudDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGQxNmZjZDJiMTM3MTM1NDIwMDRiYTZhZmUwOTdhZjFlZDMz
Mzk5ZGYuLjBmZTNkNmJhYWYxZjZkMjBmODI2ZWIyM2VmMjA5NTBhZDRjZmUwYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTE2LDYgKzExNiw3IEBACiAj
aW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZUxvYWRTdGF0ZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIgpAQCAtNjM1LDYgKzYzNiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
SWNvbkxvYWRpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+
JgogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlSWNvbkxvYWRp
bmdDbGllbnQoaGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0U3RhdGVDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6U3RhdGVDbGllbnQ+JiYgY2xpZW50
KQoreworICAgIGlmIChtX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcikKKyAgICAgICAgcGFnZUxv
YWRTdGF0ZSgpLnJlbW92ZU9ic2VydmVyKCptX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcik7Cisg
ICAgbV93ZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlBhZ2VM
b2FkU3RhdGVPYnNlcnZlcj4oV1RGTW92ZShjbGllbnQpKTsKKyAgICBwYWdlTG9hZFN0YXRlKCku
YWRkT2JzZXJ2ZXIoKm1fd2ViUGFnZUxvYWRTdGF0ZU9ic2VydmVyKTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEZpbmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6RmluZENsaWVudD4m
JiBmaW5kQ2xpZW50KQogewogICAgIGlmICghZmluZENsaWVudCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1MjdkOGU0Nzc1YjQwOGY5MDExZDBhZTI5NWQwOTI2
N2RhYjk3ODE4Li42MWI4NDlhZGVkMDE0ODUzYTI1MjU0MDA3NjAxYzk4NmE4NzMxY2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTYzLDYgKzE2Myw3IEBAIGNs
YXNzIExvYWRlckNsaWVudDsKIGNsYXNzIE5hdmlnYXRpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xp
ZW50OwogY2xhc3MgUG9saWN5Q2xpZW50OworY2xhc3MgU3RhdGVDbGllbnQ7CiBjbGFzcyBVSUNs
aWVudDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CkBAIC0yNzAsNiArMjcxLDcgQEAgY2xhc3MgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VEZWJ1Z2dhYmxlOwog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXI7Citj
bGFzcyBXZWJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXI7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBj
bGFzcyBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7
CkBAIC01MDIsNiArNTA0LDggQEAgcHVibGljOgogICAgIEFQSTo6SWNvbkxvYWRpbmdDbGllbnQm
IGljb25Mb2FkaW5nQ2xpZW50KCkgeyByZXR1cm4gKm1faWNvbkxvYWRpbmdDbGllbnQ7IH0KICAg
ICB2b2lkIHNldEljb25Mb2FkaW5nQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okljb25Mb2Fk
aW5nQ2xpZW50PiYmKTsKIAorICAgIHZvaWQgc2V0U3RhdGVDbGllbnQoc3RkOjp1bmlxdWVfcHRy
PEFQSTo6U3RhdGVDbGllbnQ+JiYpOworCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFnZSgpOwog
ICAgIHZvaWQgc2V0RHJhd2luZ0FyZWEoc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+
JiYpOwogCkBAIC0yMTIzLDYgKzIxMjcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBUEk6OkNvbnRleHRNZW51Q2xpZW50PiBtX2NvbnRleHRNZW51Q2xpZW50OwogI2VuZGlmCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudD4gbV9pbmplY3Rl
ZEJ1bmRsZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViUGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyPiBtX3dlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJOYXZpZ2F0aW9uU3RhdGU+IG1fbmF2aWdhdGlvblN0YXRlOwogICAgIFN0cmluZyBtX2ZhaWxp
bmdQcm92aXNpb25hbExvYWRVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwYTJiMTkyZmY4NzVkNWYwNWFkMmJlYzE0YTlhZWMzNDI0
MzAyY2Q5Li43YzAzNjQ3NTEwNjdlOWU0OTIwOGZmYmU1ZmVmOTk2MjFmOTIyMmM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNiw2
ICs0MTYsOSBAQAogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGOUE4
M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNzQ5RjY0NDIxNDY1NjFCMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRUFBMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwICovOyB9OwogCQkyNzQ5RjY0NTIxNDY1NjFFMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzRTBEMDEyNDA4RTg2MDAzNjBGM0YgLyogSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgKi87IH07CisJCTI3OTQ5ODA1MjJFODBCN0QwMDgy
RTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMjc5NDk4MDYyMkU4MEJCODAwODJFNjhDIC8qIEFQSVN0YXRlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNzk0OTgwMTIyRTgwMEQ0MDA4
MkU2OEMgLyogQVBJU3RhdGVDbGllbnQuaCAqLzsgfTsKKwkJMjc5NDk4MDcyMkU4MEJEQjAwODJF
NjhDIC8qIFdlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjc5NDk4MDIyMkU4MDBGNzAwODJFNjhDIC8qIFdlYlBh
Z2VMb2FkU3RhdGVPYnNlcnZlci5oICovOyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAg
LyogQXV4aWxpYXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBBdXhpbGlh
cnlQcm9jZXNzU3VwcGxlbWVudC5oICovOyB9OwogCQkyOTIzMkRGNDE4QjI5RDY4MDBEMDU5NkYg
LyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkyMzJERjMxOEIyOUQ2ODAwRDA1OTZGIC8qIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCAqLzsgfTsKIAkJMjkzRUJFQUIxNjI3RDlD
OTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjkzRUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTAyLDYg
KzI1MDUsOSBAQAogCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBH
ZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N5
bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tTeW50aGV0aWNUYXBH
ZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYxMEJF
NzE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU3ludGhldGljVGFwR2Vz
dHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2du
aXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGOUE4M0ExOEEzNDYzRjAw
QUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJp
dmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNzk0OTgwMDIyRTgwMEJGMDA4
MkU2OEMgLyogV0tQYWdlU3RhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tQYWdlU3RhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Mjc5NDk4MDEyMkU4MDBENDAwODJFNjhDIC8qIEFQSVN0YXRlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVN0YXRlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI3OTQ5ODAyMjJFODAwRjcwMDgyRTY4QyAvKiBXZWJQYWdlTG9hZFN0YXRl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUxvYWRT
dGF0ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0MjcxMTcy
QTBDNzQwMDkzOUZGMCAvKiBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIzMkRGMTE4QjI5RDExMDBEMDU5NkYgLyogV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTc3NjksNiArNzc3NSw3IEBACiAJCQkJQTUxM0Y1M0UyMTU0QTVDQzAw
NjYyODQxIC8qIFdlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmggKi8sCiAJCQkJQTU0M0UzMEYy
MTVEOENFMjAwMjc5Q0Q5IC8qIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAgKi8sCiAJ
CQkJQTU0M0UzMEUyMTVEOENFMjAwMjc5Q0Q5IC8qIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2Vu
dC5oICovLAorCQkJCTI3OTQ5ODAyMjJFODAwRjcwMDgyRTY4QyAvKiBXZWJQYWdlTG9hZFN0YXRl
T2JzZXJ2ZXIuaCAqLywKIAkJCQlCQzExMUIwQjExMkY1RTRGMDAzMzdCQUIgLyogV2ViUGFnZVBy
b3h5LmNwcCAqLywKIAkJCQlCQzAzMkRDQjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUGFnZVByb3h5
LmggKi8sCiAJCQkJQkNCRDM4RkExMjVCQUI5QTAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiAqLywKQEAgLTc4NjEsNiArNzg2OCw3IEBACiAJCQkJN0NFNEQyMUUxQTQ5MTRDQTAw
QzdGMTUyIC8qIEFQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTFBRkRFNjVG
MTk1NEU5QjEwMEM0OEZGQSAvKiBBUElTZXNzaW9uU3RhdGUuY3BwICovLAogCQkJCTFBRkRFNjYw
MTk1NEU5QjEwMEM0OEZGQSAvKiBBUElTZXNzaW9uU3RhdGUuaCAqLywKKwkJCQkyNzk0OTgwMTIy
RTgwMEQ0MDA4MkU2OEMgLyogQVBJU3RhdGVDbGllbnQuaCAqLywKIAkJCQkxQTRENjY0NzE4QTJE
OTFBMDBEODJFMjEgLyogQVBJVUlDbGllbnQuaCAqLywKIAkJCQk1MUQxMjQzODFFNkRGREI5MDAy
QjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgKi8sCiAJCQkJNTFEMTI0MzkxRTZERkRCOTAw
MkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suaCAqLywKQEAgLTc5OTIsNiArODAwMCw3IEBACiAJ
CQkJQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCAqLywKIAkJCQky
REQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMu
aCAqLywKIAkJCQkyREFCQTc3MTFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHNJbnRlcm5hbC5oICovLAorCQkJCTI3OTQ5ODAwMjJFODAwQkYwMDgyRTY4QyAv
KiBXS1BhZ2VTdGF0ZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUYxMTg0MDBCNjIwMEU5QUU2OSAv
KiBXS1BhZ2VVSUNsaWVudC5oICovLAogCQkJCTJEQUJBNzczMUE4MTdFRTYwMEVGMEYxQSAvKiBX
S1BsdWdpbkxvYWRQb2xpY3kuaCAqLywKIAkJCQlCQ0Q1OTdDRjExMkI1NkFDMDBFQzhDMjMgLyog
V0tQcmVmZXJlbmNlcy5jcHAgKi8sCkBAIC05MjY4LDYgKzkyNzcsNyBAQAogCQkJCTdDRTREMjIw
MUE0OTE0Q0EwMEM3RjE1MiAvKiBBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY2MzQ0NDU2MTJBODg1QzgwMDA2MTJEOCAvKiBBUElTZWN1cml0eU9yaWdp
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NjIxOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNl
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjc5NDk4MDYyMkU4MEJCODAwODJFNjhD
IC8qIEFQSVN0YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRENjY0ODE4QTJEOTFB
MDBEODJFMjEgLyogQVBJVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREI4NkMxMTIw
MEZCOTcwMDcyNTRCRSAvKiBBUElVUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTIzMTVEMTIy
QzMwQ0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTk4Mzgs
NiArOTg0OCw3IEBACiAJCQkJQTU0M0UzMTAyMTVEOENFNjAwMjc5Q0Q5IC8qIFdlYlBhZ2VJbnNw
ZWN0b3JUYXJnZXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0M0UzMEQyMTVDOEE5MDAw
Mjc5Q0Q5IC8qIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTQzRTMwNzIxNUFEMTM3MDAyNzlDRDkgLyogV2ViUGFnZUluc3BlY3RvclRhcmdl
dEZyb250ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjc5NDk4MDcyMkU4MEJEQjAw
ODJFNjhDIC8qIFdlYlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzBDRTcyQTExMjQ3RTcxRDAwQkMwRUM0IC8qIFdlYlBhZ2VNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQ1QzlEMDYxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0JEMzkxNTEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNjgsNiArMTAxNzksNyBAQAogCQkJCUJD
RTE3QjdFMTM4MUYxMTcwMDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyREQxMkEwODFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQUJBNzcyMUE4MTdCMTcwMEVGMEYxQSAv
KiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQkyNzk0OTgwNTIyRTgwQjdEMDA4MkU2OEMgLyogV0tQYWdlU3RhdGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBQjhBMUYyMTg0MDBCNjIwMEU5QUU2OSAvKiBXS1BhZ2VVSUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRkQzOEMxNkIwRTg4QzAwQjJGMEU4IC8qIFdLUGFn
ZVZpc2liaWxpdHlUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1RUVERTYxRTMwMUNFRTAw
MDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZWQ5YmFkMTZmODY3ZDc0ZGFk
ZmI1M2JmOWYyMzAzZmNiYTJiYzhhLi5kMzc5NDI0ZTcxM2ZiZGFhMGRkYjljZWUxYmFhNWE0MmFj
ZTRlYmViIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMjMgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmku
RnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRkIFBhZ2VMb2FkU3RhdGU6Ok9i
c2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcDoKKyAgICAgICAg
KFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJyb3dzZXJXaW5kb3cpOgorICAgICAgICAoV2Vi
S2l0QnJvd3NlcldpbmRvdzo6ZGlkQ2hhbmdlVGl0bGUpOgorICAgICAgICAoV2ViS2l0QnJvd3Nl
cldpbmRvdzo6ZGlkRmluaXNoTmF2aWdhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogTWluaUJy
b3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaDoKKwogMjAxOS0wNy0yMyAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbd2Via2l0cGVybF0g
cHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcGFyc2VyX3VuaXR0ZXN0cy5wbCBpcyBmYWlsaW5n
IG9uIFdpbmRvd3MgUGVybApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktp
dEJyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJX
aW5kb3cuY3BwCmluZGV4IDAwNGIwYTlkMWFkYWM4ZTU4ZjIwMTAyNWYzODQ3ZGE1NmFlZWQ5Njgu
LmJmZGQ1MjdiZTBhYjZiMTFmNTJlZjhkMGVmNDkzMzk0ODQ4NDJjNzMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKQEAgLTEzNyw3ICsxMzcsNiBA
QCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBu
YXZpZ2F0aW9uQ2xpZW50ID0geyB9OwogICAgIG5hdmlnYXRpb25DbGllbnQuYmFzZS52ZXJzaW9u
ID0gMDsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAg
bmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlv
bjsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24gPSBkaWRDb21taXRO
YXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlID0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogICAgIFdLUGFn
ZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHBhZ2UsICZuYXZpZ2F0aW9uQ2xpZW50LmJhc2UpOwpA
QCAtMTQ4LDYgKzE0NywxMiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2lu
ZG93KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIHVpQ2xpZW50
LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChwYWdlLCAmdWlDbGllbnQuYmFzZSk7CiAKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFYwIHN0YXRl
Q2xpZW50ID0geyB9OworICAgIHN0YXRlQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgc3Rh
dGVDbGllbnQuYmFzZS5jbGllbnRJbmZvID0gdGhpczsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFu
Z2VUaXRsZSA9IGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChw
YWdlLCAmc3RhdGVDbGllbnQuYmFzZSk7CisKICAgICB1cGRhdGVQcm94eVNldHRpbmdzKCk7CiAg
ICAgcmVzZXRab29tKCk7CiB9CkBAIC0yODcsMTEgKzI5MiwxMiBAQCBzdGF0aWMgV2ViS2l0QnJv
d3NlcldpbmRvdyYgdG9XZWJLaXRCcm93c2VyV2luZG93KGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CiAgICAgcmV0dXJuICpjb25zdF9jYXN0PFdlYktpdEJyb3dzZXJXaW5kb3cqPihzdGF0aWNfY2Fz
dDxjb25zdCBXZWJLaXRCcm93c2VyV2luZG93Kj4oY2xpZW50SW5mbykpOwogfQogCi12b2lkIFdl
YktpdEJyb3dzZXJXaW5kb3c6OmRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdL
TmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit2b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZENoYW5nZVRpdGxlKGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgYXV0byYgdGhpc1dpbmRvdyA9IHRvV2ViS2l0
QnJvd3NlcldpbmRvdyhjbGllbnRJbmZvKTsKKyAgICBhdXRvIHBhZ2UgPSBXS1ZpZXdHZXRQYWdl
KHRoaXNXaW5kb3cubV92aWV3LmdldCgpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
dGl0bGUgPSBhZG9wdFdLKFdLUGFnZUNvcHlUaXRsZShwYWdlKSk7CiAgICAgc3RkOjp3c3RyaW5n
IHRpdGxlU3RyaW5nID0gY3JlYXRlU3RyaW5nKHRpdGxlLmdldCgpKSArIEwiIFtXZWJLaXRdIjsK
LSAgICBhdXRvJiB0aGlzV2luZG93ID0gdG9XZWJLaXRCcm93c2VyV2luZG93KGNsaWVudEluZm8p
OwogICAgIFNldFdpbmRvd1RleHQodGhpc1dpbmRvdy5tX2hNYWluV25kLCB0aXRsZVN0cmluZy5j
X3N0cigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJy
b3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93
LmgKaW5kZXggODc2ODI3YmNmYzY5MDhkYjg1YTJmNTY2NjIzNzUzZjAyYzM2N2NjZC4uZWVhN2Rk
ZTU4ZGIxNTE3ZGRhZjA0NTIzM2FhMGVhZWZlMGNlMzJjYyAxMDA2NDQKLS0tIGEvVG9vbHMvTWlu
aUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGNhblRydXN0U2VydmVyQ2VydGlmaWNhdGUoV0tQcm90ZWN0aW9uU3BhY2VSZWYp
OwogCi0gICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2
aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlk
Q2hhbmdlVGl0bGUoY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdE5hdmln
YXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCop
OwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS1Bh
Z2VSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBz
dGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0
aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0
IHZvaWQgKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375146</attachid>
            <date>2019-07-29 23:00:38 -0700</date>
            <delta_ts>2019-07-30 00:22:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190730150037.patch</filename>
            <type>text/plain</type>
            <size>45717</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYWJiYTdmZGQ2MzNlNmEx
NWVkZmQ1Y2U3M2JhYzJiOGQwMjI3OTkuLmRkNjhhMTc0NmVlN2FlYzI3Y2UyNjllZTBlMjM4NGNm
MzZlMjllMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDctMjkgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBXZWJLaXQgQyBBUEkgdG8gZ2V0IHRo
ZSB0aW1pbmcgb2YgdGl0bGUgY2hhbmdlZCBzaW5jZQorICAgICAgICBXS1BhZ2VMb2FkZXJDbGll
bnRWMDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgaGFzIGJlZW4gcmVtb3ZlZCBpbgorICAgICAg
ICByMjM1Mzk4LiBDb2NvYSBhbmQgZ2xpYiBXZWJLaXQgQVBJIGV4aXN0LgorCisgICAgICAgICog
UGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlU3RhdGVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxOS0wNy0yOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBZb3VUdWJlIHNlYXJjaCBmaWVsZCBzaG93cyBSVEwgdGV4dCBvdXRzaWRlIGl0cyBi
b3JkZXIgb24gaVBhZE9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNt
YWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4MGJjMjIxNDAzNjYy
ODA5NjIzMjVmYjExNWRiNWZhNjMxY2Q2MGVhLi5jMmI4NjY2NTY4YTJjMmFhYTJkOGM5YzQ5Yjcz
MGU5ZDJjOWFjYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTI5NCw2ICsyOTQsNyBA
QCBzZXQoV2ViS2l0X1BVQkxJQ19GUkFNRVdPUktfSEVBREVSUwogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VQb2xpY3lDbGllbnQuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAor
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9s
aWN5LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBjY2MzMzBmMzAyNDc2MWZlNzM5NzQ0
NTYyMjMwNTI2Njc4Yjc5MDQwLi41NzFmNTRiMWRmZWM2ZWJiOTk5NjVmZDViNmZjZWRjNDc3Mzhh
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEzMiw2
ICsxMzIsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZUZpbmRDbGll
bnRCYXNlPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlRmluZE1hdGNo
ZXNDbGllbnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZUZpbmRNYXRjaGVz
Q2xpZW50VjA+IFZlcnNpb25zOwogfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRz
PFdLUGFnZVN0YXRlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VT
dGF0ZUNsaWVudFYwPiBWZXJzaW9uczsKK307CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKIApA
QCAtMjI4OSw2ICsyMjkzLDE2NSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50
KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZQogICAgIHdlYlBh
Z2VQcm94eS0+c2V0TmF2aWdhdGlvbkNsaWVudChtYWtlVW5pcXVlUmVmPE5hdmlnYXRpb25DbGll
bnQ+KHdrQ2xpZW50KSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFn
ZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBjbGFzcyBT
dGF0ZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1BhZ2VTdGF0ZUNsaWVudEJh
c2U+LCBwdWJsaWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgZXhwbGljaXQgU3RhdGVDbGllbnQoY29uc3QgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGll
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxpemUoY2xpZW50KTsKKyAgICAgICAg
fQorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgd2lsbENoYW5nZUlzTG9hZGluZygpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUlzTG9h
ZGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxs
Q2hhbmdlSXNMb2FkaW5nKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5nKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUlzTG9hZGluZyhtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBt
X2NsaWVudC53aWxsQ2hhbmdlVGl0bGUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVRpdGxlKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZVRpdGxlKG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VB
Y3RpdmVVUkwoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VBY3RpdmVVUkwpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2lsbENoYW5nZUFjdGl2ZVVSTChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUFjdGl2ZVVS
TCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFu
Z2VBY3RpdmVVUkwobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZvaWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNv
bnRlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2ls
bENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VI
YXNPbmx5U2VjdXJlQ29udGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudChtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVk
UHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MobV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LndpbGxDaGFuZ2VDYW5Hb0JhY2spCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNhbkdvQmFjayhtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VDYW5Hb0JhY2soKSBvdmVy
cmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUNhbkdv
QmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRD
aGFuZ2VDYW5Hb0JhY2sobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUNhbkdvRm9yd2FyZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29G
b3J3YXJkKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNhbkdvRm9yd2FyZChtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3Mp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5n
ZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVz
cygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hh
bmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxD
aGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbyht
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRD
aGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8obV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENo
YW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VXZWJQ
cm9jZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVdlYlByb2Nl
c3NJc1Jlc3BvbnNpdmUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9j
bGllbnQuZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZShtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2VzKCkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRTd2FwV2Vi
UHJvY2Vzc2VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50
LmRpZFN3YXBXZWJQcm9jZXNzZXMobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
fQorICAgIH07CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIobWFr
ZVVuaXF1ZVJlZjxTdGF0ZUNsaWVudD4oY2xpZW50KSk7Cit9CisKIHZvaWQgV0tQYWdlUnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBzY3JpcHRS
ZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxsYmFjaykK
IHsKICAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwo
c2NyaXB0UmVmKS0+c3RyaW5nKCksIHRydWUsIFtjb250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVlLCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNl
cHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBmNTY3ZDQ2ODM3MzYwMzk5YTlkMGM1NGMzYTA0
YTU0MGQwNmYwNTlkLi5kYmQwNjI2YjM3YWZlYjk4NGI3ZmViZmRjZWEwMDVjMmY1YWVjNTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtNDMsNiArNDMsNyBAQAog
I2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VQb2xpY3lD
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlU3RhdGVDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tQYWdlVUlDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlVmlzaWJp
bGl0eVR5cGVzLmg+CiAKQEAgLTIyOSw2ICsyMzAsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VT
ZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGll
bgogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFn
ZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29z
KDEwLjE0LjQpKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZSogY2xpZW50
KTsKIAorV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCk7CisKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1h
aW5GcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc2NyaXB0LCB2b2lkKiBjb250ZXh0
LCBXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24gZnVuY3Rpb24pOwogI2lmZGVmIF9fQkxPQ0tT
X18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVN0YXRl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3NmI4OTNhYWRjYjU5MmQ1Nzc5YWY0N2MyMWRiNzQyNzVmYmMyOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VT
dGF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
U29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiB2b2lkICgqV0tQYWdlU3RhdGVDbGllbnRX
aWxsQ2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjaykoY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVN0YXRlQ2xpZW50QmFzZSB7CisgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tQYWdlU3Rh
dGVDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VTdGF0ZUNsaWVudFYwIHsKKyAg
ICBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlU3RhdGVD
bGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWxsQ2hhbmdlSXNMb2FkaW5nOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlSXNMb2FkaW5nOwor
ICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lsbENoYW5nZVRpdGxlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdl
VGl0bGU7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQWN0aXZlVVJMOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUhhc09ubHlT
ZWN1cmVDb250ZW50OworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRl
bnQ7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgV0tQ
YWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzczsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxD
aGFuZ2VDYW5Hb0JhY2s7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VDYW5Hb0JhY2s7CisgICAg
V0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkOworICAgIFdLUGFnZVN0YXRlQ2xpZW50
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hh
bmdlQ2FuR29Gb3J3YXJkOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0
c0luUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblBy
b2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbzsKKyAgICBX
S1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxD
aGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFN3YXBXZWJQcm9jZXNzZXM7
CisKK30gV0tQYWdlU3RhdGVDbGllbnRWMDsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU0MTMzYzYy
OGQ2NzZlN2VlYzM1MGMzMThkZjJmODgzNjgzOTUyM2IuLmQ0Yjk5NjMyMDQyZWM4NGQwY2RjMjFh
ZjdjMmI3ZDMyNzM4YmNiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtNjM2LDYgKzYzNiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SWNvbkxvYWRp
bmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+JgogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlSWNvbkxvYWRpbmdDbGllbnQo
aGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UGFnZUxv
YWRTdGF0ZU9ic2VydmVyKFVuaXF1ZVJlZjxQYWdlTG9hZFN0YXRlOjpPYnNlcnZlcj4mJiBvYnNl
cnZlcikKK3sKKyAgICBpZiAobV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpCisgICAgICAgIHBhZ2VM
b2FkU3RhdGUoKS5yZW1vdmVPYnNlcnZlcigqbV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOworICAg
IG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyID0gb2JzZXJ2ZXIubW92ZVRvVW5pcXVlUHRyKCk7Cisg
ICAgcGFnZUxvYWRTdGF0ZSgpLmFkZE9ic2VydmVyKCptX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcik7
Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGaW5kQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxB
UEk6OkZpbmRDbGllbnQ+JiYgZmluZENsaWVudCkKIHsKICAgICBpZiAoIWZpbmRDbGllbnQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2NmODg4Y2IyYTE2MDAw
ODcyYjNhNzU0MjY1NTFiNjQzM2E4OTg1NS4uN2VkZjFlMTRiNzUyNmZlYjRhNzBlYThhOTgxZmU5
N2VkMGRlNGQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTUw
Miw2ICs1MDIsOCBAQCBwdWJsaWM6CiAgICAgQVBJOjpJY29uTG9hZGluZ0NsaWVudCYgaWNvbkxv
YWRpbmdDbGllbnQoKSB7IHJldHVybiAqbV9pY29uTG9hZGluZ0NsaWVudDsgfQogICAgIHZvaWQg
c2V0SWNvbkxvYWRpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGll
bnQ+JiYpOwogCisgICAgdm9pZCBzZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIoVW5pcXVlUmVmPFBh
Z2VMb2FkU3RhdGU6Ok9ic2VydmVyPiYmKTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKICAgICB2b2lkIHNldERyYXdpbmdBcmVhKHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiYmKTsKIApAQCAtMjEyNCw2ICsyMTI2LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QVBJOjpDb250ZXh0TWVudUNsaWVudD4gbV9jb250ZXh0TWVudUNsaWVudDsKICNlbmRp
ZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5q
ZWN0ZWRCdW5kbGVDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VMb2FkU3RhdGU6Ok9i
c2VydmVyPiBtX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJOYXZpZ2F0aW9uU3RhdGU+IG1fbmF2aWdhdGlvblN0YXRlOwogICAgIFN0cmluZyBtX2ZhaWxp
bmdQcm92aXNpb25hbExvYWRVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwYTJiMTkyZmY4NzVkNWYwNWFkMmJlYzE0YTlhZWMzNDI0
MzAyY2Q5Li5kYjQyMTk2ZTdlZGNjZjZjNjU5ZTAwMzVhYzA0YTc4N2E5Y2VmYjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNiw2
ICs0MTYsNyBAQAogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGOUE4
M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNzQ5RjY0NDIxNDY1NjFCMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRUFBMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwICovOyB9OwogCQkyNzQ5RjY0NTIxNDY1NjFFMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzRTBEMDEyNDA4RTg2MDAzNjBGM0YgLyogSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgKi87IH07CisJCTI3OTQ5ODA1MjJFODBCN0QwMDgy
RTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTBGNDI3
MTE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxpYXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsK
IAkJMjkyMzJERjQxOEIyOUQ2ODAwRDA1OTZGIC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFj
LmggKi87IH07CiAJCTI5M0VCRUFCMTYyN0Q5QzkwMDVGODlGMSAvKiBXS0RPTVRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5M0VCRUE5MTYyN0Q5
QzkwMDVGODlGMSAvKiBXS0RPTVRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjUwMiw2ICsyNTAzLDcgQEAKIAkJMjZGMTBCRTYxOTE4N0Uy
RTAwMUQwRTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5o
OyBwYXRoID0gaW9zL1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhl
dGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9z
L1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI2RjlBODNBMThBMzQ2M0YwMEFFQjg4QSAvKiBXS1dlYlZpZXdQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLV2ViVmlld1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZVN0YXRlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBB
dXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOTIzMkRGMTE4QjI5RDExMDBEMDU5NkYgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5
OTIsNiArNzk5NCw3IEBACiAJCQkJQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVBy
aXZhdGUuaCAqLywKIAkJCQkyREQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHMuaCAqLywKIAkJCQkyREFCQTc3MTFBODE3QjE3MDBFRjBGMUEgLyog
V0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovLAorCQkJCTI3OTQ5ODAw
MjJFODAwQkYwMDgyRTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUYx
MTg0MDBCNjIwMEU5QUU2OSAvKiBXS1BhZ2VVSUNsaWVudC5oICovLAogCQkJCTJEQUJBNzczMUE4
MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCAqLywKIAkJCQlCQ0Q1OTdDRjEx
MkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCkBAIC0xMDE2OCw2ICsxMDE3
MSw3IEBACiAJCQkJQkNFMTdCN0UxMzgxRjExNzAwMTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJERDEyQTA4MUE4MTc3RjMwMDJDNzRFNiAvKiBXS1BhZ2VS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBQkE3NzIxQTgx
N0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTI3OTQ5ODA1MjJFODBCN0QwMDgyRTY4QyAvKiBXS1BhZ2VTdGF0
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjIxODQwMEI2MjAwRTlBRTY5IC8q
IFdLUGFnZVVJQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGRDM4QzE2QjBFODhDMDBC
MkYwRTggLyogV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTVF
RURFNjFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU0MDlm
ZTJlYTk1NWM0NWJlOTUwYzA3YjgwMjJiM2NiNDM3YWIyNjQuLmE5MjU5Njc3NjAyZGM1MThiODY3
MTczOGJlMmM2NjBiNTEyOTk5ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxOS0wNy0yOSAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2ViS2l0XSBBZGQgUGFn
ZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6V2ViS2l0QnJvd3NlcldpbmRvdyk6
CisgICAgICAgIChXZWJLaXRCcm93c2VyV2luZG93OjpkaWRDaGFuZ2VUaXRsZSk6CisgICAgICAg
IChXZWJLaXRCcm93c2VyV2luZG93OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUxvYWRTdGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6UGFnZUxvYWRUZXN0U3RhdGU6OlBhZ2VMb2FkVGVzdFN0YXRlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpkaWRDaGFuZ2VDYW5Hb0JhY2spOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
ZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENoYW5n
ZUNlcnRpZmljYXRlSW5mbyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VFc3Rp
bWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VIYXNPbmx5
U2VjdXJlQ29udGVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VJc0xvYWRp
bmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VUaXRsZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZFN3YXBXZWJQcm9jZXNzZXMpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6d2lsbENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp3aWxsQ2hhbmdlQ2FuR29CYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFu
Z2VDYW5Hb0ZvcndhcmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZUNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3aWxsQ2hhbmdlRXN0aW1hdGVk
UHJvZ3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZUhhc09ubHlTZWN1
cmVDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VJc0xvYWRpbmcp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJv
Z3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZVRpdGxlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTktMDctMjkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25v
cmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bTWluaUJyb3dzZXJdIEFkZCAncmVs
b2FkJyBtZW51IGl0ZW0gYW5kICdyZWxvYWQnIHRvb2xiYXIgYnV0dG9uCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAgYi9Ub29scy9NaW5p
QnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKaW5kZXggYmZmM2IzMzdhZDhkNTUx
NDdlY2FjYjg3MjYyMTU1YTBhMTI3NDhmMC4uMzNlZjNkZGVlNTZhNDdhOGEzNDk5NDYwZDFlOTFm
NWE5NzE4MGRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dz
ZXJXaW5kb3cuY3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2lu
ZG93LmNwcApAQCAtMTM3LDcgKzEzNyw2IEBAIFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJy
b3dzZXJXaW5kb3coV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25mLCBIV05EIG1haW5XCiAgICAg
V0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIG5hdmlnYXRpb25DbGllbnQgPSB7IH07CiAgICAgbmF2
aWdhdGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwogICAgIG5hdmlnYXRpb25DbGllbnQuYmFz
ZS5jbGllbnRJbmZvID0gdGhpczsKLSAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZEZpbmlzaE5hdmln
YXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkQ29t
bWl0TmF2aWdhdGlvbiA9IGRpZENvbW1pdE5hdmlnYXRpb247CiAgICAgbmF2aWdhdGlvbkNsaWVu
dC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U7CiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQocGFnZSwg
Jm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CkBAIC0xNDgsNiArMTQ3LDEyIEBAIFdlYktpdEJyb3dz
ZXJXaW5kb3c6OldlYktpdEJyb3dzZXJXaW5kb3coV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25m
LCBIV05EIG1haW5XCiAgICAgdWlDbGllbnQuY3JlYXRlTmV3UGFnZSA9IGNyZWF0ZU5ld1BhZ2U7
CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2UsICZ1aUNsaWVudC5iYXNlKTsKIAorICAg
IFdLUGFnZVN0YXRlQ2xpZW50VjAgc3RhdGVDbGllbnQgPSB7IH07CisgICAgc3RhdGVDbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKKyAgICBzdGF0ZUNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlz
OworICAgIHN0YXRlQ2xpZW50LmRpZENoYW5nZVRpdGxlID0gZGlkQ2hhbmdlVGl0bGU7CisgICAg
V0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KHBhZ2UsICZzdGF0ZUNsaWVudC5iYXNlKTsKKwogICAg
IHVwZGF0ZVByb3h5U2V0dGluZ3MoKTsKICAgICByZXNldFpvb20oKTsKIH0KQEAgLTI5MywxMSAr
Mjk4LDEyIEBAIHN0YXRpYyBXZWJLaXRCcm93c2VyV2luZG93JiB0b1dlYktpdEJyb3dzZXJXaW5k
b3coY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKICAgICByZXR1cm4gKmNvbnN0X2Nhc3Q8V2ViS2l0
QnJvd3NlcldpbmRvdyo+KHN0YXRpY19jYXN0PGNvbnN0IFdlYktpdEJyb3dzZXJXaW5kb3cqPihj
bGllbnRJbmZvKSk7CiB9CiAKLXZvaWQgV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkRmluaXNoTmF2
aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3ZvaWQgV2ViS2l0QnJvd3Nl
cldpbmRvdzo6ZGlkQ2hhbmdlVGl0bGUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKKyAgICBh
dXRvJiB0aGlzV2luZG93ID0gdG9XZWJLaXRCcm93c2VyV2luZG93KGNsaWVudEluZm8pOworICAg
IGF1dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UodGhpc1dpbmRvdy5tX3ZpZXcuZ2V0KCkpOwogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aXRsZSA9IGFkb3B0V0soV0tQYWdlQ29weVRpdGxl
KHBhZ2UpKTsKICAgICBzdGQ6OndzdHJpbmcgdGl0bGVTdHJpbmcgPSBjcmVhdGVTdHJpbmcodGl0
bGUuZ2V0KCkpICsgTCIgW1dlYktpdF0iOwotICAgIGF1dG8mIHRoaXNXaW5kb3cgPSB0b1dlYktp
dEJyb3dzZXJXaW5kb3coY2xpZW50SW5mbyk7CiAgICAgU2V0V2luZG93VGV4dCh0aGlzV2luZG93
Lm1faE1haW5XbmQsIHRpdGxlU3RyaW5nLmNfc3RyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oIGIvVG9vbHMvTWluaUJyb3dz
ZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaAppbmRleCBjNTAwNGI3ZTBjOTRmZTAyNjgzZGFm
ZGI0ZjA5YmNmMjM3ZDllOTdhLi5kZGJmM2U5MjViN2U4ODAxZGY4NWI2ZTVmOGJiZTg5N2E3NDA2
ZWEyIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRv
dy5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmgKQEAg
LTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuVHJ1c3RTZXJ2ZXJDZXJ0aWZp
Y2F0ZShXS1Byb3RlY3Rpb25TcGFjZVJlZik7CiAKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hO
YXZpZ2F0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZv
aWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VUaXRsZShjb25zdCB2b2lkKik7CiAgICAg
c3RhdGljIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJl
ZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdLUGFnZVJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShX
S1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwg
V0tXaW5kb3dGZWF0dXJlc1JlZiwgY29uc3Qgdm9pZCAqKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0CmluZGV4IGZmODQ0NmYwZjU4M2Q0YzRiMmNlODA4YWE4ZjE0YTI3NDcxMjE2MWIuLjIz
OTRiNTMxYWUzNmEzZjNjOWI4MjRiMTVmYTU2MmRkMzU2OTBhNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dApAQCAtMjI0LDYgKzIyNCw3IEBAIGlmIChFTkFCTEVfV0VCS0lUKQogICAg
ICAgICBUZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNw
cAogICAgICAgICBUZXN0cy9XZWJLaXQvUGFnZUxvYWRCYXNpYy5jcHAKICAgICAgICAgVGVzdHMv
V2ViS2l0L1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwCisg
ICAgICAgIFRlc3RzL1dlYktpdC9QYWdlTG9hZFN0YXRlLmNwcAogICAgICAgICBUZXN0cy9XZWJL
aXQvUGFyZW50RnJhbWUuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9QZW5kaW5nQVBJUmVxdWVz
dFVSTC5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU2YjRiNjk4NDkxODQ0ZDY0YzdhNzQ3NTk2MzE0
NDA0YzZjMGFhZi4uNWQ2MTdmZDRjNmJmMWZiNmY3ZmQ4ODcyZDFhZmYyMDQ5NjVkNWVkMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk4LDYgKzk4LDcgQEAKIAkJMjZGNTJFQUYxODI4OEMy
MzAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFj
eS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLzsgfTsKIAkJMjZGNTJFQjIxODI4OEYyNDAwMjNE
NDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUIwMTgyODhGMEYwMDIzRDQx
MiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbCAqLzsgfTsKIAkJMjZGNTJFQjMxODI4
OEYyNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3ku
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNkY1MkVCMTE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0
aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OworCQkyNzJBNjkxMDIyRjAxMkRBMDAwRkRBQkIgLyog
UGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyNzJBNjkwRjIyRjAxMkM3MDAwRkRBQkIgLyogUGFnZUxvYWRTdGF0ZS5jcHAgKi87
IH07CiAJCTI5MEE5QkI5MTczNUY2MzgwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlC
QjgxNzM1RjQyMzAwRDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCAqLzsgfTsKIAkJMjkwRjQy
NzUxNzJBMjIxQzAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEY0Mjc0
MTcyQTFGREUwMDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLzsgfTsK
IAkJMjk3MjM0QjcxNzNBRkFDNzAwOTgzNjAxIC8qIEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hl
bWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5NzIzNEI1MTczQUZBQzcwMDk4MzYwMSAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2No
ZW1lX0J1bmRsZS5jcHAgKi87IH07CkBAIC0xMDc2LDcgKzEwNzcsNiBAQAogCQkJZHN0UGF0aCA9
IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlm
aWxlcyA9ICgKLQkJCQk5QkFFMTc3QjIyRTJCQkZCMDBERjMwOTggLyogY29jb2Etd3JpdGVyLW1h
cmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1
QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyog
NDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMTMxLDYgKzExMzEs
NyBAQAogCQkJCTgzOUFBMzVGMjFBMjZCMDMwMDk4MERENiAvKiBjbGllbnQtc2lkZS1yZWRpcmVj
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBNTBBQTIwMUEyQTUxRkMwMEY0QzM0
NSAvKiBjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTlCMjcwRkVFMUREQzJDMEIwMDJENTNGMyAvKiBjbG9zZWQtc2hhZG93LXRyZWUt
dGVzdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTlCQUUxNzdCMjJFMkJCRkIwMERG
MzA5OCAvKiBjb2NvYS13cml0ZXItbWFya3VwLXdpdGgtc3lzdGVtLWZvbnRzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRTUwMzZGNzgyMTFCQzI1NDAwQkZEQkUyIC8qIGNvbG9yLWRy
b3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEI4MjVEODFFRjREQkZCMDA2RTQx
N0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5
RTU2ODcxREY5MTRBRTAwQzlFRTMzIC8qIGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKQEAgLTE1MDUsNiArMTUwNiw3IEBACiAJCTI2RjUyRUIwMTgyODhGMEYw
MDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNkY1MkVCMTE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY2RTFFRjFBREM3NDlCMDBERTY5NkIgLyogREZB
TWluaW1pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERGQU1p
bmltaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI3MkE2OTBGMjJGMDEy
QzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhZ2VMb2FkU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNzhERTY0QjIyQjhENjExMDA0RTBFN0EgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCNTE3MzVERThBMDBENzFCQkMg
LyogQ2xvc2VOZXdXaW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9u
UG9saWN5RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEE5QkI4
MTczNUY0MjMwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSBPcGVuTmV3V2luZG93Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMzY5LDcgKzIzNzEsNyBAQAogCQlGNDFBQjk5RTFFRjQ2OTJDMDA4M0ZBMDggLyogZGl2
LWFuZC1sYXJnZS1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImRpdi1hbmQtbGFyZ2UtaW1hZ2UuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzQzMjJBMTcyOUYwMEQyRkIz
QSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0
b2NvcnJlY3Rpb25UZXN0c0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQy
REE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImxhcmdlLWlucHV0LWZpZWxkLWZvY3Vz
LW9ubG9hZC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXRDb2NvYS9sYXJnZS1pbnB1dC1maWVs
ZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJRjQz
NENBMTkyMkU2NUJDQTAwNUREQjI2IC8qIFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gU2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW07IHBhdGggPSBTY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQz
NENBMTkyMkU2NUJDQTAwNUREQjI2IC8qIFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0M0UzQkJFMjBEQURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZp
ZXdUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2Nyb2xsVmlld1Rlc3RzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDNFM0JDMDIwREFEQjgwMDBBNEU3RUQgLyog
Zml4ZWQtbmF2LWJhci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZpeGVkLW5hdi1iYXIuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDI4NTFCMjE0MERGMjkwMENDREEyMiAvKiBOU0Zv
bnRQYW5lbFRlc3RpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNGb250UGFuZWxUZXN0aW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTAxLDYgKzMxMDMsNyBAQAogCQkJCTJFRkYw
NkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
Ki8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwgKi8sCiAJCQkJODM5QUEzNUUyMUEyNkFDRDAwOTgwREQ2IC8qIGNsaWVudC1z
aWRlLXJlZGlyZWN0Lmh0bWwgKi8sCisJCQkJOUJBRTE3N0EyMkUyQkI2QjAwREYzMDk4IC8qIGNv
Y29hLXdyaXRlci1tYXJrdXAtd2l0aC1zeXN0ZW0tZm9udHMuaHRtbCAqLywKIAkJCQlFNTAzNkY3
NzIxMUJDMjI4MDBCRkRCRTIgLyogY29sb3ItZHJvcC5odG1sICovLAogCQkJCUY0QjgyNUQ2MUVG
NERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCAqLywKIAkJCQlGNDY5RkIyMzFG
MDE4MDM1MDA0MDE1MzkgLyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCAqLywKQEAg
LTMyNjIsNyArMzI2NSw2IEBACiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlBy
b2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCiAJCQkJNTEyMEM4M0IxRTY3NEUzNTAwMjVC
MjUwIC8qIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5odG1sICovLAogCQkJCTJFMTMxQzE3
MUQ4M0E5N0UwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCAqLywKLQkJCQk5QkFFMTc3QTIyRTJCQjZCMDBERjMwOTggLyogY29jb2Etd3JpdGVyLW1hcmt1
cC13aXRoLXN5c3RlbS1mb250cy5odG1sICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzQ0MCw2ICszNDQyLDcgQEAKIAkJCQk3
Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLywKIAkJCQlCQzkwOTc3
OTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAwNDgx
MkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUuY3BwICovLAorCQkJCTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0
YXRlLmNwcCAqLywKIAkJCQk1MkU1Q0U0NTE0RDIxRTlEMDAzQjJCRDggLyogUGFyZW50RnJhbWUu
Y3BwICovLAogCQkJCTUyRTVDRTQ4MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5k
bGUuY3BwICovLAogCQkJCUM1NDIzN0VFMTZCODk1NTgwMEU2MzhGQyAvKiBQYXN0ZWJvYXJkTm90
aWZpY2F0aW9ucy5tbSAqLywKQEAgLTQ0OTcsNiArNDUwMCw3IEBACiAJCQkJN0NDQjREQTkxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0Yw
NzFBNDExQUU2MDA0NDdDNEMgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0YwODFBNDExQUU2MDA0NDdDNEMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldp
dGhpblBhZ2VGb3JGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyNzJBNjkxMDIyRjAxMkRB
MDAwRkRBQkIgLyogUGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VD
NzFBNDExQTdFMDA0NDdDNEMgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2Vz
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDkxQTQxMUFFNjAwNDQ3QzRDIC8qIFBhcmVu
dEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDUxMUQwQTY0MTgwMEZFQkNGMyAv
KiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC00NzMxLDkgKzQ3MzUs
OSBAQAogCQkJCTlCRDQyMzlBMUUwNEJEOTgwMDIwMDM5NSAvKiBBdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDOUQ5MjMx
MjJEN0UwRUIwMDhFOTI2NiAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkU3NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAq
LywKLQkJCQlDRENGRkVDMTIyRTI2QTE1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5Td2l0Y2hpbmdU
YWJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1h
aW5NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Nzk3RkUzMTFFQjE1QTY4MDBCMkY0QTAgLyog
TmF2aWdhdGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RD
RkZFQzEyMkUyNkExNTAwREY0MjIzIC8qIE5vUGF1c2VXaGVuU3dpdGNoaW5nVGFicy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdBRDNGRThFMUQ3NjEzMTIwMEIxNjlBNCAvKiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1BhZ2VMb2FkU3RhdGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUGFnZUxvYWRTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA0Y2JhODZkZjY4ZjMyYTMxZWVk
MGUzYWJkNzFjMTY1NjU1NzIwNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkU3RhdGUuY3BwCkBAIC0wLDAgKzEsMjkxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5j
bHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KyNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgdGVzdDFEb25lOworCitzdHJ1
Y3QgUGFnZUxvYWRUZXN0U3RhdGUgeworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKCkgeyB9CisgICAg
c2l6ZV90IGRpZENoYW5nZUFjdGl2ZVVSTCB7IDAgfTsKKyAgICBzaXplX3QgZGlkQ2hhbmdlQ2Fu
R29CYWNrIHsgMCB9OworICAgIHNpemVfdCBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQgeyAwIH07Cisg
ICAgc2l6ZV90IGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyB7IDAgfTsKKyAgICBzaXplX3QgZGlk
Q2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAgc2l6ZV90IGRpZENoYW5nZUhhc09u
bHlTZWN1cmVDb250ZW50IHsgMCB9OworICAgIHNpemVfdCBkaWRDaGFuZ2VJc0xvYWRpbmcgeyAw
IH07CisgICAgc2l6ZV90IGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07
CisgICAgc2l6ZV90IGRpZENoYW5nZVRpdGxlIHsgMCB9OworICAgIHNpemVfdCBkaWRDaGFuZ2VX
ZWJQcm9jZXNzSXNSZXNwb25zaXZlIHsgMCB9OworICAgIHNpemVfdCBkaWRTd2FwV2ViUHJvY2Vz
c2VzIHsgMCB9OworICAgIHNpemVfdCB3aWxsQ2hhbmdlQWN0aXZlVVJMIHsgMCB9OworICAgIHNp
emVfdCB3aWxsQ2hhbmdlQ2FuR29CYWNrIHsgMCB9OworICAgIHNpemVfdCB3aWxsQ2hhbmdlQ2Fu
R29Gb3J3YXJkIHsgMCB9OworICAgIHNpemVfdCB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvIHsg
MCB9OworICAgIHNpemVfdCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAg
c2l6ZV90IHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCB7IDAgfTsKKyAgICBzaXplX3Qg
d2lsbENoYW5nZUlzTG9hZGluZyB7IDAgfTsKKyAgICBzaXplX3Qgd2lsbENoYW5nZU5ldHdvcmtS
ZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07CisgICAgc2l6ZV90IHdpbGxDaGFuZ2VUaXRsZSB7IDAg
fTsKKyAgICBzaXplX3Qgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgeyAwIH07Cit9
OworCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBh
Z2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0
YXRlLT5kaWRDaGFuZ2VBY3RpdmVVUkwrKzsKK30KKworc3RhdGljIHZvaWQgZGlkQ2hhbmdlQ2Fu
R29CYWNrKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUGFnZUxvYWRUZXN0U3RhdGUq
IHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdlTG9hZFRlc3RTdGF0ZSo+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0ZS0+ZGlkQ2hhbmdlQ2FuR29CYWNrKys7Cit9
CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZChjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAg
c3RhdGUtPmRpZENoYW5nZUNhbkdvRm9yd2FyZCsrOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFu
Z2VDZXJ0aWZpY2F0ZUluZm8oY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9h
ZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VDZXJ0
aWZpY2F0ZUluZm8rKzsKK30KKworc3RhdGljIHZvaWQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3Rh
dGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcysr
OworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudChjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50Kys7Cit9CisK
K3N0YXRpYyB2b2lkIGRpZENoYW5nZUlzTG9hZGluZyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxv
YWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUt
PmRpZENoYW5nZUlzTG9hZGluZysrOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VOZXR3b3Jr
UmVxdWVzdHNJblByb2dyZXNzKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUGFnZUxv
YWRUZXN0U3RhdGUqIHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdlTG9hZFRlc3RTdGF0ZSo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0ZS0+ZGlkQ2hhbmdlTmV0
d29ya1JlcXVlc3RzSW5Qcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VUaXRs
ZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZVRpdGxlKys7Cit9CisKK3N0YXRp
YyB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0
PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAg
IHN0YXRlLT5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKys7Cit9CisKK3N0YXRpYyB2
b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQ
YWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0
YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRTd2Fw
V2ViUHJvY2Vzc2VzKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VBY3RpdmVVUkwoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSBy
ZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQWN0aXZlVVJMKys7Cit9CisKK3N0YXRp
YyB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVz
dFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxs
Q2hhbmdlQ2FuR29CYWNrKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0Zvcndh
cmQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3Rh
dGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKys7Cit9
CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9j
YXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwor
ICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKys7Cit9CisKK3N0YXRpYyB2b2lk
IHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRU
ZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPndp
bGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCB3aWxsQ2hhbmdl
SGFzT25seVNlY3VyZUNvbnRlbnQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdl
TG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRl
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdl
SGFzT25seVNlY3VyZUNvbnRlbnQrKzsKK30KKworc3RhdGljIHZvaWQgd2lsbENoYW5nZUlzTG9h
ZGluZyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBz
dGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZv
aWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPndpbGxDaGFuZ2VJc0xvYWRpbmcrKzsKK30K
Kworc3RhdGljIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWlu
dGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcysr
OworfQorCitzdGF0aWMgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBh
Z2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0
YXRlLT53aWxsQ2hhbmdlVGl0bGUrKzsKK30KKworc3RhdGljIHZvaWQgd2lsbENoYW5nZVdlYlBy
b2Nlc3NJc1Jlc3BvbnNpdmUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9h
ZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZSsrOworfQorc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdGVzdDFEb25lID0gdHJ1ZTsKK30KKworVEVT
VChXZWJLaXQsIFBhZ2VMb2FkU3RhdGUpCit7CisgICAgUGFnZUxvYWRUZXN0U3RhdGUgc3RhdGU7
CisKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29u
dGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRW
MCBsb2FkZXJDbGllbnQgeyB9OworCisgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7
CisgICAgbG9hZGVyQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9ICZzdGF0ZTsKKyAgICBsb2FkZXJD
bGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CisKKyAgICBX
S1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVu
dC5iYXNlKTsKKworICAgIFdLUGFnZVN0YXRlQ2xpZW50VjAgc3RhdGVDbGllbnQgPSB7IH07Cisg
ICAgc3RhdGVDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBzdGF0ZUNsaWVudC5iYXNlLmNs
aWVudEluZm8gPSAmc3RhdGU7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlQWN0aXZlVVJMID0g
ZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIHN0YXRlQ2xpZW50LmRpZENoYW5nZUNhbkdvQmFjayA9
IGRpZENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFuZ2VDYW5Hb0Zvcndh
cmQgPSBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQ7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlQ2Vy
dGlmaWNhdGVJbmZvID0gZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvOworICAgIHN0YXRlQ2xpZW50
LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzID0gZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7
CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQgPSBkaWRDaGFu
Z2VIYXNPbmx5U2VjdXJlQ29udGVudDsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFuZ2VJc0xvYWRp
bmcgPSBkaWRDaGFuZ2VJc0xvYWRpbmc7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlTmV0d29y
a1JlcXVlc3RzSW5Qcm9ncmVzcyA9IGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3M7
CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlVGl0bGUgPSBkaWRDaGFuZ2VUaXRsZTsKKyAgICBz
dGF0ZUNsaWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlID0gZGlkQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBzdGF0ZUNsaWVudC5kaWRTd2FwV2ViUHJvY2Vzc2Vz
ID0gZGlkU3dhcFdlYlByb2Nlc3NlczsKKyAgICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlQWN0aXZl
VVJMID0gd2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlQ2Fu
R29CYWNrID0gd2lsbENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdl
Q2FuR29Gb3J3YXJkID0gd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBzdGF0ZUNsaWVudC53
aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvID0gd2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbzsKKyAg
ICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgPSB3aWxsQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2lsbENoYW5nZUhhc09ubHlTZWN1cmVD
b250ZW50ID0gd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAgIHN0YXRlQ2xpZW50
LndpbGxDaGFuZ2VJc0xvYWRpbmcgPSB3aWxsQ2hhbmdlSXNMb2FkaW5nOworICAgIHN0YXRlQ2xp
ZW50LndpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzID0gd2lsbENoYW5nZU5ldHdv
cmtSZXF1ZXN0c0luUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2lsbENoYW5nZVRpdGxlID0g
d2lsbENoYW5nZVRpdGxlOworICAgIHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNS
ZXNwb25zaXZlID0gd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmU7CisgICAgV0tQYWdl
U2V0UGFnZVN0YXRlQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmc3RhdGVDbGllbnQuYmFzZSk7CisK
KyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxG
b3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
LnBhZ2UoKSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnRlc3QxRG9uZSk7CisKKyAgICBF
WFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQWN0aXZlVVJMLCAxKTsKKyAgICBFWFBFQ1RfRVEoc3Rh
dGUuZGlkQ2hhbmdlQ2FuR29CYWNrLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdl
Q2FuR29Gb3J3YXJkLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQ2VydGlmaWNh
dGVJbmZvLCAxKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdGUuZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVu
dCwgMCk7CisgICAgRVhQRUNUX0dUKHN0YXRlLmRpZENoYW5nZUlzTG9hZGluZywgMCk7CisgICAg
RVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MsIDApOwor
ICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VUaXRsZSwgMCk7CisgICAgRVhQRUNUX0VRKHN0
YXRlLmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUsIDApOworICAgIEVYUEVDVF9FUShz
dGF0ZS5kaWRTd2FwV2ViUHJvY2Vzc2VzLCAxKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENo
YW5nZUFjdGl2ZVVSTCwgMSk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VDYW5Hb0Jh
Y2ssIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkLCAwKTsK
KyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbywgMSk7CisgICAg
RVhQRUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcywgMCk7CisgICAgRVhQ
RUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCwgMCk7CisgICAgRVhQ
RUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VJc0xvYWRpbmcsIDApOworICAgIEVYUEVDVF9FUShzdGF0
ZS53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcywgMCk7CisgICAgRVhQRUNUX0VR
KHN0YXRlLndpbGxDaGFuZ2VUaXRsZSwgMCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFu
Z2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlLCAwKTsKKworICAgIHRlc3QxRG9uZSA9IGZhbHNlOwor
ICAgIHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZTIiLCAi
aHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwor
ICAgIFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFu
Z2VDYW5Hb0JhY2ssIDEpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5Hb0Zvcndh
cmQsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29CYWNrLCAxKTsKKyAg
ICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMCk7CisKKyAgICB0ZXN0
MURvbmUgPSBmYWxzZTsKKyAgICBXS1BhZ2VHb0JhY2sod2ViVmlldy5wYWdlKCkpOworICAgIFV0
aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5H
b0JhY2ssIDIpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQsIDEp
OworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29CYWNrLCAyKTsKKyAgICBFWFBF
Q1RfRVEoc3RhdGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMSk7CisKKyAgICB0ZXN0MURvbmUg
PSBmYWxzZTsKKyAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJz
ZXQtbG9uZy10aXRsZSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdl
KCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOworCisgICAgRVhQRUNU
X0VRKHN0YXRlLmRpZENoYW5nZVRpdGxlLCAyKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENo
YW5nZVRpdGxlLCAyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375147</attachid>
            <date>2019-07-30 00:23:04 -0700</date>
            <delta_ts>2019-07-30 19:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199848-20190730162302.patch</filename>
            <type>text/plain</type>
            <size>45615</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYWJiYTdmZGQ2MzNlNmEx
NWVkZmQ1Y2U3M2JhYzJiOGQwMjI3OTkuLmJiZGIyNWQ4NGZkYWRiNzhkODQ5ZTNhNGJlZDRiYTY1
OGVkNzczYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDctMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBubyBXZWJLaXQgQyBBUEkgdG8gZ2V0IHRo
ZSB0aW1pbmcgb2YgdGl0bGUgY2hhbmdlZCBzaW5jZQorICAgICAgICBXS1BhZ2VMb2FkZXJDbGll
bnRWMDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgaGFzIGJlZW4gcmVtb3ZlZCBpbgorICAgICAg
ICByMjM1Mzk4LiBDb2NvYSBhbmQgZ2xpYiBXZWJLaXQgQVBJIGV4aXN0LgorCisgICAgICAgICog
UGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VTZXRQYWdlU3RhdGVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxOS0wNy0yOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBZb3VUdWJlIHNlYXJjaCBmaWVsZCBzaG93cyBSVEwgdGV4dCBvdXRzaWRlIGl0cyBi
b3JkZXIgb24gaVBhZE9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNt
YWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA4MGJjMjIxNDAzNjYy
ODA5NjIzMjVmYjExNWRiNWZhNjMxY2Q2MGVhLi5jMmI4NjY2NTY4YTJjMmFhYTJkOGM5YzQ5Yjcz
MGU5ZDJjOWFjYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTI5NCw2ICsyOTQsNyBA
QCBzZXQoV2ViS2l0X1BVQkxJQ19GUkFNRVdPUktfSEVBREVSUwogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VQb2xpY3lDbGllbnQuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAor
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9s
aWN5LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBjY2MzMzBmMzAyNDc2MWZlNzM5NzQ0
NTYyMjMwNTI2Njc4Yjc5MDQwLi41NzFmNTRiMWRmZWM2ZWJiOTk5NjVmZDViNmZjZWRjNDc3Mzhh
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEzMiw2
ICsxMzIsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZUZpbmRDbGll
bnRCYXNlPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlRmluZE1hdGNo
ZXNDbGllbnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZUZpbmRNYXRjaGVz
Q2xpZW50VjA+IFZlcnNpb25zOwogfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRz
PFdLUGFnZVN0YXRlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VT
dGF0ZUNsaWVudFYwPiBWZXJzaW9uczsKK307CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBBUEkKIApA
QCAtMjI4OSw2ICsyMjkzLDE2NSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50
KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZQogICAgIHdlYlBh
Z2VQcm94eS0+c2V0TmF2aWdhdGlvbkNsaWVudChtYWtlVW5pcXVlUmVmPE5hdmlnYXRpb25DbGll
bnQ+KHdrQ2xpZW50KSk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFn
ZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBjbGFzcyBT
dGF0ZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1BhZ2VTdGF0ZUNsaWVudEJh
c2U+LCBwdWJsaWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgZXhwbGljaXQgU3RhdGVDbGllbnQoY29uc3QgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGll
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGluaXRpYWxpemUoY2xpZW50KTsKKyAgICAgICAg
fQorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgd2lsbENoYW5nZUlzTG9hZGluZygpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUlzTG9h
ZGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxs
Q2hhbmdlSXNMb2FkaW5nKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSXNMb2FkaW5nKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUlzTG9hZGluZyhtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBt
X2NsaWVudC53aWxsQ2hhbmdlVGl0bGUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoKSBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVRpdGxlKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZVRpdGxlKG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VB
Y3RpdmVVUkwoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VBY3RpdmVVUkwpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2lsbENoYW5nZUFjdGl2ZVVSTChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUFjdGl2ZVVS
TCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFu
Z2VBY3RpdmVVUkwobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZvaWQgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNv
bnRlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2ls
bENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VI
YXNPbmx5U2VjdXJlQ29udGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBtX2NsaWVudC5kaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudChtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlRXN0aW1hdGVk
UHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50
LndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MobV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFu
Z2VDYW5Hb0JhY2soKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LndpbGxDaGFuZ2VDYW5Hb0JhY2spCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNhbkdvQmFjayhtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VDYW5Hb0JhY2soKSBvdmVy
cmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUNhbkdv
QmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRD
aGFuZ2VDYW5Hb0JhY2sobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgd2lsbENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUNhbkdvRm9yd2FyZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlQ2FuR29G
b3J3YXJkKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZUNhbkdvRm9yd2FyZChtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hh
bmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3Mp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5n
ZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVz
cygpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hh
bmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxD
aGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbyht
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRD
aGFuZ2VDZXJ0aWZpY2F0ZUluZm8oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRpZENoYW5nZUNlcnRpZmljYXRlSW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8obV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENo
YW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VXZWJQ
cm9jZXNzSXNSZXNwb25zaXZlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoKSBvdmVycmlk
ZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVdlYlByb2Nl
c3NJc1Jlc3BvbnNpdmUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9j
bGllbnQuZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZShtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRTd2FwV2ViUHJvY2Vzc2VzKCkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRTd2FwV2Vi
UHJvY2Vzc2VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50
LmRpZFN3YXBXZWJQcm9jZXNzZXMobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
fQorICAgIH07CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIobWFr
ZVVuaXF1ZVJlZjxTdGF0ZUNsaWVudD4oY2xpZW50KSk7Cit9CisKIHZvaWQgV0tQYWdlUnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBzY3JpcHRS
ZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxsYmFjaykK
IHsKICAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwo
c2NyaXB0UmVmKS0+c3RyaW5nKCksIHRydWUsIFtjb250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVlLCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNl
cHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBmNTY3ZDQ2ODM3MzYwMzk5YTlkMGM1NGMzYTA0
YTU0MGQwNmYwNTlkLi5kYmQwNjI2YjM3YWZlYjk4NGI3ZmViZmRjZWEwMDVjMmY1YWVjNTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtNDMsNiArNDMsNyBAQAog
I2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VQb2xpY3lD
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlU3RhdGVDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tQYWdlVUlDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlVmlzaWJp
bGl0eVR5cGVzLmg+CiAKQEAgLTIyOSw2ICsyMzAsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VT
ZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGll
bgogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFn
ZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29z
KDEwLjE0LjQpKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZSogY2xpZW50
KTsKIAorV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCk7CisKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1h
aW5GcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc2NyaXB0LCB2b2lkKiBjb250ZXh0
LCBXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24gZnVuY3Rpb24pOwogI2lmZGVmIF9fQkxPQ0tT
X18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVN0YXRl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3NmI4OTNhYWRjYjU5MmQ1Nzc5YWY0N2MyMWRiNzQyNzVmYmMyOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VT
dGF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
U29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiB2b2lkICgqV0tQYWdlU3RhdGVDbGllbnRX
aWxsQ2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjaykoY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVN0YXRlQ2xpZW50QmFzZSB7CisgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tQYWdlU3Rh
dGVDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VTdGF0ZUNsaWVudFYwIHsKKyAg
ICBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlU3RhdGVD
bGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aWxsQ2hhbmdlSXNMb2FkaW5nOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlSXNMb2FkaW5nOwor
ICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2lsbENoYW5nZVRpdGxlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdl
VGl0bGU7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQWN0aXZlVVJMOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUhhc09ubHlT
ZWN1cmVDb250ZW50OworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRl
bnQ7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgV0tQ
YWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzczsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxD
aGFuZ2VDYW5Hb0JhY2s7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VDYW5Hb0JhY2s7CisgICAg
V0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkOworICAgIFdLUGFnZVN0YXRlQ2xpZW50
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hh
bmdlQ2FuR29Gb3J3YXJkOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0
c0luUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblBy
b2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZUNlcnRpZmljYXRlSW5mbzsKKyAgICBX
S1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVu
dFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxD
aGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hh
bmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlV2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFN3YXBXZWJQcm9jZXNzZXM7
CisKK30gV0tQYWdlU3RhdGVDbGllbnRWMDsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU0MTMzYzYy
OGQ2NzZlN2VlYzM1MGMzMThkZjJmODgzNjgzOTUyM2IuLmQ0Yjk5NjMyMDQyZWM4NGQwY2RjMjFh
ZjdjMmI3ZDMyNzM4YmNiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtNjM2LDYgKzYzNiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SWNvbkxvYWRp
bmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGllbnQ+JgogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlSWNvbkxvYWRpbmdDbGllbnQo
aGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UGFnZUxv
YWRTdGF0ZU9ic2VydmVyKFVuaXF1ZVJlZjxQYWdlTG9hZFN0YXRlOjpPYnNlcnZlcj4mJiBvYnNl
cnZlcikKK3sKKyAgICBpZiAobV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpCisgICAgICAgIHBhZ2VM
b2FkU3RhdGUoKS5yZW1vdmVPYnNlcnZlcigqbV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOworICAg
IG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyID0gb2JzZXJ2ZXIubW92ZVRvVW5pcXVlUHRyKCk7Cisg
ICAgcGFnZUxvYWRTdGF0ZSgpLmFkZE9ic2VydmVyKCptX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcik7
Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGaW5kQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxB
UEk6OkZpbmRDbGllbnQ+JiYgZmluZENsaWVudCkKIHsKICAgICBpZiAoIWZpbmRDbGllbnQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2NmODg4Y2IyYTE2MDAw
ODcyYjNhNzU0MjY1NTFiNjQzM2E4OTg1NS4uN2VkZjFlMTRiNzUyNmZlYjRhNzBlYThhOTgxZmU5
N2VkMGRlNGQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTUw
Miw2ICs1MDIsOCBAQCBwdWJsaWM6CiAgICAgQVBJOjpJY29uTG9hZGluZ0NsaWVudCYgaWNvbkxv
YWRpbmdDbGllbnQoKSB7IHJldHVybiAqbV9pY29uTG9hZGluZ0NsaWVudDsgfQogICAgIHZvaWQg
c2V0SWNvbkxvYWRpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkxvYWRpbmdDbGll
bnQ+JiYpOwogCisgICAgdm9pZCBzZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIoVW5pcXVlUmVmPFBh
Z2VMb2FkU3RhdGU6Ok9ic2VydmVyPiYmKTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKICAgICB2b2lkIHNldERyYXdpbmdBcmVhKHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiYmKTsKIApAQCAtMjEyNCw2ICsyMTI2LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QVBJOjpDb250ZXh0TWVudUNsaWVudD4gbV9jb250ZXh0TWVudUNsaWVudDsKICNlbmRp
ZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5q
ZWN0ZWRCdW5kbGVDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VMb2FkU3RhdGU6Ok9i
c2VydmVyPiBtX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJOYXZpZ2F0aW9uU3RhdGU+IG1fbmF2aWdhdGlvblN0YXRlOwogICAgIFN0cmluZyBtX2ZhaWxp
bmdQcm92aXNpb25hbExvYWRVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwYTJiMTkyZmY4NzVkNWYwNWFkMmJlYzE0YTlhZWMzNDI0
MzAyY2Q5Li5kYjQyMTk2ZTdlZGNjZjZjNjU5ZTAwMzVhYzA0YTc4N2E5Y2VmYjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNiw2
ICs0MTYsNyBAQAogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGOUE4
M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNzQ5RjY0NDIxNDY1NjFCMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRUFBMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwICovOyB9OwogCQkyNzQ5RjY0NTIxNDY1NjFFMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzRTBEMDEyNDA4RTg2MDAzNjBGM0YgLyogSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgKi87IH07CisJCTI3OTQ5ODA1MjJFODBCN0QwMDgy
RTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTBGNDI3
MTE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxpYXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsK
IAkJMjkyMzJERjQxOEIyOUQ2ODAwRDA1OTZGIC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFj
LmggKi87IH07CiAJCTI5M0VCRUFCMTYyN0Q5QzkwMDVGODlGMSAvKiBXS0RPTVRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5M0VCRUE5MTYyN0Q5
QzkwMDVGODlGMSAvKiBXS0RPTVRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjUwMiw2ICsyNTAzLDcgQEAKIAkJMjZGMTBCRTYxOTE4N0Uy
RTAwMUQwRTY4IC8qIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5o
OyBwYXRoID0gaW9zL1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhl
dGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9z
L1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI2RjlBODNBMThBMzQ2M0YwMEFFQjg4QSAvKiBXS1dlYlZpZXdQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLV2ViVmlld1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZVN0YXRlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBB
dXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOTIzMkRGMTE4QjI5RDExMDBEMDU5NkYgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5
OTIsNiArNzk5NCw3IEBACiAJCQkJQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVBy
aXZhdGUuaCAqLywKIAkJCQkyREQxMkEwNzFBODE3N0YzMDAyQzc0RTYgLyogV0tQYWdlUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHMuaCAqLywKIAkJCQkyREFCQTc3MTFBODE3QjE3MDBFRjBGMUEgLyog
V0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oICovLAorCQkJCTI3OTQ5ODAw
MjJFODAwQkYwMDgyRTY4QyAvKiBXS1BhZ2VTdGF0ZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUYx
MTg0MDBCNjIwMEU5QUU2OSAvKiBXS1BhZ2VVSUNsaWVudC5oICovLAogCQkJCTJEQUJBNzczMUE4
MTdFRTYwMEVGMEYxQSAvKiBXS1BsdWdpbkxvYWRQb2xpY3kuaCAqLywKIAkJCQlCQ0Q1OTdDRjEx
MkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCkBAIC0xMDE2OCw2ICsxMDE3
MSw3IEBACiAJCQkJQkNFMTdCN0UxMzgxRjExNzAwMTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJERDEyQTA4MUE4MTc3RjMwMDJDNzRFNiAvKiBXS1BhZ2VS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBQkE3NzIxQTgx
N0IxNzAwRUYwRjFBIC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTI3OTQ5ODA1MjJFODBCN0QwMDgyRTY4QyAvKiBXS1BhZ2VTdGF0
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjIxODQwMEI2MjAwRTlBRTY5IC8q
IFdLUGFnZVVJQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGRDM4QzE2QjBFODhDMDBC
MkYwRTggLyogV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTVF
RURFNjFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYwZjc1
ZjNhYmI3MTBhOGZlMTg2ZjUxNmZkY2M5OTc2NTM1MTEzMzEuLjNmMjdmZDZhOTkwYmZiOWQ2ZmU3
ZDE2NWIyZGJhMDM5YmE3MDk3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxOS0wNy0zMCAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2ViS2l0XSBBZGQgUGFn
ZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgQyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6V2ViS2l0QnJvd3NlcldpbmRvdyk6
CisgICAgICAgIChXZWJLaXRCcm93c2VyV2luZG93OjpkaWRDaGFuZ2VUaXRsZSk6CisgICAgICAg
IChXZWJLaXRCcm93c2VyV2luZG93OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUxvYWRTdGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6UGFnZUxvYWRUZXN0U3RhdGU6OlBhZ2VMb2FkVGVzdFN0YXRlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpkaWRDaGFuZ2VDYW5Hb0JhY2spOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
ZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENoYW5n
ZUNlcnRpZmljYXRlSW5mbyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VFc3Rp
bWF0ZWRQcm9ncmVzcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VIYXNPbmx5
U2VjdXJlQ29udGVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VJc0xvYWRp
bmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Q
cm9ncmVzcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VUaXRsZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZFN3YXBXZWJQcm9jZXNzZXMpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6d2lsbENoYW5nZUFjdGl2ZVVSTCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp3aWxsQ2hhbmdlQ2FuR29CYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFu
Z2VDYW5Hb0ZvcndhcmQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZUNlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3aWxsQ2hhbmdlRXN0aW1hdGVk
UHJvZ3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZUhhc09ubHlTZWN1
cmVDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VJc0xvYWRpbmcp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJv
Z3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZVRpdGxlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTktMDctMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlIGZvciA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAwMjE1PgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dl
YktpdEJyb3dzZXJXaW5kb3cuY3BwCmluZGV4IGJmZjNiMzM3YWQ4ZDU1MTQ3ZWNhY2I4NzI2MjE1
NWEwYTEyNzQ4ZjAuLjMzZWYzZGRlZTU2YTQ3YThhMzQ5OTQ2MGQxZTkxZjVhOTcxODBkYzYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKQEAgLTEz
Nyw3ICsxMzcsNiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIFdLUGFnZU5hdmlnYXRp
b25DbGllbnRWMCBuYXZpZ2F0aW9uQ2xpZW50ID0geyB9OwogICAgIG5hdmlnYXRpb25DbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9
IHRoaXM7Ci0gICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmlu
aXNoTmF2aWdhdGlvbjsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24g
PSBkaWRDb21taXROYXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OwogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHBhZ2UsICZuYXZpZ2F0aW9uQ2xp
ZW50LmJhc2UpOwpAQCAtMTQ4LDYgKzE0NywxMiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJL
aXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwog
ICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChwYWdlLCAmdWlDbGllbnQuYmFzZSk7CiAKKyAgICBXS1BhZ2VTdGF0ZUNs
aWVudFYwIHN0YXRlQ2xpZW50ID0geyB9OworICAgIHN0YXRlQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDA7CisgICAgc3RhdGVDbGllbnQuYmFzZS5jbGllbnRJbmZvID0gdGhpczsKKyAgICBzdGF0ZUNs
aWVudC5kaWRDaGFuZ2VUaXRsZSA9IGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVNldFBhZ2VT
dGF0ZUNsaWVudChwYWdlLCAmc3RhdGVDbGllbnQuYmFzZSk7CisKICAgICB1cGRhdGVQcm94eVNl
dHRpbmdzKCk7CiAgICAgcmVzZXRab29tKCk7CiB9CkBAIC0yOTMsMTEgKzI5OCwxMiBAQCBzdGF0
aWMgV2ViS2l0QnJvd3NlcldpbmRvdyYgdG9XZWJLaXRCcm93c2VyV2luZG93KGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCiAgICAgcmV0dXJuICpjb25zdF9jYXN0PFdlYktpdEJyb3dzZXJXaW5kb3cq
PihzdGF0aWNfY2FzdDxjb25zdCBXZWJLaXRCcm93c2VyV2luZG93Kj4oY2xpZW50SW5mbykpOwog
fQogCi12b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdl
UmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZENo
YW5nZVRpdGxlKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgYXV0byYgdGhpc1dpbmRv
dyA9IHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjbGllbnRJbmZvKTsKKyAgICBhdXRvIHBhZ2UgPSBX
S1ZpZXdHZXRQYWdlKHRoaXNXaW5kb3cubV92aWV3LmdldCgpKTsKICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gdGl0bGUgPSBhZG9wdFdLKFdLUGFnZUNvcHlUaXRsZShwYWdlKSk7CiAgICAg
c3RkOjp3c3RyaW5nIHRpdGxlU3RyaW5nID0gY3JlYXRlU3RyaW5nKHRpdGxlLmdldCgpKSArIEwi
IFtXZWJLaXRdIjsKLSAgICBhdXRvJiB0aGlzV2luZG93ID0gdG9XZWJLaXRCcm93c2VyV2luZG93
KGNsaWVudEluZm8pOwogICAgIFNldFdpbmRvd1RleHQodGhpc1dpbmRvdy5tX2hNYWluV25kLCB0
aXRsZVN0cmluZy5jX3N0cigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
d2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRC
cm93c2VyV2luZG93LmgKaW5kZXggYzUwMDRiN2UwYzk0ZmUwMjY4M2RhZmRiNGYwOWJjZjIzN2Q5
ZTk3YS4uZGRiZjNlOTI1YjdlODgwMWRmODViNmU1ZjhiYmU4OTdhNzQwNmVhMiAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29s
cy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oCkBAIC02NSw3ICs2NSw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIGNhblRydXN0U2VydmVyQ2VydGlmaWNhdGUoV0tQcm90ZWN0
aW9uU3BhY2VSZWYpOwogCi0gICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXS1Bh
Z2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXS1BhZ2VSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVy
ZXNSZWYsIGNvbnN0IHZvaWQgKik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCBm
Zjg0NDZmMGY1ODNkNGM0YjJjZTgwOGFhOGYxNGEyNzQ3MTIxNjFiLi4yMzk0YjUzMWFlMzZhM2Yz
YzliODI0YjE1ZmE1NjJkZDM1NjkwYTQ1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQK
QEAgLTIyNCw2ICsyMjQsNyBAQCBpZiAoRU5BQkxFX1dFQktJVCkKICAgICAgICAgVGVzdHMvV2Vi
S2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAKICAgICAgICAgVGVz
dHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9QYWdlTG9h
ZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcAorICAgICAgICBUZXN0cy9X
ZWJLaXQvUGFnZUxvYWRTdGF0ZS5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L1BhcmVudEZyYW1l
LmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwCiAgICAg
ICAgIFRlc3RzL1dlYktpdC9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDI1NmI0YjY5ODQ5MTg0NGQ2NGM3YTc0NzU5NjMxNDQwNGM2YzBhYWYuLjVk
NjE3ZmQ0YzZiZjFmYjZmN2ZkODg3MmQxYWZmMjA0OTY1ZDVlZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05OCw2ICs5OCw3IEBACiAJCTI2RjUyRUFGMTgyODhDMjMwMDIzRDQxMiAvKiBn
ZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY1MkVBRTE4
Mjg4QzA0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFj
Y3VyYWN5Lmh0bWwgKi87IH07CiAJCTI2RjUyRUIyMTgyODhGMjQwMDIzRDQxMiAvKiBnZW9sb2Nh
dGlvbldhdGNoUG9zaXRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRp
b25XYXRjaFBvc2l0aW9uLmh0bWwgKi87IH07CiAJCTI2RjUyRUIzMTgyODhGMjQwMDIzRDQxMiAv
KiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGNTJFQjExODI4
OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3ku
aHRtbCAqLzsgfTsKKwkJMjcyQTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8qIFBhZ2VMb2FkU3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjcyQTY5
MEYyMkYwMTJDNzAwMEZEQUJCIC8qIFBhZ2VMb2FkU3RhdGUuY3BwICovOyB9OwogCQkyOTBBOUJC
OTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEE5QkI4MTczNUY0MjMwMEQ3
MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgKi87IH07CiAJCTI5MEY0Mjc1MTcyQTIyMUMwMDkz
OUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTBGNDI3NDE3MkExRkRFMDA5MzlG
RjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgKi87IH07CiAJCTI5NzIzNEI3MTcz
QUZBQzcwMDk4MzYwMSAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTcyMzRCNTE3
M0FGQUM3MDA5ODM2MDEgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZV9CdW5kbGUuY3Bw
ICovOyB9OwpAQCAtMTA3Niw3ICsxMDc3LDYgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJ
LnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCi0JCQkJ
OUJBRTE3N0IyMkUyQkJGQjAwREYzMDk4IC8qIGNvY29hLXdyaXRlci1tYXJrdXAtd2l0aC1zeXN0
ZW0tZm9udHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTdGRjIxODEwMjFB
MDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFB
OUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJNTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3JlZW4u
cG5nIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTEzMSw2ICsxMTMxLDcgQEAKIAkJCQk4MzlB
QTM1RjIxQTI2QjAzMDA5ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQkxQTUwQUEyMDFBMkE1MUZDMDBGNEMzNDUgLyogY2xvc2UtZnJv
bS13aXRoaW4tY3JlYXRlLXBhZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QjI3
MEZFRTFEREMyQzBCMDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3QuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKKwkJCQk5QkFFMTc3QjIyRTJCQkZCMDBERjMwOTggLyogY29jb2Et
d3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUU1MDM2Rjc4MjExQkMyNTQwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNz
ZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1Njg3MURGOTE0QUUw
MEM5RUUzMyAvKiBjb250ZW50QmxvY2tlckNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xNTA1LDYgKzE1MDYsNyBAQAogCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2Vv
bG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBn
ZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldp
dGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdlb2xvY2F0
aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZCIC8qIERGQU1pbmltaXplci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBERkFNaW5pbWl6ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNzJBNjkwRjIyRjAxMkM3MDAwRkRBQkIgLyog
UGFnZUxvYWRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YWdlTG9hZFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjc4REU2NEIy
MkI4RDYxMTAwNEUwRTdBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzVGhyZWFkQ29waWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENsb3NlTmV3V2lu
ZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCODE3MzVGNDIzMDBENzFC
QkMgLyogT3Blbk5ld1dpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gT3Bl
bk5ld1dpbmRvdy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM2OSw3ICsy
MzcxLDcgQEAKIAkJRjQxQUI5OUUxRUY0NjkyQzAwODNGQTA4IC8qIGRpdi1hbmQtbGFyZ2UtaW1h
Z2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDJENjM0MzIyQTE3MjlGMDBEMkZCM0EgLyogQXV0b2NvcnJl
Y3Rpb25UZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dG9jb3JyZWN0aW9uVGVz
dHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkRBNTE1MUQ4Q0VGREIw
MDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7
IHBhdGggPSAiVGVzdHMvV2ViS2l0Q29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2Fk
Lmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCUY0MzRDQTE5MjJFNjVCQ0Ew
MDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tOyBwYXRoID0gU2Nyb2xsVG9SZXZlYWxTZWxl
Y3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MzRDQTE5MjJFNjVCQ0Ew
MDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1Njcm9sbFZpZXdUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJmaXhlZC1uYXYtYmFyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDQyODUxQjIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5TRm9udFBhbmVsVGVzdGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzEwMSw2ICszMTAzLDcgQEAKIAkJCQkyRUZGMDZDNDFEODg2NzcwMDAw
NEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovLAogCQkJCTJFRkYw
NkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICov
LAogCQkJCTgzOUFBMzVFMjFBMjZBQ0QwMDk4MERENiAvKiBjbGllbnQtc2lkZS1yZWRpcmVjdC5o
dG1sICovLAorCQkJCTlCQUUxNzdBMjJFMkJCNkIwMERGMzA5OCAvKiBjb2NvYS13cml0ZXItbWFy
a3VwLXdpdGgtc3lzdGVtLWZvbnRzLmh0bWwgKi8sCiAJCQkJRTUwMzZGNzcyMTFCQzIyODAwQkZE
QkUyIC8qIGNvbG9yLWRyb3AuaHRtbCAqLywKIAkJCQlGNEI4MjVENjFFRjREQkQ0MDA2RTQxN0Yg
LyogY29tcHJlc3NlZC1maWxlcy56aXAgKi8sCiAJCQkJRjQ2OUZCMjMxRjAxODAzNTAwNDAxNTM5
IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgKi8sCkBAIC0zMjYyLDcgKzMyNjUs
NiBAQAogCQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNs
ZWFudXAtMi5odG1sICovLAogCQkJCTUxMjBDODNCMUU2NzRFMzUwMDI1QjI1MCAvKiBXZWJzaXRl
RGF0YVN0b3JlQ3VzdG9tUGF0aHMuaHRtbCAqLywKIAkJCQkyRTEzMUMxNzFEODNBOTdFMDAxQkEz
NkMgLyogd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCi0JCQkJOUJB
RTE3N0EyMkUyQkI2QjAwREYzMDk4IC8qIGNvY29hLXdyaXRlci1tYXJrdXAtd2l0aC1zeXN0ZW0t
Zm9udHMuaHRtbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTM0NDAsNiArMzQ0Miw3IEBACiAJCQkJN0NDQjREQTcxQzgzQUU3
MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCiAJCQkJQkM5MDk3NzkxMjU1NzFBQjAwMDgz
NzU2IC8qIFBhZ2VMb2FkQmFzaWMuY3BwICovLAogCQkJCUJDMkQwMDQ4MTJBOUZERkEwMEU3MzJB
MyAvKiBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCAqLywK
KwkJCQkyNzJBNjkwRjIyRjAxMkM3MDAwRkRBQkIgLyogUGFnZUxvYWRTdGF0ZS5jcHAgKi8sCiAJ
CQkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lLmNwcCAqLywKIAkJCQk1
MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCAqLywKIAkJ
CQlDNTQyMzdFRTE2Qjg5NTU4MDBFNjM4RkMgLyogUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0g
Ki8sCkBAIC00NDk3LDYgKzQ1MDAsNyBAQAogCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDcxQTQxMUFFNjAwNDQ3
QzRDIC8qIFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDgxQTQx
MUFFNjAwNDQ3QzRDIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJh
bWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjcyQTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8qIFBh
Z2VMb2FkU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzcxQTQxMUE3RTAwNDQ3
QzRDIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RjA5MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYXJlbnRGcmFtZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3QzgzRTA1MTFEMEE2NDE4MDBGRUJDRjMgLyogUGFyc2VkQ29udGVu
dFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDczMSw5ICs0NzM1LDkgQEAKIAkJCQk5QkQ0
MjM5QTFFMDRCRDk4MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzlEOTIzMTIyRDdFMEVCMDA4RTky
NjYgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2NUNE
MTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RDRkZF
QzEyMkUyNkExNTAwREY0MjIzIC8qIE5vUGF1c2VXaGVuU3dpdGNoaW5nVGFicy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFNzc2NUNGMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGll
bnREZWZhdWx0Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQ0ZGRUMxMjJFMjZBMTUw
MERGNDIyMyAvKiBOb1BhdXNlV2hlblN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QUQzRkU4RTFENzYxMzEyMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdl
TG9hZFN0YXRlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2Fk
U3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MjIyMzdjZGQ4Njk4NDkyYjAyNmU3YWUzNmE1MTZkODgz
ZjdkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9QYWdlTG9hZFN0YXRlLmNwcApAQCAtMCwwICsxLDI5MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUg
IlRlc3QuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0MURvbmU7CisKK3N0cnVjdCBQYWdlTG9h
ZFRlc3RTdGF0ZSB7CisgICAgaW50IGRpZENoYW5nZUFjdGl2ZVVSTCB7IDAgfTsKKyAgICBpbnQg
ZGlkQ2hhbmdlQ2FuR29CYWNrIHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQg
eyAwIH07CisgICAgaW50IGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyB7IDAgfTsKKyAgICBpbnQg
ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IGRpZENoYW5nZUhhc09u
bHlTZWN1cmVDb250ZW50IHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VJc0xvYWRpbmcgeyAwIH07
CisgICAgaW50IGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07CisgICAg
aW50IGRpZENoYW5nZVRpdGxlIHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VXZWJQcm9jZXNzSXNS
ZXNwb25zaXZlIHsgMCB9OworICAgIGludCBkaWRTd2FwV2ViUHJvY2Vzc2VzIHsgMCB9OworICAg
IGludCB3aWxsQ2hhbmdlQWN0aXZlVVJMIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdlQ2FuR29C
YWNrIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkIHsgMCB9OworICAgIGlu
dCB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudCB7IDAgfTsKKyAgICBpbnQgd2lsbENoYW5nZUlzTG9hZGluZyB7IDAgfTsKKyAgICBpbnQg
d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IHdpbGxD
aGFuZ2VUaXRsZSB7IDAgfTsKKyAgICBpbnQgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNp
dmUgeyAwIH07Cit9OworCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVy
cHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VBY3RpdmVVUkwrKzsKK30KKworc3RhdGljIHZvaWQg
ZGlkQ2hhbmdlQ2FuR29CYWNrKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUGFnZUxv
YWRUZXN0U3RhdGUqIHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdlTG9hZFRlc3RTdGF0ZSo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0ZS0+ZGlkQ2hhbmdlQ2Fu
R29CYWNrKys7Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZChjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUNhbkdvRm9yd2FyZCsrOworfQorCitzdGF0aWMg
dm9pZCBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2Fk
VGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5k
aWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8rKzsKK30KKworc3RhdGljIHZvaWQgZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRl
c3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VFc3RpbWF0
ZWRQcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29u
dGVudChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBz
dGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZv
aWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250
ZW50Kys7Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUlzTG9hZGluZyhjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CisgICAgc3RhdGUtPmRpZENoYW5nZUlzTG9hZGluZysrOworfQorCitzdGF0aWMgdm9pZCBkaWRD
aGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgUGFnZUxvYWRUZXN0U3RhdGUqIHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdlTG9h
ZFRlc3RTdGF0ZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0ZS0+
ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VUaXRsZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVz
dFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZVRpdGxlKys7
Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWlu
dGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKys7Cit9
CisKK3N0YXRpYyB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBh
Z2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0
YXRlLT5kaWRTd2FwV2ViUHJvY2Vzc2VzKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VB
Y3RpdmVVUkwoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0
ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQWN0aXZlVVJMKys7
Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0
PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAg
IHN0YXRlLT53aWxsQ2hhbmdlQ2FuR29CYWNrKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFu
Z2VDYW5Hb0ZvcndhcmQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRl
c3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2FuR29G
b3J3YXJkKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSBy
ZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKys7Cit9CisK
K3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cisg
ICAgc3RhdGUtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9p
ZCB3aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VM
b2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRl
LT53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQrKzsKK30KKworc3RhdGljIHZvaWQgd2ls
bENoYW5nZUlzTG9hZGluZyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2Fk
VGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPndpbGxDaGFuZ2VJc0xv
YWRpbmcrKzsKK30KKworc3RhdGljIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJv
Z3Jlc3MoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSog
c3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3Rz
SW5Qcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVy
cHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlVGl0bGUrKzsKK30KKworc3RhdGljIHZvaWQgd2ls
bENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2Fk
VGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53
aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSsrOworfQorc3RhdGljIHZvaWQgZGlkRmlu
aXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdGVzdDFEb25lID0gdHJ1
ZTsKK30KKworVEVTVChXZWJLaXQsIFBhZ2VMb2FkU3RhdGUpCit7CisgICAgUGFnZUxvYWRUZXN0
U3RhdGUgc3RhdGU7CisKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQgeyB9OworCisgICAgbG9hZGVyQ2xpZW50LmJhc2Uu
dmVyc2lvbiA9IDA7CisgICAgbG9hZGVyQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9ICZzdGF0ZTsK
KyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRp
b247CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JmxvYWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLUGFnZVN0YXRlQ2xpZW50VjAgc3RhdGVDbGll
bnQgPSB7IH07CisgICAgc3RhdGVDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBzdGF0ZUNs
aWVudC5iYXNlLmNsaWVudEluZm8gPSAmc3RhdGU7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdl
QWN0aXZlVVJMID0gZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIHN0YXRlQ2xpZW50LmRpZENoYW5n
ZUNhbkdvQmFjayA9IGRpZENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFu
Z2VDYW5Hb0ZvcndhcmQgPSBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQ7CisgICAgc3RhdGVDbGllbnQu
ZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvID0gZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvOworICAg
IHN0YXRlQ2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzID0gZGlkQ2hhbmdlRXN0aW1h
dGVkUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRl
bnQgPSBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudDsKKyAgICBzdGF0ZUNsaWVudC5kaWRD
aGFuZ2VJc0xvYWRpbmcgPSBkaWRDaGFuZ2VJc0xvYWRpbmc7CisgICAgc3RhdGVDbGllbnQuZGlk
Q2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyA9IGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0
c0luUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlVGl0bGUgPSBkaWRDaGFuZ2VU
aXRsZTsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlID0g
ZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBzdGF0ZUNsaWVudC5kaWRTd2Fw
V2ViUHJvY2Vzc2VzID0gZGlkU3dhcFdlYlByb2Nlc3NlczsKKyAgICBzdGF0ZUNsaWVudC53aWxs
Q2hhbmdlQWN0aXZlVVJMID0gd2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBzdGF0ZUNsaWVudC53
aWxsQ2hhbmdlQ2FuR29CYWNrID0gd2lsbENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNsaWVu
dC53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkID0gd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsKKyAgICBz
dGF0ZUNsaWVudC53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvID0gd2lsbENoYW5nZUNlcnRpZmlj
YXRlSW5mbzsKKyAgICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgPSB3
aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2lsbENoYW5nZUhh
c09ubHlTZWN1cmVDb250ZW50ID0gd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAg
IHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VJc0xvYWRpbmcgPSB3aWxsQ2hhbmdlSXNMb2FkaW5nOwor
ICAgIHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzID0gd2ls
bENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2lsbENo
YW5nZVRpdGxlID0gd2lsbENoYW5nZVRpdGxlOworICAgIHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VX
ZWJQcm9jZXNzSXNSZXNwb25zaXZlID0gd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmU7
CisgICAgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmc3RhdGVDbGll
bnQuYmFzZSk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9h
ZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnRlc3QxRG9u
ZSk7CisKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQWN0aXZlVVJMLCAxKTsKKyAgICBF
WFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQ2FuR29CYWNrLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3Rh
dGUuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hh
bmdlQ2VydGlmaWNhdGVJbmZvLCAxKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdGUuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VIYXNPbmx5
U2VjdXJlQ29udGVudCwgMCk7CisgICAgRVhQRUNUX0dUKHN0YXRlLmRpZENoYW5nZUlzTG9hZGlu
ZywgMCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJv
Z3Jlc3MsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VUaXRsZSwgMCk7CisgICAg
RVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUsIDApOworICAg
IEVYUEVDVF9FUShzdGF0ZS5kaWRTd2FwV2ViUHJvY2Vzc2VzLCAxKTsKKyAgICBFWFBFQ1RfRVEo
c3RhdGUud2lsbENoYW5nZUFjdGl2ZVVSTCwgMSk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxD
aGFuZ2VDYW5Hb0JhY2ssIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29G
b3J3YXJkLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNlcnRpZmljYXRlSW5m
bywgMSk7CisgICAgRVhQRUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcywg
MCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCwg
MCk7CisgICAgRVhQRUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VJc0xvYWRpbmcsIDApOworICAgIEVY
UEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcywgMCk7Cisg
ICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VUaXRsZSwgMCk7CisgICAgRVhQRUNUX0VRKHN0
YXRlLndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlLCAwKTsKKworICAgIHRlc3QxRG9u
ZSA9IGZhbHNlOworICAgIHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZTIiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1
cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9FUShz
dGF0ZS5kaWRDaGFuZ2VDYW5Hb0JhY2ssIDEpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFu
Z2VDYW5Hb0ZvcndhcmQsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29C
YWNrLCAxKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMCk7
CisKKyAgICB0ZXN0MURvbmUgPSBmYWxzZTsKKyAgICBXS1BhZ2VHb0JhY2sod2ViVmlldy5wYWdl
KCkpOworICAgIFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9FUShzdGF0ZS5k
aWRDaGFuZ2VDYW5Hb0JhY2ssIDIpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5H
b0ZvcndhcmQsIDEpOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29CYWNrLCAy
KTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMSk7CisKKyAg
ICB0ZXN0MURvbmUgPSBmYWxzZTsKKyAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJzZXQtbG9uZy10aXRsZSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOwor
CisgICAgRVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZVRpdGxlLCAyKTsKKyAgICBFWFBFQ1RfRVEo
c3RhdGUud2lsbENoYW5nZVRpdGxlLCAyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375203</attachid>
            <date>2019-07-30 19:36:59 -0700</date>
            <delta_ts>2019-07-30 19:36:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199848-20190731113658.patch</filename>
            <type>text/plain</type>
            <size>46139</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY0Mjc2ODFjMTc4MjJhNGZk
Zjg3OTQ0MjE1MDFmNDYzMTg1ZmU4MjUuLmZkOTM2YWJiZTczMWQ5MDNlMWI5MWFkM2IxZWM5NmFl
MmNkN2NjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDctMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dlYktpdF0gQWRk
IFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIEMgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgIFRoZXJlIGlzIG5vIFdlYktpdCBDIEFQSSB0byBnZXQg
dGhlIHRpbWluZyBvZiB0aXRsZSBjaGFuZ2VkIHNpbmNlCisgICAgICAgIFdLUGFnZUxvYWRlckNs
aWVudFYwOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSBoYXMgYmVlbiByZW1vdmVkIGluCisgICAg
ICAgIHIyMzUzOTguIENvY29hIGFuZCBnbGliIFdlYktpdCBBUEkgZXhpc3QuCisKKyAgICAgICAg
KiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oOiBBZGRlZCBXS1BhZ2VTZXRQYWdlU3RhdGVDbGllbnQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVN0YXRlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldFBhZ2VMb2FkU3RhdGVPYnNlcnZlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE5LTA3LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IG5vbi10aHJlYWQgc2FmZSB1c2Ugb2YgV2Vha1B0ciB1bmRlciBzZW5kU2VjSXRlbVJl
cXVlc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggODBiYzIyMTQwMzY2MjgwOTYyMzI1
ZmIxMTVkYjVmYTYzMWNkNjBlYS4uYzJiODY2NjU2OGEyYzJhYWEyZDhjOWM0OWI3MzBlOWQyYzlh
Y2IzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yOTQsNiArMjk0LDcgQEAgc2V0KFdl
YktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UG9saWN5Q2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlU3RhdGVDbGllbnQuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luTG9hZFBvbGljeS5oCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggY2NjMzMwZjMwMjQ3NjFmZTczOTc0NDU2MjIzMDUy
NjY3OGI3OTA0MC4uNDdlYzcyNmIwY2U0NDA1N2YwMDJiNTQwYmVhNzY4ZTQzYjEwYThkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMzIsNiArMTMyLDEw
IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VGaW5kQ2xpZW50QmFzZT4g
ewogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50
QmFzZT4gewogICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudFYw
PiBWZXJzaW9uczsKIH07CisKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VT
dGF0ZUNsaWVudEJhc2U+IHsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlU3RhdGVDbGll
bnRWMD4gVmVyc2lvbnM7Cit9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgQVBJCiAKQEAgLTIyODks
NiArMjI5MywxNjggQEAgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VS
ZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWUKICAgICB3ZWJQYWdlUHJveHkt
PnNldE5hdmlnYXRpb25DbGllbnQobWFrZVVuaXF1ZVJlZjxOYXZpZ2F0aW9uQ2xpZW50Pih3a0Ns
aWVudCkpOwogfQogCit2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1BhZ2VSZWYgcGFn
ZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgY2xhc3MgU3RhdGVDbGll
bnQgZmluYWwgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tQYWdlU3RhdGVDbGllbnRCYXNlPiwgcHVi
bGljIFBhZ2VMb2FkU3RhdGU6Ok9ic2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxp
Y2l0IFN0YXRlQ2xpZW50KGNvbnN0IFdLUGFnZVN0YXRlQ2xpZW50QmFzZSogY2xpZW50KQorICAg
ICAgICB7CisgICAgICAgICAgICBpbml0aWFsaXplKGNsaWVudCk7CisgICAgICAgIH0KKyAgICBw
cml2YXRlOgorICAgICAgICB2b2lkIHdpbGxDaGFuZ2VJc0xvYWRpbmcoKSBvdmVycmlkZQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VJc0xvYWRpbmcpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUlz
TG9hZGluZyhtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAg
dm9pZCBkaWRDaGFuZ2VJc0xvYWRpbmcoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZUlzTG9hZGluZykKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VJc0xvYWRpbmcobV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZVRpdGxl
KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hh
bmdlVGl0bGUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQu
d2lsbENoYW5nZVRpdGxlKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIGRpZENoYW5nZVRpdGxlKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VUaXRsZShtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlQWN0aXZlVVJM
KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hh
bmdlQWN0aXZlVVJMKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xp
ZW50LndpbGxDaGFuZ2VBY3RpdmVVUkwobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlQWN0aXZlVVJMKCkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VBY3RpdmVVUkwpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlQWN0aXZl
VVJMKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lk
IHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQud2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VI
YXNPbmx5U2VjdXJlQ29udGVudChtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9
CisKKyAgICAgICAgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSGFzT25seVNl
Y3VyZUNvbnRlbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGll
bnQuZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQobV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5k
aWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlQ2FuR29C
YWNrKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC53aWxs
Q2hhbmdlQ2FuR29CYWNrKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1f
Y2xpZW50LndpbGxDaGFuZ2VDYW5Hb0JhY2sobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlQ2FuR29CYWNrKCkgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VDYW5Hb0JhY2spCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlQ2Fu
R29CYWNrKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
b2lkIHdpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VDYW5Hb0ZvcndhcmQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUNhbkdvRm9yd2FyZCht
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkaWRD
aGFuZ2VDYW5Hb0ZvcndhcmQoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LmRpZENoYW5nZUNhbkdvRm9yd2FyZCkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBtX2NsaWVudC5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQobV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgd2lsbENoYW5nZU5ldHdv
cmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LndpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VOZXR3b3Jr
UmVxdWVzdHNJblByb2dyZXNzKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoKSBvdmVy
cmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZU5ldHdv
cmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgbV9jbGllbnQuZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB3aWxsQ2hhbmdlQ2Vy
dGlmaWNhdGVJbmZvKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8obV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkQ2hhbmdlQ2Vy
dGlmaWNhdGVJbmZvKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdpbGxDaGFuZ2VXZWJQ
cm9jZXNzSXNSZXNwb25zaXZlKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC53aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC53aWxsQ2hhbmdlV2ViUHJvY2Vzc0lz
UmVzcG9uc2l2ZShtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCBkaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKCkgb3ZlcnJpZGUKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNw
b25zaXZlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fY2xpZW50LmRp
ZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUobV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
KyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGlkU3dhcFdlYlByb2Nlc3NlcygpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkU3dhcFdlYlByb2Nlc3Nl
cykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2NsaWVudC5kaWRTd2Fw
V2ViUHJvY2Vzc2VzKG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKyAgICB9
OworICAgIGlmIChjbGllbnQpCisgICAgICAgIHRvSW1wbChwYWdlKS0+c2V0UGFnZUxvYWRTdGF0
ZU9ic2VydmVyKHN0ZDo6bWFrZV91bmlxdWU8U3RhdGVDbGllbnQ+KGNsaWVudCkpOworICAgIGVs
c2UKKyAgICAgICAgdG9JbXBsKHBhZ2UpLT5zZXRQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIobnVsbHB0
cik7Cit9CisKIHZvaWQgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBw
YWdlUmVmLCBXS1N0cmluZ1JlZiBzY3JpcHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkph
dmFTY3JpcHRGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkph
dmFTY3JpcHRJbk1haW5GcmFtZSh0b0ltcGwoc2NyaXB0UmVmKS0+c3RyaW5nKCksIHRydWUsIFtj
b250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVl
LCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvciBlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBm
NTY3ZDQ2ODM3MzYwMzk5YTlkMGM1NGMzYTA0YTU0MGQwNmYwNTlkLi5kYmQwNjI2YjM3YWZlYjk4
NGI3ZmViZmRjZWEwMDVjMmY1YWVjNTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VMb2FkZXJD
bGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1BhZ2VQb2xpY3lDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQ
YWdlU3RhdGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlVUlDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmg+CiAKQEAgLTIyOSw2ICsyMzAs
OCBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbgogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFn
ZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50QmFz
ZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0
UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKDEwLjE0LjQpKTsKIFdLX0VYUE9SVCB2b2lkIFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50QmFzZSogY2xpZW50KTsKIAorV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNs
aWVudCk7CisKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2
b2lkIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgc2NyaXB0LCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24g
ZnVuY3Rpb24pOwogI2lmZGVmIF9fQkxPQ0tTX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVN0YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NmI4OTNhYWRjYjU5
MmQ1Nzc5YWY0N2MyMWRiNzQyNzVmYmMyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VTdGF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50
IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNl
Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRl
ZiB2b2lkICgqV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2spKGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VD
YWxsYmFjaykoY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLUGFn
ZVN0YXRlQ2xpZW50QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZv
aWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50SW5mbzsKK30gV0tQYWdlU3RhdGVDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VTdGF0ZUNsaWVudFYwIHsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBW
ZXJzaW9uIDAuCisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlSXNMb2FkaW5nOworICAgIFdLUGFn
ZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkQ2hhbmdlSXNMb2FkaW5nOworICAgIFdLUGFnZVN0YXRlQ2xpZW50V2lsbENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENoYW5nZVRpdGxl
OworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlVGl0bGU7CisgICAgV0tQYWdlU3RhdGVDbGllbnRX
aWxsQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hh
bmdlQWN0aXZlVVJMOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIFdL
UGFnZVN0YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50OworICAgIFdLUGFnZVN0YXRl
Q2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQ7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxs
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdl
RXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVDbGllbnREaWRDaGFuZ2VDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9n
cmVzczsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VDYW5Hb0JhY2s7CisgICAgV0tQYWdlU3Rh
dGVDbGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDaGFuZ2VDYW5Hb0JhY2s7CisgICAgV0tQYWdlU3RhdGVDbGllbnRXaWxsQ2hhbmdlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsQ2hhbmdlQ2FuR29Gb3J3
YXJkOworICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkOworICAgIFdLUGFnZVN0
YXRlQ2xpZW50V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3M7CisgICAgV0tQYWdlU3RhdGVD
bGllbnREaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOworICAgIFdLUGFnZVN0YXRlQ2xpZW50
V2lsbENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbENo
YW5nZUNlcnRpZmljYXRlSW5mbzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUNlcnRpZmljYXRl
SW5mbzsKKyAgICBXS1BhZ2VTdGF0ZUNsaWVudFdpbGxDaGFuZ2VDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlOwor
ICAgIFdLUGFnZVN0YXRlQ2xpZW50RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBXS1Bh
Z2VTdGF0ZUNsaWVudERpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZFN3YXBXZWJQcm9jZXNzZXM7CisKK30gV0tQYWdlU3RhdGVDbGllbnRWMDsKKwor
I2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGU0MTMzYzYyOGQ2NzZlN2VlYzM1MGMzMThkZjJmODgzNjgzOTUy
M2IuLjY2MDlhZTFlZDgxNDhlNDA3OWM5N2ZmZWIwNTkyZDc5MWZmNzFhZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjM2LDYgKzYzNiwxNSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0SWNvbkxvYWRpbmdDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6
SWNvbkxvYWRpbmdDbGllbnQ+JgogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2V0VXNlSWNvbkxvYWRpbmdDbGllbnQoaGFzQ2xpZW50KSwgbV9wYWdlSUQpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0UGFnZUxvYWRTdGF0ZU9ic2VydmVyKHN0ZDo6dW5pcXVlX3B0
cjxQYWdlTG9hZFN0YXRlOjpPYnNlcnZlcj4mJiBvYnNlcnZlcikKK3sKKyAgICBpZiAobV9wYWdl
TG9hZFN0YXRlT2JzZXJ2ZXIpCisgICAgICAgIHBhZ2VMb2FkU3RhdGUoKS5yZW1vdmVPYnNlcnZl
cigqbV9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOworICAgIG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVy
ID0gV1RGTW92ZShvYnNlcnZlcik7CisgICAgaWYgKG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyKQor
ICAgICAgICBwYWdlTG9hZFN0YXRlKCkuYWRkT2JzZXJ2ZXIoKm1fcGFnZUxvYWRTdGF0ZU9ic2Vy
dmVyKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZpbmRDbGllbnQoc3RkOjp1bmlxdWVf
cHRyPEFQSTo6RmluZENsaWVudD4mJiBmaW5kQ2xpZW50KQogewogICAgIGlmICghZmluZENsaWVu
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3Y2Y4ODhjYjJh
MTYwMDA4NzJiM2E3NTQyNjU1MWI2NDMzYTg5ODU1Li5kYzc4OTQxY2NjM2VmNjdjMGI3NTk4ZWI4
NzVjN2YyYTgxNmUwM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNTAyLDYgKzUwMiw4IEBAIHB1YmxpYzoKICAgICBBUEk6Okljb25Mb2FkaW5nQ2xpZW50JiBp
Y29uTG9hZGluZ0NsaWVudCgpIHsgcmV0dXJuICptX2ljb25Mb2FkaW5nQ2xpZW50OyB9CiAgICAg
dm9pZCBzZXRJY29uTG9hZGluZ0NsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJY29uTG9hZGlu
Z0NsaWVudD4mJik7CiAKKyAgICB2b2lkIHNldFBhZ2VMb2FkU3RhdGVPYnNlcnZlcihzdGQ6OnVu
aXF1ZV9wdHI8UGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXI+JiYpOworCiAgICAgdm9pZCBpbml0aWFs
aXplV2ViUGFnZSgpOwogICAgIHZvaWQgc2V0RHJhd2luZ0FyZWEoc3RkOjp1bmlxdWVfcHRyPERy
YXdpbmdBcmVhUHJveHk+JiYpOwogCkBAIC0yMTI0LDYgKzIxMjYsNyBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkNvbnRleHRNZW51Q2xpZW50PiBtX2NvbnRleHRNZW51Q2xp
ZW50OwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNs
aWVudD4gbV9pbmplY3RlZEJ1bmRsZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUxv
YWRTdGF0ZTo6T2JzZXJ2ZXI+IG1fcGFnZUxvYWRTdGF0ZU9ic2VydmVyOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYk5hdmlnYXRpb25TdGF0ZT4gbV9uYXZpZ2F0aW9uU3RhdGU7CiAgICAgU3Ry
aW5nIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBhMmIxOTJmZjg3NWQ1ZjA1YWQyYmVj
MTRhOWFlYzM0MjQzMDJjZDkuLmRiNDIxOTZlN2VkY2NmNmM2NTllMDAzNWFjMDRhNzg3YTljZWZi
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE2LDYgKzQxNiw3IEBACiAJCTI2RjlBODNCMThBMzQ2ODEwMEFFQjg4QSAvKiBXS1dl
YlZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNkY5QTgzQTE4QTM0NjNGMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI3NDlGNjQ0MjE0
NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QkVFQUExMjBBMEE1RjAwRkJB
MEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi87IH07CiAJCTI3NDlGNjQ1MjE0
NjU2MUUwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMEQwMTI0MDhFODYwMDM2
MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLzsgfTsKKwkJMjc5NDk4MDUy
MkU4MEI3RDAwODJFNjhDIC8qIFdLUGFnZVN0YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNzk0OTgwMDIyRTgwMEJGMDA4MkU2OEMgLyog
V0tQYWdlU3RhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxpYXJ5UHJvY2Vz
c1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVu
dC5oICovOyB9OwogCQkyOTIzMkRGNDE4QjI5RDY4MDBEMDU5NkYgLyogV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjkyMzJERjMxOEIyOUQ2ODAwRDA1OTZGIC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3RNYWMuaCAqLzsgfTsKIAkJMjkzRUJFQUIxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9N
VGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkz
RUJFQTkxNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTAyLDYgKzI1MDMsNyBAQAogCQkyNkYx
MEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N5bnRoZXRpY1RhcEdlc3R1cmVS
ZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBFNjgg
LyogV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIubW07
IHBhdGggPSBpb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGOUE4M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmll
d1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJpdmF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyNzk0OTgwMDIyRTgwMEJGMDA4MkU2OEMgLyogV0tQYWdlU3Rh
dGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlU3RhdGVD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkwRjQyNzExNzJBMEM3NDAw
OTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI5MjMyREYxMThCMjlEMTEwMEQwNTk2RiAvKiBXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMzJERjMxOEIyOUQ2ODAwRDA1OTZGIC8qIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzk5Miw2ICs3OTk0LDcgQEAKIAkJCQlCQzE3NzQ2NDExOEI5RkY0MDA3RDlFOUEg
LyogV0tQYWdlUHJpdmF0ZS5oICovLAogCQkJCTJERDEyQTA3MUE4MTc3RjMwMDJDNzRFNiAvKiBX
S1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oICovLAogCQkJCTJEQUJBNzcxMUE4MTdCMTcw
MEVGMEYxQSAvKiBXS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0ludGVybmFsLmggKi8sCisJ
CQkJMjc5NDk4MDAyMkU4MDBCRjAwODJFNjhDIC8qIFdLUGFnZVN0YXRlQ2xpZW50LmggKi8sCiAJ
CQkJMUFCOEExRjExODQwMEI2MjAwRTlBRTY5IC8qIFdLUGFnZVVJQ2xpZW50LmggKi8sCiAJCQkJ
MkRBQkE3NzMxQTgxN0VFNjAwRUYwRjFBIC8qIFdLUGx1Z2luTG9hZFBvbGljeS5oICovLAogCQkJ
CUJDRDU5N0NGMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCAqLywKQEAgLTEw
MTY4LDYgKzEwMTcxLDcgQEAKIAkJCQlCQ0UxN0I3RTEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdl
UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkREMTJBMDgxQTgxNzdGMzAwMkM3NEU2
IC8qIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQky
REFCQTc3MjFBODE3QjE3MDBFRjBGMUEgLyogV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHNJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjc5NDk4MDUyMkU4MEI3RDAwODJFNjhDIC8q
IFdLUGFnZVN0YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4QTFGMjE4NDAwQjYy
MDBFOUFFNjkgLyogV0tQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RUZEMzhD
MTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNUVFREU2MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggNWQ2Yjk3NTYxMWZjY2ZlMTE2ZDBmZjgyYjhjNDZmMWEzZDc5NDYzOC4uNTI0ZDYyNDRj
MjIxOWI0NTg2YjA4ZDI2NjQ4YjIzMWQxZGQ3ZjRhNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA3LTMwICBG
dWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXZWJL
aXRdIEFkZCBQYWdlTG9hZFN0YXRlOjpPYnNlcnZlciBDIEFQSQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3dpbi9XZWJLaXRC
cm93c2VyV2luZG93LmNwcDoKKyAgICAgICAgKFdlYktpdEJyb3dzZXJXaW5kb3c6OldlYktpdEJy
b3dzZXJXaW5kb3cpOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkQ2hhbmdlVGl0
bGUpOgorICAgICAgICAoV2ViS2l0QnJvd3NlcldpbmRvdzo6ZGlkRmluaXNoTmF2aWdhdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBhZ2VMb2FkVGVzdFN0YXRlOjpQYWdlTG9hZFRl
c3RTdGF0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRDaGFuZ2VBY3RpdmVVUkwpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkQ2hhbmdlQ2FuR29CYWNrKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmRpZENoYW5nZUNhbkdvRm9yd2FyZCk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlk
Q2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlk
Q2hhbmdlSXNMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZENoYW5nZU5ldHdv
cmtSZXF1ZXN0c0luUHJvZ3Jlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkQ2hhbmdl
VGl0bGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVz
cG9uc2l2ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRTd2FwV2ViUHJvY2Vzc2VzKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VBY3RpdmVVUkwpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6d2lsbENoYW5nZUNhbkdvQmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjp3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Ondp
bGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2lsbENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFu
Z2VIYXNPbmx5U2VjdXJlQ29udGVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3aWxsQ2hh
bmdlSXNMb2FkaW5nKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VOZXR3b3Jr
UmVxdWVzdHNJblByb2dyZXNzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxDaGFuZ2VU
aXRsZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVz
cG9uc2l2ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTA3LTMwICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBEdW1wUmVuZGVyVHJlZS5hcHA6
IEFkZCBDRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2lu
L1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCmluZGV4IGJmZjNiMzM3YWQ4ZDU1MTQ3ZWNhY2I4NzI2
MjE1NWEwYTEyNzQ4ZjAuLjMzZWYzZGRlZTU2YTQ3YThhMzQ5OTQ2MGQxZTkxZjVhOTcxODBkYzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNw
cAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKQEAg
LTEzNyw3ICsxMzcsNiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpXZWJLaXRCcm93c2VyV2luZG93
KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWluVwogICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBuYXZpZ2F0aW9uQ2xpZW50ID0geyB9OwogICAgIG5hdmlnYXRpb25DbGll
bnQuYmFzZS52ZXJzaW9uID0gMDsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmJhc2UuY2xpZW50SW5m
byA9IHRoaXM7Ci0gICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlk
RmluaXNoTmF2aWdhdGlvbjsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZENvbW1pdE5hdmlnYXRp
b24gPSBkaWRDb21taXROYXZpZ2F0aW9uOwogICAgIG5hdmlnYXRpb25DbGllbnQuZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOwogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHBhZ2UsICZuYXZpZ2F0aW9u
Q2xpZW50LmJhc2UpOwpAQCAtMTQ4LDYgKzE0NywxMiBAQCBXZWJLaXRCcm93c2VyV2luZG93OjpX
ZWJLaXRCcm93c2VyV2luZG93KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZiwgSFdORCBtYWlu
VwogICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOwogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChwYWdlLCAmdWlDbGllbnQuYmFzZSk7CiAKKyAgICBXS1BhZ2VTdGF0
ZUNsaWVudFYwIHN0YXRlQ2xpZW50ID0geyB9OworICAgIHN0YXRlQ2xpZW50LmJhc2UudmVyc2lv
biA9IDA7CisgICAgc3RhdGVDbGllbnQuYmFzZS5jbGllbnRJbmZvID0gdGhpczsKKyAgICBzdGF0
ZUNsaWVudC5kaWRDaGFuZ2VUaXRsZSA9IGRpZENoYW5nZVRpdGxlOworICAgIFdLUGFnZVNldFBh
Z2VTdGF0ZUNsaWVudChwYWdlLCAmc3RhdGVDbGllbnQuYmFzZSk7CisKICAgICB1cGRhdGVQcm94
eVNldHRpbmdzKCk7CiAgICAgcmVzZXRab29tKCk7CiB9CkBAIC0yOTMsMTEgKzI5OCwxMiBAQCBz
dGF0aWMgV2ViS2l0QnJvd3NlcldpbmRvdyYgdG9XZWJLaXRCcm93c2VyV2luZG93KGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCiAgICAgcmV0dXJuICpjb25zdF9jYXN0PFdlYktpdEJyb3dzZXJXaW5k
b3cqPihzdGF0aWNfY2FzdDxjb25zdCBXZWJLaXRCcm93c2VyV2luZG93Kj4oY2xpZW50SW5mbykp
OwogfQogCi12b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRpZEZpbmlzaE5hdmlnYXRpb24oV0tQ
YWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OmRp
ZENoYW5nZVRpdGxlKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CisgICAgYXV0byYgdGhpc1dp
bmRvdyA9IHRvV2ViS2l0QnJvd3NlcldpbmRvdyhjbGllbnRJbmZvKTsKKyAgICBhdXRvIHBhZ2Ug
PSBXS1ZpZXdHZXRQYWdlKHRoaXNXaW5kb3cubV92aWV3LmdldCgpKTsKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdGl0bGUgPSBhZG9wdFdLKFdLUGFnZUNvcHlUaXRsZShwYWdlKSk7CiAg
ICAgc3RkOjp3c3RyaW5nIHRpdGxlU3RyaW5nID0gY3JlYXRlU3RyaW5nKHRpdGxlLmdldCgpKSAr
IEwiIFtXZWJLaXRdIjsKLSAgICBhdXRvJiB0aGlzV2luZG93ID0gdG9XZWJLaXRCcm93c2VyV2lu
ZG93KGNsaWVudEluZm8pOwogICAgIFNldFdpbmRvd1RleHQodGhpc1dpbmRvdy5tX2hNYWluV25k
LCB0aXRsZVN0cmluZy5jX3N0cigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJL
aXRCcm93c2VyV2luZG93LmgKaW5kZXggYzUwMDRiN2UwYzk0ZmUwMjY4M2RhZmRiNGYwOWJjZjIz
N2Q5ZTk3YS4uZGRiZjNlOTI1YjdlODgwMWRmODViNmU1ZjhiYmU4OTdhNzQwNmVhMiAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuaAorKysgYi9U
b29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5oCkBAIC02NSw3ICs2NSw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNhblRydXN0U2VydmVyQ2VydGlmaWNhdGUoV0tQcm90
ZWN0aW9uU3BhY2VSZWYpOwogCi0gICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihX
S1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CisgICAg
c3RhdGljIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lk
IGRpZENvbW1pdE5hdmlnYXRpb24oV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZWYsIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXS1BhZ2VSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIGNvbnN0
IHZvaWQqKTsKICAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBX
S1BhZ2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVh
dHVyZXNSZWYsIGNvbnN0IHZvaWQgKik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmZjg0NDZmMGY1ODNkNGM0YjJjZTgwOGFhOGYxNGEyNzQ3MTIxNjFiLi4yMzk0YjUzMWFlMzZh
M2YzYzliODI0YjE1ZmE1NjJkZDM1NjkwYTQ1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKQEAgLTIyNCw2ICsyMjQsNyBAQCBpZiAoRU5BQkxFX1dFQktJVCkKICAgICAgICAgVGVzdHMv
V2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAKICAgICAgICAg
VGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwCiAgICAgICAgIFRlc3RzL1dlYktpdC9QYWdl
TG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcAorICAgICAgICBUZXN0
cy9XZWJLaXQvUGFnZUxvYWRTdGF0ZS5jcHAKICAgICAgICAgVGVzdHMvV2ViS2l0L1BhcmVudEZy
YW1lLmNwcAogICAgICAgICBUZXN0cy9XZWJLaXQvUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwCiAg
ICAgICAgIFRlc3RzL1dlYktpdC9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDI1NmI0YjY5ODQ5MTg0NGQ2NGM3YTc0NzU5NjMxNDQwNGM2YzBhYWYu
LjVkNjE3ZmQ0YzZiZjFmYjZmN2ZkODg3MmQxYWZmMjA0OTY1ZDVlZDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC05OCw2ICs5OCw3IEBACiAJCTI2RjUyRUFGMTgyODhDMjMwMDIzRDQxMiAv
KiBnZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY1MkVB
RTE4Mjg4QzA0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGln
aEFjY3VyYWN5Lmh0bWwgKi87IH07CiAJCTI2RjUyRUIyMTgyODhGMjQwMDIzRDQxMiAvKiBnZW9s
b2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9j
YXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi87IH07CiAJCTI2RjUyRUIzMTgyODhGMjQwMDIzRDQx
MiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGNTJFQjEx
ODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJh
Y3kuaHRtbCAqLzsgfTsKKwkJMjcyQTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8qIFBhZ2VMb2FkU3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjcy
QTY5MEYyMkYwMTJDNzAwMEZEQUJCIC8qIFBhZ2VMb2FkU3RhdGUuY3BwICovOyB9OwogCQkyOTBB
OUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEE5QkI4MTczNUY0MjMw
MEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgKi87IH07CiAJCTI5MEY0Mjc1MTcyQTIyMUMw
MDkzOUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTBGNDI3NDE3MkExRkRFMDA5
MzlGRjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgKi87IH07CiAJCTI5NzIzNEI3
MTczQUZBQzcwMDk4MzYwMSAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTcyMzRC
NTE3M0FGQUM3MDA5ODM2MDEgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZV9CdW5kbGUu
Y3BwICovOyB9OwpAQCAtMTA3Niw3ICsxMDc3LDYgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0
QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCi0J
CQkJOUJBRTE3N0IyMkUyQkJGQjAwREYzMDk4IC8qIGNvY29hLXdyaXRlci1tYXJrdXAtd2l0aC1z
eXN0ZW0tZm9udHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTdGRjIxODEw
MjFBMDAwNEEzOUEgLyogMTAweDEwMC1yZWQudGdhIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTFBOUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE4MDAyMTgxMDIyMTAwMDRBMzlBIC8qIDQwMHg0MDAtZ3Jl
ZW4ucG5nIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTEzMSw2ICsxMTMxLDcgQEAKIAkJCQk4
MzlBQTM1RjIxQTI2QjAzMDA5ODBERDYgLyogY2xpZW50LXNpZGUtcmVkaXJlY3QuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTUwQUEyMDFBMkE1MUZDMDBGNEMzNDUgLyogY2xvc2Ut
ZnJvbS13aXRoaW4tY3JlYXRlLXBhZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5
QjI3MEZFRTFEREMyQzBCMDAyRDUzRjMgLyogY2xvc2VkLXNoYWRvdy10cmVlLXRlc3QuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5QkFFMTc3QjIyRTJCQkZCMDBERjMwOTggLyogY29j
b2Etd3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCUU1MDM2Rjc4MjExQkMyNTQwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXBy
ZXNzZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1Njg3MURGOTE0
QUUwMEM5RUUzMyAvKiBjb250ZW50QmxvY2tlckNoZWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCkBAIC0xNTA1LDYgKzE1MDYsNyBAQAogCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIgLyog
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlv
bldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdlb2xv
Y2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZCIC8qIERGQU1pbmltaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBERkFNaW5pbWl6ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNzJBNjkwRjIyRjAxMkM3MDAwRkRBQkIg
LyogUGFnZUxvYWRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYWdlTG9hZFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjc4REU2
NEIyMkI4RDYxMTAwNEUwRTdBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzVGhyZWFkQ29waWVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENsb3NlTmV3
V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVn
YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCODE3MzVGNDIzMDBE
NzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
T3Blbk5ld1dpbmRvdy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM2OSw3
ICsyMzcxLDcgQEAKIAkJRjQxQUI5OUUxRUY0NjkyQzAwODNGQTA4IC8qIGRpdi1hbmQtbGFyZ2Ut
aW1hZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDJENjM0MzIyQTE3MjlGMDBEMkZCM0EgLyogQXV0b2Nv
cnJlY3Rpb25UZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dG9jb3JyZWN0aW9u
VGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkRBNTE1MUQ4Q0VG
REIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRt
bCI7IHBhdGggPSAiVGVzdHMvV2ViS2l0Q29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25s
b2FkLmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCUY0MzRDQTE5MjJFNjVC
Q0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tOyBwYXRoID0gU2Nyb2xsVG9SZXZlYWxT
ZWxlY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0MzRDQTE5MjJFNjVC
Q0EwMDVEREIyNiAvKiBTY3JvbGxUb1JldmVhbFNlbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1Njcm9sbFZpZXdUZXN0cy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1i
YXIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJmaXhlZC1uYXYtYmFyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDQyODUxQjIxNDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TRm9udFBhbmVsVGVzdGluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzEwMSw2ICszMTAzLDcgQEAKIAkJCQkyRUZGMDZDNDFEODg2Nzcw
MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovLAogCQkJCTJF
RkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
ICovLAogCQkJCTgzOUFBMzVFMjFBMjZBQ0QwMDk4MERENiAvKiBjbGllbnQtc2lkZS1yZWRpcmVj
dC5odG1sICovLAorCQkJCTlCQUUxNzdBMjJFMkJCNkIwMERGMzA5OCAvKiBjb2NvYS13cml0ZXIt
bWFya3VwLXdpdGgtc3lzdGVtLWZvbnRzLmh0bWwgKi8sCiAJCQkJRTUwMzZGNzcyMTFCQzIyODAw
QkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRtbCAqLywKIAkJCQlGNEI4MjVENjFFRjREQkQ0MDA2RTQx
N0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgKi8sCiAJCQkJRjQ2OUZCMjMxRjAxODAzNTAwNDAx
NTM5IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgKi8sCkBAIC0zMjYyLDcgKzMy
NjUsNiBAQAogCQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElE
QkNsZWFudXAtMi5odG1sICovLAogCQkJCTUxMjBDODNCMUU2NzRFMzUwMDI1QjI1MCAvKiBXZWJz
aXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMuaHRtbCAqLywKIAkJCQkyRTEzMUMxNzFEODNBOTdFMDAx
QkEzNkMgLyogd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCi0JCQkJ
OUJBRTE3N0EyMkUyQkI2QjAwREYzMDk4IC8qIGNvY29hLXdyaXRlci1tYXJrdXAtd2l0aC1zeXN0
ZW0tZm9udHMuaHRtbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0NDAsNiArMzQ0Miw3IEBACiAJCQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCiAJCQkJQkM5MDk3NzkxMjU1NzFBQjAw
MDgzNzU2IC8qIFBhZ2VMb2FkQmFzaWMuY3BwICovLAogCQkJCUJDMkQwMDQ4MTJBOUZERkEwMEU3
MzJBMyAvKiBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCAq
LywKKwkJCQkyNzJBNjkwRjIyRjAxMkM3MDAwRkRBQkIgLyogUGFnZUxvYWRTdGF0ZS5jcHAgKi8s
CiAJCQkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lLmNwcCAqLywKIAkJ
CQk1MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCAqLywK
IAkJCQlDNTQyMzdFRTE2Qjg5NTU4MDBFNjM4RkMgLyogUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMu
bW0gKi8sCkBAIC00NDk3LDYgKzQ1MDAsNyBAQAogCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkx
OCAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDcxQTQxMUFFNjAw
NDQ3QzRDIC8qIFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDgx
QTQxMUFFNjAwNDQ3QzRDIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjcyQTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8q
IFBhZ2VMb2FkU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzcxQTQxMUE3RTAw
NDQ3QzRDIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RjA5MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYXJlbnRGcmFtZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA1MTFEMEE2NDE4MDBGRUJDRjMgLyogUGFyc2VkQ29u
dGVudFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDczMSw5ICs0NzM1LDkgQEAKIAkJCQk5
QkQ0MjM5QTFFMDRCRDk4MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2Vk
UmFuZ2VXaXRoSW1hZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzlEOTIzMTIyRDdFMEVCMDA4
RTkyNjYgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2
NUNEMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RD
RkZFQzEyMkUyNkExNTAwREY0MjIzIC8qIE5vUGF1c2VXaGVuU3dpdGNoaW5nVGFicy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTJFNzc2NUNGMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25D
bGllbnREZWZhdWx0Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQ0ZGRUMxMjJFMjZB
MTUwMERGNDIyMyAvKiBOb1BhdXNlV2hlblN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QUQzRkU4RTFENzYxMzEyMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YWdlTG9hZFN0YXRlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VM
b2FkU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NTE0YzJjMGMxNDNjYzFjYzUzZjI0ZGEyNDc1NWJk
MmVkZDFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9QYWdlTG9hZFN0YXRlLmNwcApAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1
ZGUgIlRlc3QuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0MURvbmU7CisKK3N0cnVjdCBQYWdl
TG9hZFRlc3RTdGF0ZSB7CisgICAgaW50IGRpZENoYW5nZUFjdGl2ZVVSTCB7IDAgfTsKKyAgICBp
bnQgZGlkQ2hhbmdlQ2FuR29CYWNrIHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VDYW5Hb0Zvcndh
cmQgeyAwIH07CisgICAgaW50IGRpZENoYW5nZUNlcnRpZmljYXRlSW5mbyB7IDAgfTsKKyAgICBp
bnQgZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IGRpZENoYW5nZUhh
c09ubHlTZWN1cmVDb250ZW50IHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VJc0xvYWRpbmcgeyAw
IH07CisgICAgaW50IGRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07Cisg
ICAgaW50IGRpZENoYW5nZVRpdGxlIHsgMCB9OworICAgIGludCBkaWRDaGFuZ2VXZWJQcm9jZXNz
SXNSZXNwb25zaXZlIHsgMCB9OworICAgIGludCBkaWRTd2FwV2ViUHJvY2Vzc2VzIHsgMCB9Owor
ICAgIGludCB3aWxsQ2hhbmdlQWN0aXZlVVJMIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdlQ2Fu
R29CYWNrIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkIHsgMCB9OworICAg
IGludCB3aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvIHsgMCB9OworICAgIGludCB3aWxsQ2hhbmdl
RXN0aW1hdGVkUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IHdpbGxDaGFuZ2VIYXNPbmx5U2VjdXJl
Q29udGVudCB7IDAgfTsKKyAgICBpbnQgd2lsbENoYW5nZUlzTG9hZGluZyB7IDAgfTsKKyAgICBp
bnQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MgeyAwIH07CisgICAgaW50IHdp
bGxDaGFuZ2VUaXRsZSB7IDAgfTsKKyAgICBpbnQgd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3Bv
bnNpdmUgeyAwIH07Cit9OworCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWlu
dGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VBY3RpdmVVUkwrKzsKK30KKworc3RhdGljIHZv
aWQgZGlkQ2hhbmdlQ2FuR29CYWNrKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUGFn
ZUxvYWRUZXN0U3RhdGUqIHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdlTG9hZFRlc3RTdGF0
ZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0ZS0+ZGlkQ2hhbmdl
Q2FuR29CYWNrKys7Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUNhbkdvRm9yd2FyZChjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUNhbkdvRm9yd2FyZCsrOworfQorCitzdGF0
aWMgdm9pZCBkaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8oY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VM
b2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRl
LT5kaWRDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8rKzsKK30KKworc3RhdGljIHZvaWQgZGlkQ2hhbmdl
RXN0aW1hdGVkUHJvZ3Jlc3MoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9h
ZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VFc3Rp
bWF0ZWRQcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJl
Q29udGVudChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRl
KiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0
PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUhhc09ubHlTZWN1cmVD
b250ZW50Kys7Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZUlzTG9hZGluZyhjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJw
cmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7CisgICAgc3RhdGUtPmRpZENoYW5nZUlzTG9hZGluZysrOworfQorCitzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Cit7CisgICAgUGFnZUxvYWRUZXN0U3RhdGUqIHN0YXRlID0gcmVpbnRlcnByZXRfY2FzdDxQYWdl
TG9hZFRlc3RTdGF0ZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBzdGF0
ZS0+ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VUaXRsZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VMb2Fk
VGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPmRpZENoYW5nZVRpdGxl
Kys7Cit9CisKK3N0YXRpYyB2b2lkIGRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSBy
ZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOworICAgIHN0YXRlLT5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlKys7
Cit9CisKK3N0YXRpYyB2b2lkIGRpZFN3YXBXZWJQcm9jZXNzZXMoY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0
PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAg
IHN0YXRlLT5kaWRTd2FwV2ViUHJvY2Vzc2VzKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFu
Z2VBY3RpdmVVUkwoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RT
dGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3Rf
Y2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQWN0aXZlVVJM
Kys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDYW5Hb0JhY2soY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9j
YXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwor
ICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2FuR29CYWNrKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxD
aGFuZ2VDYW5Hb0ZvcndhcmQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9h
ZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2Fu
R29Gb3J3YXJkKys7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VDZXJ0aWZpY2F0ZUluZm8o
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUg
PSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvKys7Cit9
CisKK3N0YXRpYyB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcyhjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIFBhZ2VMb2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CisgICAgc3RhdGUtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcysrOworfQorCitzdGF0aWMg
dm9pZCB3aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQoY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBh
Z2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0
YXRlLT53aWxsQ2hhbmdlSGFzT25seVNlY3VyZUNvbnRlbnQrKzsKK30KKworc3RhdGljIHZvaWQg
d2lsbENoYW5nZUlzTG9hZGluZyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBhZ2VM
b2FkVGVzdFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGFnZUxvYWRUZXN0U3RhdGUq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgc3RhdGUtPndpbGxDaGFuZ2VJ
c0xvYWRpbmcrKzsKK30KKworc3RhdGljIHZvaWQgd2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0
ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlTmV0d29ya1JlcXVl
c3RzSW5Qcm9ncmVzcysrOworfQorCitzdGF0aWMgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWlu
dGVycHJldF9jYXN0PFBhZ2VMb2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOworICAgIHN0YXRlLT53aWxsQ2hhbmdlVGl0bGUrKzsKK30KKworc3RhdGljIHZvaWQg
d2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBQYWdlTG9hZFRlc3RTdGF0ZSogc3RhdGUgPSByZWludGVycHJldF9jYXN0PFBhZ2VM
b2FkVGVzdFN0YXRlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHN0YXRl
LT53aWxsQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSsrOworfQorc3RhdGljIHZvaWQgZGlk
RmluaXNoTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdGVzdDFEb25lID0g
dHJ1ZTsKK30KKworVEVTVChXZWJLaXQsIFBhZ2VMb2FkU3RhdGUpCit7CisgICAgUGFnZUxvYWRU
ZXN0U3RhdGUgc3RhdGU7CisKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5h
dmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQgeyB9OworCisgICAgbG9hZGVyQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDA7CisgICAgbG9hZGVyQ2xpZW50LmJhc2UuY2xpZW50SW5mbyA9ICZzdGF0
ZTsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmln
YXRpb247CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2Uo
KSwgJmxvYWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLUGFnZVN0YXRlQ2xpZW50VjAgc3RhdGVD
bGllbnQgPSB7IH07CisgICAgc3RhdGVDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBzdGF0
ZUNsaWVudC5iYXNlLmNsaWVudEluZm8gPSAmc3RhdGU7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hh
bmdlQWN0aXZlVVJMID0gZGlkQ2hhbmdlQWN0aXZlVVJMOworICAgIHN0YXRlQ2xpZW50LmRpZENo
YW5nZUNhbkdvQmFjayA9IGRpZENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNsaWVudC5kaWRD
aGFuZ2VDYW5Hb0ZvcndhcmQgPSBkaWRDaGFuZ2VDYW5Hb0ZvcndhcmQ7CisgICAgc3RhdGVDbGll
bnQuZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvID0gZGlkQ2hhbmdlQ2VydGlmaWNhdGVJbmZvOwor
ICAgIHN0YXRlQ2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzID0gZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlSGFzT25seVNlY3VyZUNv
bnRlbnQgPSBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudDsKKyAgICBzdGF0ZUNsaWVudC5k
aWRDaGFuZ2VJc0xvYWRpbmcgPSBkaWRDaGFuZ2VJc0xvYWRpbmc7CisgICAgc3RhdGVDbGllbnQu
ZGlkQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyA9IGRpZENoYW5nZU5ldHdvcmtSZXF1
ZXN0c0luUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQuZGlkQ2hhbmdlVGl0bGUgPSBkaWRDaGFu
Z2VUaXRsZTsKKyAgICBzdGF0ZUNsaWVudC5kaWRDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZl
ID0gZGlkQ2hhbmdlV2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZTsKKyAgICBzdGF0ZUNsaWVudC5kaWRT
d2FwV2ViUHJvY2Vzc2VzID0gZGlkU3dhcFdlYlByb2Nlc3NlczsKKyAgICBzdGF0ZUNsaWVudC53
aWxsQ2hhbmdlQWN0aXZlVVJMID0gd2lsbENoYW5nZUFjdGl2ZVVSTDsKKyAgICBzdGF0ZUNsaWVu
dC53aWxsQ2hhbmdlQ2FuR29CYWNrID0gd2lsbENoYW5nZUNhbkdvQmFjazsKKyAgICBzdGF0ZUNs
aWVudC53aWxsQ2hhbmdlQ2FuR29Gb3J3YXJkID0gd2lsbENoYW5nZUNhbkdvRm9yd2FyZDsKKyAg
ICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlQ2VydGlmaWNhdGVJbmZvID0gd2lsbENoYW5nZUNlcnRp
ZmljYXRlSW5mbzsKKyAgICBzdGF0ZUNsaWVudC53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3Mg
PSB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2lsbENoYW5n
ZUhhc09ubHlTZWN1cmVDb250ZW50ID0gd2lsbENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50Owor
ICAgIHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VJc0xvYWRpbmcgPSB3aWxsQ2hhbmdlSXNMb2FkaW5n
OworICAgIHN0YXRlQ2xpZW50LndpbGxDaGFuZ2VOZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzID0g
d2lsbENoYW5nZU5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3M7CisgICAgc3RhdGVDbGllbnQud2ls
bENoYW5nZVRpdGxlID0gd2lsbENoYW5nZVRpdGxlOworICAgIHN0YXRlQ2xpZW50LndpbGxDaGFu
Z2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlID0gd2lsbENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNp
dmU7CisgICAgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmc3RhdGVD
bGllbnQuYmFzZSk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CisgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnRlc3Qx
RG9uZSk7CisKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQWN0aXZlVVJMLCAxKTsKKyAg
ICBFWFBFQ1RfRVEoc3RhdGUuZGlkQ2hhbmdlQ2FuR29CYWNrLCAwKTsKKyAgICBFWFBFQ1RfRVEo
c3RhdGUuZGlkQ2hhbmdlQ2FuR29Gb3J3YXJkLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUuZGlk
Q2hhbmdlQ2VydGlmaWNhdGVJbmZvLCAxKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdGUuZGlkQ2hhbmdl
RXN0aW1hdGVkUHJvZ3Jlc3MsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VIYXNP
bmx5U2VjdXJlQ29udGVudCwgMCk7CisgICAgRVhQRUNUX0dUKHN0YXRlLmRpZENoYW5nZUlzTG9h
ZGluZywgMCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZU5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VUaXRsZSwgMCk7Cisg
ICAgRVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZVdlYlByb2Nlc3NJc1Jlc3BvbnNpdmUsIDApOwor
ICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRTd2FwV2ViUHJvY2Vzc2VzLCAxKTsKKyAgICBFWFBFQ1Rf
RVEoc3RhdGUud2lsbENoYW5nZUFjdGl2ZVVSTCwgMSk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndp
bGxDaGFuZ2VDYW5Hb0JhY2ssIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2Fu
R29Gb3J3YXJkLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNlcnRpZmljYXRl
SW5mbywgMSk7CisgICAgRVhQRUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVz
cywgMCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVu
dCwgMCk7CisgICAgRVhQRUNUX0dUKHN0YXRlLndpbGxDaGFuZ2VJc0xvYWRpbmcsIDApOworICAg
IEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlTmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcywgMCk7
CisgICAgRVhQRUNUX0VRKHN0YXRlLndpbGxDaGFuZ2VUaXRsZSwgMCk7CisgICAgRVhQRUNUX0VR
KHN0YXRlLndpbGxDaGFuZ2VXZWJQcm9jZXNzSXNSZXNwb25zaXZlLCAwKTsKKworICAgIHRlc3Qx
RG9uZSA9IGZhbHNlOworICAgIHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoInNpbXBsZTIiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9F
UShzdGF0ZS5kaWRDaGFuZ2VBY3RpdmVVUkwsIDIpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRD
aGFuZ2VDYW5Hb0JhY2ssIDEpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5Hb0Zv
cndhcmQsIDApOworICAgIEVYUEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29CYWNrLCAxKTsK
KyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMCk7CisKKyAgICB0
ZXN0MURvbmUgPSBmYWxzZTsKKyAgICBXS1BhZ2VHb0JhY2sod2ViVmlldy5wYWdlKCkpOworICAg
IFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VB
Y3RpdmVVUkwsIDMpOworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5Hb0JhY2ssIDIp
OworICAgIEVYUEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VDYW5Hb0ZvcndhcmQsIDEpOworICAgIEVY
UEVDVF9FUShzdGF0ZS53aWxsQ2hhbmdlQ2FuR29CYWNrLCAyKTsKKyAgICBFWFBFQ1RfRVEoc3Rh
dGUud2lsbENoYW5nZUNhbkdvRm9yd2FyZCwgMSk7CisKKyAgICB0ZXN0MURvbmUgPSBmYWxzZTsK
KyAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzZXQtbG9uZy10
aXRsZSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5n
ZXQoKSk7CisgICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOworCisgICAgRVhQRUNUX0VRKHN0YXRl
LmRpZENoYW5nZUFjdGl2ZVVSTCwgNCk7CisgICAgRVhQRUNUX0VRKHN0YXRlLmRpZENoYW5nZVRp
dGxlLCAyKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGUud2lsbENoYW5nZVRpdGxlLCAyKTsKKworICAg
IFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgbnVsbHB0cik7CisKKyAg
ICB0ZXN0MURvbmUgPSBmYWxzZTsKKyAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcu
cGFnZSgpLCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmdGVzdDFEb25lKTsKKworICAgIEVY
UEVDVF9FUShzdGF0ZS5kaWRDaGFuZ2VBY3RpdmVVUkwsIDQpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>