<?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>182771</bug_id>
          
          <creation_ts>2018-02-13 22:04:30 -0800</creation_ts>
          <short_desc>[WebAuthN] Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()</short_desc>
          <delta_ts>2018-02-16 12:43:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1398964</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-13 22:04:30 -0800</bug_when>
    <thetext>Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() per https://www.w3.org/TR/webauthn/#isUserVerifyingPlatformAuthenticatorAvailable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398965</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-13 22:04:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/36459988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398969</commentid>
    <comment_count>2</comment_count>
      <attachid>333769</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-13 22:19:00 -0800</bug_when>
    <thetext>Created attachment 333769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399093</commentid>
    <comment_count>3</comment_count>
      <attachid>333769</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-14 09:40:59 -0800</bug_when>
    <thetext>Comment on attachment 333769
Patch

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

This looks good, but I think you should try to implement on macOS as well. The SDKs exist! r- because of lack of macOS support.

&gt; Source/WebCore/ChangeLog:13
&gt; +        Besides, it changes DeferredPromise to DOMPromiseDeferred&lt;&gt; for all CredentialsManagement and

I would say, &quot;In addition, it changes ...&quot;

&gt; Source/WebKit/ChangeLog:9
&gt; +        This patch uitlizes LocalAuthentication Framework to determine if biometrics

utilizes

&gt; Source/WebKit/ChangeLog:14
&gt; +        Corresponding macOS implementations are marked as unimplemented as a result.

I don&apos;t think this is true. &lt;https://developer.apple.com/documentation/localauthentication?language=objc&gt; claims that it is present in iOS 8+ and macOS 10.10+

&gt; Source/WebKit/UIProcess/CredentialManagement/ios/WebCredentialsMessengerProxyIOS.mm:44
&gt; +        LOG_ERROR(&quot;Couldn&apos;t evaluate policy: %@&quot;, error);

This might be better as &quot;Couldn&apos;t evaluate authentication with biometrics policy: %@&quot;

&gt; Source/WebKit/UIProcess/CredentialManagement/mac/WebCredentialsMessengerProxyMac.mm:37
&gt; +    notImplemented();

I think this can be implemented, based on &lt;https://developer.apple.com/documentation/localauthentication?language=objc&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399540</commentid>
    <comment_count>4</comment_count>
      <attachid>333769</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-15 11:14:00 -0800</bug_when>
    <thetext>Comment on attachment 333769
Patch

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

Thanks Brent for reviewing the patch.

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        Besides, it changes DeferredPromise to DOMPromiseDeferred&lt;&gt; for all CredentialsManagement and
&gt; 
&gt; I would say, &quot;In addition, it changes ...&quot;

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        This patch uitlizes LocalAuthentication Framework to determine if biometrics
&gt; 
&gt; utilizes

Fixed.

&gt;&gt; Source/WebKit/ChangeLog:14
&gt;&gt; +        Corresponding macOS implementations are marked as unimplemented as a result.
&gt; 
&gt; I don&apos;t think this is true. &lt;https://developer.apple.com/documentation/localauthentication?language=objc&gt; claims that it is present in iOS 8+ and macOS 10.10+

Sure. I will try a TouchID equipped device and see what the real effect is.

&gt;&gt; Source/WebKit/UIProcess/CredentialManagement/ios/WebCredentialsMessengerProxyIOS.mm:44
&gt;&gt; +        LOG_ERROR(&quot;Couldn&apos;t evaluate policy: %@&quot;, error);
&gt; 
&gt; This might be better as &quot;Couldn&apos;t evaluate authentication with biometrics policy: %@&quot;

Fixed.

&gt;&gt; Source/WebKit/UIProcess/CredentialManagement/mac/WebCredentialsMessengerProxyMac.mm:37
&gt;&gt; +    notImplemented();
&gt; 
&gt; I think this can be implemented, based on &lt;https://developer.apple.com/documentation/localauthentication?language=objc&gt;.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399591</commentid>
    <comment_count>5</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-15 13:21:59 -0800</bug_when>
    <thetext>Confirmed LocalAuthentication does distinguish TouchID equipped macs and TouchIDless ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399628</commentid>
    <comment_count>6</comment_count>
      <attachid>333949</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-15 14:38:55 -0800</bug_when>
    <thetext>Created attachment 333949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399683</commentid>
    <comment_count>7</comment_count>
      <attachid>333970</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-15 16:52:29 -0800</bug_when>
    <thetext>Created attachment 333970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399972</commentid>
    <comment_count>8</comment_count>
      <attachid>333970</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-02-16 12:01:36 -0800</bug_when>
    <thetext>Comment on attachment 333970
Patch

Looks great! r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399974</commentid>
    <comment_count>9</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-02-16 12:17:49 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #8)
&gt; Comment on attachment 333970 [details]
&gt; Patch
&gt; 
&gt; Looks great! r=me.

Thanks Brent for r+ the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399983</commentid>
    <comment_count>10</comment_count>
      <attachid>333970</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-16 12:43:32 -0800</bug_when>
    <thetext>Comment on attachment 333970
Patch

Clearing flags on attachment: 333970

Committed r228572: &lt;https://trac.webkit.org/changeset/228572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399984</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-16 12:43:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333769</attachid>
            <date>2018-02-13 22:19:00 -0800</date>
            <delta_ts>2018-02-15 14:38:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182771-20180213221859.patch</filename>
            <type>text/plain</type>
            <size>59007</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI3NDg0MzY0MDQzYmQw
ZmRkNWJmMTUwNTJkNTFlNDQ0YTk0ZmQ2Yy4uMzZiNzUzNzRmZmVjMmZlYWIxMDI2M2Y4OTEzYWZl
ZTU2ZjcwNmQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAyLTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRp
Y2F0b3JBdmFpbGFibGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyNzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjQ1OTk4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUoKQorICAgICAgICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1dGhuLyNpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUgd2l0
aCBzb21lCisgICAgICAgIGxpbWl0YXRpb25zLgorCisgICAgICAgIEJlc2lkZXMsIGl0IGNoYW5n
ZXMgRGVmZXJyZWRQcm9taXNlIHRvIERPTVByb21pc2VEZWZlcnJlZDw+IGZvciBhbGwgQ3JlZGVu
dGlhbHNNYW5hZ2VtZW50IGFuZAorICAgICAgICBXZWJBdXRoTiBBUEkuCisKKyAgICAgICAgVGVz
dDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1pcy11c2VyLXZlcmlmeWluZy1wbGF0Zm9y
bS1hdXRoZW50aWNhdG9yLWF2YWlsYWJsZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRl
bnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVu
dGlhbHNDb250YWluZXI6OnN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzQ29u
dGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5l
cjo6cHJldmVudFNpbGVudEFjY2VzcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50
aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oOgorICAgICAgICAqIE1vZHVsZXMv
Y3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZENyZWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXIpOgorICAgICAgICBSZW1vdmUgYSByZWR1bmRhbnQgYXNzZXJ0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcik6
CisgICAgICAgIFJlbW92ZSBhIHJlZHVuZGFudCBhc3NlcnRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsc01lc3Nlbmdlcjo6YWRkUXVlcnlDb21wbGV0aW9uSGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDcmVkZW50aWFsc01lc3Nlbmdlcjo6dGFrZVF1ZXJ5Q29tcGxldGlvbkhh
bmRsZXIpOgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNNZXNzZW5nZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JNYW5hZ2VySW50ZXJu
YWw6OmluaXRUaW1lb3V0VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvck1h
bmFnZXI6OmNyZWF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yTWFu
YWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0aGVudGljYXRvck1hbmFnZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdG9yTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsOjppc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oOgorICAgICAgICAqIHRlc3Rpbmcv
TW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDcmVk
ZW50aWFsc01lc3Nlbmdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDcmVkZW50aWFsc01lc3Nlbmdlcjo6aXNV
c2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmg6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuaWRsOgorCiAyMDE4LTAyLTEzICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjI4NDM3LCByMjI4NDM5LCBhbmQgcjIyODQ0MC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTlmYTNi
ZDFmMmEwMTYwODIzMmZmYmVjZDlhMDcxYWE3NjdkNjFhZC4uNjBlNmNiN2JhM2U3MWY2NjI5ZDg1
NTYyZjg0NTk0ODEyNDhiMGUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxOC0wMi0x
MyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
Tl0gSW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1B
dXRoZW50aWNhdG9yQXZhaWxhYmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4Mjc3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk5ODg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCB1aXRsaXplcyBMb2NhbEF1dGhlbnRpY2F0aW9uIEZyYW1ld29yayB0byBkZXRlcm1pbmUg
aWYgYmlvbWV0cmljcworICAgICAgICBhcmUgZW5yb2xsZWQgb24gYSBkZXZpY2UsIHdoaWNoIGlz
IHRoZSB1c2VyIHZlcmlmeWluZyBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLgorICAgICAgICBUbyBk
byBzbywgaXQgbGlua3MgdGhlIGZyYW1ld29yayB0byBXZWJLaXQuCisKKyAgICAgICAgTm90ZWQs
IExvY2FsQXV0aGVudGljYXRpb24gRnJhbWV3b3JrIGlzIG9ubHkgYXZhaWxhYmxlIG9uIGlPUyBh
dCB0aGlzIG1vbWVudC4KKyAgICAgICAgQ29ycmVzcG9uZGluZyBtYWNPUyBpbXBsZW1lbnRhdGlv
bnMgYXJlIG1hcmtlZCBhcyB1bmltcGxlbWVudGVkIGFzIGEgcmVzdWx0LgorCisgICAgICAgICog
VUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Ojpp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Ojppc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSk6CisgICAgICAgICogVUlQcm9jZXNzL0Ny
ZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFn
ZW1lbnQvaW9zL1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlJT1MubW06IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRp
YWxzTWVzc2VuZ2VyUHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ3JlZGVudGlhbHNNZXNz
ZW5nZXJQcm94eTo6cGxhdGZvcm1Jc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9tYWMv
V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1hYy5tbTogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuaWRsLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5OjpwbGF0Zm9ybUlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFu
YWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0
b3JBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDcmVkZW50aWFsc01lc3Nlbmdlcjo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNz
ZW5nZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluOgorCiAyMDE4LTAyLTEzICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBSZXZpc2l0IHRo
ZSB3aG9sZSBhc3luYyBtb2RlbCBvZiB0YXNrIGRpc3BhdGNoaW5nLCB0aW1lb3V0IGFuZCBhYm9y
dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Ny
ZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcAppbmRleCBmYjdkNDQx
MmY5MjRlNmZiMjVkZmNjZGIwNjg0N2NhMDk0ODI4OTg3Li5hZDY0YjYxMzllNTdhNDMzN2Q5ZmYy
MThiM2JiNGVhNjY3NzJiMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Ny
ZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVy
LmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKICNpbmNsdWRl
ICJBYm9ydFNpZ25hbC5oIgotI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC02MCwxNiArNTksMTYg
QEAgYm9vbCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6ZG9lc0hhdmVTYW1lT3JpZ2luQXNJdHNBbmNl
c3RvcnMoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIENyZWRlbnRpYWxzQ29udGFpbmVy
OjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlKQordm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkK
IHsKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RS
L2NyZWRlbnRpYWwtbWFuYWdlbWVudC0xLyNhbGdvcml0aG0tcmVxdWVzdCBhcyBvZiA0IEF1Z3Vz
dCAyMDE3CiAgICAgLy8gd2l0aCBlbmhhbmNlbWVudCBmcm9tIDE0IE5vdmVtYmVyIDIwMTcgRWRp
dG9yJ3MgRHJhZnQuCiAgICAgaWYgKCFtX2RvY3VtZW50KSB7Ci0gICAgICAgIHByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKG9wdGlvbnMuc2lnbmFsICYmIG9wdGlvbnMuc2lnbmFsLT5hYm9ydGVk
KCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiQWJvcnRlZCBieSBBYm9ydFNpZ25hbC4iKSB9KTsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5
IEFib3J0U2lnbmFsLiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFN0ZXAg
MS0yLgpAQCAtNzksNyArNzgsNyBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUAogICAgIC8vIFN0
ZXAgNC02LiBTaG9ydGN1dCBhcyB3ZSBvbmx5IHN1cHBvcnQgUHVibGljS2V5Q3JlZGVudGlhbCB3
aGljaCBjYW4gb25seQogICAgIC8vIGJlIHJlcXVlc3RlZCBmcm9tIFtbZGlzY292ZXJGcm9tRXh0
ZXJuYWxTb3VyY2VdXS4KICAgICBpZiAoIW9wdGlvbnMucHVibGljS2V5KSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFs
KCJPbmx5IFB1YmxpY0tleUNyZWRlbnRpYWwgaXMgc3VwcG9ydGVkLiIpIH0pOworICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFs
KCJPbmx5IFB1YmxpY0tleUNyZWRlbnRpYWwgaXMgc3VwcG9ydGVkLiIpIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC04NywyMSArODYsMjEgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRh
aW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJl
ZFAKICAgICBBdXRoZW50aWNhdG9yTWFuYWdlcjo6c2luZ2xldG9uKCkuZGlzY292ZXJGcm9tRXh0
ZXJuYWxTb3VyY2UobV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5wdWJsaWNL
ZXkudmFsdWUoKSwgZG9lc0hhdmVTYW1lT3JpZ2luQXNJdHNBbmNlc3RvcnMoKSwgV1RGTW92ZShv
cHRpb25zLnNpZ25hbCksIFdURk1vdmUocHJvbWlzZSkpOwogfQogCi12b2lkIENyZWRlbnRpYWxz
Q29udGFpbmVyOjpzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRpYWwmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCit2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBC
YXNpY0NyZWRlbnRpYWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCiB7Ci0gICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwo
Ik5vdCBpbXBsZW1lbnRlZC4iKSB9KTsKKyAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQuIikgfSk7CiB9
CiAKLXZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lk
IENyZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZShDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
JiYgb3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQogewogICAgIC8vIFRoZSBm
b2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvY3JlZGVudGlhbC1tYW5h
Z2VtZW50LTEvI2FsZ29yaXRobS1jcmVhdGUgYXMgb2YgNCBBdWd1c3QgMjAxNwogICAgIC8vIHdp
dGggZW5oYW5jZW1lbnQgZnJvbSAxNCBOb3ZlbWJlciAyMDE3IEVkaXRvcidzIERyYWZ0LgogICAg
IGlmICghbV9kb2N1bWVudCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChv
cHRpb25zLnNpZ25hbCAmJiBvcHRpb25zLnNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0
ZWQgYnkgQWJvcnRTaWduYWwuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQWJvcnRlZCBieSBBYm9ydFNpZ25hbC4iKSB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBTdGVwIDEtMi4KQEAgLTEwOSw3ICsx
MDgsNyBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZShDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZgogCiAgICAgLy8gU3RlcCAzLTcuIFNob3J0
Y3V0IGFzIHdlIG9ubHkgc3VwcG9ydCBvbmUga2luZCBvZiBjcmVkZW50aWFscy4KICAgICBpZiAo
IW9wdGlvbnMucHVibGljS2V5KSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJPbmx5IFB1YmxpY0tleUNyZWRlbnRp
YWwgaXMgc3VwcG9ydGVkLiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJPbmx5IFB1YmxpY0tleUNyZWRlbnRp
YWwgaXMgc3VwcG9ydGVkLiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTcs
OSArMTE2LDkgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWYKICAgICBBdXRoZW50aWNhdG9yTWFu
YWdlcjo6c2luZ2xldG9uKCkuY3JlYXRlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG9w
dGlvbnMucHVibGljS2V5LnZhbHVlKCksIGRvZXNIYXZlU2FtZU9yaWdpbkFzSXRzQW5jZXN0b3Jz
KCksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAotdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpIGNvbnN0Cit2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2
ZW50U2lsZW50QWNjZXNzKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpIGNvbnN0
CiB7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBB
U0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRlZC4iKSB9KTsKKyAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50
ZWQuIikgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWlu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVu
dGlhbHNDb250YWluZXIuaAppbmRleCAwNzYwN2UzYzJmZGY1ZDhjMjk3M2Y0ZmI3OTQ2YmZmMzRk
Njk2YmJmLi4yZDViMzhiNTY3MTdmM2RlOGI5MDE0MWM3ODU2NjFmZWUwNmZlMTc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRp
YWxzQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFu
YWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oCkBAIC0yOCwxMyArMjgsMTIgQEAKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdlci5oIgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBCYXNpY0NyZWRlbnRpYWw7Ci1jbGFzcyBEZWZl
cnJlZFByb21pc2U7CiBjbGFzcyBEb2N1bWVudDsKIAogc3RydWN0IENyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnM7CkBAIC00NCwxMyArNDMsMTMgQEAgY2xhc3MgQ3JlZGVudGlhbHNDb250YWluZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDcmVkZW50aWFsc0NvbnRhaW5lcj4gewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8Q3JlZGVudGlhbHNDb250YWluZXI+IGNyZWF0ZShXZWFrUHRyPERvY3VtZW50
PiYmIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENyZWRlbnRpYWxzQ29udGFpbmVy
KFdURk1vdmUoZG9jdW1lbnQpKSk7IH0KIAotICAgIHZvaWQgZ2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2b2lkIGdldChDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMmJiwgQ3JlZGVudGlhbFByb21pc2UmJik7CiAKLSAgICB2b2lkIHN0
b3JlKGNvbnN0IEJhc2ljQ3JlZGVudGlhbCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAg
IHZvaWQgc3RvcmUoY29uc3QgQmFzaWNDcmVkZW50aWFsJiwgQ3JlZGVudGlhbFByb21pc2UmJik7
CiAKLSAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBpc0NyZWF0ZShDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zJiYsIENyZWRlbnRpYWxQcm9taXNlJiYpOwogCi0gICAgdm9pZCBwcmV2ZW50U2lsZW50
QWNjZXNzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OworICAgIHZvaWQgcHJldmVudFNp
bGVudEFjY2VzcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgQ3JlZGVudGlhbHNDb250YWluZXIoV2Vha1B0cjxEb2N1bWVudD4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRp
YWxzTWVzc2VuZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCmluZGV4IGQ3NmVkMzY1Y2M4NDE5Zjc5OTc5
YThiMjZlZjJiNDg2MzRkOTVjN2UuLmI1NjBjNjE2NDU2YTM4YzRmMWNjYWQ3OWRjYjYxNmVmMjRm
MGRhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFn
ZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCkBAIC02OCw3
ICs2OCw2IEBAIHVpbnQ2NF90IENyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRDcmVhdGlvbkNvbXBs
ZXRpb25IYW5kbGVyKENyZWF0aW9uQ29tcGxldGlvbkhhCiAgICAgbWVzc2FnZUlkID0gbWVzc2Fn
ZUlkIHwgQ2FsbEJhY2tDbGFzc2lmaWVyOjpDcmVhdGlvbiA8PCBjYWxsQmFja0NsYXNzaWZpZXJP
ZmZzZXQ7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3BlbmRpbmdDcmVhdGlvbkNvbXBsZXRpb25I
YW5kbGVycy5hZGQobWVzc2FnZUlkLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICBBU1NFUlRfVU5V
U0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwotICAgIEFTU0VSVChhZGRSZXN1
bHQpOwogICAgIHJldHVybiBtZXNzYWdlSWQ7CiB9CiAKQEAgLTg2LDcgKzg1LDYgQEAgdWludDY0
X3QgQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcihSZXF1
ZXN0Q29tcGxldGlvbkhhbmQKICAgICBtZXNzYWdlSWQgPSBtZXNzYWdlSWQgfCBDYWxsQmFja0Ns
YXNzaWZpZXI6OlJlcXVlc3QgPDwgY2FsbEJhY2tDbGFzc2lmaWVyT2Zmc2V0OwogICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9wZW5kaW5nUmVxdWVzdENvbXBsZXRpb25IYW5kbGVycy5hZGQobWVzc2Fn
ZUlkLCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRk
UmVzdWx0LmlzTmV3RW50cnkpOwotICAgIEFTU0VSVChhZGRSZXN1bHQpOwogICAgIHJldHVybiBt
ZXNzYWdlSWQ7CiB9CiAKQEAgLTk1LDYgKzkzLDIzIEBAIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciBDcmVkZW50aWFsc01lc3Nlbmdlcjo6dGFrZVJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcih1aW50
CiAgICAgcmV0dXJuIG1fcGVuZGluZ1JlcXVlc3RDb21wbGV0aW9uSGFuZGxlcnMudGFrZShtZXNz
YWdlSWQpOwogfQogCit1aW50NjRfdCBDcmVkZW50aWFsc01lc3Nlbmdlcjo6YWRkUXVlcnlDb21w
bGV0aW9uSGFuZGxlcihRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICB1
c2luZyBuYW1lc3BhY2UgQ3JlZGVudGlhbHNNZXNzZW5nZXJJbnRlcm5hbDsKKworICAgIHVpbnQ2
NF90IG1lc3NhZ2VJZCA9IG1fYWNjdW11bGF0ZWRNZXNzYWdlSWQrKzsKKyAgICBBU1NFUlQobWVz
c2FnZUlkIDwgbWF4TWVzc2FnZUlkKTsKKyAgICBtZXNzYWdlSWQgPSBtZXNzYWdlSWQgfCBDYWxs
QmFja0NsYXNzaWZpZXI6OlF1ZXJ5IDw8IGNhbGxCYWNrQ2xhc3NpZmllck9mZnNldDsKKyAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fcGVuZGluZ1F1ZXJ5Q29tcGxldGlvbkhhbmRsZXJzLmFkZChtZXNz
YWdlSWQsIFdURk1vdmUoaGFuZGxlcikpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBh
ZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgcmV0dXJuIG1lc3NhZ2VJZDsKK30KKworUXVlcnlD
b21wbGV0aW9uSGFuZGxlciBDcmVkZW50aWFsc01lc3Nlbmdlcjo6dGFrZVF1ZXJ5Q29tcGxldGlv
bkhhbmRsZXIodWludDY0X3QgbWVzc2FnZUlkKQoreworICAgIHJldHVybiBtX3BlbmRpbmdRdWVy
eUNvbXBsZXRpb25IYW5kbGVycy50YWtlKG1lc3NhZ2VJZCk7Cit9CisKIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gZ2V0SWRGcm9tQXR0ZXN0YXRpb25PYmplY3QoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBh
dHRlc3RhdGlvbk9iamVjdCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgQ3JlZGVudGlhbHNNZXNz
ZW5nZXJJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAppbmRleCA5
MjdiNjdhOWM2YTg3MDM0ZmIwY2YwZmU0ZjQ4YTdjNzE5ZDk1YTIyLi45Y2I2NzA2OTI4YzZjYjgz
NjFlMjNlOWYzMWJjZDVmYzZmNDkxNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nl
bmdlci5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVjdCBBc3NlcnRpb25SZXR1cm5CdW5kbGUgewog
CiB1c2luZyBDcmVhdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25PcjxDcmVhdGlvblJldHVybkJ1bmRsZT4mJik+OwogdXNpbmcgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxBc3Nl
cnRpb25SZXR1cm5CdW5kbGU+JiYpPjsKK3VzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsKIAogY2xhc3MgQ3JlZGVudGlhbHNNZXNzZW5n
ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNzUsMTEgKzc2LDEzIEBAIHB1
YmxpYzoKICAgICAvLyBzZW5kZXIKICAgICB2aXJ0dWFsIHZvaWQgbWFrZUNyZWRlbnRpYWwoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zJiwgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKIAogICAgIC8v
IHJlY2VpdmVyCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleGNlcHRpb25SZXBseSh1aW50NjRf
dCBtZXNzYWdlSWQsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgbWFr
ZUNyZWRlbnRpYWxSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNzZXJ0aW9uUmVwbHkodWludDY0X3QgbWVz
c2FnZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGNyZWRlbnRpYWxJZCwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBhdXRoZW50aWNhdG9yRGF0YSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzaWdu
YXR1cmUsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdXNlckhhbmRsZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBs
eSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wpID0gMDsKIAogICAgIGF1dG8mIHdlYWtQdHJGYWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQogCkBAIC05MCw2ICs5Myw4IEBA
IHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBDcmVhdGlvbkNvbXBsZXRpb25IYW5kbGVy
IHRha2VDcmVhdGlvbkNvbXBsZXRpb25IYW5kbGVyKHVpbnQ2NF90KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB1aW50NjRfdCBhZGRSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIoUmVxdWVzdENvbXBsZXRp
b25IYW5kbGVyJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciB0YWtlUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKHVpbnQ2NF90KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB1aW50NjRfdCBhZGRRdWVyeUNvbXBsZXRpb25IYW5kbGVyKFF1ZXJ5Q29tcGxldGlvbkhh
bmRsZXImJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUXVlcnlDb21wbGV0aW9uSGFuZGxlciB0YWtl
UXVlcnlDb21wbGV0aW9uSGFuZGxlcih1aW50NjRfdCk7CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0
ckZhY3Rvcnk8Q3JlZGVudGlhbHNNZXNzZW5nZXI+IG1fd2Vha0ZhY3Rvcnk7CkBAIC0xMDMsNiAr
MTA4LDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2FjY3VtdWxhdGVkTWVzc2FnZUlkIHsg
MSB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIENyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXI+IG1f
cGVuZGluZ0NyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXJzOwogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcj4gbV9wZW5kaW5nUmVxdWVzdENvbXBsZXRpb25IYW5k
bGVyczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBRdWVyeUNvbXBsZXRpb25IYW5kbGVyPiBtX3Bl
bmRpbmdRdWVyeUNvbXBsZXRpb25IYW5kbGVyczsKIH07CiAKIC8vIEZJWE1FOiBXZSBzaG91bGRu
J3QgZXhwb3NlIHRoaXMgaW50byB0aGUgbWVzc2VuZ2VyLiBTaW5jZSB0aGUgcmVjZWl2ZXJzIGNh
biBvbmx5IGJlIHBhc3NlZCB3aXRoIGNvbnN0IHJlZmVyZW5jZXMsIHdlIGNvdWxkbid0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwCmluZGV4IGM3ZmIxNGZkZjEwMzYyZDhiMzMzMjYxMzFkZmIzZWFkN2E0NTdhM2Yu
LmUyMmM0OTM5NzQxNjg5NzUyYzdjNjAyY2M5MzViMGRiODczNGJmZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsc01lc3Nlbmdlci5oIgogI2luY2x1ZGUg
IkpTQmFzaWNDcmVkZW50aWFsLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5oIgpAQCAtODMsMTMgKzgyLDEzIEBAIHN0YXRpYyBWZWN0b3I8dWludDhf
dD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjb25zdCBBcnJheUJ1ZmZlciYgY2xpZW50RGF0
YUpzCiB9CiAKIC8vIEZJWE1FKDE4MTk0Nyk6IFdlIHNob3VsZCBwcm9iYWJseSB0cmltIHRpbWVP
dXRJbk1zIHRvIHNvbWUgbWF4IGFsbG93YWJsZSBudW1iZXIuCi1zdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFRpbWVyPiBpbml0VGltZW91dFRpbWVyKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgbG9uZz4g
dGltZU91dEluTXMsIGNvbnN0IFJlZjxEZWZlcnJlZFByb21pc2U+JiBwcm9taXNlKQorc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gaW5pdFRpbWVvdXRUaW1lcihzdGQ6Om9wdGlvbmFsPHVu
c2lnbmVkIGxvbmc+IHRpbWVPdXRJbk1zLCBjb25zdCBDcmVkZW50aWFsUHJvbWlzZSYgcHJvbWlz
ZSkKIHsKICAgICBpZiAoIXRpbWVPdXRJbk1zKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gdGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPihbcHJvbWlzZSA9IHByb21p
c2UuY29weVJlZigpXSAoKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBO
b3RBbGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIHRpbWVkIG91dC4iKSB9KTsK
KyAgICBhdXRvIHRpbWVyID0gc3RkOjptYWtlX3VuaXF1ZTxUaW1lcj4oW3Byb21pc2UgPSBwcm9t
aXNlXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk9wZXJhdGlvbiB0aW1lZCBvdXQuIikgfSk7CiAg
ICAgfSk7CiAgICAgdGltZXItPnN0YXJ0T25lU2hvdChTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KCp0aW1lT3V0SW5NcykpOwogICAgIHJldHVybiB0aW1lcjsKQEAgLTExOSw3ICsxMTgsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZXRNZXNzZW5nZXIoQ3JlZGVudGlhbHNNZXNzZW5n
ZXImIG1lc3NlbmdlcikKICAgICBtX21lc3NlbmdlciA9IG1ha2VXZWFrUHRyKG1lc3Nlbmdlcik7
CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9y
aWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zJiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzLCBSZWZQdHI8QWJvcnRT
aWduYWw+JiYgYWJvcnRTaWduYWwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkgY29u
c3QKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdp
biYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
JiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzLCBSZWZQdHI8QWJvcnRTaWdu
YWw+JiYgYWJvcnRTaWduYWwsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsK
ICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGljYXRvck1hbmFnZXJJbnRlcm5hbDsKIApAQCAt
MTI4LDcgKzEyNyw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBT
ZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAgICAgLy8gU3RlcCAxLCAz
LCAxNiBhcmUgaGFuZGxlZCBieSB0aGUgY2FsbGVyLgogICAgIC8vIFN0ZXAgMi4KICAgICBpZiAo
IXNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChFeGNl
cHRpb24geyBOb3RBbGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUg
ZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIikgfSk7CisgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFs
KCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2Vz
dG9ycy4iKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQwLDcgKzEzOSw3IEBA
IHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYg
Y2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAgICAgLy8gU3RlcCA2IGlzIHRoZXJlZm9yZSBza2lw
cGVkLiBBbHNvLCB3ZSBsYWNrIHRoZSBzdXBwb3J0IHRvIGRldGVybWluZSB3aGV0aGVyIGEgZG9t
YWluIGlzIGEgcmVnaXN0cmFibGUKICAgICAvLyBkb21haW4gc3VmZml4IG9mIGFub3RoZXIgZG9t
YWluLiBIZW5jZSByZXN0cmljdCB0aGUgY29tcGFyaXNvbiB0byBlcXVhbCBpbiBTdGVwIDcuCiAg
ICAgaWYgKCFvcHRpb25zLnJwLmlkLmlzRW1wdHkoKSAmJiBjYWxsZXJPcmlnaW4uaG9zdCgpICE9
IG9wdGlvbnMucnAuaWQpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFNl
Y3VyaXR5RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMg
bm90IGEgcmVnaXN0cmFibGUgZG9tYWluIHN1ZmZpeCBvZiB0aGUgcHJvdmlkZWQgUlAgSUQuIikg
fSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGEgcmVnaXN0cmFi
bGUgZG9tYWluIHN1ZmZpeCBvZiB0aGUgcHJvdmlkZWQgUlAgSUQuIikgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgaWYgKG9wdGlvbnMucnAuaWQuaXNFbXB0eSgpKQpAQCAtMTUwLDcg
KzE0OSw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0
eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAgICAgLy8gTW9zdCBvZiB0aGUgam9i
cyBhcmUgZG9uZSBieSBiaW5kaW5ncy4gSG93ZXZlciwgd2UgY2FuJ3Qga25vdyBpZiB0aGUgSlNW
YWx1ZSBvZiBvcHRpb25zLnB1YktleUNyZWRQYXJhbXMKICAgICAvLyBpcyBlbXB0eSBvciBub3Qu
IFJldHVybiBOb3RTdXBwb3J0ZWRFcnJvciBhcyBsb25nIGFzIGl0IGlzIGVtcHR5LgogICAgIGlm
IChvcHRpb25zLnB1YktleUNyZWRQYXJhbXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHByb21pc2Ut
PnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJObyBk
ZXNpcmVkIHByb3BlcnRpZXMgb2YgdGhlIHRvIGJlIGNyZWF0ZWQgY3JlZGVudGlhbCBhcmUgcHJv
dmlkZWQuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGRlc2lyZWQgcHJvcGVydGllcyBvZiB0aGUgdG8g
YmUgY3JlYXRlZCBjcmVkZW50aWFsIGFyZSBwcm92aWRlZC4iKSB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTYzLDcgKzE2Miw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6
OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAg
ICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJpZmljYXRpb25zIGFuZCBkaXJlY3Qg
YXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFnZS4KICAgICAvLyBGb3IgYmV0dGVy
IHBlcmZvcm1hbmNlLCBubyBmaWx0ZXJpbmcgaXMgZG9uZSBoZXJlIHJlZ2FyZGluZyB0byBvcHRp
b25zLmV4Y2x1ZGVDcmVkZW50aWFscy4KICAgICBpZiAoIW1fbWVzc2VuZ2VyKSAgewotICAgICAg
ICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IlVua25vd24gaW50ZXJuYWwgZXJyb3IuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGludGVybmFsIGVy
cm9yLiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNzEsMjIgKzE3MCwyMiBA
QCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IGNhbGxlck9yaWdpbiwgY29uc3QgUHVibAogICAgICAgICBpZiAoZGlkVGltZW91dFRpbWVyRmly
ZSh0aW1lb3V0VGltZXIuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
YWJvcnRTaWduYWwgJiYgYWJvcnRTaWduYWwtPmFib3J0ZWQoKSkgewotICAgICAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQWJvcnRl
ZCBieSBBYm9ydFNpZ25hbC4iKSB9KTsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEFib3J0RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQWJvcnRlZCBieSBBYm9ydFNpZ25hbC4i
KSB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0LmV4
Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5leGNlcHRpb24o
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGJ1bmRs
ZSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICAgICAgcHJvbWlzZS0+cmVzb2x2
ZTxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWNDcmVkZW50aWFsPj4+KFB1YmxpY0tleUNy
ZWRlbnRpYWw6OmNyZWF0ZShXVEZNb3ZlKGJ1bmRsZS5jcmVkZW50aWFsSWQpLCBBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpzb24pLCBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnVuZGxlLmF0dGVzdGF0aW9uT2JqZWN0KSkpKS5w
dHIoKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVh
dGUoV1RGTW92ZShidW5kbGUuY3JlZGVudGlhbElkKSwgQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmNyZWF0ZShXVEZNb3ZlKGNsaWVudERhdGFKc29uKSwgQXJyYXlCdWZmZXI6OmNy
ZWF0ZShXVEZNb3ZlKGJ1bmRsZS5hdHRlc3RhdGlvbk9iamVjdCkpKSkucHRyKCkpOwogICAgIH07
CiAgICAgLy8gQXN5bmMgb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCBhbmQgaGFuZGxlZCBpbiB0
aGUgbWVzc2VuZ2VyLgogICAgIG1fbWVzc2VuZ2VyLT5tYWtlQ3JlZGVudGlhbChjbGllbnREYXRh
SnNvbkhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIGNhbGxlck9yaWdpbiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zJiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzLCBSZWZQ
dHI8QWJvcnRTaWduYWw+JiYgYWJvcnRTaWduYWwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVy
bmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgYm9vbCBzYW1lT3JpZ2luV2l0
aEFuY2VzdG9ycywgUmVmUHRyPEFib3J0U2lnbmFsPiYmIGFib3J0U2lnbmFsLCBDcmVkZW50aWFs
UHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhlbnRp
Y2F0b3JNYW5hZ2VySW50ZXJuYWw7CiAKQEAgLTE5NSw3ICsxOTQsNyBAQCB2b2lkIEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9y
aWdpbiYgY2FsbAogICAgIC8vIFN0ZXAgMSwgMywgMTMgYXJlIGhhbmRsZWQgYnkgdGhlIGNhbGxl
ci4KICAgICAvLyBTdGVwIDIuCiAgICAgaWYgKCFzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycykgewot
ICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCBBU0NJ
SUxpdGVyYWwoIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBp
dHMgYW5jZXN0b3JzLiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBO
b3RBbGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQg
aXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIikgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTIwNyw3ICsyMDYsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpk
aXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2FsbAogICAg
IC8vIFN0ZXAgNiBpcyB0aGVyZWZvcmUgc2tpcHBlZC4gQWxzbywgd2UgbGFjayB0aGUgc3VwcG9y
dCB0byBkZXRlcm1pbmUgd2hldGhlciBhIGRvbWFpbiBpcyBhIHJlZ2lzdHJhYmxlCiAgICAgLy8g
ZG9tYWluIHN1ZmZpeCBvZiBhbm90aGVyIGRvbWFpbi4gSGVuY2UgcmVzdHJpY3QgdGhlIGNvbXBh
cmlzb24gdG8gZXF1YWwgaW4gU3RlcCA3LgogICAgIGlmICghb3B0aW9ucy5ycElkLmlzRW1wdHko
KSAmJiBjYWxsZXJPcmlnaW4uaG9zdCgpICE9IG9wdGlvbnMucnBJZCkgewotICAgICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUg
b3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4
IG9mIHRoZSBwcm92aWRlZCBSUCBJRC4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBk
b2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRl
ZCBSUCBJRC4iKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAob3B0aW9ucy5y
cElkLmlzRW1wdHkoKSkKQEAgLTIyMiw3ICsyMjEsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYgY2Fs
bAogICAgIC8vIEFsc28sIHJlc2lkZW50IGtleXMsIHVzZXIgdmVyaWZpY2F0aW9ucyBhbmQgZGly
ZWN0IGF0dGVzdGF0aW9uIGFyZSBlbmZvcmNlZCBhdCB0aGlzIHRhZ2UuCiAgICAgLy8gRm9yIGJl
dHRlciBwZXJmb3JtYW5jZSwgbm8gZmlsdGVyaW5nIGlzIGRvbmUgaGVyZSByZWdhcmRpbmcgdG8g
b3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLgogICAgIGlmICghbV9tZXNzZW5nZXIpICB7Ci0gICAg
ICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVua25vd24gaW50ZXJuYWwg
ZXJyb3IuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIzMCwyMSArMjI5LDM5
IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsCiAgICAgICAgIGlmIChkaWRUaW1lb3V0VGltZXJG
aXJlKHRpbWVvdXRUaW1lci5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlm
IChhYm9ydFNpZ25hbCAmJiBhYm9ydFNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICBw
cm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9y
dGVkIGJ5IEFib3J0U2lnbmFsLiIpIH0pOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFs
LiIpIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQu
ZXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LmV4Y2VwdGlv
bigpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gYnVu
ZGxlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBwcm9taXNlLT5yZXNv
bHZlPElETE51bGxhYmxlPElETEludGVyZmFjZTxCYXNpY0NyZWRlbnRpYWw+Pj4oUHVibGljS2V5
Q3JlZGVudGlhbDo6Y3JlYXRlKFdURk1vdmUoYnVuZGxlLmNyZWRlbnRpYWxJZCksIEF1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpzb24pLCBX
VEZNb3ZlKGJ1bmRsZS5hdXRoZW50aWNhdG9yRGF0YSksIFdURk1vdmUoYnVuZGxlLnNpZ25hdHVy
ZSksIFdURk1vdmUoYnVuZGxlLnVzZXJIYW5kbGUpKSkucHRyKCkpOworICAgICAgICBwcm9taXNl
LnJlc29sdmUoUHVibGljS2V5Q3JlZGVudGlhbDo6Y3JlYXRlKFdURk1vdmUoYnVuZGxlLmNyZWRl
bnRpYWxJZCksIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUo
Y2xpZW50RGF0YUpzb24pLCBXVEZNb3ZlKGJ1bmRsZS5hdXRoZW50aWNhdG9yRGF0YSksIFdURk1v
dmUoYnVuZGxlLnNpZ25hdHVyZSksIFdURk1vdmUoYnVuZGxlLnVzZXJIYW5kbGUpKSkucHRyKCkp
OwogICAgIH07CiAgICAgLy8gQXN5bmMgb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCBhbmQgaGFu
ZGxlZCBpbiB0aGUgbWVzc2VuZ2VyLgogICAgIG1fbWVzc2VuZ2VyLT5nZXRBc3NlcnRpb24oY2xp
ZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKK3ZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9t
aXNlKSBjb25zdAoreworICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI2lzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZQorICAgIC8vIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KKyAgICBpZiAoIW1fbWVz
c2VuZ2VyKSAgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1FKDE4Mjc2Nyk6IFdlIHNob3VsZCBjb25zaWRl
ciBtb3JlIG9uIHRoZSBhc3Nlc3NtZW50IG9mIHRoZSByZXR1cm4gdmFsdWUuIFJpZ2h0IG5vdywg
d2UgcmV0dXJuIHRydWUvZmFsc2UKKyAgICAvLyBpbW1lZGlhdGVseSBhY2NvcmRpbmcgdG8gcGxh
dGZvcm0gc3BlY2lmaWMgcHJvY2VkdXJlcy4KKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0g
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBwcm9taXNlLnJlc29sdmUocmVzdWx0KTsKKyAgICB9OworICAgIC8vIEFzeW5jIG9wZXJh
dGlvbiBhcmUgZGlzcGF0Y2hlZCBhbmQgaGFuZGxlZCBpbiB0aGUgbWVzc2VuZ2VyLgorICAgIG1f
bWVzc2VuZ2VyLT5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCmluZGV4IDE3NDU3MzQx
NzRlZDAyYjlkNzcxZWJkMDdmYjdmOWUyNDQwZWFiMzIuLjYzNzI3NmRkZTY3OGMyM2IwYzkyMTk4
ZDFmZjc5ZGFiMzVmNmNhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTM0LDEzICszNSwxNSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBBYm9ydFNpZ25hbDsKK2NsYXNzIEJhc2ljQ3JlZGVudGlhbDsKIGNs
YXNzIENyZWRlbnRpYWxzTWVzc2VuZ2VyOwotY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CiAKIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKIAordXNpbmcg
Q3JlZGVudGlhbFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMTnVsbGFibGU8SURMSW50
ZXJmYWNlPEJhc2ljQ3JlZGVudGlhbD4+PjsKKwogY2xhc3MgQXV0aGVudGljYXRvck1hbmFnZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0b3JNYW5hZ2VyKTsKICAgICBm
cmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXV0aGVudGljYXRvck1hbmFnZXI+OwpAQCAtNDks
OCArNTIsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZXNzZW5nZXIo
Q3JlZGVudGlhbHNNZXNzZW5nZXImKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBp
bXBsZW1lbnQgc3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KLSAgICB2b2lk
IGNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzLCBSZWZQdHI8QWJv
cnRTaWduYWw+JiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0OwotICAgIHZvaWQgZGlz
Y292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBib29sIHNhbWVPcmlnaW5XaXRoQW5jZXN0
b3JzLCBSZWZQdHI8QWJvcnRTaWduYWw+JiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpIGNvbnN0
OworICAgIHZvaWQgY3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMs
IFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21pc2UmJikgY29uc3Q7CisgICAg
dm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNv
bnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldp
dGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21pc2UmJikg
Y29uc3Q7CisgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKaW5k
ZXggMTM2ZTVmN2M3ZTJiYmE0YmIwZWY3MzJiMWZlMGE1NWVjNzE5MWNiYS4uMTEyZjQwYTYzNDJm
NjJjNzZjNTQ2NWJmZWFlOGM3YmM1NjVlN2ExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiQXV0aGVudGljYXRv
ck1hbmFnZXIuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0Jhc2U2NC5oPgogCkBAIC00NSw5ICs0Niw5IEBAIEV4Y2VwdGlvbk9yPGJvb2w+
IFB1YmxpY0tleUNyZWRlbnRpYWw6OmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSBjb25zdAog
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogfQogCi12b2lkIFB1
YmxpY0tleUNyZWRlbnRpYWw6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2
YWlsYWJsZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIFB1YmxpY0tleUNy
ZWRlbnRpYWw6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShE
T01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKQogewotICAgIHByb21pc2Ut
PnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICBBdXRoZW50aWNh
dG9yTWFuYWdlcjo6c2luZ2xldG9uKCkuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNh
dG9yQXZhaWxhYmxlKFdURk1vdmUocHJvbWlzZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbC5oCmluZGV4IDAzM2RkMjM2NjQ3NGU4NTc2ZWQ0ZjQyODZhOTExODg4MGI1N2Vm
ODMuLmZkZWRjNTg5YjMwMzQxMTU3ZGFlM2JiN2JhYTQyNzRmYjZmYTliYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5o
CkBAIC0yOSwxMyArMjksMTMgQEAKIAogI2luY2x1ZGUgIkJhc2ljQ3JlZGVudGlhbC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0aGVudGljYXRvclJl
c3BvbnNlOwotY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogCiBjbGFzcyBQdWJsaWNLZXlDcmVkZW50
aWFsIGZpbmFsIDogcHVibGljIEJhc2ljQ3JlZGVudGlhbCB7CiBwdWJsaWM6CkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuIEFsd2F5cyB0aHJvd3MuCiAg
ICAgRXhjZXB0aW9uT3I8Ym9vbD4gZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0Owog
Ci0gICAgc3RhdGljIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHN0YXRpYyB2b2lkIGlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShET01Qcm9taXNlRGVmZXJyZWQ8
SURMQm9vbGVhbj4mJik7CiAKIHByaXZhdGU6CiAgICAgUHVibGljS2V5Q3JlZGVudGlhbChSZWZQ
dHI8QXJyYXlCdWZmZXI+JiYgaWQsIFJlZlB0cjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5n
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIu
Y3BwCmluZGV4IDJkZTdhNTc0ZDc5MDk2NDgzZjYwMTMwMGYyMjYyN2Y4YTk1ZDFjYjUuLmEyMTk4
NzE3YzgyMTJiMjg4N2RmZTE3YmI5MTUyNDQ0MjQ2MTVkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKQEAgLTEwNiw2ICsx
MDYsMTYgQEAgdm9pZCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmdldEFzc2VydGlvbihjb25z
dCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBQdWJsaWMKICAgICB9CiB9CiAKK3ZvaWQgTW9ja0Ny
ZWRlbnRpYWxzTWVzc2VuZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCit7CisgICAgYXV0byBt
ZXNzYWdlSWQgPSBhZGRRdWVyeUNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpOwor
ICAgIGlmIChtX2RpZFVzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JQcmVzZW50KSB7
CisgICAgICAgIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJl
cGx5KG1lc3NhZ2VJZCwgdHJ1ZSk7CisgICAgICAgIG1fZGlkVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvclByZXNlbnQgPSBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgICAgaXNVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkobWVzc2FnZUlkLCBm
YWxzZSk7Cit9CisKIHZvaWQgTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyOjptYWtlQ3JlZGVudGlh
bFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhdHRlc3Rh
dGlvbk9iamVjdCkKIHsKICAgICBhdXRvIGhhbmRsZXIgPSB0YWtlQ3JlYXRpb25Db21wbGV0aW9u
SGFuZGxlcihtZXNzYWdlSWQpOwpAQCAtMTE4LDYgKzEyOCwxMiBAQCB2b2lkIE1vY2tDcmVkZW50
aWFsc01lc3Nlbmdlcjo6Z2V0QXNzZXJ0aW9uUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBjb25z
dCBWZWN0bwogICAgIGhhbmRsZXIoQXNzZXJ0aW9uUmV0dXJuQnVuZGxlKEFycmF5QnVmZmVyOjpj
cmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIEFycmF5QnVm
ZmVyOjpjcmVhdGUoYXV0aGVudGljYXRvckRhdGEuZGF0YSgpLCBhdXRoZW50aWNhdG9yRGF0YS5z
aXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5z
aXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHVzZXJIYW5kbGUuZGF0YSgpLCB1c2VySGFuZGxl
LnNpemUoKSkpKTsKIH0KIAordm9pZCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2NF90IG1lc3Nh
Z2VJZCwgYm9vbCByZXN1bHQpCit7CisgICAgYXV0byBoYW5kbGVyID0gdGFrZVF1ZXJ5Q29tcGxl
dGlvbkhhbmRsZXIobWVzc2FnZUlkKTsKKyAgICBoYW5kbGVyKHJlc3VsdCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAppbmRleCBj
N2JhMTM0ZWMxZDQwMjMwZWUzZDFlZjgxNDQwNzhmNmM5NjcwNmNjLi4wMzJjZjc5MzgzYzA2YjA0
MzIwMjdiNmVjYWU4N2Q4OGIzYzdhZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXREaWRUaW1lT3V0KCkgeyBtX2RpZFRpbWVPdXQgPSB0cnVlOyB9CiAgICAg
dm9pZCBzZXREaWRVc2VyQ2FuY2VsKCkgeyBtX2RpZFVzZXJDYW5jZWwgPSB0cnVlOyB9CisgICAg
dm9pZCBzZXREaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yUHJlc2VudCgpIHsg
bV9kaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yUHJlc2VudCA9IHRydWU7IH0K
ICAgICB2b2lkIHNldEF0dGVzdGF0aW9uT2JqZWN0KGNvbnN0IEJ1ZmZlclNvdXJjZSYpOwogICAg
IHZvaWQgc2V0QXNzZXJ0aW9uUmV0dXJuQnVuZGxlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgY3JlZGVu
dGlhbElkLCBjb25zdCBCdWZmZXJTb3VyY2UmIGF1dGhlbnRpY2F0b3JEYXRhLCBjb25zdCBCdWZm
ZXJTb3VyY2UmIHNpZ25hdHVyZSwgY29uc3QgQnVmZmVyU291cmNlJiB1c2VySGFuZGxlKTsKIApA
QCAtNTAsMTMgKzUxLDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlQ3JlZGVu
dGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zJiwgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2
b2lkIGdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
KSBmaW5hbDsKKyAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2
YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgbWFrZUNy
ZWRlbnRpYWxSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYp
IGZpbmFsOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIGNyZWRlbnRpYWxJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBhdXRoZW50aWNhdG9yRGF0YSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgdXNlckhhbmRsZSkgZmluYWw7CisgICAgdm9pZCBpc1VzZXJW
ZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSh1aW50NjRfdCBtZXNz
YWdlSWQsIGJvb2wpIGZpbmFsOwogCiAgICAgSW50ZXJuYWxzJiBtX2ludGVybmFsczsKICAgICAv
LyBBbGwgZm9sbG93aW5nIGZpZWxkcyBhcmUgZGlzcG9zYWJsZS4KICAgICBib29sIG1fZGlkVGlt
ZU91dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RpZFVzZXJDYW5jZWwgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9kaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yUHJlc2VudCB7IGZh
bHNlIH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fYXR0ZXN0YXRpb25PYmplY3Q7CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IG1fY3JlZGVudGlhbElkOwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F1dGhl
bnRpY2F0b3JEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuaWRsCmluZGV4IDFmNDI0NDRlMGVlY2I3N2MxZWI3Njk3ZGRmYmZiMjUy
YzAxYWM2NzUuLjAzNzE2MjMzMzBhZGUxZjE3MDllNzRiYTllYzFiNGZmNWY2MDlkMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5p
ZGwKQEAgLTI5LDYgKzI5LDcgQEAKIF0gaW50ZXJmYWNlIE1vY2tDcmVkZW50aWFsc01lc3Nlbmdl
ciB7CiAgICAgdm9pZCBzZXREaWRUaW1lT3V0KCk7CiAgICAgdm9pZCBzZXREaWRVc2VyQ2FuY2Vs
KCk7CisgICAgdm9pZCBzZXREaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yUHJl
c2VudCgpOwogICAgIHZvaWQgc2V0QXR0ZXN0YXRpb25PYmplY3QoQnVmZmVyU291cmNlIGF0dGVz
dGF0aW9uT2JqZWN0KTsKICAgICB2b2lkIHNldEFzc2VydGlvblJldHVybkJ1bmRsZShCdWZmZXJT
b3VyY2UgY3JlZGVudGlhbElkLCBCdWZmZXJTb3VyY2UgYXV0aGVudGljYXRvckRhdGEsIEJ1ZmZl
clNvdXJjZSBzaWduYXR1cmUsIEJ1ZmZlclNvdXJjZSB1c2VySGFuZGxlKTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVk
ZW50aWFsc01lc3NlbmdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRl
bnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwCmluZGV4IGQ2
YmRjMWJhZmZlZGJjNjRlOTg1ZDlkZTg3MGJkZGFjMmFhYjllYmMuLjQ3ZDVkN2M1OGM4NDdjMTll
ZjU2MmVjMDllNWY0MDZiOGViZDRlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwCkBAIC01MCwxMCArNTAsMjAgQEAgdm9pZCBXZWJD
cmVkZW50aWFsc01lc3NlbmdlclByb3h5OjptYWtlQ3JlZGVudGlhbCh1aW50NjRfdCkKIHsKIH0K
IAordm9pZCBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Ojppc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUodWludDY0X3QgbWVzc2FnZUlkKQoreworICAgIHBs
YXRmb3JtSXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKG1lc3Nh
Z2VJZCk7Cit9CisKIHZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6Z2V0QXNzZXJ0
aW9uKHVpbnQ2NF90KQogewogfQogCit2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6
OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2
NF90IG1lc3NhZ2VJZCwgYm9vbCByZXN1bHQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuc2VuZChN
ZXNzYWdlczo6V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6OklzVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KG1lc3NhZ2VJZCwgcmVzdWx0KSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRl
bnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaAppbmRleCBlYWZm
YTgxNDczMGQzNDE3YTUwZGYyNTFmNGY0YjM5OTM2OTFlYTQwLi5hMjY2YTNlM2RkMWE5ZDYyODEz
ZDFhZTkwMTBjNTQ5ZjZlYzAyNmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXJQcm94eS5oCkBAIC00NSw2ICs0NSwxNSBAQCBwcml2YXRlOgogICAgIC8v
IFJlY2VpdmVycy4KICAgICB2b2lkIG1ha2VDcmVkZW50aWFsKHVpbnQ2NF90IG1lc3NhZ2VJZCk7
CiAgICAgdm9pZCBnZXRBc3NlcnRpb24odWludDY0X3QgbWVzc2FnZUlkKTsKKyAgICB2b2lkIGlz
VXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNz
YWdlSWQpOworCisgICAgLy8gU2VuZGVycy4KKyAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCk7
CisKKyAgICAvLyBQbGF0Zm9ybSBzcGVjaWZpYyBwcm9jZWR1cmVzLgorICAgIC8vIEZJWE1FKDE4
Mjc2OCk6IE1pZ2h0IGNoYW5nZSB0byBzb21lIGZvcm1zIG9mIGRlbGVnYXRlcyBsYXRlciBvbi4K
KyAgICAvLyBGSVhNRSgxODI3NjkpOiBGaWd1cmUgb3V0IGEgd2F5IHRvIGF1dG8tdGVzdCB0aGUg
Zm9sbG93aW5ncy4KKyAgICB2b2lkIHBsYXRmb3JtSXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yQXZhaWxhYmxlKHVpbnQ2NF90IG1lc3NhZ2VJZCk7CiAKICAgICBXZWJQYWdlUHJv
eHkmIG1fd2ViUGFnZVByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9X
ZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGZlZTU5ZmYxNWZl
MTdmOTc4MGM3YjkxNTFlNzg0NWMxMjk5NTNiOTYuLjZiYzBlOTlhN2NhZWU0YTk3NTkzYjZmNDdi
ZjFmMDFjYTY4NTA4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRl
bnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNz
YWdlcyAtPiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5IHsKIAogICAgIE1ha2VDcmVkZW50
aWFsKHVpbnQ2NF90IG1lc3NhZ2VJZCk7CiAgICAgR2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3Nh
Z2VJZCk7CisgICAgSXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxl
KHVpbnQ2NF90IG1lc3NhZ2VJZCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvaW9zL1dlYkNyZWRlbnRpYWxzTWVz
c2VuZ2VyUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFu
YWdlbWVudC9pb3MvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eUlPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDcyM2RiZDI1ODMzM2IxNjEzYWRiMTFlYzRmMjdiZTk5NTdkOGE4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvaW9zL1dl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlJT1MubW0KQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXJQcm94eS5oIgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUoV0VCX0FVVEhOKQorCisj
aW1wb3J0IDxMb2NhbEF1dGhlbnRpY2F0aW9uL0xvY2FsQXV0aGVudGljYXRpb24uaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6cGxhdGZvcm1Jc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1
dGhlbnRpY2F0b3JBdmFpbGFibGUodWludDY0X3QgbWVzc2FnZUlkKQoreworICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0TlMoW1tMQUNvbnRleHQgYWxsb2NdIGluaXRdKTsKKyAgICBOU0Vycm9yICpl
cnJvciA9IG5pbDsKKworICAgIGlmIChbY29udGV4dCBjYW5FdmFsdWF0ZVBvbGljeTpMQVBvbGlj
eURldmljZU93bmVyQXV0aGVudGljYXRpb25XaXRoQmlvbWV0cmljcyBlcnJvcjomZXJyb3JdKQor
ICAgICAgICBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBs
eShtZXNzYWdlSWQsIHRydWUpOworICAgIGVsc2UgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxk
bid0IGV2YWx1YXRlIHBvbGljeTogJUAiLCBlcnJvcik7CisgICAgICAgIGlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KG1lc3NhZ2VJZCwgZmFsc2UpOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1MpICYmIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9tYWMvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L21h
Yy9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MGRjNDgw
OTAyNzQzNzY0OTI0Y2YxY2IxYWQ3YWY5OTQ3MDQ1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9tYWMvV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eU1hYy5tbQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Lmgi
CisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbXBvcnQgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6cGxhdGZvcm1Jc1VzZXJWZXJpZnlpbmdQbGF0Zm9y
bUF1dGhlbnRpY2F0b3JBdmFpbGFibGUodWludDY0X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4ZWM1ZWE3NjdiMzY5NmI2MmM5ZmFhZWNiYTI3NGFkMzVi
M2MwMTY1Li42OGQ2MmY2MzZkZTNhZDRiNzUzMTJlMTE3MGYwMjE0ZjNkMjBlNTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMDks
MTIgKzEyMDksMTUgQEAKIAkJNTNCQTQ3RDAxREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRh
VGFza0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICov
OyB9OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDcx
REMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNERUEz
NjYxRERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBwIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBw
ICovOyB9OworCQk1NzUwRjMyQjIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlv
bi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzUwRjMyQTIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFt
ZXdvcmsgKi87IH07CiAJCTU3NjA4MjhFMjAyOTg5NUUwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFs
c01lc3Nlbmdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIu
Y3BwICovOyB9OwogCQk1NzYwODI5ODIwMkJEOEJBMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzYwODI5NjIwMkJEOEJBMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXJQcm94eS5jcHAgKi87IH07CiAJCTU3NjA4MjlDMjAyRDJDM0MwMDExNjY3OCAvKiBXZWJDcmVk
ZW50aWFsc01lc3Nlbmdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzYwODI5MDIwMjk4RkJEMDAxMTY2NzggLyogV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1NzYwODI5
RDIwMkQyQzQwMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2MDgyOEYyMDI5
OEZCRDAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyTWVzc2FnZXMuaCAqLzsgfTsK
IAkJNTc2MDgyOUUyMDJEMkM0MzAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc2MDgyOUEyMDJCRUU1QTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVz
c2VuZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1NzYwODI5RjIwMkQyQzQ2
MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzYwODI5QjIwMkJFRTVB
MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2VzLmggKi87IH07
CisJCTU3NjA4MkI0MjAzMjI2MzcwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclBy
b3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc2MDgyQjMyMDMyMjQ0NjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlN
YWMubW0gKi87IH07CisJCTU3NjA4MkI3MjAzMjMxQzYwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc2MDgyQjYyMDMyMzFCMjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVz
c2VuZ2VyUHJveHlJT1MubW0gKi87IH07CiAJCTVDMEIxNzc4MUU3Qzg4MEUwMEU5MTIzQyAvKiBO
ZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc0MUU3Qzg3OUMwMEU5MTIzQyAvKiBO
ZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNUMwQjE3Nzkx
RTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBCMTc3NjFFN0M4
NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNUMwQjE3N0MxRTdDODg1NDAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBCMTc3QTFFN0M4ODRG
MDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtLmNwcCAqLzsgfTsKQEAgLTM2MzYsNiArMzYzOSw3
IEBACiAJCTUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Js
b2IuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBO
ZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5l
dHdvcmtEYXRhVGFza0Jsb2IuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
a0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNERUEzNjUxRERFNDIyRTAw
RTgyNjQ4IC8qIGpzb24uaHBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgbmFtZSA9IGpz
b24uaHBwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9qc29uLmhwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8qIExvY2FsQXV0
aGVudGljYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1dGhlbnRpY2F0
aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9jYWxBdXRo
ZW50aWNhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1NzYwODI4
QjIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc2MDgyOEMyMDI5ODU0MjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOEQyMDI5ODdFNjAwMTE2Njc4IC8qIFdl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNyZWRlbnRpYWxzTWVz
c2VuZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY0Niw2
ICszNjUwLDggQEAKIAkJNTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOUEy
MDJCRUU1QTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NjA4
MjlCMjAyQkVFNUEwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NjA4MkIzMjAzMjI0NDYwMDExNjY3
OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTc2MDgyQjYyMDMyMzFCMjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzBC
MTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU29ja2V0U3RyZWFtTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQjE3NzYxRTdDODc5QzAw
RTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcxOCw2ICs0NzI0LDcgQEAKIAkJ
CWZpbGVzID0gKAogCQkJCTM3NjZGOUVFMTg5QTEyNDEwMDNDRjE5QiAvKiBKYXZhU2NyaXB0Q29y
ZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkzNzY2RjlGMTE4OUExMjU0MDAzQ0Yx
OUIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCTU3NTBGMzJCMjAz
MkQ0RTUwMDM4OTM0NyAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovLAogCQkJCTM3NjZGOUVGMTg5QTEyNDQwMDNDRjE5QiAvKiBRdWFydHpDb3JlLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTM3Njk0NTI1MTg0RkM2QjYwMENERTIxRiAvKiBT
ZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkzN0JFQzRERDE5NDhGQzZB
MDA4QjQyODYgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKQEAgLTQ4MTAs
NiArNDgxNyw3IEBACiAJCQkJMUE0Rjk3NjkxMDBFN0I2NjAwNjM3QTE4IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBFeHRlcm5hbCBGcmFtZXdv
cmtzIGFuZCBMaWJyYXJpZXMgKi8sCiAJCQkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFBy
b2R1Y3RzICovLAorCQkJCTU3NTBGMzI5MjAzMkQ0RTMwMDM4OTM0NyAvKiBGcmFtZXdvcmtzICov
LAogCQkJKTsKIAkJCW5hbWUgPSBXZWJLaXQyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTY2OTgsNiArNjcwNiwxNCBAQAogCQkJbmFtZSA9IGNhcHR1cmU7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQk1NzUwRjMyOTIwMzJENEUzMDAzODkzNDcgLyogRnJhbWV3
b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTc1
MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICov
LAorCQkJKTsKKwkJCW5hbWUgPSBGcmFtZXdvcmtzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJNTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIENyZWRlbnRpYWxNYW5hZ2Vt
ZW50ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY3MTEs
NiArNjcyNyw4IEBACiAJCTU3NjA4Mjk0MjAyQkQ4NDkwMDExNjY3OCAvKiBDcmVkZW50aWFsTWFu
YWdlbWVudCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTc2MDgyQjUyMDMyMzE4MTAwMTE2Njc4IC8qIGlvcyAqLywKKwkJCQk1NzYwODJCMjIwMzIyM0Q1
MDAxMTY2NzggLyogbWFjICovLAogCQkJCTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJD
cmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcCAqLywKIAkJCQk1NzYwODI5NTIwMkJEOEJBMDAx
MTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oICovLAogCQkJCTU3NjA4Mjk5
MjAyQkRBRTIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Lm1lc3NhZ2Vz
LmluICovLApAQCAtNjcxOCw2ICs2NzM2LDIyIEBACiAJCQlwYXRoID0gQ3JlZGVudGlhbE1hbmFn
ZW1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1NzYwODJCMjIwMzIy
M0Q1MDAxMTY2NzggLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQk1NzYwODJCMzIwMzIyNDQ2MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNz
ZW5nZXJQcm94eU1hYy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNTc2MDgyQjUyMDMyMzE4MTAwMTE2Njc4IC8qIGlvcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTc2MDgyQjYy
MDMyMzFCMjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlJT1MubW0gKi8s
CisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTVDMTQyNkYxMUMyM0Y4MTcwMEQ0MTE4MyAvKiBEb3dubG9hZHMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA4NDgsNiArMTA4ODIsOCBAQAogCQkJ
CTU3NjA4MjhFMjAyOTg5NUUwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1NzYwODI5QzIwMkQyQzNDMDAxMTY2NzggLyogV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc2
MDgyOTgyMDJCRDhCQTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTc2MDgyQjcyMDMyMzFDNjAwMTE2Njc4IC8qIFdlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyUHJveHlJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk1NzYwODJCNDIw
MzIyNjM3MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTU3NjA4MjlFMjAyRDJDNDMwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
QTgzRjZDMUE1QjYzRkYwMDAyNkVDNiAvKiBXZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIuY3BwCmluZGV4IDM5MzhmN2VjOTNmY2FhMGYxOWU5ZDBmMzgyNzA2
NDM5ZTI3MzMxMDUuLmQxMTVhZmY4NjViZjg4MjkzN2NiYTk2Y2YwYWZlMGJmYzkwY2IyN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9X
ZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcApAQCAtNTQs
NiArNTQsMTIgQEAgdm9pZCBXZWJDcmVkZW50aWFsc01lc3Nlbmdlcjo6Z2V0QXNzZXJ0aW9uKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFdlYkNvcmUKIHsKIH0KIAordm9pZCBXZWJDcmVk
ZW50aWFsc01lc3Nlbmdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQoreworICAg
IGF1dG8gbWVzc2FnZUlkID0gYWRkUXVlcnlDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRs
ZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZChNZXNzYWdlczo6V2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXJQcm94eTo6SXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKG1l
c3NhZ2VJZCkpOworfQorCiB2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjptYWtlQ3JlZGVu
dGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JikKIHsK
IH0KQEAgLTYyLDYgKzY4LDEzIEBAIHZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmdldEFz
c2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yCiB7CiB9CiAKK3Zv
aWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCByZXN1bHQpCit7
CisgICAgYXV0byBoYW5kbGVyID0gdGFrZVF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIobWVzc2FnZUlk
KTsKKyAgICBoYW5kbGVyKHJlc3VsdCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuaAppbmRleCA0ZDVmNmJkYmM3OTJhMmFjNDE5ZjA2OTk3MzZjYTI5YmY4
NjhhY2IwLi42ZGUwYjBlNWEyZWJkNGJmMTM1ZWRiNTE2MDc1OTUyYjkwYjUxZTIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVu
dGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaApAQCAtNDQsMTAgKzQ0LDEy
IEBAIHByaXZhdGU6CiAgICAgLy8gc2VuZGVyCiAgICAgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25z
dCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zJiwgV2ViQ29yZTo6Q3JlYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKICAgICB2b2lkIGdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNv
bnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6
OlJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGlzVXNlclZlcmlm
eWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShXZWJDb3JlOjpRdWVyeUNvbXBsZXRp
b25IYW5kbGVyJiYpIGZpbmFsOwogCiAgICAgLy8gcmVjZWl2ZXIKICAgICB2b2lkIG1ha2VDcmVk
ZW50aWFsUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKSBm
aW5hbDsKICAgICB2b2lkIGdldEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
YXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgc2lnbmF0dXJlLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpIGZpbmFsOworICAgIHZvaWQgaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkodWludDY0X3QgbWVzc2Fn
ZUlkLCBib29sKSBmaW5hbDsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1h
bmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXIubWVzc2FnZXMuaW4KaW5kZXggM2EyYzg1ZDQzMGQxODE2MTViNjZjZjY3ZGIwYWJiOTdjODlm
NzVmMC4uM2FiMTExNjJmOTQ5NWI3YWI5MGEwMTc3ZDM2NmZlYTI4N2E4YjdhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5tZXNzYWdlcy5p
bgpAQCAtMjksNiArMjksOCBAQCBtZXNzYWdlcyAtPiBXZWJDcmVkZW50aWFsc01lc3NlbmdlciB7
CiAgICAgRXhjZXB0aW9uUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBzdHJ1Y3QgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pOwogICAgIE1ha2VDcmVkZW50aWFsUmVwbHkodWludDY0
X3QgbWVzc2FnZUlkLCBWZWN0b3I8dWludDhfdD4gYXR0ZXN0YXRpb25PYmplY3QpOwogICAgIEdl
dEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgVmVjdG9yPHVpbnQ4X3Q+IGNyZWRl
bnRpYWxJZCwgVmVjdG9yPHVpbnQ4X3Q+IGF1dGhlbnRpY2F0b3JEYXRhLCBWZWN0b3I8dWludDhf
dD4gc2lnbmF0dXJlLCBWZWN0b3I8dWludDhfdD4gdXNlckhhbmRsZSk7CisgICAgSXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkodWludDY0X3QgbWVzc2Fn
ZUlkLCBib29sIHJlc3VsdCk7CitleGNlcHRpb25SZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIHN0
cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbik7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDc3MTFkNWRhMDUwNWRmMGIyNGQyZTg1N2NkODYzMWZjY2M5MDdmZDIuLjg3YTkwNzBjYTBm
M2M1YWJmMTlhZDkyYmFmOWEwNTJhN2Q2OGY5NGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
OC0wMi0xMyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRoTl0gSW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjc3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0
NTk5ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3Jt
LWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1pcy11c2VyLXZlcmlmeWluZy1wbGF0Zm9ybS1h
dXRoZW50aWNhdG9yLWF2YWlsYWJsZS5odG1sOiBBZGRlZC4KKwogMjAxOC0wMi0xMyAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92aW5nIHRoZSBjb250
cm9scyBhdHRyaWJ1dGUgZnJvbSBhIDx2aWRlbz4gZWxlbWVudCBkb2VzIG5vdCB0ZWFyIGRvd24g
dGhlIGNvbnRyb2xzIHNoYWRvdyBET00gbm9yIGNhbmNlbCBldmVudCBsaXN0ZW5lcnMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXIt
dmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlp
bmctcGxhdGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmMmEyMTZlZjNlYTMzZjhkMGMxY2MxYWViNjEzYzNjZTcxYTFiNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXIt
dmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIHdpdGhvdXQgYW55IGF2YWlsYWJsZSBh
dXRoZW50aWNhdG9ycy4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgd2l0aCBhdmFpbGFibGUgYXV0aGVudGlj
YXRvcnMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXIt
dmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmI2YjhhMDUxYmI1N2UyNWZmMTUzYjE5MDg1YTJjYzVhZWRkNWEwMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12
ZXJpZnlpbmctcGxhdGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbApAQCAtMCwwICsx
LDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBQ
dWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2
YWlsYWJsZSgpLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvckF2YWlsYWJsZSgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgZmFsc2UpOworICAgICAgICB9KTsKKyAgICB9LCAi
UHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGUoKSB3aXRob3V0IGFueSBhdmFpbGFibGUgYXV0aGVudGljYXRvcnMuIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBpbnRlcm5hbHMubW9ja0NyZWRl
bnRpYWxzTWVzc2VuZ2VyLnNldERpZFVzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JQ
cmVzZW50KCk7CisKKyAgICAgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCB0cnVlKTsKKyAgICAgICAg
fSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1B
dXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgd2l0aCBhdmFpbGFibGUgYXV0aGVudGljYXRvcnMuIik7
Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333949</attachid>
            <date>2018-02-15 14:38:55 -0800</date>
            <delta_ts>2018-02-15 16:52:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182771-20180215143854.patch</filename>
            <type>text/plain</type>
            <size>55675</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjNWE5ZmRkYmZmYjUz
YjJhZjk2MzJkMDk3NTE3YmFlYTgwYTJhYi4uOGNiOTBhYmM0OWY2MWFmOGNiYzc5ZjI0ODg4MmMw
NjBlNmMyYjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAyLTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRp
Y2F0b3JBdmFpbGFibGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyNzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjQ1OTk4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUoKQorICAgICAgICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1dGhuLyNpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUgd2l0
aCBzb21lCisgICAgICAgIGxpbWl0YXRpb25zLgorCisgICAgICAgIEluIGFkZGl0aW9uLCBpdCBj
aGFuZ2VzIERlZmVycmVkUHJvbWlzZSB0byBET01Qcm9taXNlRGVmZXJyZWQ8PiBmb3IgYWxsIENy
ZWRlbnRpYWxzTWFuYWdlbWVudAorICAgICAgICBhbmQgV2ViQXV0aE4gQVBJLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxh
dGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9j
cmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6aXNDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbHNDb250
YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRDcmVhdGlvbkNvbXBsZXRpb25I
YW5kbGVyKToKKyAgICAgICAgUmVtb3ZlIGEgcmVkdW5kYW50IGFzc2VydGlvbi4KKyAgICAgICAg
KFdlYkNvcmU6OkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXIpOgorICAgICAgICBSZW1vdmUgYSByZWR1bmRhbnQgYXNzZXJ0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OnRha2VRdWVyeUNvbXBsZXRp
b25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRl
bnRpYWxzTWVzc2VuZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yTWFuYWdlcklu
dGVybmFsOjppbml0VGltZW91dFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JNYW5hZ2VyOjpjcmVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbDo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6
OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KToKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oOgorICAgICAgICAqIHRl
c3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbDoKKwogMjAxOC0wMi0xNSAgWmFuIERv
YmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgSGFyZkJ1enpGYWNlOiBy
ZXdvcmsgY2FjaGUgZW50cnkgcmVmZXJlbmNlIGhvbGRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTI3YWViNjlh
N2Q1NWY4M2RhNjRhN2YxMWMxNWQwOGIzOTQyOWZhNC4uMWFkZDMxYzYxNTA4Y2RkNGU5ZmY0Yjdl
ZDk5NGI1NjE5NmFiNmM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wMi0xMyAg
Smlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0g
SW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yQXZhaWxhYmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4Mjc3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk5ODg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCB1dGlsaXplcyBMb2NhbEF1dGhlbnRpY2F0aW9uIEZyYW1ld29yayB0byBkZXRlcm1pbmUgaWYg
YmlvbWV0cmljcworICAgICAgICBhcmUgZW5yb2xsZWQgb24gYSBkZXZpY2UsIHdoaWNoIGlzIHRo
ZSB1c2VyIHZlcmlmeWluZyBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLgorICAgICAgICBUbyBkbyBz
bywgaXQgbGlua3MgdGhlIGZyYW1ld29yayB0byBXZWJLaXQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OmlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlh
bE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9j
b2NvYS9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OnBsYXRmb3JtSXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5h
Z2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjpp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nl
bmdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW46CisKIDIwMTgtMDItMTUgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIFJldmlzaXQgdGhl
IHdob2xlIGFzeW5jIG1vZGVsIG9mIHRhc2sgZGlzcGF0Y2hpbmcsIHRpbWVvdXQgYW5kIGFib3J0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2Vt
ZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IGZiN2Q0NDEy
ZjkyNGU2ZmIyNWRmY2NkYjA2ODQ3Y2EwOTQ4Mjg5ODcuLmFkNjRiNjEzOWU1N2E0MzM3ZDlmZjIx
OGIzYmI0ZWE2Njc3MmIxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIu
Y3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2luY2x1ZGUg
IkFib3J0U2lnbmFsLmgiCi0jaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNs
dWRlICJDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYwLDE2ICs1OSwxNiBA
QCBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2Vz
dG9ycygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6
OmdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCit2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQog
ewogICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIv
Y3JlZGVudGlhbC1tYW5hZ2VtZW50LTEvI2FsZ29yaXRobS1yZXF1ZXN0IGFzIG9mIDQgQXVndXN0
IDIwMTcKICAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZyb20gMTQgTm92ZW1iZXIgMjAxNyBFZGl0
b3IncyBEcmFmdC4KICAgICBpZiAoIW1fZG9jdW1lbnQpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAob3B0aW9ucy5zaWduYWwgJiYgb3B0aW9ucy5zaWduYWwtPmFib3J0ZWQo
KSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVND
SUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIpIH0pOworICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0ZWQgYnkg
QWJvcnRTaWduYWwuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gU3RlcCAx
LTIuCkBAIC03OSw3ICs3OCw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmdldChDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQCiAgICAgLy8gU3Rl
cCA0LTYuIFNob3J0Y3V0IGFzIHdlIG9ubHkgc3VwcG9ydCBQdWJsaWNLZXlDcmVkZW50aWFsIHdo
aWNoIGNhbiBvbmx5CiAgICAgLy8gYmUgcmVxdWVzdGVkIGZyb20gW1tkaXNjb3ZlckZyb21FeHRl
cm5hbFNvdXJjZV1dLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwo
Ik9ubHkgUHVibGljS2V5Q3JlZGVudGlhbCBpcyBzdXBwb3J0ZWQuIikgfSk7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwo
Ik9ubHkgUHVibGljS2V5Q3JlZGVudGlhbCBpcyBzdXBwb3J0ZWQuIikgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTg3LDIxICs4NiwyMSBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFp
bmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVk
UAogICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzaW5nbGV0b24oKS5kaXNjb3ZlckZyb21FeHRl
cm5hbFNvdXJjZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLnB1YmxpY0tl
eS52YWx1ZSgpLCBkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBXVEZNb3ZlKG9w
dGlvbnMuc2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLXZvaWQgQ3JlZGVudGlhbHND
b250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVudGlhbCYsIFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKK3ZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJh
c2ljQ3JlZGVudGlhbCYsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
Tm90IGltcGxlbWVudGVkLiIpIH0pOworICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRlZC4iKSB9KTsKIH0K
IAotdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQg
Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
JiBvcHRpb25zLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgLy8gVGhlIGZv
bGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jcmVkZW50aWFsLW1hbmFn
ZW1lbnQtMS8jYWxnb3JpdGhtLWNyZWF0ZSBhcyBvZiA0IEF1Z3VzdCAyMDE3CiAgICAgLy8gd2l0
aCBlbmhhbmNlbWVudCBmcm9tIDE0IE5vdmVtYmVyIDIwMTcgRWRpdG9yJ3MgRHJhZnQuCiAgICAg
aWYgKCFtX2RvY3VtZW50KSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKG9w
dGlvbnMuc2lnbmFsICYmIG9wdGlvbnMuc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQWJvcnRl
ZCBieSBBYm9ydFNpZ25hbC4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIpIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFN0ZXAgMS0yLgpAQCAtMTA5LDcgKzEw
OCw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmCiAKICAgICAvLyBTdGVwIDMtNy4gU2hvcnRj
dXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5kIG9mIGNyZWRlbnRpYWxzLgogICAgIGlmICgh
b3B0aW9ucy5wdWJsaWNLZXkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk9ubHkgUHVibGljS2V5Q3JlZGVudGlh
bCBpcyBzdXBwb3J0ZWQuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk9ubHkgUHVibGljS2V5Q3JlZGVudGlh
bCBpcyBzdXBwb3J0ZWQuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNyw5
ICsxMTYsOSBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZShDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZgogICAgIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jcmVhdGUobV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgb3B0
aW9ucy5wdWJsaWNLZXkudmFsdWUoKSwgZG9lc0hhdmVTYW1lT3JpZ2luQXNJdHNBbmNlc3RvcnMo
KSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCksIFdURk1vdmUocHJvbWlzZSkpOwogfQogCi12b2lk
IENyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnByZXZl
bnRTaWxlbnRBY2Nlc3MoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkgY29uc3QK
IHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVkLiIpIH0pOworICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRl
ZC4iKSB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50
aWFsc0NvbnRhaW5lci5oCmluZGV4IDA3NjA3ZTNjMmZkZjVkOGMyOTczZjRmYjc5NDZiZmYzNGQ2
OTZiYmYuLjJkNWIzOGI1NjcxN2YzZGU4YjkwMTQxYzc4NTY2MWZlZTA2ZmUxNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5h
Z2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI4LDEzICsyOCwxMiBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEJhc2ljQ3JlZGVudGlhbDsKLWNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIGNsYXNzIERvY3VtZW50OwogCiBzdHJ1Y3QgQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczsKQEAgLTQ0LDEzICs0MywxMyBAQCBjbGFzcyBDcmVkZW50aWFsc0NvbnRhaW5lciA6
IHB1YmxpYyBSZWZDb3VudGVkPENyZWRlbnRpYWxzQ29udGFpbmVyPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxDcmVkZW50aWFsc0NvbnRhaW5lcj4gY3JlYXRlKFdlYWtQdHI8RG9jdW1lbnQ+
JiYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3JlZGVudGlhbHNDb250YWluZXIo
V1RGTW92ZShkb2N1bWVudCkpKTsgfQogCi0gICAgdm9pZCBnZXQoQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgZ2V0KENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKTsKIAotICAgIHZvaWQgc3Rv
cmUoY29uc3QgQmFzaWNDcmVkZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAg
dm9pZCBzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRpYWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmKTsK
IAotICAgIHZvaWQgaXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnMmJiwgQ3JlZGVudGlhbFByb21pc2UmJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRB
Y2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7CisgICAgdm9pZCBwcmV2ZW50U2ls
ZW50QWNjZXNzKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFrUHRyPERvY3VtZW50PiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNNZXNzZW5nZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKaW5kZXggZDc2ZWQzNjVjYzg0MTlmNzk5Nzlh
OGIyNmVmMmI0ODYzNGQ5NWM3ZS4uYjU2MGM2MTY0NTZhMzhjNGYxY2NhZDc5ZGNiNjE2ZWYyNGYw
ZGEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKQEAgLTY4LDcg
KzY4LDYgQEAgdWludDY0X3QgQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZENyZWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXIoQ3JlYXRpb25Db21wbGV0aW9uSGEKICAgICBtZXNzYWdlSWQgPSBtZXNzYWdl
SWQgfCBDYWxsQmFja0NsYXNzaWZpZXI6OkNyZWF0aW9uIDw8IGNhbGxCYWNrQ2xhc3NpZmllck9m
ZnNldDsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGVuZGluZ0NyZWF0aW9uQ29tcGxldGlvbkhh
bmRsZXJzLmFkZChtZXNzYWdlSWQsIFdURk1vdmUoaGFuZGxlcikpOwogICAgIEFTU0VSVF9VTlVT
RUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgQVNTRVJUKGFkZFJlc3Vs
dCk7CiAgICAgcmV0dXJuIG1lc3NhZ2VJZDsKIH0KIApAQCAtODYsNyArODUsNiBAQCB1aW50NjRf
dCBDcmVkZW50aWFsc01lc3Nlbmdlcjo6YWRkUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKFJlcXVl
c3RDb21wbGV0aW9uSGFuZAogICAgIG1lc3NhZ2VJZCA9IG1lc3NhZ2VJZCB8IENhbGxCYWNrQ2xh
c3NpZmllcjo6UmVxdWVzdCA8PCBjYWxsQmFja0NsYXNzaWZpZXJPZmZzZXQ7CiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBtX3BlbmRpbmdSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXJzLmFkZChtZXNzYWdl
SWQsIFdURk1vdmUoaGFuZGxlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgQVNTRVJUKGFkZFJlc3VsdCk7CiAgICAgcmV0dXJuIG1l
c3NhZ2VJZDsKIH0KIApAQCAtOTUsNiArOTMsMjMgQEAgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
IENyZWRlbnRpYWxzTWVzc2VuZ2VyOjp0YWtlUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKHVpbnQK
ICAgICByZXR1cm4gbV9wZW5kaW5nUmVxdWVzdENvbXBsZXRpb25IYW5kbGVycy50YWtlKG1lc3Nh
Z2VJZCk7CiB9CiAKK3VpbnQ2NF90IENyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRRdWVyeUNvbXBs
ZXRpb25IYW5kbGVyKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIHVz
aW5nIG5hbWVzcGFjZSBDcmVkZW50aWFsc01lc3NlbmdlckludGVybmFsOworCisgICAgdWludDY0
X3QgbWVzc2FnZUlkID0gbV9hY2N1bXVsYXRlZE1lc3NhZ2VJZCsrOworICAgIEFTU0VSVChtZXNz
YWdlSWQgPCBtYXhNZXNzYWdlSWQpOworICAgIG1lc3NhZ2VJZCA9IG1lc3NhZ2VJZCB8IENhbGxC
YWNrQ2xhc3NpZmllcjo6UXVlcnkgPDwgY2FsbEJhY2tDbGFzc2lmaWVyT2Zmc2V0OworICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9wZW5kaW5nUXVlcnlDb21wbGV0aW9uSGFuZGxlcnMuYWRkKG1lc3Nh
Z2VJZCwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFk
ZFJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICByZXR1cm4gbWVzc2FnZUlkOworfQorCitRdWVyeUNv
bXBsZXRpb25IYW5kbGVyIENyZWRlbnRpYWxzTWVzc2VuZ2VyOjp0YWtlUXVlcnlDb21wbGV0aW9u
SGFuZGxlcih1aW50NjRfdCBtZXNzYWdlSWQpCit7CisgICAgcmV0dXJuIG1fcGVuZGluZ1F1ZXJ5
Q29tcGxldGlvbkhhbmRsZXJzLnRha2UobWVzc2FnZUlkKTsKK30KKwogUmVmUHRyPEFycmF5QnVm
ZmVyPiBnZXRJZEZyb21BdHRlc3RhdGlvbk9iamVjdChjb25zdCBWZWN0b3I8dWludDhfdD4mIGF0
dGVzdGF0aW9uT2JqZWN0KQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBDcmVkZW50aWFsc01lc3Nl
bmdlckludGVybmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50
aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oCmluZGV4IDky
N2I2N2E5YzZhODcwMzRmYjBjZjBmZTRmNDhhN2M3MTlkOTVhMjIuLjljYjY3MDY5MjhjNmNiODM2
MWUyM2U5ZjMxYmNkNWZjNmY0OTE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2Vu
Z2VyLmgKQEAgLTY4LDYgKzY4LDcgQEAgc3RydWN0IEFzc2VydGlvblJldHVybkJ1bmRsZSB7CiAK
IHVzaW5nIENyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPENyZWF0aW9uUmV0dXJuQnVuZGxlPiYmKT47CiB1c2luZyBSZXF1ZXN0Q29t
cGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEFzc2Vy
dGlvblJldHVybkJ1bmRsZT4mJik+OwordXNpbmcgUXVlcnlDb21wbGV0aW9uSGFuZGxlciA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OwogCiBjbGFzcyBDcmVkZW50aWFsc01lc3Nlbmdl
ciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC03NSwxMSArNzYsMTMgQEAgcHVi
bGljOgogICAgIC8vIHNlbmRlcgogICAgIHZpcnR1YWwgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmLCBDcmVhdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50
aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogCiAgICAgLy8g
cmVjZWl2ZXIKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4Y2VwdGlvblJlcGx5KHVpbnQ2NF90
IG1lc3NhZ2VJZCwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCBtYWtl
Q3JlZGVudGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRBc3NlcnRpb25SZXBseSh1aW50NjRfdCBtZXNz
YWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY3JlZGVudGlhbElkLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25h
dHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1c2VySGFuZGxlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5
KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCkgPSAwOwogCiAgICAgYXV0byYgd2Vha1B0ckZhY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9CiAKQEAgLTkwLDYgKzkzLDggQEAg
cHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIENyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIg
dGFrZUNyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIodWludDY0X3QpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQ2NF90IGFkZFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcihSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
IHRha2VSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIodWludDY0X3QpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQ2NF90IGFkZFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIoUXVlcnlDb21wbGV0aW9uSGFu
ZGxlciYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBRdWVyeUNvbXBsZXRpb25IYW5kbGVyIHRha2VR
dWVyeUNvbXBsZXRpb25IYW5kbGVyKHVpbnQ2NF90KTsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRy
RmFjdG9yeTxDcmVkZW50aWFsc01lc3Nlbmdlcj4gbV93ZWFrRmFjdG9yeTsKQEAgLTEwMyw2ICsx
MDgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fYWNjdW11bGF0ZWRNZXNzYWdlSWQgeyAx
IH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlcj4gbV9w
ZW5kaW5nQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyPiBtX3BlbmRpbmdSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXJzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXI+IG1fcGVu
ZGluZ1F1ZXJ5Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKIAogLy8gRklYTUU6IFdlIHNob3VsZG4n
dCBleHBvc2UgdGhpcyBpbnRvIHRoZSBtZXNzZW5nZXIuIFNpbmNlIHRoZSByZWNlaXZlcnMgY2Fu
IG9ubHkgYmUgcGFzc2VkIHdpdGggY29uc3QgcmVmZXJlbmNlcywgd2UgY291bGRuJ3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKaW5kZXggYzdmYjE0ZmRmMTAzNjJkOGIzMzMyNjEzMWRmYjNlYWQ3YTQ1N2EzZi4u
ZTIyYzQ5Mzk3NDE2ODk3NTJjN2M2MDJjYzkzNWIwZGI4NzM0YmZmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZS5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgiCiAjaW5jbHVkZSAi
SlNCYXNpY0NyZWRlbnRpYWwuaCIKLSNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmgiCkBAIC04MywxMyArODIsMTMgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90
PiBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNvbnN0IEFycmF5QnVmZmVyJiBjbGllbnREYXRh
SnMKIH0KIAogLy8gRklYTUUoMTgxOTQ3KTogV2Ugc2hvdWxkIHByb2JhYmx5IHRyaW0gdGltZU91
dEluTXMgdG8gc29tZSBtYXggYWxsb3dhYmxlIG51bWJlci4KLXN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8VGltZXI+IGluaXRUaW1lb3V0VGltZXIoc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0
aW1lT3V0SW5NcywgY29uc3QgUmVmPERlZmVycmVkUHJvbWlzZT4mIHByb21pc2UpCitzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBpbml0VGltZW91dFRpbWVyKHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQgbG9uZz4gdGltZU91dEluTXMsIGNvbnN0IENyZWRlbnRpYWxQcm9taXNlJiBwcm9taXNl
KQogewogICAgIGlmICghdGltZU91dEluTXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgYXV0byB0aW1lciA9IHN0ZDo6bWFrZV91bmlxdWU8VGltZXI+KFtwcm9taXNlID0gcHJvbWlz
ZS5jb3B5UmVmKCldICgpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gdGltZWQgb3V0LiIpIH0pOwor
ICAgIGF1dG8gdGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPihbcHJvbWlzZSA9IHByb21p
c2VdICgpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RB
bGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIHRpbWVkIG91dC4iKSB9KTsKICAg
ICB9KTsKICAgICB0aW1lci0+c3RhcnRPbmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
KnRpbWVPdXRJbk1zKSk7CiAgICAgcmV0dXJuIHRpbWVyOwpAQCAtMTE5LDcgKzExOCw3IEBAIHZv
aWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnNldE1lc3NlbmdlcihDcmVkZW50aWFsc01lc3Nlbmdl
ciYgbWVzc2VuZ2VyKQogICAgIG1fbWVzc2VuZ2VyID0gbWFrZVdlYWtQdHIobWVzc2VuZ2VyKTsK
IH0KIAotdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMmIG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9ydFNp
Z25hbD4mJiBhYm9ydFNpZ25hbCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKSBjb25z
dAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
IG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9ydFNpZ25h
bD4mJiBhYm9ydFNpZ25hbCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAogewog
ICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsOwogCkBAIC0x
MjgsNyArMTI3LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBTdGVwIDEsIDMs
IDE2IGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgogICAgIGlmICgh
c2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBk
b2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iKSB9KTsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCBBU0NJSUxpdGVyYWwo
IlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0
b3JzLiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDAsNyArMTM5LDcgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBj
YWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBTdGVwIDYgaXMgdGhlcmVmb3JlIHNraXBw
ZWQuIEFsc28sIHdlIGxhY2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkb21h
aW4gaXMgYSByZWdpc3RyYWJsZQogICAgIC8vIGRvbWFpbiBzdWZmaXggb2YgYW5vdGhlciBkb21h
aW4uIEhlbmNlIHJlc3RyaWN0IHRoZSBjb21wYXJpc29uIHRvIGVxdWFsIGluIFN0ZXAgNy4KICAg
ICBpZiAoIW9wdGlvbnMucnAuaWQuaXNFbXB0eSgpICYmIGNhbGxlck9yaWdpbi5ob3N0KCkgIT0g
b3B0aW9ucy5ycC5pZCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgU2Vj
dXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBu
b3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRlZCBSUCBJRC4iKSB9
KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgQVND
SUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJs
ZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRlZCBSUCBJRC4iKSB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBpZiAob3B0aW9ucy5ycC5pZC5pc0VtcHR5KCkpCkBAIC0xNTAsNyAr
MTQ5LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBNb3N0IG9mIHRoZSBqb2Jz
IGFyZSBkb25lIGJ5IGJpbmRpbmdzLiBIb3dldmVyLCB3ZSBjYW4ndCBrbm93IGlmIHRoZSBKU1Zh
bHVlIG9mIG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcwogICAgIC8vIGlzIGVtcHR5IG9yIG5vdC4g
UmV0dXJuIE5vdFN1cHBvcnRlZEVycm9yIGFzIGxvbmcgYXMgaXQgaXMgZW1wdHkuCiAgICAgaWYg
KG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGRl
c2lyZWQgcHJvcGVydGllcyBvZiB0aGUgdG8gYmUgY3JlYXRlZCBjcmVkZW50aWFsIGFyZSBwcm92
aWRlZC4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gZGVzaXJlZCBwcm9wZXJ0aWVzIG9mIHRoZSB0byBi
ZSBjcmVhdGVkIGNyZWRlbnRpYWwgYXJlIHByb3ZpZGVkLiIpIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xNjMsNyArMTYyLDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAg
ICAvLyBBbHNvLCByZXNpZGVudCBrZXlzLCB1c2VyIHZlcmlmaWNhdGlvbnMgYW5kIGRpcmVjdCBh
dHRlc3RhdGlvbiBhcmUgZW5mb3JjZWQgYXQgdGhpcyB0YWdlLgogICAgIC8vIEZvciBiZXR0ZXIg
cGVyZm9ybWFuY2UsIG5vIGZpbHRlcmluZyBpcyBkb25lIGhlcmUgcmVnYXJkaW5nIHRvIG9wdGlv
bnMuZXhjbHVkZUNyZWRlbnRpYWxzLgogICAgIGlmICghbV9tZXNzZW5nZXIpICB7Ci0gICAgICAg
IHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
VW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE3MSwyMiArMTcwLDIyIEBA
IHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYg
Y2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAgICAgICAgIGlmIChkaWRUaW1lb3V0VGltZXJGaXJl
KHRpbWVvdXRUaW1lci5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChh
Ym9ydFNpZ25hbCAmJiBhYm9ydFNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVk
IGJ5IEFib3J0U2lnbmFsLiIpIH0pOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIp
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQuZXhj
ZXB0aW9uKCkpOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LmV4Y2VwdGlvbigp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gYnVuZGxl
ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBwcm9taXNlLT5yZXNvbHZl
PElETE51bGxhYmxlPElETEludGVyZmFjZTxCYXNpY0NyZWRlbnRpYWw+Pj4oUHVibGljS2V5Q3Jl
ZGVudGlhbDo6Y3JlYXRlKFdURk1vdmUoYnVuZGxlLmNyZWRlbnRpYWxJZCksIEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShjbGllbnREYXRhSnNvbiksIEFy
cmF5QnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuYXR0ZXN0YXRpb25PYmplY3QpKSkpLnB0
cigpKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0
ZShXVEZNb3ZlKGJ1bmRsZS5jcmVkZW50aWFsSWQpLCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpzb24pLCBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKFdURk1vdmUoYnVuZGxlLmF0dGVzdGF0aW9uT2JqZWN0KSkpKS5wdHIoKSk7CiAgICAgfTsK
ICAgICAvLyBBc3luYyBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5kbGVkIGluIHRo
ZSBtZXNzZW5nZXIuCiAgICAgbV9tZXNzZW5nZXItPm1ha2VDcmVkZW50aWFsKGNsaWVudERhdGFK
c29uSGFzaCwgb3B0aW9ucywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBT
ZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmIG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0
cjxBYm9ydFNpZ25hbD4mJiBhYm9ydFNpZ25hbCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKSBjb25zdAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJu
YWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGxlck9yaWdpbiwgY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRo
QW5jZXN0b3JzLCBSZWZQdHI8QWJvcnRTaWduYWw+JiYgYWJvcnRTaWduYWwsIENyZWRlbnRpYWxQ
cm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGlj
YXRvck1hbmFnZXJJbnRlcm5hbDsKIApAQCAtMTk1LDcgKzE5NCw3IEBAIHZvaWQgQXV0aGVudGlj
YXRvck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBjYWxsCiAgICAgLy8gU3RlcCAxLCAzLCAxMyBhcmUgaGFuZGxlZCBieSB0aGUgY2FsbGVy
LgogICAgIC8vIFN0ZXAgMi4KICAgICBpZiAoIXNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBp
cyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iKSB9KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjA3LDcgKzIwNiw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsCiAgICAg
Ly8gU3RlcCA2IGlzIHRoZXJlZm9yZSBza2lwcGVkLiBBbHNvLCB3ZSBsYWNrIHRoZSBzdXBwb3J0
IHRvIGRldGVybWluZSB3aGV0aGVyIGEgZG9tYWluIGlzIGEgcmVnaXN0cmFibGUKICAgICAvLyBk
b21haW4gc3VmZml4IG9mIGFub3RoZXIgZG9tYWluLiBIZW5jZSByZXN0cmljdCB0aGUgY29tcGFy
aXNvbiB0byBlcXVhbCBpbiBTdGVwIDcuCiAgICAgaWYgKCFvcHRpb25zLnJwSWQuaXNFbXB0eSgp
ICYmIGNhbGxlck9yaWdpbi5ob3N0KCkgIT0gb3B0aW9ucy5ycElkKSB7Ci0gICAgICAgIHByb21p
c2UtPnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIlRoZSBv
cmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRvbWFpbiBzdWZmaXgg
b2YgdGhlIHByb3ZpZGVkIFJQIElELiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIlRoZSBvcmlnaW4gb2YgdGhlIGRv
Y3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRvbWFpbiBzdWZmaXggb2YgdGhlIHByb3ZpZGVk
IFJQIElELiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChvcHRpb25zLnJw
SWQuaXNFbXB0eSgpKQpAQCAtMjIyLDcgKzIyMSw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFn
ZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxs
CiAgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJpZmljYXRpb25zIGFuZCBkaXJl
Y3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFnZS4KICAgICAvLyBGb3IgYmV0
dGVyIHBlcmZvcm1hbmNlLCBubyBmaWx0ZXJpbmcgaXMgZG9uZSBoZXJlIHJlZ2FyZGluZyB0byBv
cHRpb25zLmFsbG93Q3JlZGVudGlhbHMuCiAgICAgaWYgKCFtX21lc3NlbmdlcikgIHsKLSAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJVbmtub3duIGludGVybmFsIGVycm9yLiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBl
cnJvci4iKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMwLDIxICsyMjksMzkg
QEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGwKICAgICAgICAgaWYgKGRpZFRpbWVvdXRUaW1lckZp
cmUodGltZW91dFRpbWVyLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KGFib3J0U2lnbmFsICYmIGFib3J0U2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0
ZWQgYnkgQWJvcnRTaWduYWwuIikgfSk7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0ZWQgYnkgQWJvcnRTaWduYWwu
IikgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5l
eGNlcHRpb24oKSk7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQuZXhjZXB0aW9u
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBidW5k
bGUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIHByb21pc2UtPnJlc29s
dmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVudGlhbD4+PihQdWJsaWNLZXlD
cmVkZW50aWFsOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuY3JlZGVudGlhbElkKSwgQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShjbGllbnREYXRhSnNvbiksIFdU
Rk1vdmUoYnVuZGxlLmF1dGhlbnRpY2F0b3JEYXRhKSwgV1RGTW92ZShidW5kbGUuc2lnbmF0dXJl
KSwgV1RGTW92ZShidW5kbGUudXNlckhhbmRsZSkpKS5wdHIoKSk7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZShQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuY3JlZGVu
dGlhbElkKSwgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShj
bGllbnREYXRhSnNvbiksIFdURk1vdmUoYnVuZGxlLmF1dGhlbnRpY2F0b3JEYXRhKSwgV1RGTW92
ZShidW5kbGUuc2lnbmF0dXJlKSwgV1RGTW92ZShidW5kbGUudXNlckhhbmRsZSkpKS5wdHIoKSk7
CiAgICAgfTsKICAgICAvLyBBc3luYyBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5k
bGVkIGluIHRoZSBtZXNzZW5nZXIuCiAgICAgbV9tZXNzZW5nZXItPmdldEFzc2VydGlvbihjbGll
bnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21p
c2UpIGNvbnN0Cit7CisgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJhdXRobi8jaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9y
QXZhaWxhYmxlCisgICAgLy8gYXMgb2YgNSBEZWNlbWJlciAyMDE3LgorICAgIGlmICghbV9tZXNz
ZW5nZXIpICB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJv
ciwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGludGVybmFsIGVycm9yLiIpIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUUoMTgyNzY3KTogV2Ugc2hvdWxkIGNvbnNpZGVy
IG1vcmUgb24gdGhlIGFzc2Vzc21lbnQgb2YgdGhlIHJldHVybiB2YWx1ZS4gUmlnaHQgbm93LCB3
ZSByZXR1cm4gdHJ1ZS9mYWxzZQorICAgIC8vIGltbWVkaWF0ZWx5IGFjY29yZGluZyB0byBwbGF0
Zm9ybSBzcGVjaWZpYyBwcm9jZWR1cmVzLgorICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIHByb21pc2UucmVzb2x2ZShyZXN1bHQpOworICAgIH07CisgICAgLy8gQXN5bmMgb3BlcmF0
aW9uIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5kbGVkIGluIHRoZSBtZXNzZW5nZXIuCisgICAgbV9t
ZXNzZW5nZXItPmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggMTc0NTczNDE3
NGVkMDJiOWQ3NzFlYmQwN2ZiN2Y5ZTI0NDBlYWIzMi4uNjM3Mjc2ZGRlNjc4YzIzYjBjOTIxOThk
MWZmNzlkYWIzNWY2Y2E1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMzQsMTMgKzM1LDE1IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEFib3J0U2lnbmFsOworY2xhc3MgQmFzaWNDcmVkZW50aWFsOwogY2xh
c3MgQ3JlZGVudGlhbHNNZXNzZW5nZXI7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOwogCit1c2luZyBD
cmVkZW50aWFsUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRl
cmZhY2U8QmFzaWNDcmVkZW50aWFsPj4+OworCiBjbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvck1hbmFnZXIpOwogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxBdXRoZW50aWNhdG9yTWFuYWdlcj47CkBAIC00OSw4
ICs1Miw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lc3NlbmdlcihD
cmVkZW50aWFsc01lc3NlbmdlciYpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGlt
cGxlbWVudCBzdGF0aWMgbWV0aG9kcyBvZiBQdWJsaWNLZXlDcmVkZW50aWFsLgotICAgIHZvaWQg
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9y
dFNpZ25hbD4mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNj
b3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3Rv
cnMsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7
CisgICAgdm9pZCBjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycywg
UmVmUHRyPEFib3J0U2lnbmFsPiYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBjb25zdDsKKyAgICB2
b2lkIGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2luV2l0
aEFuY2VzdG9ycywgUmVmUHRyPEFib3J0U2lnbmFsPiYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBj
b25zdDsKKyAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgQXV0aGVudGljYXRvck1hbmFnZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAppbmRl
eCAxMzZlNWY3YzdlMmJiYTRiYjBlZjczMmIxZmUwYTU1ZWM3MTkxY2JhLi4xMTJmNDBhNjM0MmY2
MmM3NmM1NDY1YmZlYWU4YzdiYzU2NWU3YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9y
TWFuYWdlci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQmFzZTY0Lmg+CiAKQEAgLTQ1LDkgKzQ2LDkgQEAgRXhjZXB0aW9uT3I8Ym9vbD4g
UHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiB9CiAKLXZvaWQgUHVi
bGljS2V5Q3JlZGVudGlhbDo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgUHVibGljS2V5Q3Jl
ZGVudGlhbDo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERP
TVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCiB7Ci0gICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgIEF1dGhlbnRpY2F0
b3JNYW5hZ2VyOjpzaW5nbGV0b24oKS5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0
b3JBdmFpbGFibGUoV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmgKaW5kZXggMDMzZGQyMzY2NDc0ZTg1NzZlZDRmNDI4NmE5MTE4ODgwYjU3ZWY4
My4uZmRlZGM1ODliMzAzNDExNTdkYWUzYmI3YmFhNDI3NGZiNmZhOWJhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgK
QEAgLTI5LDEzICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiQmFzaWNDcmVkZW50aWFsLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yUmVz
cG9uc2U7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7CiAKIGNsYXNzIFB1YmxpY0tleUNyZWRlbnRp
YWwgZmluYWwgOiBwdWJsaWMgQmFzaWNDcmVkZW50aWFsIHsKIHB1YmxpYzoKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogICAgIC8vIE5vdCBzdXBwb3J0IHlldC4gQWx3YXlzIHRocm93cy4KICAg
ICBFeGNlcHRpb25Pcjxib29sPiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29uc3Q7CiAK
LSAgICBzdGF0aWMgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgc3RhdGljIHZvaWQgaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJ
RExCb29sZWFuPiYmKTsKIAogcHJpdmF0ZToKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsKFJlZlB0
cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5j
cHAKaW5kZXggMmI0ZDFjNzA0ODE1YTg3NjJjZDgzYWQ4NTYyZjRhY2M0OTNjZGRlZC4uNjk5Y2Qw
Y2Y0N2RiNjlhYjQxYWZjMjBiZDY5YTEyZjY4MmIyZmYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcApAQCAtMTE3LDYgKzEx
NywxNiBAQCB2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nlbmdlcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFB1YmxpYwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCit2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nlbmdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQoreworICAgIGF1dG8gbWVzc2FnZUlkID0gYWRkUXVlcnlDb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBpZiAobV9kaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yUHJlc2VudCkgeworICAgICAgICBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGVSZXBseShtZXNzYWdlSWQsIHRydWUpOworICAgICAgICBtX2RpZFVz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JQcmVzZW50ID0gZmFsc2U7CisgICAgfSBl
bHNlCisgICAgICAgIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJs
ZVJlcGx5KG1lc3NhZ2VJZCwgZmFsc2UpOworfQorCiB2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nl
bmdlcjo6bWFrZUNyZWRlbnRpYWxSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYXR0ZXN0YXRpb25PYmplY3QpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gdGFr
ZUNyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIobWVzc2FnZUlkKTsKQEAgLTEyOSw2ICsxMzksMTIg
QEAgdm9pZCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmdldEFzc2VydGlvblJlcGx5KHVpbnQ2
NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG8KICAgICBoYW5kbGVyKEFzc2VydGlvblJldHVybkJ1
bmRsZShBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJ
ZC5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhlbnRpY2F0b3JEYXRhLmRhdGEoKSwg
YXV0aGVudGljYXRvckRhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWduYXR1cmUu
ZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZSh1c2VySGFuZGxl
LmRhdGEoKSwgdXNlckhhbmRsZS5zaXplKCkpKSk7CiB9CiAKK3ZvaWQgTW9ja0NyZWRlbnRpYWxz
TWVzc2VuZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVS
ZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wgcmVzdWx0KQoreworICAgIGF1dG8gaGFuZGxl
ciA9IHRha2VRdWVyeUNvbXBsZXRpb25IYW5kbGVyKG1lc3NhZ2VJZCk7CisgICAgaGFuZGxlcihy
ZXN1bHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxz
TWVzc2VuZ2VyLmgKaW5kZXggOWUzODkyYWY0YWViNGFjNTA1YjExNmQ2YzJlMTdhMTllMzQ0MjRl
Mi4uYjNhNTliNjc2NGJhZDRhYTQ1MTY3MTEzYWEzMmZjMGY3OGM4OGFiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oCkBAIC00Miw2
ICs0Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGlkVGltZU91dCgpIHsgbV9kaWRUaW1l
T3V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0RGlkVXNlckNhbmNlbCgpIHsgbV9kaWRVc2VyQ2Fu
Y2VsID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0RGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvclByZXNlbnQoKSB7IG1fZGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
clByZXNlbnQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRBdHRlc3RhdGlvbk9iamVjdChjb25zdCBC
dWZmZXJTb3VyY2UmKTsKICAgICB2b2lkIHNldEFzc2VydGlvblJldHVybkJ1bmRsZShjb25zdCBC
dWZmZXJTb3VyY2UmIGNyZWRlbnRpYWxJZCwgY29uc3QgQnVmZmVyU291cmNlJiBhdXRoZW50aWNh
dG9yRGF0YSwgY29uc3QgQnVmZmVyU291cmNlJiBzaWduYXR1cmUsIGNvbnN0IEJ1ZmZlclNvdXJj
ZSYgdXNlckhhbmRsZSk7CiAKQEAgLTUxLDEzICs1MiwxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIENyZWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBSZXF1ZXN0
Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mKSBmaW5hbDsKICAgICB2b2lkIGdldEFzc2VydGlvblJlcGx5KHVp
bnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpIGZpbmFs
OworICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxl
UmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBib29sKSBmaW5hbDsKIAogICAgIEludGVybmFscyYg
bV9pbnRlcm5hbHM7CiAgICAgLy8gQWxsIGZvbGxvd2luZyBmaWVsZHMgYXJlIGRpc3Bvc2FibGUu
CiAgICAgYm9vbCBtX2RpZFRpbWVPdXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRVc2VyQ2Fu
Y2VsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvclByZXNlbnQgeyBmYWxzZSB9OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F0dGVzdGF0
aW9uT2JqZWN0OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2NyZWRlbnRpYWxJZDsKICAgICBWZWN0
b3I8dWludDhfdD4gbV9hdXRoZW50aWNhdG9yRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbAppbmRleCAxZjQyNDQ0ZTBlZWNi
NzdjMWViNzY5N2RkZmJmYjI1MmMwMWFjNjc1Li4wMzcxNjIzMzMwYWRlMWYxNzA5ZTc0YmE5ZWMx
YjRmZjVmNjA5ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVk
ZW50aWFsc01lc3Nlbmdlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIuaWRsCkBAIC0yOSw2ICsyOSw3IEBACiBdIGludGVyZmFjZSBNb2Nr
Q3JlZGVudGlhbHNNZXNzZW5nZXIgewogICAgIHZvaWQgc2V0RGlkVGltZU91dCgpOwogICAgIHZv
aWQgc2V0RGlkVXNlckNhbmNlbCgpOworICAgIHZvaWQgc2V0RGlkVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvclByZXNlbnQoKTsKICAgICB2b2lkIHNldEF0dGVzdGF0aW9uT2JqZWN0
KEJ1ZmZlclNvdXJjZSBhdHRlc3RhdGlvbk9iamVjdCk7CiAgICAgdm9pZCBzZXRBc3NlcnRpb25S
ZXR1cm5CdW5kbGUoQnVmZmVyU291cmNlIGNyZWRlbnRpYWxJZCwgQnVmZmVyU291cmNlIGF1dGhl
bnRpY2F0b3JEYXRhLCBCdWZmZXJTb3VyY2Ugc2lnbmF0dXJlLCBCdWZmZXJTb3VyY2UgdXNlckhh
bmRsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlh
bE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5LmNwcAppbmRleCBkNmJkYzFiYWZmZWRiYzY0ZTk4NWQ5ZGU4NzBiZGRhYzJhYWI5ZWJj
Li40N2Q1ZDdjNThjODQ3YzE5ZWY1NjJlYzA5ZTVmNDA2YjhlYmQ0ZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50
aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcApAQCAtNTAsMTAg
KzUwLDIwIEBAIHZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6bWFrZUNyZWRlbnRp
YWwodWludDY0X3QpCiB7CiB9CiAKK3ZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKHVpbnQ2NF90IG1l
c3NhZ2VJZCkKK3sKKyAgICBwbGF0Zm9ybUlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZShtZXNzYWdlSWQpOworfQorCiB2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHk6OmdldEFzc2VydGlvbih1aW50NjRfdCkKIHsKIH0KIAordm9pZCBXZWJDcmVkZW50
aWFsc01lc3NlbmdlclByb3h5Ojppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGVSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wgcmVzdWx0KQoreworICAgIG1f
d2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjpJc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseShtZXNzYWdlSWQs
IHJlc3VsdCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50
aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5LmgKaW5kZXggZWFmZmE4MTQ3MzBkMzQxN2E1MGRmMjUxZjRmNGIzOTkzNjkxZWE0MC4u
YTI2NmEzZTNkZDFhOWQ2MjgxM2QxYWU5MDEwYzU0OWY2ZWMwMjZkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxN
YW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaApAQCAtNDUsNiArNDUsMTUg
QEAgcHJpdmF0ZToKICAgICAvLyBSZWNlaXZlcnMuCiAgICAgdm9pZCBtYWtlQ3JlZGVudGlhbCh1
aW50NjRfdCBtZXNzYWdlSWQpOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3Nh
Z2VJZCk7CisgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUodWludDY0X3QgbWVzc2FnZUlkKTsKKworICAgIC8vIFNlbmRlcnMuCisgICAgdm9pZCBp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSh1aW50NjRf
dCBtZXNzYWdlSWQsIGJvb2wpOworCisgICAgLy8gUGxhdGZvcm0gc3BlY2lmaWMgcHJvY2VkdXJl
cy4KKyAgICAvLyBGSVhNRSgxODI3NjgpOiBNaWdodCBjaGFuZ2UgdG8gc29tZSBmb3JtcyBvZiBk
ZWxlZ2F0ZXMgbGF0ZXIgb24uCisgICAgLy8gRklYTUUoMTgyNzY5KTogRmlndXJlIG91dCBhIHdh
eSB0byBhdXRvLXRlc3QgdGhlIGZvbGxvd2luZ3MuCisgICAgdm9pZCBwbGF0Zm9ybUlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQp
OwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3Jl
ZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBmZWU1OWZmMTVmZTE3Zjk3ODBjN2I5MTUxZTc4NDVjMTI5OTUzYjk2Li42YmMwZTk5
YTdjYWVlNGE5NzU5M2I2ZjQ3YmYxZjAxY2E2ODUwODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRp
YWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eSB7
CiAKICAgICBNYWtlQ3JlZGVudGlhbCh1aW50NjRfdCBtZXNzYWdlSWQpOwogICAgIEdldEFzc2Vy
dGlvbih1aW50NjRfdCBtZXNzYWdlSWQpOworICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L2Nv
Y29hL1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L2NvY29hL1dlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHlDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTM4ODVhMDI5YTMxY2QwODYyMmJlYmZmNTQ1
YjhjYjdkYWE1MzRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q3JlZGVudGlhbE1hbmFnZW1lbnQvY29jb2EvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eUNv
Y29hLm1tCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbXBvcnQgPExvY2FsQXV0aGVudGljYXRpb24vTG9jYWxBdXRoZW50aWNh
dGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5OjpwbGF0Zm9ybUlzVXNlclZlcmlm
eWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQpCit7
CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHROUyhbW0xBQ29udGV4dCBhbGxvY10gaW5pdF0pOwor
ICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworCisgICAgaWYgKFtjb250ZXh0IGNhbkV2YWx1YXRl
UG9saWN5OkxBUG9saWN5RGV2aWNlT3duZXJBdXRoZW50aWNhdGlvbldpdGhCaW9tZXRyaWNzIGVy
cm9yOiZlcnJvcl0pCisgICAgICAgIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZVJlcGx5KG1lc3NhZ2VJZCwgdHJ1ZSk7CisgICAgZWxzZSB7CisgICAgICAgIExP
R19FUlJPUigiQ291bGRuJ3QgZXZhbHVhdGUgYXV0aGVudGljYXRpb24gd2l0aCBiaW9tZXRyaWNz
IHBvbGljeTogJUAiLCBlcnJvcik7CisgICAgICAgIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KG1lc3NhZ2VJZCwgZmFsc2UpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGVj
NWVhNzY3YjM2OTZiNjJjOWZhYWVjYmEyNzRhZDM1YjNjMDE2NS4uOGExMDMwYmQyY2RhYzBlNzcz
YWM4ZmI4YTlhZjU4N2Y3OGI5NjFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjA5LDEyICsxMjA5LDE0IEBACiAJCTUzQkE0N0Qw
MURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ2MURDMkVFNDAwMDlENDhD
RiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDExREMyRUY1RTAw
NERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3Jr
RGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzREVBMzY2MURERTQyMzEwMEU4MjY0OCAvKiBqc29u
LmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzREVB
MzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLzsgfTsKKwkJNTc1MEYzMkIyMDMyRDRF
NTAwMzg5MzQ3IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1MEYzMkEyMDMyRDRFNTAwMzg5
MzQ3IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQk1NzYwODI4RTIw
Mjk4OTVFMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2MDgyOEMyMDI5ODU0MjAwMTE2
Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcCAqLzsgfTsKIAkJNTc2MDgyOTgyMDJC
RDhCQTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2MDgyOTYyMDJCRDhCQTAw
MTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwICovOyB9OwogCQk1NzYw
ODI5QzIwMkQyQzNDMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc2MDgyOTAyMDI5OEZCRDAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTc2MDgyOUQyMDJEMkM0MDAwMTE2Njc4IC8qIFdlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4MjhGMjAyOThGQkQwMDExNjY3OCAvKiBXZWJDcmVkZW50
aWFsc01lc3Nlbmdlck1lc3NhZ2VzLmggKi87IH07CiAJCTU3NjA4MjlFMjAyRDJDNDMwMDExNjY3
OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4MjlBMjAyQkVF
NUEwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJNTc2MDgyOUYyMDJEMkM0NjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc2MDgyOUIyMDJCRUU1QTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQk1N0I5MEFBRDIwMzYzN0Y0MDAwRTYx
RkEgLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCOTBBQUMyMDM2MzdGNDAwMEU2MUZB
IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbSAqLzsgfTsKIAkJNUMwQjE3
NzgxRTdDODgwRTAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3
NzQxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1QzBCMTc3QzFFN0M4ODU0MDBFOTEyM0MgLyogV2Vi
U29ja2V0U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMEIxNzdBMUU3Qzg4NEYwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW0uY3BwICov
OyB9OwpAQCAtMzYzNiw2ICszNjM4LDcgQEAKIAkJNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8q
IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1
NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBwYXRoID0gTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyoganNvbi5ocHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzUwRjMyQTIwMzJE
NEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9
IFNES1JPT1Q7IH07CiAJCTU3NjA4MjhCMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFs
c01lc3Nlbmdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyog
V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzYwODI4
RDIwMjk4N0U2MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zNjQ2LDYgKzM2NDksNyBAQAogCQk1NzYwODI5OTIwMkJEQUUyMDAx
MTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzYwODI5QTIwMkJFRTVBMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
cmVkZW50aWFsc01lc3NlbmdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOUIyMDJCRUU1QTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRp
YWxzTWVzc2VuZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTdCOTBBQUMyMDM2MzdGNDAwMEU2MUZBIC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUMwQjE3NzQxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29y
a1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMEIxNzc2MUU3
Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MTgsNiArNDcyMiw3
IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkzNzY2RjlFRTE4OUExMjQxMDAzQ0YxOUIgLyogSmF2YVNj
cmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMzc2NkY5RjExODlBMTI1
NDAwM0NGMTlCIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQk1NzUw
RjMyQjIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLywKIAkJCQkzNzY2RjlFRjE4OUExMjQ0MDAzQ0YxOUIgLyogUXVhcnR6Q29y
ZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkzNzY5NDUyNTE4NEZDNkI2MDBDREUy
MUYgLyogU2VjdXJpdHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMzdCRUM0REQx
OTQ4RkM2QTAwOEI0Mjg2IC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCkBA
IC00ODEwLDYgKzQ4MTUsNyBAQAogCQkJCTFBNEY5NzY5MTAwRTdCNjYwMDYzN0ExOCAvKiBDb25m
aWd1cmF0aW9ucyAqLywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRXh0ZXJuYWwg
RnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzICovLAogCQkJCTAzNDc2OERGRkYzOEE1MDQxMURCOUM4
QiAvKiBQcm9kdWN0cyAqLywKKwkJCQk1NzUwRjMyOTIwMzJENEUzMDAzODkzNDcgLyogRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQluYW1lID0gV2ViS2l0MjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC02Njk4LDYgKzY3MDQsMTQgQEAKIAkJCW5hbWUgPSBjYXB0dXJlOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTc1MEYzMjkyMDMyRDRFMzAwMzg5MzQ3IC8q
IEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTU3NTBGMzJBMjAzMkQ0RTUwMDM4OTM0NyAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1l
d29yayAqLywKKwkJCSk7CisJCQluYW1lID0gRnJhbWV3b3JrczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBDcmVkZW50aWFs
TWFuYWdlbWVudCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC02NzExLDYgKzY3MjUsNyBAQAogCQk1NzYwODI5NDIwMkJEODQ5MDAxMTY2NzggLyogQ3JlZGVu
dGlhbE1hbmFnZW1lbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTU3QjkwQUFCMjAzNjM3NTgwMDBFNjFGQSAvKiBjb2NvYSAqLywKIAkJCQk1NzYwODI5
NjIwMkJEOEJBMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHAgKi8s
CiAJCQkJNTc2MDgyOTUyMDJCRDhCQTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2Vy
UHJveHkuaCAqLywKIAkJCQk1NzYwODI5OTIwMkJEQUUyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKQEAgLTY3MTgsNiArNjczMywxNCBAQAog
CQkJcGF0aCA9IENyZWRlbnRpYWxNYW5hZ2VtZW50OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJNTdCOTBBQUIyMDM2Mzc1ODAwMEU2MUZBIC8qIGNvY29hICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1N0I5MEFBQzIwMzYzN0Y0MDAw
RTYxRkEgLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eUNvY29hLm1tICovLAorCQkJKTsK
KwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTVD
MTQyNkYxMUMyM0Y4MTcwMEQ0MTE4MyAvKiBEb3dubG9hZHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA4NDgsNiArMTA4NzEsNyBAQAogCQkJCTU3NjA4
MjhFMjAyOTg5NUUwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1NzYwODI5QzIwMkQyQzNDMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc2MDgyOTgy
MDJCRDhCQTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTdCOTBBQUQyMDM2MzdGNDAwMEU2MUZBIC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3NjA4MjlFMjAyRDJD
NDMwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQTgzRjZDMUE1QjYzRkYwMDAyNkVDNiAvKiBXZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMTlBMjZEMUExM0U4MkEw
MDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVu
dC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Q3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCmluZGV4IDM5
MzhmN2VjOTNmY2FhMGYxOWU5ZDBmMzgyNzA2NDM5ZTI3MzMxMDUuLmQxMTVhZmY4NjViZjg4Mjkz
N2NiYTk2Y2YwYWZlMGJmYzkwY2IyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyLmNwcApAQCAtNTQsNiArNTQsMTIgQEAgdm9pZCBXZWJDcmVkZW50aWFs
c01lc3Nlbmdlcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFdl
YkNvcmUKIHsKIH0KIAordm9pZCBXZWJDcmVkZW50aWFsc01lc3Nlbmdlcjo6aXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIGF1dG8gbWVzc2FnZUlkID0gYWRkUXVlcnlDb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6SXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKG1lc3NhZ2VJZCkpOworfQorCiB2b2lkIFdlYkNyZWRl
bnRpYWxzTWVzc2VuZ2VyOjptYWtlQ3JlZGVudGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JikKIHsKIH0KQEAgLTYyLDYgKzY4LDEzIEBAIHZvaWQgV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmdldEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJ
ZCwgY29uc3QgVmVjdG9yCiB7CiB9CiAKK3ZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6Omlz
VXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KHVpbnQ2NF90
IG1lc3NhZ2VJZCwgYm9vbCByZXN1bHQpCit7CisgICAgYXV0byBoYW5kbGVyID0gdGFrZVF1ZXJ5
Q29tcGxldGlvbkhhbmRsZXIobWVzc2FnZUlkKTsKKyAgICBoYW5kbGVyKHJlc3VsdCk7Cit9CisK
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50
L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3Jl
ZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAppbmRleCA0ZDVmNmJk
YmM3OTJhMmFjNDE5ZjA2OTk3MzZjYTI5YmY4NjhhY2IwLi42ZGUwYjBlNWEyZWJkNGJmMTM1ZWRi
NTE2MDc1OTUyYjkwYjUxZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Q3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXIuaApAQCAtNDQsMTAgKzQ0LDEyIEBAIHByaXZhdGU6CiAgICAgLy8gc2VuZGVyCiAg
ICAgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgV2ViQ29yZTo6Q3JlYXRp
b25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGdldEFzc2VydGlvbihjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6OlJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSBm
aW5hbDsKKyAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZShXZWJDb3JlOjpRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogCiAgICAgLy8g
cmVjZWl2ZXIKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsUmVwbHkodWludDY0X3QgbWVzc2FnZUlk
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mKSBmaW5hbDsKICAgICB2b2lkIGdldEFzc2VydGlvblJl
cGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFs
SWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUp
IGZpbmFsOworICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBib29sKSBmaW5hbDsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFn
ZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW4KaW5kZXggM2EyYzg1ZDQz
MGQxODE2MTViNjZjZjY3ZGIwYWJiOTdjODlmNzVmMC4uM2FiMTExNjJmOTQ5NWI3YWI5MGEwMTc3
ZDM2NmZlYTI4N2E4YjdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Ny
ZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVk
ZW50aWFsc01lc3Nlbmdlci5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksOCBAQCBtZXNzYWdlcyAt
PiBXZWJDcmVkZW50aWFsc01lc3NlbmdlciB7CiAgICAgRXhjZXB0aW9uUmVwbHkodWludDY0X3Qg
bWVzc2FnZUlkLCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pOwogICAg
IE1ha2VDcmVkZW50aWFsUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBWZWN0b3I8dWludDhfdD4g
YXR0ZXN0YXRpb25PYmplY3QpOwogICAgIEdldEFzc2VydGlvblJlcGx5KHVpbnQ2NF90IG1lc3Nh
Z2VJZCwgVmVjdG9yPHVpbnQ4X3Q+IGNyZWRlbnRpYWxJZCwgVmVjdG9yPHVpbnQ4X3Q+IGF1dGhl
bnRpY2F0b3JEYXRhLCBWZWN0b3I8dWludDhfdD4gc2lnbmF0dXJlLCBWZWN0b3I8dWludDhfdD4g
dXNlckhhbmRsZSk7CisgICAgSXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBib29sIHJlc3VsdCk7CitleGNlcHRpb25S
ZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4
Y2VwdGlvbik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU5OGRjNTA5MmYxYzg2YzAzY2ZmNDM4OWJm
YWFiNDA3ZDUwOGFkYTguLjAxZjIyNDcxODljNjBlMGUyNTRkZjY0OGZkYzkwZmVjMWM1YmMzMjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wMi0xMyAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wbGVtZW50IFB1YmxpY0tleUNy
ZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjc3MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk5ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1p
cy11c2VyLXZlcmlmeWluZy1wbGF0Zm9ybS1hdXRoZW50aWNhdG9yLWF2YWlsYWJsZS5odG1sOiBB
ZGRlZC4KKwogMjAxOC0wMi0xNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWJBdXRoTl0gUmV2aXNpdCB0aGUgd2hvbGUgYXN5bmMgbW9kZWwgb2YgdGFz
ayBkaXNwYXRjaGluZywgdGltZW91dCBhbmQgYWJvcnRpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxhdGZv
cm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1pcy11c2VyLXZlcmlmeWluZy1wbGF0Zm9ybS1hdXRo
ZW50aWNhdG9yLWF2YWlsYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYyYTIxNmVmM2Vh
MzNmOGQwYzFjYzFhZWI2MTNjM2NlNzFhMWI0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxhdGZv
cm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
CitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50
aWNhdG9yQXZhaWxhYmxlKCkgd2l0aG91dCBhbnkgYXZhaWxhYmxlIGF1dGhlbnRpY2F0b3JzLiAK
K1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRp
Y2F0b3JBdmFpbGFibGUoKSB3aXRoIGF2YWlsYWJsZSBhdXRoZW50aWNhdG9ycy4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12
ZXJpZnlpbmctcGxhdGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxhdGZv
cm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYThlNTM0NTk2MGY5
ZDRjNjI2NGVkYWMzOTkxZDIyMDU1NGVmZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1pcy11c2VyLXZlcmlmeWluZy1wbGF0Zm9y
bS1hdXRoZW50aWNhdG9yLWF2YWlsYWJsZS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFB1YmxpY0tleUNyZWRlbnRp
YWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkuPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgaW50ZXJuYWxz
Lm1vY2tDcmVkZW50aWFsc01lc3NlbmdlcjsKKworICAgICAgICByZXR1cm4gUHVibGljS2V5Q3Jl
ZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQs
IGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgd2l0aG91dCBhbnkgYXZh
aWxhYmxlIGF1dGhlbnRpY2F0b3JzLiIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgICAgaW50ZXJuYWxzLm1vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5zZXREaWRVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yUHJlc2VudCgpOworCisgICAgICAgIHJldHVy
biBQdWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlc3VsdCwgdHJ1ZSk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVk
ZW50aWFsLmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIHdp
dGggYXZhaWxhYmxlIGF1dGhlbnRpY2F0b3JzLiIpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333970</attachid>
            <date>2018-02-15 16:52:29 -0800</date>
            <delta_ts>2018-02-16 12:43:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182771-20180215165228.patch</filename>
            <type>text/plain</type>
            <size>55835</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjNWE5ZmRkYmZmYjUz
YjJhZjk2MzJkMDk3NTE3YmFlYTgwYTJhYi4uOGNiOTBhYmM0OWY2MWFmOGNiYzc5ZjI0ODg4MmMw
NjBlNmMyYjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAyLTEzICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBs
ZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRp
Y2F0b3JBdmFpbGFibGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyNzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjQ1OTk4OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgUHVibGljS2V5Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUoKQorICAgICAgICBwZXIgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1dGhuLyNpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUgd2l0
aCBzb21lCisgICAgICAgIGxpbWl0YXRpb25zLgorCisgICAgICAgIEluIGFkZGl0aW9uLCBpdCBj
aGFuZ2VzIERlZmVycmVkUHJvbWlzZSB0byBET01Qcm9taXNlRGVmZXJyZWQ8PiBmb3IgYWxsIENy
ZWRlbnRpYWxzTWFuYWdlbWVudAorICAgICAgICBhbmQgV2ViQXV0aE4gQVBJLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxh
dGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9j
cmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6aXNDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbHNDb250
YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRDcmVhdGlvbkNvbXBsZXRpb25I
YW5kbGVyKToKKyAgICAgICAgUmVtb3ZlIGEgcmVkdW5kYW50IGFzc2VydGlvbi4KKyAgICAgICAg
KFdlYkNvcmU6OkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXIpOgorICAgICAgICBSZW1vdmUgYSByZWR1bmRhbnQgYXNzZXJ0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbHNNZXNzZW5nZXI6OnRha2VRdWVyeUNvbXBsZXRp
b25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRl
bnRpYWxzTWVzc2VuZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yTWFuYWdlcklu
dGVybmFsOjppbml0VGltZW91dFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JNYW5hZ2VyOjpjcmVhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRv
ck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbDo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6
OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KToKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oOgorICAgICAgICAqIHRl
c3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbDoKKwogMjAxOC0wMi0xNSAgWmFuIERv
YmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgSGFyZkJ1enpGYWNlOiBy
ZXdvcmsgY2FjaGUgZW50cnkgcmVmZXJlbmNlIGhvbGRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTI3YWViNjlh
N2Q1NWY4M2RhNjRhN2YxMWMxNWQwOGIzOTQyOWZhNC4uMWFkZDMxYzYxNTA4Y2RkNGU5ZmY0Yjdl
ZDk5NGI1NjE5NmFiNmM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wMi0xMyAg
Smlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0g
SW1wbGVtZW50IFB1YmxpY0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yQXZhaWxhYmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4Mjc3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY0NTk5ODg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCB1dGlsaXplcyBMb2NhbEF1dGhlbnRpY2F0aW9uIEZyYW1ld29yayB0byBkZXRlcm1pbmUgaWYg
YmlvbWV0cmljcworICAgICAgICBhcmUgZW5yb2xsZWQgb24gYSBkZXZpY2UsIHdoaWNoIGlzIHRo
ZSB1c2VyIHZlcmlmeWluZyBwbGF0Zm9ybSBhdXRoZW50aWNhdG9yLgorICAgICAgICBUbyBkbyBz
bywgaXQgbGlua3MgdGhlIGZyYW1ld29yayB0byBXZWJLaXQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OmlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZVJlcGx5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ3JlZGVudGlh
bE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9j
b2NvYS9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OnBsYXRmb3JtSXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5h
Z2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjpp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nl
bmdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIubWVzc2FnZXMuaW46CisKIDIwMTgtMDItMTUgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aE5dIFJldmlzaXQgdGhl
IHdob2xlIGFzeW5jIG1vZGVsIG9mIHRhc2sgZGlzcGF0Y2hpbmcsIHRpbWVvdXQgYW5kIGFib3J0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2Vt
ZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IGZiN2Q0NDEy
ZjkyNGU2ZmIyNWRmY2NkYjA2ODQ3Y2EwOTQ4Mjg5ODcuLmFkNjRiNjEzOWU1N2E0MzM3ZDlmZjIx
OGIzYmI0ZWE2Njc3MmIxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIu
Y3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2luY2x1ZGUg
IkFib3J0U2lnbmFsLmgiCi0jaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNs
dWRlICJDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYwLDE2ICs1OSwxNiBA
QCBib29sIENyZWRlbnRpYWxzQ29udGFpbmVyOjpkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2Vz
dG9ycygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6
OmdldChDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCit2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQog
ewogICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIv
Y3JlZGVudGlhbC1tYW5hZ2VtZW50LTEvI2FsZ29yaXRobS1yZXF1ZXN0IGFzIG9mIDQgQXVndXN0
IDIwMTcKICAgICAvLyB3aXRoIGVuaGFuY2VtZW50IGZyb20gMTQgTm92ZW1iZXIgMjAxNyBFZGl0
b3IncyBEcmFmdC4KICAgICBpZiAoIW1fZG9jdW1lbnQpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAob3B0aW9ucy5zaWduYWwgJiYgb3B0aW9ucy5zaWduYWwtPmFib3J0ZWQo
KSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVND
SUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIpIH0pOworICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0ZWQgYnkg
QWJvcnRTaWduYWwuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gU3RlcCAx
LTIuCkBAIC03OSw3ICs3OCw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmdldChDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQCiAgICAgLy8gU3Rl
cCA0LTYuIFNob3J0Y3V0IGFzIHdlIG9ubHkgc3VwcG9ydCBQdWJsaWNLZXlDcmVkZW50aWFsIHdo
aWNoIGNhbiBvbmx5CiAgICAgLy8gYmUgcmVxdWVzdGVkIGZyb20gW1tkaXNjb3ZlckZyb21FeHRl
cm5hbFNvdXJjZV1dLgogICAgIGlmICghb3B0aW9ucy5wdWJsaWNLZXkpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwo
Ik9ubHkgUHVibGljS2V5Q3JlZGVudGlhbCBpcyBzdXBwb3J0ZWQuIikgfSk7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwo
Ik9ubHkgUHVibGljS2V5Q3JlZGVudGlhbCBpcyBzdXBwb3J0ZWQuIikgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTg3LDIxICs4NiwyMSBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFp
bmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVk
UAogICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzaW5nbGV0b24oKS5kaXNjb3ZlckZyb21FeHRl
cm5hbFNvdXJjZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLnB1YmxpY0tl
eS52YWx1ZSgpLCBkb2VzSGF2ZVNhbWVPcmlnaW5Bc0l0c0FuY2VzdG9ycygpLCBXVEZNb3ZlKG9w
dGlvbnMuc2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLXZvaWQgQ3JlZGVudGlhbHND
b250YWluZXI6OnN0b3JlKGNvbnN0IEJhc2ljQ3JlZGVudGlhbCYsIFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKK3ZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0IEJh
c2ljQ3JlZGVudGlhbCYsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
Tm90IGltcGxlbWVudGVkLiIpIH0pOworICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRlZC4iKSB9KTsKIH0K
IAotdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQg
Q3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
JiBvcHRpb25zLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgLy8gVGhlIGZv
bGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jcmVkZW50aWFsLW1hbmFn
ZW1lbnQtMS8jYWxnb3JpdGhtLWNyZWF0ZSBhcyBvZiA0IEF1Z3VzdCAyMDE3CiAgICAgLy8gd2l0
aCBlbmhhbmNlbWVudCBmcm9tIDE0IE5vdmVtYmVyIDIwMTcgRWRpdG9yJ3MgRHJhZnQuCiAgICAg
aWYgKCFtX2RvY3VtZW50KSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKG9w
dGlvbnMuc2lnbmFsICYmIG9wdGlvbnMuc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQWJvcnRl
ZCBieSBBYm9ydFNpZ25hbC4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIpIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFN0ZXAgMS0yLgpAQCAtMTA5LDcgKzEw
OCw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmCiAKICAgICAvLyBTdGVwIDMtNy4gU2hvcnRj
dXQgYXMgd2Ugb25seSBzdXBwb3J0IG9uZSBraW5kIG9mIGNyZWRlbnRpYWxzLgogICAgIGlmICgh
b3B0aW9ucy5wdWJsaWNLZXkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk9ubHkgUHVibGljS2V5Q3JlZGVudGlh
bCBpcyBzdXBwb3J0ZWQuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk9ubHkgUHVibGljS2V5Q3JlZGVudGlh
bCBpcyBzdXBwb3J0ZWQuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNyw5
ICsxMTYsOSBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZShDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZgogICAgIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jcmVhdGUobV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgb3B0
aW9ucy5wdWJsaWNLZXkudmFsdWUoKSwgZG9lc0hhdmVTYW1lT3JpZ2luQXNJdHNBbmNlc3RvcnMo
KSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCksIFdURk1vdmUocHJvbWlzZSkpOwogfQogCi12b2lk
IENyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnByZXZl
bnRTaWxlbnRBY2Nlc3MoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkgY29uc3QK
IHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFT
Q0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVkLiIpIH0pOworICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vdCBpbXBsZW1lbnRl
ZC4iKSB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50
aWFsc0NvbnRhaW5lci5oCmluZGV4IDA3NjA3ZTNjMmZkZjVkOGMyOTczZjRmYjc5NDZiZmYzNGQ2
OTZiYmYuLjJkNWIzOGI1NjcxN2YzZGU4YjkwMTQxYzc4NTY2MWZlZTA2ZmUxNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5h
Z2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTI4LDEzICsyOCwxMiBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEJhc2ljQ3JlZGVudGlhbDsKLWNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIGNsYXNzIERvY3VtZW50OwogCiBzdHJ1Y3QgQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczsKQEAgLTQ0LDEzICs0MywxMyBAQCBjbGFzcyBDcmVkZW50aWFsc0NvbnRhaW5lciA6
IHB1YmxpYyBSZWZDb3VudGVkPENyZWRlbnRpYWxzQ29udGFpbmVyPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxDcmVkZW50aWFsc0NvbnRhaW5lcj4gY3JlYXRlKFdlYWtQdHI8RG9jdW1lbnQ+
JiYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3JlZGVudGlhbHNDb250YWluZXIo
V1RGTW92ZShkb2N1bWVudCkpKTsgfQogCi0gICAgdm9pZCBnZXQoQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZvaWQgZ2V0KENyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKTsKIAotICAgIHZvaWQgc3Rv
cmUoY29uc3QgQmFzaWNDcmVkZW50aWFsJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAg
dm9pZCBzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRpYWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmKTsK
IAotICAgIHZvaWQgaXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2b2lkIGlzQ3JlYXRlKENyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnMmJiwgQ3JlZGVudGlhbFByb21pc2UmJik7CiAKLSAgICB2b2lkIHByZXZlbnRTaWxlbnRB
Y2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7CisgICAgdm9pZCBwcmV2ZW50U2ls
ZW50QWNjZXNzKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFrUHRyPERvY3VtZW50PiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlh
bHNNZXNzZW5nZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKaW5kZXggZDc2ZWQzNjVjYzg0MTlmNzk5Nzlh
OGIyNmVmMmI0ODYzNGQ5NWM3ZS4uYjU2MGM2MTY0NTZhMzhjNGYxY2NhZDc5ZGNiNjE2ZWYyNGYw
ZGEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdl
bWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5jcHAKQEAgLTY4LDcg
KzY4LDYgQEAgdWludDY0X3QgQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmFkZENyZWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXIoQ3JlYXRpb25Db21wbGV0aW9uSGEKICAgICBtZXNzYWdlSWQgPSBtZXNzYWdl
SWQgfCBDYWxsQmFja0NsYXNzaWZpZXI6OkNyZWF0aW9uIDw8IGNhbGxCYWNrQ2xhc3NpZmllck9m
ZnNldDsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcGVuZGluZ0NyZWF0aW9uQ29tcGxldGlvbkhh
bmRsZXJzLmFkZChtZXNzYWdlSWQsIFdURk1vdmUoaGFuZGxlcikpOwogICAgIEFTU0VSVF9VTlVT
RUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgQVNTRVJUKGFkZFJlc3Vs
dCk7CiAgICAgcmV0dXJuIG1lc3NhZ2VJZDsKIH0KIApAQCAtODYsNyArODUsNiBAQCB1aW50NjRf
dCBDcmVkZW50aWFsc01lc3Nlbmdlcjo6YWRkUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKFJlcXVl
c3RDb21wbGV0aW9uSGFuZAogICAgIG1lc3NhZ2VJZCA9IG1lc3NhZ2VJZCB8IENhbGxCYWNrQ2xh
c3NpZmllcjo6UmVxdWVzdCA8PCBjYWxsQmFja0NsYXNzaWZpZXJPZmZzZXQ7CiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBtX3BlbmRpbmdSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXJzLmFkZChtZXNzYWdl
SWQsIFdURk1vdmUoaGFuZGxlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgQVNTRVJUKGFkZFJlc3VsdCk7CiAgICAgcmV0dXJuIG1l
c3NhZ2VJZDsKIH0KIApAQCAtOTUsNiArOTMsMjMgQEAgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
IENyZWRlbnRpYWxzTWVzc2VuZ2VyOjp0YWtlUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyKHVpbnQK
ICAgICByZXR1cm4gbV9wZW5kaW5nUmVxdWVzdENvbXBsZXRpb25IYW5kbGVycy50YWtlKG1lc3Nh
Z2VJZCk7CiB9CiAKK3VpbnQ2NF90IENyZWRlbnRpYWxzTWVzc2VuZ2VyOjphZGRRdWVyeUNvbXBs
ZXRpb25IYW5kbGVyKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIHVz
aW5nIG5hbWVzcGFjZSBDcmVkZW50aWFsc01lc3NlbmdlckludGVybmFsOworCisgICAgdWludDY0
X3QgbWVzc2FnZUlkID0gbV9hY2N1bXVsYXRlZE1lc3NhZ2VJZCsrOworICAgIEFTU0VSVChtZXNz
YWdlSWQgPCBtYXhNZXNzYWdlSWQpOworICAgIG1lc3NhZ2VJZCA9IG1lc3NhZ2VJZCB8IENhbGxC
YWNrQ2xhc3NpZmllcjo6UXVlcnkgPDwgY2FsbEJhY2tDbGFzc2lmaWVyT2Zmc2V0OworICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9wZW5kaW5nUXVlcnlDb21wbGV0aW9uSGFuZGxlcnMuYWRkKG1lc3Nh
Z2VJZCwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFk
ZFJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICByZXR1cm4gbWVzc2FnZUlkOworfQorCitRdWVyeUNv
bXBsZXRpb25IYW5kbGVyIENyZWRlbnRpYWxzTWVzc2VuZ2VyOjp0YWtlUXVlcnlDb21wbGV0aW9u
SGFuZGxlcih1aW50NjRfdCBtZXNzYWdlSWQpCit7CisgICAgcmV0dXJuIG1fcGVuZGluZ1F1ZXJ5
Q29tcGxldGlvbkhhbmRsZXJzLnRha2UobWVzc2FnZUlkKTsKK30KKwogUmVmUHRyPEFycmF5QnVm
ZmVyPiBnZXRJZEZyb21BdHRlc3RhdGlvbk9iamVjdChjb25zdCBWZWN0b3I8dWludDhfdD4mIGF0
dGVzdGF0aW9uT2JqZWN0KQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBDcmVkZW50aWFsc01lc3Nl
bmdlckludGVybmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50
aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc01lc3Nlbmdlci5oCmluZGV4IDky
N2I2N2E5YzZhODcwMzRmYjBjZjBmZTRmNDhhN2M3MTlkOTVhMjIuLjljYjY3MDY5MjhjNmNiODM2
MWUyM2U5ZjMxYmNkNWZjNmY0OTE2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzTWVzc2Vu
Z2VyLmgKQEAgLTY4LDYgKzY4LDcgQEAgc3RydWN0IEFzc2VydGlvblJldHVybkJ1bmRsZSB7CiAK
IHVzaW5nIENyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPENyZWF0aW9uUmV0dXJuQnVuZGxlPiYmKT47CiB1c2luZyBSZXF1ZXN0Q29t
cGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEFzc2Vy
dGlvblJldHVybkJ1bmRsZT4mJik+OwordXNpbmcgUXVlcnlDb21wbGV0aW9uSGFuZGxlciA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OwogCiBjbGFzcyBDcmVkZW50aWFsc01lc3Nlbmdl
ciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC03NSwxMSArNzYsMTMgQEAgcHVi
bGljOgogICAgIC8vIHNlbmRlcgogICAgIHZpcnR1YWwgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmLCBDcmVhdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50
aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogCiAgICAgLy8g
cmVjZWl2ZXIKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4Y2VwdGlvblJlcGx5KHVpbnQ2NF90
IG1lc3NhZ2VJZCwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCBtYWtl
Q3JlZGVudGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRBc3NlcnRpb25SZXBseSh1aW50NjRfdCBtZXNz
YWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY3JlZGVudGlhbElkLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25h
dHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1c2VySGFuZGxlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5
KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCkgPSAwOwogCiAgICAgYXV0byYgd2Vha1B0ckZhY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9CiAKQEAgLTkwLDYgKzkzLDggQEAg
cHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIENyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIg
dGFrZUNyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIodWludDY0X3QpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQ2NF90IGFkZFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlcihSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
IHRha2VSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIodWludDY0X3QpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQ2NF90IGFkZFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIoUXVlcnlDb21wbGV0aW9uSGFu
ZGxlciYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBRdWVyeUNvbXBsZXRpb25IYW5kbGVyIHRha2VR
dWVyeUNvbXBsZXRpb25IYW5kbGVyKHVpbnQ2NF90KTsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRy
RmFjdG9yeTxDcmVkZW50aWFsc01lc3Nlbmdlcj4gbV93ZWFrRmFjdG9yeTsKQEAgLTEwMyw2ICsx
MDgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fYWNjdW11bGF0ZWRNZXNzYWdlSWQgeyAx
IH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlcj4gbV9w
ZW5kaW5nQ3JlYXRpb25Db21wbGV0aW9uSGFuZGxlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyPiBtX3BlbmRpbmdSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXJzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXI+IG1fcGVu
ZGluZ1F1ZXJ5Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKIAogLy8gRklYTUU6IFdlIHNob3VsZG4n
dCBleHBvc2UgdGhpcyBpbnRvIHRoZSBtZXNzZW5nZXIuIFNpbmNlIHRoZSByZWNlaXZlcnMgY2Fu
IG9ubHkgYmUgcGFzc2VkIHdpdGggY29uc3QgcmVmZXJlbmNlcywgd2UgY291bGRuJ3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKaW5kZXggYzdmYjE0ZmRmMTAzNjJkOGIzMzMyNjEzMWRmYjNlYWQ3YTQ1N2EzZi4u
ZTIyYzQ5Mzk3NDE2ODk3NTJjN2M2MDJjYzkzNWIwZGI4NzM0YmZmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZS5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgiCiAjaW5jbHVkZSAi
SlNCYXNpY0NyZWRlbnRpYWwuaCIKLSNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmgiCkBAIC04MywxMyArODIsMTMgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90
PiBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNvbnN0IEFycmF5QnVmZmVyJiBjbGllbnREYXRh
SnMKIH0KIAogLy8gRklYTUUoMTgxOTQ3KTogV2Ugc2hvdWxkIHByb2JhYmx5IHRyaW0gdGltZU91
dEluTXMgdG8gc29tZSBtYXggYWxsb3dhYmxlIG51bWJlci4KLXN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8VGltZXI+IGluaXRUaW1lb3V0VGltZXIoc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBsb25nPiB0
aW1lT3V0SW5NcywgY29uc3QgUmVmPERlZmVycmVkUHJvbWlzZT4mIHByb21pc2UpCitzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBpbml0VGltZW91dFRpbWVyKHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQgbG9uZz4gdGltZU91dEluTXMsIGNvbnN0IENyZWRlbnRpYWxQcm9taXNlJiBwcm9taXNl
KQogewogICAgIGlmICghdGltZU91dEluTXMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgYXV0byB0aW1lciA9IHN0ZDo6bWFrZV91bmlxdWU8VGltZXI+KFtwcm9taXNlID0gcHJvbWlz
ZS5jb3B5UmVmKCldICgpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gdGltZWQgb3V0LiIpIH0pOwor
ICAgIGF1dG8gdGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPihbcHJvbWlzZSA9IHByb21p
c2VdICgpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RB
bGxvd2VkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIHRpbWVkIG91dC4iKSB9KTsKICAg
ICB9KTsKICAgICB0aW1lci0+c3RhcnRPbmVTaG90KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
KnRpbWVPdXRJbk1zKSk7CiAgICAgcmV0dXJuIHRpbWVyOwpAQCAtMTE5LDcgKzExOCw3IEBAIHZv
aWQgQXV0aGVudGljYXRvck1hbmFnZXI6OnNldE1lc3NlbmdlcihDcmVkZW50aWFsc01lc3Nlbmdl
ciYgbWVzc2VuZ2VyKQogICAgIG1fbWVzc2VuZ2VyID0gbWFrZVdlYWtQdHIobWVzc2VuZ2VyKTsK
IH0KIAotdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMmIG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9ydFNp
Z25hbD4mJiBhYm9ydFNpZ25hbCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKSBjb25z
dAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
IG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9ydFNpZ25h
bD4mJiBhYm9ydFNpZ25hbCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAogewog
ICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yTWFuYWdlckludGVybmFsOwogCkBAIC0x
MjgsNyArMTI3LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBTdGVwIDEsIDMs
IDE2IGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgogICAgIGlmICgh
c2FtZU9yaWdpbldpdGhBbmNlc3RvcnMpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBk
b2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iKSB9KTsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCBBU0NJSUxpdGVyYWwo
IlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0
b3JzLiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDAsNyArMTM5LDcgQEAg
dm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBj
YWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBTdGVwIDYgaXMgdGhlcmVmb3JlIHNraXBw
ZWQuIEFsc28sIHdlIGxhY2sgdGhlIHN1cHBvcnQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkb21h
aW4gaXMgYSByZWdpc3RyYWJsZQogICAgIC8vIGRvbWFpbiBzdWZmaXggb2YgYW5vdGhlciBkb21h
aW4uIEhlbmNlIHJlc3RyaWN0IHRoZSBjb21wYXJpc29uIHRvIGVxdWFsIGluIFN0ZXAgNy4KICAg
ICBpZiAoIW9wdGlvbnMucnAuaWQuaXNFbXB0eSgpICYmIGNhbGxlck9yaWdpbi5ob3N0KCkgIT0g
b3B0aW9ucy5ycC5pZCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgU2Vj
dXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBu
b3QgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRlZCBSUCBJRC4iKSB9
KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgQVND
SUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgYSByZWdpc3RyYWJs
ZSBkb21haW4gc3VmZml4IG9mIHRoZSBwcm92aWRlZCBSUCBJRC4iKSB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBpZiAob3B0aW9ucy5ycC5pZC5pc0VtcHR5KCkpCkBAIC0xNTAsNyAr
MTQ5LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAgICAvLyBNb3N0IG9mIHRoZSBqb2Jz
IGFyZSBkb25lIGJ5IGJpbmRpbmdzLiBIb3dldmVyLCB3ZSBjYW4ndCBrbm93IGlmIHRoZSBKU1Zh
bHVlIG9mIG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcwogICAgIC8vIGlzIGVtcHR5IG9yIG5vdC4g
UmV0dXJuIE5vdFN1cHBvcnRlZEVycm9yIGFzIGxvbmcgYXMgaXQgaXMgZW1wdHkuCiAgICAgaWYg
KG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGRl
c2lyZWQgcHJvcGVydGllcyBvZiB0aGUgdG8gYmUgY3JlYXRlZCBjcmVkZW50aWFsIGFyZSBwcm92
aWRlZC4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gZGVzaXJlZCBwcm9wZXJ0aWVzIG9mIHRoZSB0byBi
ZSBjcmVhdGVkIGNyZWRlbnRpYWwgYXJlIHByb3ZpZGVkLiIpIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xNjMsNyArMTYyLDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsZXJPcmlnaW4sIGNvbnN0IFB1YmwKICAg
ICAvLyBBbHNvLCByZXNpZGVudCBrZXlzLCB1c2VyIHZlcmlmaWNhdGlvbnMgYW5kIGRpcmVjdCBh
dHRlc3RhdGlvbiBhcmUgZW5mb3JjZWQgYXQgdGhpcyB0YWdlLgogICAgIC8vIEZvciBiZXR0ZXIg
cGVyZm9ybWFuY2UsIG5vIGZpbHRlcmluZyBpcyBkb25lIGhlcmUgcmVnYXJkaW5nIHRvIG9wdGlv
bnMuZXhjbHVkZUNyZWRlbnRpYWxzLgogICAgIGlmICghbV9tZXNzZW5nZXIpICB7Ci0gICAgICAg
IHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
VW5rbm93biBpbnRlcm5hbCBlcnJvci4iKSB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE3MSwyMiArMTcwLDIyIEBA
IHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZShjb25zdCBTZWN1cml0eU9yaWdpbiYg
Y2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsCiAgICAgICAgIGlmIChkaWRUaW1lb3V0VGltZXJGaXJl
KHRpbWVvdXRUaW1lci5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChh
Ym9ydFNpZ25hbCAmJiBhYm9ydFNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVk
IGJ5IEFib3J0U2lnbmFsLiIpIH0pOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgQWJvcnRFcnJvciwgQVNDSUlMaXRlcmFsKCJBYm9ydGVkIGJ5IEFib3J0U2lnbmFsLiIp
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQuZXhj
ZXB0aW9uKCkpOworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LmV4Y2VwdGlvbigp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gYnVuZGxl
ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgICAgICBwcm9taXNlLT5yZXNvbHZl
PElETE51bGxhYmxlPElETEludGVyZmFjZTxCYXNpY0NyZWRlbnRpYWw+Pj4oUHVibGljS2V5Q3Jl
ZGVudGlhbDo6Y3JlYXRlKFdURk1vdmUoYnVuZGxlLmNyZWRlbnRpYWxJZCksIEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShjbGllbnREYXRhSnNvbiksIEFy
cmF5QnVmZmVyOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuYXR0ZXN0YXRpb25PYmplY3QpKSkpLnB0
cigpKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFB1YmxpY0tleUNyZWRlbnRpYWw6OmNyZWF0
ZShXVEZNb3ZlKGJ1bmRsZS5jcmVkZW50aWFsSWQpLCBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZTo6Y3JlYXRlKFdURk1vdmUoY2xpZW50RGF0YUpzb24pLCBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKFdURk1vdmUoYnVuZGxlLmF0dGVzdGF0aW9uT2JqZWN0KSkpKS5wdHIoKSk7CiAgICAgfTsK
ICAgICAvLyBBc3luYyBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5kbGVkIGluIHRo
ZSBtZXNzZW5nZXIuCiAgICAgbV9tZXNzZW5nZXItPm1ha2VDcmVkZW50aWFsKGNsaWVudERhdGFK
c29uSGFzaCwgb3B0aW9ucywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBT
ZWN1cml0eU9yaWdpbiYgY2FsbGVyT3JpZ2luLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmIG9wdGlvbnMsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0
cjxBYm9ydFNpZ25hbD4mJiBhYm9ydFNpZ25hbCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKSBjb25zdAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJu
YWxTb3VyY2UoY29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGxlck9yaWdpbiwgY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBib29sIHNhbWVPcmlnaW5XaXRo
QW5jZXN0b3JzLCBSZWZQdHI8QWJvcnRTaWduYWw+JiYgYWJvcnRTaWduYWwsIENyZWRlbnRpYWxQ
cm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGlj
YXRvck1hbmFnZXJJbnRlcm5hbDsKIApAQCAtMTk1LDcgKzE5NCw3IEBAIHZvaWQgQXV0aGVudGlj
YXRvck1hbmFnZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBjYWxsCiAgICAgLy8gU3RlcCAxLCAzLCAxMyBhcmUgaGFuZGxlZCBieSB0aGUgY2FsbGVy
LgogICAgIC8vIFN0ZXAgMi4KICAgICBpZiAoIXNhbWVPcmlnaW5XaXRoQW5jZXN0b3JzKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIikgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBp
cyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iKSB9KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjA3LDcgKzIwNiw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxsCiAgICAg
Ly8gU3RlcCA2IGlzIHRoZXJlZm9yZSBza2lwcGVkLiBBbHNvLCB3ZSBsYWNrIHRoZSBzdXBwb3J0
IHRvIGRldGVybWluZSB3aGV0aGVyIGEgZG9tYWluIGlzIGEgcmVnaXN0cmFibGUKICAgICAvLyBk
b21haW4gc3VmZml4IG9mIGFub3RoZXIgZG9tYWluLiBIZW5jZSByZXN0cmljdCB0aGUgY29tcGFy
aXNvbiB0byBlcXVhbCBpbiBTdGVwIDcuCiAgICAgaWYgKCFvcHRpb25zLnJwSWQuaXNFbXB0eSgp
ICYmIGNhbGxlck9yaWdpbi5ob3N0KCkgIT0gb3B0aW9ucy5ycElkKSB7Ci0gICAgICAgIHByb21p
c2UtPnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIlRoZSBv
cmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRvbWFpbiBzdWZmaXgg
b2YgdGhlIHByb3ZpZGVkIFJQIElELiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIlRoZSBvcmlnaW4gb2YgdGhlIGRv
Y3VtZW50IGlzIG5vdCBhIHJlZ2lzdHJhYmxlIGRvbWFpbiBzdWZmaXggb2YgdGhlIHByb3ZpZGVk
IFJQIElELiIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChvcHRpb25zLnJw
SWQuaXNFbXB0eSgpKQpAQCAtMjIyLDcgKzIyMSw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFn
ZXI6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBjYWxs
CiAgICAgLy8gQWxzbywgcmVzaWRlbnQga2V5cywgdXNlciB2ZXJpZmljYXRpb25zIGFuZCBkaXJl
Y3QgYXR0ZXN0YXRpb24gYXJlIGVuZm9yY2VkIGF0IHRoaXMgdGFnZS4KICAgICAvLyBGb3IgYmV0
dGVyIHBlcmZvcm1hbmNlLCBubyBmaWx0ZXJpbmcgaXMgZG9uZSBoZXJlIHJlZ2FyZGluZyB0byBv
cHRpb25zLmFsbG93Q3JlZGVudGlhbHMuCiAgICAgaWYgKCFtX21lc3NlbmdlcikgIHsKLSAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJVbmtub3duIGludGVybmFsIGVycm9yLiIpIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiVW5rbm93biBpbnRlcm5hbCBl
cnJvci4iKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMwLDIxICsyMjksMzkg
QEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIGNhbGwKICAgICAgICAgaWYgKGRpZFRpbWVvdXRUaW1lckZp
cmUodGltZW91dFRpbWVyLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KGFib3J0U2lnbmFsICYmIGFib3J0U2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0
ZWQgYnkgQWJvcnRTaWduYWwuIikgfSk7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBBYm9ydEVycm9yLCBBU0NJSUxpdGVyYWwoIkFib3J0ZWQgYnkgQWJvcnRTaWduYWwu
IikgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5l
eGNlcHRpb24oKSk7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQuZXhjZXB0aW9u
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBidW5k
bGUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIHByb21pc2UtPnJlc29s
dmU8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVudGlhbD4+PihQdWJsaWNLZXlD
cmVkZW50aWFsOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuY3JlZGVudGlhbElkKSwgQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShjbGllbnREYXRhSnNvbiksIFdU
Rk1vdmUoYnVuZGxlLmF1dGhlbnRpY2F0b3JEYXRhKSwgV1RGTW92ZShidW5kbGUuc2lnbmF0dXJl
KSwgV1RGTW92ZShidW5kbGUudXNlckhhbmRsZSkpKS5wdHIoKSk7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZShQdWJsaWNLZXlDcmVkZW50aWFsOjpjcmVhdGUoV1RGTW92ZShidW5kbGUuY3JlZGVu
dGlhbElkKSwgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOjpjcmVhdGUoV1RGTW92ZShj
bGllbnREYXRhSnNvbiksIFdURk1vdmUoYnVuZGxlLmF1dGhlbnRpY2F0b3JEYXRhKSwgV1RGTW92
ZShidW5kbGUuc2lnbmF0dXJlKSwgV1RGTW92ZShidW5kbGUudXNlckhhbmRsZSkpKS5wdHIoKSk7
CiAgICAgfTsKICAgICAvLyBBc3luYyBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5k
bGVkIGluIHRoZSBtZXNzZW5nZXIuCiAgICAgbV9tZXNzZW5nZXItPmdldEFzc2VydGlvbihjbGll
bnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21p
c2UpIGNvbnN0Cit7CisgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJhdXRobi8jaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9y
QXZhaWxhYmxlCisgICAgLy8gYXMgb2YgNSBEZWNlbWJlciAyMDE3LgorICAgIGlmICghbV9tZXNz
ZW5nZXIpICB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJv
ciwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGludGVybmFsIGVycm9yLiIpIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUUoMTgyNzY3KTogV2Ugc2hvdWxkIGNvbnNpZGVy
IG1vcmUgb24gdGhlIGFzc2Vzc21lbnQgb2YgdGhlIHJldHVybiB2YWx1ZS4gUmlnaHQgbm93LCB3
ZSByZXR1cm4gdHJ1ZS9mYWxzZQorICAgIC8vIGltbWVkaWF0ZWx5IGFjY29yZGluZyB0byBwbGF0
Zm9ybSBzcGVjaWZpYyBwcm9jZWR1cmVzLgorICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIHByb21pc2UucmVzb2x2ZShyZXN1bHQpOworICAgIH07CisgICAgLy8gQXN5bmMgb3BlcmF0
aW9uIGFyZSBkaXNwYXRjaGVkIGFuZCBoYW5kbGVkIGluIHRoZSBtZXNzZW5nZXIuCisgICAgbV9t
ZXNzZW5nZXItPmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggMTc0NTczNDE3
NGVkMDJiOWQ3NzFlYmQwN2ZiN2Y5ZTI0NDBlYWIzMi4uNjM3Mjc2ZGRlNjc4YzIzYjBjOTIxOThk
MWZmNzlkYWIzNWY2Y2E1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvck1hbmFnZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtMzQsMTMgKzM1LDE1IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEFib3J0U2lnbmFsOworY2xhc3MgQmFzaWNDcmVkZW50aWFsOwogY2xh
c3MgQ3JlZGVudGlhbHNNZXNzZW5nZXI7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIAogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOwogCit1c2luZyBD
cmVkZW50aWFsUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExOdWxsYWJsZTxJRExJbnRl
cmZhY2U8QmFzaWNDcmVkZW50aWFsPj4+OworCiBjbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvck1hbmFnZXIpOwogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxBdXRoZW50aWNhdG9yTWFuYWdlcj47CkBAIC00OSw4
ICs1Miw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lc3NlbmdlcihD
cmVkZW50aWFsc01lc3NlbmdlciYpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGlt
cGxlbWVudCBzdGF0aWMgbWV0aG9kcyBvZiBQdWJsaWNLZXlDcmVkZW50aWFsLgotICAgIHZvaWQg
Y3JlYXRlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3RvcnMsIFJlZlB0cjxBYm9y
dFNpZ25hbD4mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNj
b3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIGJvb2wgc2FtZU9yaWdpbldpdGhBbmNlc3Rv
cnMsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgY29uc3Q7
CisgICAgdm9pZCBjcmVhdGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2luV2l0aEFuY2VzdG9ycywg
UmVmUHRyPEFib3J0U2lnbmFsPiYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBjb25zdDsKKyAgICB2
b2lkIGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgYm9vbCBzYW1lT3JpZ2luV2l0
aEFuY2VzdG9ycywgUmVmUHRyPEFib3J0U2lnbmFsPiYmLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBj
b25zdDsKKyAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgQXV0aGVudGljYXRvck1hbmFnZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAppbmRl
eCAxMzZlNWY3YzdlMmJiYTRiYjBlZjczMmIxZmUwYTU1ZWM3MTkxY2JhLi4xMTJmNDBhNjM0MmY2
MmM3NmM1NDY1YmZlYWU4YzdiYzU2NWU3YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9y
TWFuYWdlci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQmFzZTY0Lmg+CiAKQEAgLTQ1LDkgKzQ2LDkgQEAgRXhjZXB0aW9uT3I8Ym9vbD4g
UHVibGljS2V5Q3JlZGVudGlhbDo6Z2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiB9CiAKLXZvaWQgUHVi
bGljS2V5Q3JlZGVudGlhbDo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgUHVibGljS2V5Q3Jl
ZGVudGlhbDo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERP
TVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCiB7Ci0gICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgIEF1dGhlbnRpY2F0
b3JNYW5hZ2VyOjpzaW5nbGV0b24oKS5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0
b3JBdmFpbGFibGUoV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsLmgKaW5kZXggMDMzZGQyMzY2NDc0ZTg1NzZlZDRmNDI4NmE5MTE4ODgwYjU3ZWY4
My4uZmRlZGM1ODliMzAzNDExNTdkYWUzYmI3YmFhNDI3NGZiNmZhOWJhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmgK
QEAgLTI5LDEzICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiQmFzaWNDcmVkZW50aWFsLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yUmVz
cG9uc2U7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7CiAKIGNsYXNzIFB1YmxpY0tleUNyZWRlbnRp
YWwgZmluYWwgOiBwdWJsaWMgQmFzaWNDcmVkZW50aWFsIHsKIHB1YmxpYzoKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogICAgIC8vIE5vdCBzdXBwb3J0IHlldC4gQWx3YXlzIHRocm93cy4KICAg
ICBFeGNlcHRpb25Pcjxib29sPiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgY29uc3Q7CiAK
LSAgICBzdGF0aWMgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgc3RhdGljIHZvaWQgaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJ
RExCb29sZWFuPiYmKTsKIAogcHJpdmF0ZToKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsKFJlZlB0
cjxBcnJheUJ1ZmZlcj4mJiBpZCwgUmVmUHRyPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5j
cHAKaW5kZXggMmI0ZDFjNzA0ODE1YTg3NjJjZDgzYWQ4NTYyZjRhY2M0OTNjZGRlZC4uNjk5Y2Qw
Y2Y0N2RiNjlhYjQxYWZjMjBiZDY5YTEyZjY4MmIyZmYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcApAQCAtMTE3LDYgKzEx
NywxNiBAQCB2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nlbmdlcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFB1YmxpYwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCit2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nlbmdlcjo6aXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyKQoreworICAgIGF1dG8gbWVzc2FnZUlkID0gYWRkUXVlcnlDb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBpZiAobV9kaWRVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRo
ZW50aWNhdG9yUHJlc2VudCkgeworICAgICAgICBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGVSZXBseShtZXNzYWdlSWQsIHRydWUpOworICAgICAgICBtX2RpZFVz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JQcmVzZW50ID0gZmFsc2U7CisgICAgfSBl
bHNlCisgICAgICAgIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJs
ZVJlcGx5KG1lc3NhZ2VJZCwgZmFsc2UpOworfQorCiB2b2lkIE1vY2tDcmVkZW50aWFsc01lc3Nl
bmdlcjo6bWFrZUNyZWRlbnRpYWxSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYXR0ZXN0YXRpb25PYmplY3QpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gdGFr
ZUNyZWF0aW9uQ29tcGxldGlvbkhhbmRsZXIobWVzc2FnZUlkKTsKQEAgLTEyOSw2ICsxMzksMTIg
QEAgdm9pZCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmdldEFzc2VydGlvblJlcGx5KHVpbnQ2
NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG8KICAgICBoYW5kbGVyKEFzc2VydGlvblJldHVybkJ1
bmRsZShBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJ
ZC5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhlbnRpY2F0b3JEYXRhLmRhdGEoKSwg
YXV0aGVudGljYXRvckRhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWduYXR1cmUu
ZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZSh1c2VySGFuZGxl
LmRhdGEoKSwgdXNlckhhbmRsZS5zaXplKCkpKSk7CiB9CiAKK3ZvaWQgTW9ja0NyZWRlbnRpYWxz
TWVzc2VuZ2VyOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVS
ZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wgcmVzdWx0KQoreworICAgIGF1dG8gaGFuZGxl
ciA9IHRha2VRdWVyeUNvbXBsZXRpb25IYW5kbGVyKG1lc3NhZ2VJZCk7CisgICAgaGFuZGxlcihy
ZXN1bHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxz
TWVzc2VuZ2VyLmgKaW5kZXggOWUzODkyYWY0YWViNGFjNTA1YjExNmQ2YzJlMTdhMTllMzQ0MjRl
Mi4uYjNhNTliNjc2NGJhZDRhYTQ1MTY3MTEzYWEzMmZjMGY3OGM4OGFiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVkZW50aWFsc01lc3Nlbmdlci5oCkBAIC00Miw2
ICs0Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGlkVGltZU91dCgpIHsgbV9kaWRUaW1l
T3V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0RGlkVXNlckNhbmNlbCgpIHsgbV9kaWRVc2VyQ2Fu
Y2VsID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0RGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvclByZXNlbnQoKSB7IG1fZGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
clByZXNlbnQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRBdHRlc3RhdGlvbk9iamVjdChjb25zdCBC
dWZmZXJTb3VyY2UmKTsKICAgICB2b2lkIHNldEFzc2VydGlvblJldHVybkJ1bmRsZShjb25zdCBC
dWZmZXJTb3VyY2UmIGNyZWRlbnRpYWxJZCwgY29uc3QgQnVmZmVyU291cmNlJiBhdXRoZW50aWNh
dG9yRGF0YSwgY29uc3QgQnVmZmVyU291cmNlJiBzaWduYXR1cmUsIGNvbnN0IEJ1ZmZlclNvdXJj
ZSYgdXNlckhhbmRsZSk7CiAKQEAgLTUxLDEzICs1MiwxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIENyZWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBSZXF1ZXN0
Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsUmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mKSBmaW5hbDsKICAgICB2b2lkIGdldEFzc2VydGlvblJlcGx5KHVp
bnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjcmVkZW50aWFsSWQsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHVzZXJIYW5kbGUpIGZpbmFs
OworICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxl
UmVwbHkodWludDY0X3QgbWVzc2FnZUlkLCBib29sKSBmaW5hbDsKIAogICAgIEludGVybmFscyYg
bV9pbnRlcm5hbHM7CiAgICAgLy8gQWxsIGZvbGxvd2luZyBmaWVsZHMgYXJlIGRpc3Bvc2FibGUu
CiAgICAgYm9vbCBtX2RpZFRpbWVPdXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRVc2VyQ2Fu
Y2VsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlkVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVu
dGljYXRvclByZXNlbnQgeyBmYWxzZSB9OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F0dGVzdGF0
aW9uT2JqZWN0OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2NyZWRlbnRpYWxJZDsKICAgICBWZWN0
b3I8dWludDhfdD4gbV9hdXRoZW50aWNhdG9yRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmlkbAppbmRleCAxZjQyNDQ0ZTBlZWNi
NzdjMWViNzY5N2RkZmJmYjI1MmMwMWFjNjc1Li4wMzcxNjIzMzMwYWRlMWYxNzA5ZTc0YmE5ZWMx
YjRmZjVmNjA5ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDcmVk
ZW50aWFsc01lc3Nlbmdlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ3Jl
ZGVudGlhbHNNZXNzZW5nZXIuaWRsCkBAIC0yOSw2ICsyOSw3IEBACiBdIGludGVyZmFjZSBNb2Nr
Q3JlZGVudGlhbHNNZXNzZW5nZXIgewogICAgIHZvaWQgc2V0RGlkVGltZU91dCgpOwogICAgIHZv
aWQgc2V0RGlkVXNlckNhbmNlbCgpOworICAgIHZvaWQgc2V0RGlkVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvclByZXNlbnQoKTsKICAgICB2b2lkIHNldEF0dGVzdGF0aW9uT2JqZWN0
KEJ1ZmZlclNvdXJjZSBhdHRlc3RhdGlvbk9iamVjdCk7CiAgICAgdm9pZCBzZXRBc3NlcnRpb25S
ZXR1cm5CdW5kbGUoQnVmZmVyU291cmNlIGNyZWRlbnRpYWxJZCwgQnVmZmVyU291cmNlIGF1dGhl
bnRpY2F0b3JEYXRhLCBCdWZmZXJTb3VyY2Ugc2lnbmF0dXJlLCBCdWZmZXJTb3VyY2UgdXNlckhh
bmRsZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlh
bE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5LmNwcAppbmRleCBkNmJkYzFiYWZmZWRiYzY0ZTk4NWQ5ZGU4NzBiZGRhYzJhYWI5ZWJj
Li40N2Q1ZDdjNThjODQ3YzE5ZWY1NjJlYzA5ZTVmNDA2YjhlYmQ0ZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50
aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcApAQCAtNTAsMTAg
KzUwLDIwIEBAIHZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6bWFrZUNyZWRlbnRp
YWwodWludDY0X3QpCiB7CiB9CiAKK3ZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eTo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKHVpbnQ2NF90IG1l
c3NhZ2VJZCkKK3sKKyAgICBwbGF0Zm9ybUlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZShtZXNzYWdlSWQpOworfQorCiB2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHk6OmdldEFzc2VydGlvbih1aW50NjRfdCkKIHsKIH0KIAordm9pZCBXZWJDcmVkZW50
aWFsc01lc3NlbmdlclByb3h5Ojppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGVSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGJvb2wgcmVzdWx0KQoreworICAgIG1f
d2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjpJc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseShtZXNzYWdlSWQs
IHJlc3VsdCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50
aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5LmgKaW5kZXggZWFmZmE4MTQ3MzBkMzQxN2E1MGRmMjUxZjRmNGIzOTkzNjkxZWE0MC4u
YTI2NmEzZTNkZDFhOWQ2MjgxM2QxYWU5MDEwYzU0OWY2ZWMwMjZkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxN
YW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaApAQCAtNDUsNiArNDUsMTUg
QEAgcHJpdmF0ZToKICAgICAvLyBSZWNlaXZlcnMuCiAgICAgdm9pZCBtYWtlQ3JlZGVudGlhbCh1
aW50NjRfdCBtZXNzYWdlSWQpOwogICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKHVpbnQ2NF90IG1lc3Nh
Z2VJZCk7CisgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUodWludDY0X3QgbWVzc2FnZUlkKTsKKworICAgIC8vIFNlbmRlcnMuCisgICAgdm9pZCBp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSh1aW50NjRf
dCBtZXNzYWdlSWQsIGJvb2wpOworCisgICAgLy8gUGxhdGZvcm0gc3BlY2lmaWMgcHJvY2VkdXJl
cy4KKyAgICAvLyBGSVhNRSgxODI3NjgpOiBNaWdodCBjaGFuZ2UgdG8gc29tZSBmb3JtcyBvZiBk
ZWxlZ2F0ZXMgbGF0ZXIgb24uCisgICAgLy8gRklYTUUoMTgyNzY5KTogRmlndXJlIG91dCBhIHdh
eSB0byBhdXRvLXRlc3QgdGhlIGZvbGxvd2luZ3MuCisgICAgdm9pZCBwbGF0Zm9ybUlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQp
OwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ3Jl
ZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBmZWU1OWZmMTVmZTE3Zjk3ODBjN2I5MTUxZTc4NDVjMTI5OTUzYjk2Li42YmMwZTk5
YTdjYWVlNGE5NzU5M2I2ZjQ3YmYxZjAxY2E2ODUwODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRp
YWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eSB7
CiAKICAgICBNYWtlQ3JlZGVudGlhbCh1aW50NjRfdCBtZXNzYWdlSWQpOwogICAgIEdldEFzc2Vy
dGlvbih1aW50NjRfdCBtZXNzYWdlSWQpOworICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0
aGVudGljYXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L2Nv
Y29hL1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L2NvY29hL1dlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyUHJveHlDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTYxNDZhYTBkYjFhMDA1YmUyNjlkMjA0Nzkz
OTI0NjU0MDQ2NGY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q3JlZGVudGlhbE1hbmFnZW1lbnQvY29jb2EvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eUNv
Y29hLm1tCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIldlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbXBvcnQgPExvY2FsQXV0aGVudGljYXRpb24vTG9jYWxBdXRoZW50aWNh
dGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDcmVkZW50aWFs
c01lc3NlbmdlclByb3h5OjpwbGF0Zm9ybUlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZSh1aW50NjRfdCBtZXNzYWdlSWQpCit7CisjaWYgZGVmaW5lZChfX2kzODZf
XykKKyAgICBBU1NFUlRfVU5VU0VEKG1lc3NhZ2VJZCwgbWVzc2FnZUlkKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworI2Vsc2UKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdE5TKFtbTEFDb250ZXh0
IGFsbG9jXSBpbml0XSk7CisgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CisKKyAgICBpZiAoW2Nv
bnRleHQgY2FuRXZhbHVhdGVQb2xpY3k6TEFQb2xpY3lEZXZpY2VPd25lckF1dGhlbnRpY2F0aW9u
V2l0aEJpb21ldHJpY3MgZXJyb3I6JmVycm9yXSkKKyAgICAgICAgaXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkobWVzc2FnZUlkLCB0cnVlKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBldmFsdWF0ZSBhdXRoZW50aWNhdGlv
biB3aXRoIGJpb21ldHJpY3MgcG9saWN5OiAlQCIsIGVycm9yKTsKKyAgICAgICAgaXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlUmVwbHkobWVzc2FnZUlkLCBmYWxz
ZSk7CisgICAgfQorI2VuZGlmIC8vIGRlZmluZWQoX19pMzg2X18pCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhlYzVlYTc2N2IzNjk2
YjYyYzlmYWFlY2JhMjc0YWQzNWIzYzAxNjUuLjhhMTAzMGJkMmNkYWMwZTc3M2FjOGZiOGE5YWY1
ODdmNzhiOTYxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTIwOSwxMiArMTIwOSwxNCBAQAogCQk1M0JBNDdEMDFEQzJFRjVFMDA0
REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzlFQjU0NjFEQzJFRTQwMDA5RDQ4Q0YgLyogTmV0d29y
a0RhdGFUYXNrQmxvYi5jcHAgKi87IH07CiAJCTUzQkE0N0QxMURDMkVGNUUwMDRERjRBRCAvKiBO
ZXR3b3JrRGF0YVRhc2tCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzlFQjU0NzFEQzJFRTQwMDA5RDQ4Q0YgLyogTmV0d29ya0RhdGFUYXNrQmxv
Yi5oICovOyB9OwogCQk1M0RFQTM2NjFEREU0MjMxMDBFODI2NDggLyoganNvbi5ocHAgaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0RFQTM2NTFEREU0MjJF
MDBFODI2NDggLyoganNvbi5ocHAgKi87IH07CisJCTU3NTBGMzJCMjAzMkQ0RTUwMDM4OTM0NyAv
KiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBGMzJBMjAzMkQ0RTUwMDM4OTM0NyAvKiBMb2Nh
bEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNTc2MDgyOEUyMDI5ODk1RTAwMTE2
Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4MjhDMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJD
cmVkZW50aWFsc01lc3Nlbmdlci5jcHAgKi87IH07CiAJCTU3NjA4Mjk4MjAyQkQ4QkEwMDExNjY3
OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBX
ZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcCAqLzsgfTsKIAkJNTc2MDgyOUMyMDJEMkMz
QzAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjA4MjkwMjAy
OThGQkQwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTU3NjA4MjlEMjAyRDJDNDAwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01l
c3Nlbmdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzYwODI4RjIwMjk4RkJEMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5n
ZXJNZXNzYWdlcy5oICovOyB9OwogCQk1NzYwODI5RTIwMkQyQzQzMDAxMTY2NzggLyogV2ViQ3Jl
ZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzYwODI5QTIwMkJFRTVBMDAxMTY2Nzgg
LyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTU3NjA4MjlGMjAyRDJDNDYwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3NjA4MjlCMjAyQkVFNUEwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclBy
b3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJNTdCOTBBQUQyMDM2MzdGNDAwMEU2MUZBIC8qIFdlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QjkwQUFDMjAzNjM3RjQwMDBFNjFGQSAvKiBXZWJDcmVk
ZW50aWFsc01lc3NlbmdlclByb3h5Q29jb2EubW0gKi87IH07CiAJCTVDMEIxNzc4MUU3Qzg4MEUw
MEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc0MUU3Qzg3OUMw
MEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzBCMTc3NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJNUMwQjE3N0MxRTdDODg1NDAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBC
MTc3QTFFN0M4ODRGMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtLmNwcCAqLzsgfTsKQEAgLTM2
MzYsNiArMzYzOCw3IEBACiAJCTUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0
YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdv
cmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
QmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ3MURDMkVFNDAw
MDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNERUEz
NjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
aDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9qc29uLmhw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3
IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2Nh
bEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9
OwogCQk1NzYwODI4QjIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOEMyMDI5ODU0MjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRp
YWxzTWVzc2VuZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNyZWRlbnRpYWxzTWVzc2Vu
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOEQyMDI5ODdFNjAw
MTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzY0Niw2ICszNjQ5LDcgQEAKIAkJNTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4IC8qIFdl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTc2MDgyOUEyMDJCRUU1QTAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNN
ZXNzZW5nZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3NjA4MjlCMjAyQkVFNUEwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdl
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3QjkwQUFDMjAz
NjM3RjQwMDBFNjFGQSAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5Q29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDcmVkZW50aWFsc01lc3Nl
bmdlclByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMEIxNzc0
MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzBC
MTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzBCMTc3NjFFN0M4NzlDMDBFOTEy
M0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzE4LDYgKzQ3MjIsNyBAQAogCQkJZmls
ZXMgPSAoCiAJCQkJMzc2NkY5RUUxODlBMTI0MTAwM0NGMTlCIC8qIEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTM3NjZGOUYxMTg5QTEyNTQwMDNDRjE5QiAv
KiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJNTc1MEYzMkIyMDMyRDRF
NTAwMzg5MzQ3IC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8sCiAJCQkJMzc2NkY5RUYxODlBMTI0NDAwM0NGMTlCIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMzc2OTQ1MjUxODRGQzZCNjAwQ0RFMjFGIC8qIFNlY3Vy
aXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTM3QkVDNEREMTk0OEZDNkEwMDhC
NDI4NiAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLApAQCAtNDgxMCw2ICs0
ODE1LDcgQEAKIAkJCQkxQTRGOTc2OTEwMEU3QjY2MDA2MzdBMTggLyogQ29uZmlndXJhdGlvbnMg
Ki8sCiAJCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEV4dGVybmFsIEZyYW1ld29ya3Mg
YW5kIExpYnJhcmllcyAqLywKIAkJCQkwMzQ3NjhERkZGMzhBNTA0MTFEQjlDOEIgLyogUHJvZHVj
dHMgKi8sCisJCQkJNTc1MEYzMjkyMDMyRDRFMzAwMzg5MzQ3IC8qIEZyYW1ld29ya3MgKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IFdlYktpdDI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NjY5OCw2ICs2NzA0LDE0IEBACiAJCQluYW1lID0gY2FwdHVyZTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCTU3NTBGMzI5MjAzMkQ0RTMwMDM4OTM0NyAvKiBGcmFtZXdvcmtz
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzUwRjMy
QTIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi8sCisJ
CQkpOworCQkJbmFtZSA9IEZyYW1ld29ya3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogQ3JlZGVudGlhbE1hbmFnZW1lbnQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjcxMSw2ICs2
NzI1LDcgQEAKIAkJNTc2MDgyOTQyMDJCRDg0OTAwMTE2Njc4IC8qIENyZWRlbnRpYWxNYW5hZ2Vt
ZW50ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1N0I5
MEFBQjIwMzYzNzU4MDAwRTYxRkEgLyogY29jb2EgKi8sCiAJCQkJNTc2MDgyOTYyMDJCRDhCQTAw
MTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHkuY3BwICovLAogCQkJCTU3NjA4
Mjk1MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmggKi8s
CiAJCQkJNTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC02NzE4LDYgKzY3MzMsMTQgQEAKIAkJCXBhdGggPSBD
cmVkZW50aWFsTWFuYWdlbWVudDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CTU3QjkwQUFCMjAzNjM3NTgwMDBFNjFGQSAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTdCOTBBQUMyMDM2MzdGNDAwMEU2MUZBIC8qIFdl
YkNyZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHlDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0g
Y29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1QzE0MjZGMTFDMjNG
ODE3MDBENDExODMgLyogRG93bmxvYWRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTEwODQ4LDYgKzEwODcxLDcgQEAKIAkJCQk1NzYwODI4RTIwMjk4OTVF
MDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTc2MDgyOUMyMDJEMkMzQzAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NjA4Mjk4MjAyQkQ4QkEwMDEx
NjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3QjkwQUFEMjAzNjM3RjQwMDBFNjFGQSAvKiBXZWJDcmVkZW50aWFsc01lc3NlbmdlclBy
b3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NzYwODI5RTIwMkQyQzQzMDAxMTY2Nzgg
LyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUE4M0Y2QzFBNUI2M0ZGMDAwMjZFQzYgLyogV2ViRGF0YWJhc2VQcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyog
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxN
YW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNwcAppbmRleCAzOTM4ZjdlYzkzZmNh
YTBmMTllOWQwZjM4MjcwNjQzOWUyNzMzMTA1Li5kMTE1YWZmODY1YmY4ODI5MzdjYmE5NmNmMGFm
ZTBiZmM5MGNiMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVu
dGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nl
bmdlci5jcHAKQEAgLTU0LDYgKzU0LDEyIEBAIHZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6
OmdldEFzc2VydGlvbihjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBXZWJDb3JlCiB7CiB9
CiAKK3ZvaWQgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvckF2YWlsYWJsZShXZWJDb3JlOjpRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYg
aGFuZGxlcikKK3sKKyAgICBhdXRvIG1lc3NhZ2VJZCA9IGFkZFF1ZXJ5Q29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShoYW5kbGVyKSk7CisgICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OldlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyUHJveHk6OklzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZShtZXNzYWdlSWQpKTsKK30KKwogdm9pZCBXZWJDcmVkZW50aWFsc01lc3Nl
bmdlcjo6bWFrZUNyZWRlbnRpYWxSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYpCiB7CiB9CkBAIC02Miw2ICs2OCwxMyBAQCB2b2lkIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyOjpnZXRBc3NlcnRpb25SZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIGNvbnN0IFZl
Y3RvcgogewogfQogCit2b2lkIFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyOjppc1VzZXJWZXJpZnlp
bmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGVSZXBseSh1aW50NjRfdCBtZXNzYWdlSWQs
IGJvb2wgcmVzdWx0KQoreworICAgIGF1dG8gaGFuZGxlciA9IHRha2VRdWVyeUNvbXBsZXRpb25I
YW5kbGVyKG1lc3NhZ2VJZCk7CisgICAgaGFuZGxlcihyZXN1bHQpOworfQorCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFuYWdlbWVudC9XZWJDcmVkZW50
aWFsc01lc3Nlbmdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5h
Z2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKaW5kZXggNGQ1ZjZiZGJjNzkyYTJhYzQx
OWYwNjk5NzM2Y2EyOWJmODY4YWNiMC4uNmRlMGIwZTVhMmViZDRiZjEzNWVkYjUxNjA3NTk1MmI5
MGI1MWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxN
YW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmgK
QEAgLTQ0LDEwICs0NCwxMiBAQCBwcml2YXRlOgogICAgIC8vIHNlbmRlcgogICAgIHZvaWQgbWFr
ZUNyZWRlbnRpYWwoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIFdlYkNvcmU6OkNyZWF0aW9uQ29tcGxldGlv
bkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmLCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAg
dm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoV2ViQ29y
ZTo6UXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKIAogICAgIC8vIHJlY2VpdmVyCiAg
ICAgdm9pZCBtYWtlQ3JlZGVudGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JikgZmluYWw7CiAgICAgdm9pZCBnZXRBc3NlcnRpb25SZXBseSh1aW50NjRf
dCBtZXNzYWdlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY3JlZGVudGlhbElkLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IHNpZ25hdHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1c2VySGFuZGxlKSBmaW5hbDsKKyAg
ICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5
KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCkgZmluYWw7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NyZWRlbnRpYWxNYW5hZ2VtZW50L1dlYkNy
ZWRlbnRpYWxzTWVzc2VuZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDNhMmM4NWQ0MzBkMTgxNjE1YjY2
Y2Y2N2RiMGFiYjk3Yzg5Zjc1ZjAuLjNhYjExMTYyZjk0OTViN2FiOTBhMDE3N2QzNjZmZWEyODdh
OGI3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DcmVkZW50aWFsTWFu
YWdlbWVudC9XZWJDcmVkZW50aWFsc01lc3Nlbmdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ3JlZGVudGlhbE1hbmFnZW1lbnQvV2ViQ3JlZGVudGlhbHNNZXNz
ZW5nZXIubWVzc2FnZXMuaW4KQEAgLTI5LDYgKzI5LDggQEAgbWVzc2FnZXMgLT4gV2ViQ3JlZGVu
dGlhbHNNZXNzZW5nZXIgewogICAgIEV4Y2VwdGlvblJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwg
c3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKTsKICAgICBNYWtlQ3JlZGVu
dGlhbFJlcGx5KHVpbnQ2NF90IG1lc3NhZ2VJZCwgVmVjdG9yPHVpbnQ4X3Q+IGF0dGVzdGF0aW9u
T2JqZWN0KTsKICAgICBHZXRBc3NlcnRpb25SZXBseSh1aW50NjRfdCBtZXNzYWdlSWQsIFZlY3Rv
cjx1aW50OF90PiBjcmVkZW50aWFsSWQsIFZlY3Rvcjx1aW50OF90PiBhdXRoZW50aWNhdG9yRGF0
YSwgVmVjdG9yPHVpbnQ4X3Q+IHNpZ25hdHVyZSwgVmVjdG9yPHVpbnQ4X3Q+IHVzZXJIYW5kbGUp
OworICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZVJlcGx5
KHVpbnQ2NF90IG1lc3NhZ2VJZCwgYm9vbCByZXN1bHQpOworZXhjZXB0aW9uUmVwbHkodWludDY0
X3QgbWVzc2FnZUlkLCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pOwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlOThkYzUwOTJmMWM4NmMwM2NmZjQzODliZmFhYjQwN2Q1MDhh
ZGE4Li4wMWYyMjQ3MTg5YzYwZTBlMjU0ZGY2NDhmZGM5MGZlYzFjNWJjMzIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTgtMDItMTMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aE5dIEltcGxlbWVudCBQdWJsaWNLZXlDcmVkZW50aWFsLmlz
VXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI3NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM2NDU5OTg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1pcy11c2VyLXZl
cmlmeWluZy1wbGF0Zm9ybS1hdXRoZW50aWNhdG9yLWF2YWlsYWJsZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJp
ZnlpbmctcGxhdGZvcm0tYXV0aGVudGljYXRvci1hdmFpbGFibGUuaHRtbDogQWRkZWQuCisKIDIw
MTgtMDItMTUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViQXV0aE5dIFJldmlzaXQgdGhlIHdob2xlIGFzeW5jIG1vZGVsIG9mIHRhc2sgZGlzcGF0Y2hp
bmcsIHRpbWVvdXQgYW5kIGFib3J0aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRp
Y2F0b3ItYXZhaWxhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxhdGZvcm0tYXV0aGVudGljYXRvci1h
dmFpbGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMmEyMTZlZjNlYTMzZjhkMGMxY2Mx
YWViNjEzYzNjZTcxYTFiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRp
Y2F0b3ItYXZhaWxhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBQdWJs
aWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZSgpIHdpdGhvdXQgYW55IGF2YWlsYWJsZSBhdXRoZW50aWNhdG9ycy4gCitQQVNTIFB1Ymxp
Y0tleUNyZWRlbnRpYWwuaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxh
YmxlKCkgd2l0aCBhdmFpbGFibGUgYXV0aGVudGljYXRvcnMuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBs
YXRmb3JtLWF1dGhlbnRpY2F0b3ItYXZhaWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWlzLXVzZXItdmVyaWZ5aW5nLXBsYXRmb3JtLWF1dGhlbnRp
Y2F0b3ItYXZhaWxhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE4ZTUzNDU5NjBmOWQ0YzYyNjRlZGFj
Mzk5MWQyMjA1NTRlZmU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktaXMtdXNlci12ZXJpZnlpbmctcGxhdGZvcm0tYXV0aGVudGlj
YXRvci1hdmFpbGFibGUuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBQdWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpLjwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIGludGVybmFscy5tb2NrQ3JlZGVu
dGlhbHNNZXNzZW5nZXI7CisKKyAgICAgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWwuaXNV
c2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCBmYWxzZSk7Cisg
ICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsLmlzVXNlclZlcmlmeWluZ1Bs
YXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIHdpdGhvdXQgYW55IGF2YWlsYWJsZSBhdXRo
ZW50aWNhdG9ycy4iKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAg
IGludGVybmFscy5tb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIuc2V0RGlkVXNlclZlcmlmeWluZ1Bs
YXRmb3JtQXV0aGVudGljYXRvclByZXNlbnQoKTsKKworICAgICAgICByZXR1cm4gUHVibGljS2V5
Q3JlZGVudGlhbC5pc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUo
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1
bHQsIHRydWUpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbC5pc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSB3aXRoIGF2YWlsYWJs
ZSBhdXRoZW50aWNhdG9ycy4iKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>