<?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>234753</bug_id>
          
          <creation_ts>2021-12-30 11:23:33 -0800</creation_ts>
          <short_desc>[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()</short_desc>
          <delta_ts>2022-01-04 10:10:11 -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>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827251</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-30 11:23:33 -0800</bug_when>
    <thetext>[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827257</commentid>
    <comment_count>1</comment_count>
      <attachid>448104</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-30 12:43:16 -0800</bug_when>
    <thetext>Created attachment 448104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827261</commentid>
    <comment_count>2</comment_count>
      <attachid>448106</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-30 13:04:40 -0800</bug_when>
    <thetext>Created attachment 448106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827356</commentid>
    <comment_count>3</comment_count>
      <attachid>448128</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 12:19:39 -0800</bug_when>
    <thetext>Created attachment 448128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827358</commentid>
    <comment_count>4</comment_count>
      <attachid>448129</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 12:28:00 -0800</bug_when>
    <thetext>Created attachment 448129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827359</commentid>
    <comment_count>5</comment_count>
      <attachid>448130</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 12:32:03 -0800</bug_when>
    <thetext>Created attachment 448130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827362</commentid>
    <comment_count>6</comment_count>
      <attachid>448131</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 12:39:05 -0800</bug_when>
    <thetext>Created attachment 448131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827367</commentid>
    <comment_count>7</comment_count>
      <attachid>448133</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 14:14:14 -0800</bug_when>
    <thetext>Created attachment 448133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827382</commentid>
    <comment_count>8</comment_count>
      <attachid>448138</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 17:10:55 -0800</bug_when>
    <thetext>Created attachment 448138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827390</commentid>
    <comment_count>9</comment_count>
      <attachid>448141</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-12-31 21:29:08 -0800</bug_when>
    <thetext>Created attachment 448141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827551</commentid>
    <comment_count>10</comment_count>
      <attachid>448141</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-01-02 15:49:52 -0800</bug_when>
    <thetext>Comment on attachment 448141
Patch

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

&gt; LayoutTests/media/track/video-track-alternate-groups-expected.txt:26
&gt; -TRACK id:2 kind:main language:en
&gt; -TRACK id:4 kind:main language:fr
&gt; -TRACK id:6 kind:main language:es
&gt; +TRACK id:3 kind:main language:eng
&gt; +TRACK id:5 kind:main language:fra
&gt; +TRACK id:7 kind:main language:spa

Huh, this is not just a &quot;testExpectedEventually&quot; change. Is this patch fixing more than originally intended?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827773</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-03 09:18:44 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #10)
&gt; Comment on attachment 448141 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448141&amp;action=review
&gt; 
&gt; &gt; LayoutTests/media/track/video-track-alternate-groups-expected.txt:26
&gt; &gt; -TRACK id:2 kind:main language:en
&gt; &gt; -TRACK id:4 kind:main language:fr
&gt; &gt; -TRACK id:6 kind:main language:es
&gt; &gt; +TRACK id:3 kind:main language:eng
&gt; &gt; +TRACK id:5 kind:main language:fra
&gt; &gt; +TRACK id:7 kind:main language:spa
&gt; 
&gt; Huh, this is not just a &quot;testExpectedEventually&quot; change. Is this patch
&gt; fixing more than originally intended?

This is a difference between how AVFoundation reports the languages from AVAssetTrack and AVMediaSelectionOption. We now use the former when present over the latter, which is more correct and now matches the language code when selection groups are not present.

So this is a correctness progression as well as a hang progression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827883</commentid>
    <comment_count>12</comment_count>
      <attachid>448141</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-01-04 01:41:15 -0800</bug_when>
    <thetext>Comment on attachment 448141
Patch

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

LGTM

&gt; Source/WebCore/platform/graphics/PlatformAudioTrackConfiguration.h:71
&gt; +    return true;

return decoder.decode(..) &amp;&amp; decoder.decode(…)
?

&gt; Source/WebCore/platform/graphics/PlatformVideoTrackConfiguration.h:71
&gt; +        return false;

Same return decoder.decode(…) &amp;&amp; ….

&gt; Source/WebKit/GPUProcess/media/AudioTrackPrivateRemoteConfiguration.h:54
&gt; +        if (!decoder.decode(configuration.enabled))

return decoder.decode() &amp;&amp;..

&gt; Source/WebKit/GPUProcess/media/TrackPrivateRemoteConfiguration.h:64
&gt; +        return true;

Same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827964</commentid>
    <comment_count>13</comment_count>
      <attachid>448141</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-01-04 09:17:36 -0800</bug_when>
    <thetext>Comment on attachment 448141
Patch

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

&gt; Source/WebCore/platform/graphics/VideoTrackPrivate.h:70
&gt; +        m_configuration = configuration;

m_configuration = WTFMove(configuration)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827965</commentid>
    <comment_count>14</comment_count>
      <attachid>448141</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2022-01-04 09:20:03 -0800</bug_when>
    <thetext>Comment on attachment 448141
Patch

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

&gt; Source/WebCore/Modules/webcodecs/VideoColorSpace.h:46
&gt; +    void setState(const VideoColorSpaceInit&amp; state) { m_state = state; }

Nit. Not sure &quot;state&quot; and &quot;setState&quot; are the best names.

&gt; Source/WebCore/platform/graphics/PlatformAudioTrackConfiguration.h:45
&gt; +    return a.codec == b.codec

Nit. Not an issue. It looks strange to use the `codec` property here, which is a property of `PlatformTrackConfiguration`.

&gt;&gt; Source/WebCore/platform/graphics/VideoTrackPrivate.h:70
&gt;&gt; +        m_configuration = configuration;
&gt; 
&gt; m_configuration = WTFMove(configuration)

Nit. WTFMove().

&gt; Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:89
&gt; +    [m_assetTrack  loadValuesAsynchronouslyForKeys:assetTrackConfigurationKeyNames() completionHandler:[weakThis = WeakPtr(this)] () mutable {

Nit. An extra space.

&gt; Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:90
&gt; +        RunLoop::main().dispatch([weakThis = WTFMove(weakThis)] {

Can we use `callOnMainRunLoop()` here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827979</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-04 09:46:02 -0800</bug_when>
    <thetext>(In reply to Jean-Yves Avenard [:jya] from comment #12)
&gt; Comment on attachment 448141 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448141&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/PlatformAudioTrackConfiguration.h:71
&gt; &gt; +    return true;
&gt; 
&gt; return decoder.decode(..) &amp;&amp; decoder.decode(…)
&gt; ?

Good idea; much simpler!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827980</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-04 09:51:21 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #13)
&gt; Comment on attachment 448141 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448141&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/VideoTrackPrivate.h:70
&gt; &gt; +        m_configuration = configuration;
&gt; 
&gt; m_configuration = WTFMove(configuration)

Ok.

(In reply to Peng Liu from comment #14)
&gt; Comment on attachment 448141 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448141&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webcodecs/VideoColorSpace.h:46
&gt; &gt; +    void setState(const VideoColorSpaceInit&amp; state) { m_state = state; }
&gt; 
&gt; Nit. Not sure &quot;state&quot; and &quot;setState&quot; are the best names.

Well, one other option is &quot;init&quot;, but that&apos;s also not a great name. This pattern is used elsewhere, so lets brainstorm in a different patch what a better name for this pattern would be.

&gt; &gt; Source/WebCore/platform/graphics/PlatformAudioTrackConfiguration.h:45
&gt; &gt; +    return a.codec == b.codec
&gt; 
&gt; Nit. Not an issue. It looks strange to use the `codec` property here, which
&gt; is a property of `PlatformTrackConfiguration`.

Yeah, I&apos;ll look into this after as well.

&gt; &gt;&gt; Source/WebCore/platform/graphics/VideoTrackPrivate.h:70
&gt; &gt;&gt; +        m_configuration = configuration;
&gt; &gt; 
&gt; &gt; m_configuration = WTFMove(configuration)
&gt; 
&gt; Nit. WTFMove().

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:89
&gt; &gt; +    [m_assetTrack  loadValuesAsynchronouslyForKeys:assetTrackConfigurationKeyNames() completionHandler:[weakThis = WeakPtr(this)] () mutable {
&gt; 
&gt; Nit. An extra space.

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:90
&gt; &gt; +        RunLoop::main().dispatch([weakThis = WTFMove(weakThis)] {
&gt; 
&gt; Can we use `callOnMainRunLoop()` here?

Sure, it&apos;s slightly shorter but exactly the same code in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827982</commentid>
    <comment_count>17</comment_count>
      <attachid>448305</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-04 09:55:15 -0800</bug_when>
    <thetext>Created attachment 448305
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827987</commentid>
    <comment_count>18</comment_count>
      <attachid>448306</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-04 10:06:23 -0800</bug_when>
    <thetext>Created attachment 448306
[fast-cq] Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827992</commentid>
    <comment_count>19</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-01-04 10:09:46 -0800</bug_when>
    <thetext>&lt;rdar://86855896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827993</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-04 10:10:05 -0800</bug_when>
    <thetext>Committed r287574 (245705@main): &lt;https://commits.webkit.org/245705@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448306.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448104</attachid>
            <date>2021-12-30 12:43:16 -0800</date>
            <delta_ts>2021-12-30 13:07:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211230124316.patch</filename>
            <type>text/plain</type>
            <size>3250</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJiNjZjNzgzYjZhNGM3
MDNmYTIyYTYwNjBjZWQ0NGE5ZDZjMjJkNi4uMzhlYjI3N2U0MGUzYWUyM2M4MWQ1MTEwMzg5ZDEy
MmJhYzJiMmQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEyLTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXREZXNjcmlwdGlvbkZv
cik6CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpmcmFtZXJh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0
ZSk6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbiBjbGFzcyBh
bmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3MmQ1MTZhNTYzYjg0
NjU0ODA2ZjkyLi43MjlmMDM0Y2Q3NGJkYzNmNGJiMmFhMGQwNzA2N2E5NTc2YTNiNjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQpAQCAtMjU2
LDcgKzI1Niw3IEBAIHN0YXRpYyBBVkFzc2V0VHJhY2sqIGFzc2V0VHJhY2tGb3IoY29uc3QgQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHN0YXRpYyBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uRm9yKGNvbnN0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwm
IGltcGwpCiB7CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0ZvcihpbXBsKTsKLSAg
ICBpZiAoIWFzc2V0VHJhY2sgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50
KQorICAgIGlmICghYXNzZXRUcmFjayB8fCBbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5
OkAiZm9ybWF0RGVzY3JpcHRpb25zIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2Fk
ZWQpIHx8ICFhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5jb3VudCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+KGFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zWzBdKTsKIH0KQEAgLTI5MSwxMCArMjkx
LDEyIEBAIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6
OmNvbG9yU3BhY2UoKSBjb25zdAogCiBkb3VibGUgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
ZnJhbWVyYXRlKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFj
a0ZvcigqdGhpcykpCi0gICAgICAgIHJldHVybiBhc3NldFRyYWNrLm5vbWluYWxGcmFtZVJhdGU7
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgYXV0byBhc3Nl
dFRyYWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CisgICAgaWYgKCFhc3NldFRyYWNrKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpA
Im5vbWluYWxGcmFtZVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFzc2V0VHJhY2subm9taW5hbEZyYW1lUmF0
ZTsKIH0KIAogdWludDMyX3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2FtcGxlUmF0ZSgp
IGNvbnN0CkBAIC0zMjgsNiArMzMwLDggQEAgdWludDY0X3QgQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbDo6Yml0cmF0ZSgpIGNvbnN0CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0Zv
cigqdGhpcyk7CiAgICAgaWYgKCFhc3NldFRyYWNrKQogICAgICAgICByZXR1cm4gMDsKKyAgICBp
ZiAoW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpAImVzdGltYXRlZERhdGFSYXRlIiBl
cnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCisgICAgICAgIHJldHVybiAwOwog
ICAgIGlmICghc3RkOjppc2Zpbml0ZShhc3NldFRyYWNrLmVzdGltYXRlZERhdGFSYXRlKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFzc2V0VHJhY2suZXN0aW1hdGVkRGF0YVJhdGU7
Cg==
</data>
<flag name="commit-queue"
          id="473901"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448106</attachid>
            <date>2021-12-30 13:04:40 -0800</date>
            <delta_ts>2021-12-31 12:19:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211230130439.patch</filename>
            <type>text/plain</type>
            <size>3249</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJiNjZjNzgzYjZhNGM3
MDNmYTIyYTYwNjBjZWQ0NGE5ZDZjMjJkNi4uMzhlYjI3N2U0MGUzYWUyM2M4MWQ1MTEwMzg5ZDEy
MmJhYzJiMmQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEyLTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXREZXNjcmlwdGlvbkZv
cik6CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpmcmFtZXJh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0
ZSk6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbiBjbGFzcyBh
bmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3MmQ1MTZhNTYzYjg0
NjU0ODA2ZjkyLi5mNDI1Y2UyM2JlZmQyMzQ4Nzc4NDY3MmEwYWIyZTU4YTk0YjUwMGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQpAQCAtMjU2
LDcgKzI1Niw3IEBAIHN0YXRpYyBBVkFzc2V0VHJhY2sqIGFzc2V0VHJhY2tGb3IoY29uc3QgQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHN0YXRpYyBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uRm9yKGNvbnN0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwm
IGltcGwpCiB7CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0ZvcihpbXBsKTsKLSAg
ICBpZiAoIWFzc2V0VHJhY2sgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50
KQorICAgIGlmICghYXNzZXRUcmFjayB8fCBbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5
OkAiZm9ybWF0RGVzY3JpcHRpb25zIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2Fk
ZWQgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4oYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnNbMF0pOwogfQpAQCAtMjkxLDEwICsyOTEs
MTIgQEAgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
Y29sb3JTcGFjZSgpIGNvbnN0CiAKIGRvdWJsZSBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpm
cmFtZXJhdGUoKSBjb25zdAogewotICAgIGlmIChhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNr
Rm9yKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGFzc2V0VHJhY2subm9taW5hbEZyYW1lUmF0ZTsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBhdXRvIGFzc2V0
VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKKyAgICBpZiAoIWFzc2V0VHJhY2spCisgICAg
ICAgIHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAi
bm9taW5hbEZyYW1lUmF0ZSIgZXJyb3I6bmlsXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXNzZXRUcmFjay5ub21pbmFsRnJhbWVSYXRl
OwogfQogCiB1aW50MzJfdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpzYW1wbGVSYXRlKCkg
Y29uc3QKQEAgLTMyOCw2ICszMzAsOCBAQCB1aW50NjRfdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpiaXRyYXRlKCkgY29uc3QKICAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9y
KCp0aGlzKTsKICAgICBpZiAoIWFzc2V0VHJhY2spCiAgICAgICAgIHJldHVybiAwOworICAgIGlm
IChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiZXN0aW1hdGVkRGF0YVJhdGUiIGVy
cm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFzc2V0VHJhY2suZXN0aW1hdGVkRGF0YVJhdGUpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gYXNzZXRUcmFjay5lc3RpbWF0ZWREYXRhUmF0ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448128</attachid>
            <date>2021-12-31 12:19:39 -0800</date>
            <delta_ts>2021-12-31 12:27:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231121939.patch</filename>
            <type>text/plain</type>
            <size>100487</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJiNjZjNzgzYjZhNGM3
MDNmYTIyYTYwNjBjZWQ0NGE5ZDZjMjJkNi4uNTcxODcyMTQxMzQyYTgzN2UwMjJiY2UyOWJmNzk3
ZjAxYjY1MjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBhMDkwNWQ4OWE3YTE5M2VmMTMyOWE5MDRlNGYzOGU1M2NhNjZkNzhhLi5jYzBkZTYyOGUzY2Rh
NTkyNWNkNjcwZTg0MzQ4MmRmZDlkNmU1NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNGUxNmExMDQzNzFhODZiNzJlM2Q4YWIyMmE1MGY2MGUwYmY0NDE2ZS4uMTkwM2U5ZWYxZmU4
YjczZWYzMTNlZGIyN2M1OTgyNzczZWMyYzg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU2Miw2ICs0NTYyLDkgQEAKIAkJ
Q0RDQzlCRDEyMjM4N0VBQTAwRkZCNTFDIC8qIE1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENDOUJE
MDIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENENDFFODFD
M0REQjBBMDA5NjVEOTkgLyogUGFyc2VkQ29udGVudFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENENDFFNjFDM0REQjA5MDA5NjVEOTkgLyog
UGFyc2VkQ29udGVudFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJC
MThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQkQyNzdFNTQyNjAwRUEzNzU1IC8q
IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCQzI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDREQwOEFDMDI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDREQwOEFDMjI3N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDREQ3MDg5NzE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYg
LyogU2FtcGxlTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RE
QzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTNBODU0MTdG
NUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8q
IEF1ZGlvVHJhY2tQcml2YXRlQVZGLmggKi87IH07CkBAIC0xNjEwNyw2ICsxNjExMCw5IEBACiAJ
CUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBFdmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHREYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBIaWdo
bGlnaHREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCQzI3N0U1
NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDMTI3N0U1NTRFMDBFQTM3
NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NDE4MzU5RjZFMDAy
QjNEQzYgLyogU2FtcGxlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNhbXBsZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk1
MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2FtcGxlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODYw
MywyMDIgKzI4NjA5LDIyOSBAQAogCQkJCTM3MjE0OTMzMThGMEI2RDYwMDE1NkVEQyAvKiBvcGVu
dHlwZSAqLywKIAkJCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLywK
IAkJCQlCQzYzNUU5MTI2NEM0NzYwMDAwRUYzM0EgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5j
cHAgKi8sCi0JCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLywKIAkJCQkwRjdFNDc1MzI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwICovLAotCQkJCTBGN0U0NzU0MjVFRUI3OUIwMDEzRjkwOSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovLAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAorCQkJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3QyAvKiBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKKwkJCQlBODk5NDMyNzBCNDIzMzg3MDBEN0M4MDIg
LyogQml0bWFwSW1hZ2UuY3BwICovLAorCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAvKiBD
b2xvci5jcHAgKi8sCisJCQkJN0MxQjRBNjUyNEE5OTc1OTAwMzM3MjdGIC8qIENvbG9yQmxlbmRp
bmcuY3BwICovLAorCQkJCTdDNTE0RTAyMjRBRjgwNTgwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNp
b24uY3BwICovLAorCQkJCUJDREM2NDI0Mjc1MTdCMDQwMDM4RkIzOSAvKiBDb2xvckludGVycG9s
YXRpb24uY3BwICovLAorCQkJCUJDNkVCODQ1MjYyNjZCNjEwMDMyMjVBNyAvKiBDb2xvckx1bWlu
YW5jZS5jcHAgKi8sCisJCQkJN0NEMUU2OTIyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFs
aXphdGlvbi5jcHAgKi8sCisJCQkJQkNBRkVEQUYyNTk2NkQwNTAwMzBFNkFBIC8qIENvbG9yU3Bh
Y2UuY3BwICovLAorCQkJCTBGRTZDNzZCMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGll
cy5jcHAgKi8sCisJCQkJQzJGNEU3ODgxRTQ1QUVERjAwNkQ3MTA1IC8qIENvbXBsZXhUZXh0Q29u
dHJvbGxlci5jcHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQlCQzJDQ0EwRjI2NTVEREIyMDBCOEMwMzUgLyog
RGVzdGluYXRpb25Db2xvclNwYWNlLmNwcCAqLywKKwkJCQk0OUZDN0E0RjE0NDRBRjVGMDBBNUQ4
NjQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCAqLywKKwkJCQkyRDI5RUNDMTE5MkVDQzgz
MDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCAqLywKKwkJCQkyRDI5
RUNDMzE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAg
Ki8sCisJCQkJMEZCQjVGQzkyNjBFOUI0MzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuY3BwICov
LAorCQkJCTJFODg4Q0E5MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuY3BwICovLAorCQkJ
CUIyNzUzNTNBMEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50LmNwcCAqLywKKwkJCQlCMkUy
N0M5RDBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCAqLywKKwkJCQk2RUM0ODA5
RjE2RUE2MzhBMDBBNDhEQ0IgLyogRmxvYXRQb2x5Z29uLmNwcCAqLywKKwkJCQkwRkQ3MjM4MTBF
QzhCRDkzMDBDQTVERDcgLyogRmxvYXRRdWFkLmNwcCAqLywKKwkJCQlCMjc1MzUzQzBCMDUzODE0
MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmNwcCAqLywKKwkJCQk2RTBFNTY5OTE4M0JGRkU2MDBFMEU4
RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgKi8sCisJCQkJQjI3NTM1M0UwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0U2l6ZS5jcHAgKi8sCisJCQkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnQuY3BwICovLAorCQkJCUIyQzNEQTUxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUu
Y3BwICovLAorCQkJCUIyQzNEQTRGMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZS5jcHAg
Ki8sCisJCQkJRTRFOEI0RjAyMTZCOEI1RjAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVzY3JpcHRp
b24uY3BwICovLAorCQkJCUIyQzNEQTU2MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZv
bnRzLmNwcCAqLywKKwkJCQkzN0FDQ0U2MjBEQTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0
aW9uLmNwcCAqLywKKwkJCQlDMjgwQjNGRDFFRjQ2MDg5MDBEMzUxMzUgLyogRm9udEZhbWlseVNw
ZWNpZmljYXRpb25OdWxsLmNwcCAqLywKKwkJCQlFNDRFRTNBNjE3NTc2RTU1MDBFRUU4Q0YgLyog
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHAgKi8sCisJCQkJODRCNjI2ODQxMzMxMzhGOTAwOTVBNDg5
IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovLAorCQkJCTM3MUY0RkZCMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmNwcCAqLywKKwkJCQlDMkFCMEFGNDFFNkIzQzZDMDAxMzQ4QzUgLyog
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5jcHAgKi8sCisJCQkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRUYWdnZWRTZXR0aW5ncy5jcHAgKi8sCisJCQkJN0NFNkNCRkMxODdGMzk0OTAw
RDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAgKi8sCisJCQkJNEZCMzkwQUMxNUVGNjFGMzAw
N0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkwRkI2MjUyQzE4REUxQjE1MDBB
MDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwICovLAorCQkJCUJDNTNDNjA3MERBNTZDNTcw
MDIxRUI1RCAvKiBHcmFkaWVudC5jcHAgKi8sCisJCQkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMz
IC8qIEdyYWRpZW50SW1hZ2UuY3BwICovLAorCQkJCUIyQTAxNTkyMEFGNkNENTMwMDZCQ0UwRSAv
KiBHcmFwaGljc0NvbnRleHQuY3BwICovLAorCQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCisJCQkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4
IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovLAorCQkJCTBGNTgwQjA5
MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmNwcCAqLywKKwkJCQk3QkJGREVDRDI3
NDI4RjU0MDBFRDBCNzcgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmNw
cCAqLywKKwkJCQkwRkEyNEQ3NzE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0
ZXIuY3BwICovLAorCQkJCUIyQTAxNTk0MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVz
LmNwcCAqLywKKwkJCQlDREE1OTU5MjIxNDZERUMzMDBBODQxODUgLyogSEVWQ1V0aWxpdGllcy5j
cHAgKi8sCisJCQkJQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLywKKwkJ
CQk0M0QyNTk3NjEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIuY3BwICovLAorCQkJCTcy
QkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovLAorCQkJ
CTQzRDI1OTg2MTNDODE2RjQwMDYwODU1OSAvKiBJbWFnZUJ1ZmZlclBpcGUuY3BwICovLAorCQkJ
CUNEMTlGRUE3MUY1NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuY3BwICovLAorCQkJCTU1
NzZBNTYyMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLywKKwkJCQlDQTNBNEFB
QjI1NDE2RTNDMDA2Q0RBRTIgLyogSW1hZ2VSZXNvbHV0aW9uLmNwcCAqLywKKwkJCQk1NTQ2NzU3
NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovLAorCQkJCTA3ODYzM0Y4MjQw
NzE1RDIwMDg3QUUyMSAvKiBJbmJhbmRHZW5lcmljQ3VlLmNwcCAqLywKKwkJCQkyRDQ2RjA0RDE3
Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwICovLAorCQkJCUIyNzUzNTQ1MEIwNTM4MTQw
MDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLywKKwkJCQkyRDQ2RjA0RjE3Qjk2RkQyMDA1NjQ3RjAg
LyogSW50U2l6ZS5jcHAgKi8sCisJCQkJMEYzNkU3MzYxQkQxODM3QTAwMkRCODkxIC8qIExheW91
dFBvaW50LmNwcCAqLywKKwkJCQkxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5jcHAgKi8sCisJCQkJMEYzNkU3MzgxQkQxODRCOTAwMkRCODkxIC8qIExheW91dFNpemUuY3Bw
ICovLAorCQkJCTA3OEU0M0Q3MUFCQjZDN0UwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmNwcCAqLywKKwkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5
ZXIuY3BwICovLAorCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hl
LmNwcCAqLywKKwkJCQkyREM4RDM5NjI1RjJGRTkzMDBDRkNCQUIgLyogTW9kZWwuY3BwICovLAor
CQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2Uu
Y3BwICovLAorCQkJCTcyNTIzOTZCMjU0Q0FEQzIwMEY1RkIxNSAvKiBOYXRpdmVJbWFnZS5jcHAg
Ki8sCisJCQkJQjI3NTM1NTIwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwICovLAorCQkJCUE4
OERENDg4MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovLAorCQkJ
CTJENTAwMkY5MUI1NkQ3OTkwMDIwQUFGNyAvKiBQYXRoVXRpbGl0aWVzLmNwcCAqLywKKwkJCQlB
OEZBNkU1QzBFNENGREVEMDBENUNGNDkgLyogUGF0dGVybi5jcHAgKi8sCisJCQkJQkM0ODM5QkIy
NjQ2MTgxQTAwQTI4QjYyIC8qIFBpeGVsQnVmZmVyLmNwcCAqLywKKwkJCQlCQzBDQTc0RDI2NEFF
RDBBMDA0RkRDNjIgLyogUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcCAqLywKKwkJCQlCQzYzNUU4
RjI2NEMyRUNFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuY3BwICovLAorCQkJCUJDNjM1
RTkwMjY0QzQ2OUYwMDBFRjMzQSAvKiBQaXhlbEZvcm1hdC5jcHAgKi8sCisJCQkJMDc0RTgyQjgx
OEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCisJCQkJQkNBQjQx
N0YxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCisJCQkJN0JFNzI2NUIyNTc2M0I4
RDAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcCAqLywKKwkJ
CQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAor
CQkJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8sCisJCQkJ
MEYzREQ0NEQxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwICovLAorCQkJCTFERDEy
N0FDMjU2RTNBODcwMEIyMjdENyAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCAqLywKKwkJCQlC
MjM1NDBGMDBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmNwcCAqLywKKwkJCQkz
NzZEQ0NFMDEzQjRGOTY2MDAyRUJFRkMgLyogVGV4dFJ1bi5jcHAgKi8sCisJCQkJQ0QxRTczNDYx
NjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLywKKwkJCQkw
NzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCisJCQkJ
MEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCisJCQkJQ0Q2
RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QjAy
RUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovLAorCQkJCTM3OTkxOTk0
MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgKi8sCisJCQkJNzI5OUJDNjQy
M0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywKKwkJCQkwRjdF
NDc1NDI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLywKIAkJCQk3MjJB
ODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVG
MjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Qx
RjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCi0J
CQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwICovLAogCQkJCTJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggKi8sCi0JCQkJQTg5OTQzMjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmNwcCAqLywKIAkJCQlBODk5NDMyNjBCNDIzMzg3MDBEN0M4MDIgLyogQml0bWFwSW1hZ2Uu
aCAqLywKLQkJCQlCMjc1MzUzODBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3IuY3BwICovLAogCQkJ
CUIyNzUzNTM5MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5oICovLAotCQkJCTdDMUI0QTY1MjRB
OTk3NTkwMDMzNzI3RiAvKiBDb2xvckJsZW5kaW5nLmNwcCAqLywKIAkJCQk3QzFCNEE2NzI0QTk5
NzY2MDAzMzcyN0YgLyogQ29sb3JCbGVuZGluZy5oICovLAogCQkJCTdDQUM2QUVDMjQ3RjFDNTEw
MEU2MUQ1OSAvKiBDb2xvckNvbXBvbmVudHMuaCAqLywKLQkJCQk3QzUxNEUwMjI0QUY4MDU4MDA1
MDcxMEYgLyogQ29sb3JDb252ZXJzaW9uLmNwcCAqLywKIAkJCQk3QzUxNEUwMDI0QUY4MDU4MDA1
MDcxMEYgLyogQ29sb3JDb252ZXJzaW9uLmggKi8sCiAJCQkJMzEwM0I3REUxREIwMTU1NjAwOEJC
ODkwIC8qIENvbG9ySGFzaC5oICovLAotCQkJCUJDREM2NDI0Mjc1MTdCMDQwMDM4RkIzOSAvKiBD
b2xvckludGVycG9sYXRpb24uY3BwICovLAogCQkJCUJDREM2NDI1Mjc1MTdCMDQwMDM4RkIzOSAv
KiBDb2xvckludGVycG9sYXRpb24uaCAqLywKIAkJCQlCQzJFRThFODI3NjU5NDJBMDA3Nzc2OEIg
LyogQ29sb3JJbnRlcnBvbGF0aW9uTWV0aG9kLmggKi8sCi0JCQkJQkM2RUI4NDUyNjI2NkI2MTAw
MzIyNUE3IC8qIENvbG9yTHVtaW5hbmNlLmNwcCAqLywKIAkJCQlCQzRBMjNFQjI1RUMxNjAyMDBB
QUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCAqLywKIAkJCQk3Q0FDNkFFODI0N0YwODIwMDBFNjFE
NTkgLyogQ29sb3JNYXRyaXguaCAqLywKIAkJCQlCQzEwMTM3QjI1QzM2MjRCMDBEQzc3M0MgLyog
Q29sb3JNb2RlbHMuaCAqLywKIAkJCQlCQ0IyRjg4RDI3NUJFRTU3MDA3MjMxQkYgLyogQ29sb3JO
b3JtYWxpemF0aW9uLmggKi8sCi0JCQkJN0NEMUU2OTIyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9y
U2VyaWFsaXphdGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEyNEFCRjYyNDAwODlDNDE5IC8qIENv
bG9yU2VyaWFsaXphdGlvbi5oICovLAotCQkJCUJDQUZFREFGMjU5NjZEMDUwMDMwRTZBQSAvKiBD
b2xvclNwYWNlLmNwcCAqLywKIAkJCQk5MzgyREY1NzEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JT
cGFjZS5oICovLAogCQkJCUJDMTAxMzdFMjVDMzYzMTYwMERDNzczQyAvKiBDb2xvclRyYW5zZmVy
RnVuY3Rpb25zLmggKi8sCiAJCQkJN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlw
ZXMuaCAqLywKLQkJCQkwRkU2Qzc2QjFGQkZCN0E2MDAyNUMwNTMgLyogQ29sb3JVdGlsaXRpZXMu
Y3BwICovLAogCQkJCTBGRTZDNzZDMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGllcy5o
ICovLAotCQkJCUMyRjRFNzg4MUU0NUFFREYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCUMyRjRFNzg5MUU0NUFFREYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENv
bnRyb2xsZXIuaCAqLywKIAkJCQkxQzg0QkU0MTI2RDM5MzlGMDAyRDYxRkMgLyogQ29tcG9zZWRD
aGFyYWN0ZXJDbHVzdGVyVGV4dEl0ZXJhdG9yLmggKi8sCiAJCQkJNzJCQUMzQTcyM0UxNzMyODAw
OEQ3NDFDIC8qIENvbmNyZXRlSW1hZ2VCdWZmZXIuaCAqLywKLQkJCQkyRDJGQzA1NDE0NjBDRDZG
MDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTJEMkZDMDU1
MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUE4
Q0I0MTAyMEU4NUI4QTUwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCAqLywKIAkJCQk1NTUxMzAwMDFF
N0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8sCi0JCQkJQkMyQ0NBMEYyNjU1
RERCMjAwQjhDMDM1IC8qIERlc3RpbmF0aW9uQ29sb3JTcGFjZS5jcHAgKi8sCiAJCQkJQkMyQ0NB
MEUyNjU1RERCMjAwQjhDMDM1IC8qIERlc3RpbmF0aW9uQ29sb3JTcGFjZS5oICovLAotCQkJCTQ5
RkM3QTRGMTQ0NEFGNUYwMEE1RDg2NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwICovLAog
CQkJCTQ5QUYyRDY4MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCAq
LywKLQkJCQkyRDI5RUNDMTE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmNwcCAqLywKIAkJCQkyRDI5RUNDMjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50LmggKi8sCiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKLQkJCQkyRDI5RUNDMzE5MkVDQzgz
MDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQy
OUVDQzQxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAq
LywKLQkJCQkwRkJCNUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8s
CiAJCQkJMEZCQjVGQ0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJ
CQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRHJhd0dseXBoc1JlY29yZGVyLmggKi8sCiAJ
CQkJNkU2N0QyQTgxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnNHTC5oICovLAotCQkJCTJF
ODg4Q0E5MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuY3BwICovLAogCQkJCTJFODg4Q0E4
MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuaCAqLywKLQkJCQlCMjc1MzUzQTBCMDUzODE0
MDAyQ0U2NEYgLyogRmxvYXRQb2ludC5jcHAgKi8sCiAJCQkJQjI3NTM1M0IwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0UG9pbnQuaCAqLywKLQkJCQlCMkUyN0M5RDBCMEYyQjA5MDBGMTdDN0IgLyog
RmxvYXRQb2ludDNELmNwcCAqLywKIAkJCQlCMkUyN0M5RTBCMEYyQjA5MDBGMTdDN0IgLyogRmxv
YXRQb2ludDNELmggKi8sCi0JCQkJNkVDNDgwOUYxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9s
eWdvbi5jcHAgKi8sCiAJCQkJNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9seWdv
bi5oICovLAotCQkJCTBGRDcyMzgxMEVDOEJEOTMwMENBNURENyAvKiBGbG9hdFF1YWQuY3BwICov
LAogCQkJCTBGRDcyMzgwMEVDOEJEOTMwMENBNURENyAvKiBGbG9hdFF1YWQuaCAqLywKLQkJCQlC
Mjc1MzUzQzBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmNwcCAqLywKIAkJCQlCMjc1MzUz
RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmggKi8sCi0JCQkJNkUwRTU2OTkxODNCRkZF
NjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuY3BwICovLAogCQkJCTZFMEU1NjlBMTgzQkZG
RTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8sCi0JCQkJQjI3NTM1M0UwQjA1Mzgx
NDAwMkNFNjRGIC8qIEZsb2F0U2l6ZS5jcHAgKi8sCiAJCQkJQjI3NTM1M0YwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0U2l6ZS5oICovLAogCQkJCTU4Q0QzNUNBMThFQjRDMzkwMEI5RjNBQyAvKiBG
bG9hdFNpemVIYXNoLmggKi8sCi0JCQkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnQu
Y3BwICovLAogCQkJCUIyQzNEQTU0MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250LmggKi8sCiAJCQkJ
QkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oICovLAotCQkJCUIyQzNE
QTUxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuY3BwICovLAogCQkJCUIyQzNEQTUyMEQw
MDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCAqLywKLQkJCQlCMkMzREE0RjBEMDA2Q0Q2MDBF
RjZGMjYgLyogRm9udENhc2NhZGUuY3BwICovLAogCQkJCUIyQzNEQTUwMEQwMDZDRDYwMEVGNkYy
NiAvKiBGb250Q2FzY2FkZS5oICovLAotCQkJCUU0RThCNEYwMjE2QjhCNUYwMEI4ODM0RCAvKiBG
b250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQlFNEU4QjRGMjIxNkI4QjYwMDBCODgz
NEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oICovLAotCQkJCUIyQzNEQTU2MEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmNwcCAqLywKIAkJCQlCMkMzREE1NzBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oICovLAogCQkJCTFDMjY2NzE5MjZGQTdGMkUw
MDExNzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggKi8sCi0JCQkJMzdBQ0NFNjIwREEyQUE5
NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJQjJDM0RBNTUwRDAwNkNE
NjAwRUY2RjI2IC8qIEZvbnREZXNjcmlwdGlvbi5oICovLAotCQkJCUMyODBCM0ZEMUVGNDYwODkw
MEQzNTEzNSAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuY3BwICovLAogCQkJCUMyQzJD
RjU1MUVGMzc2MUEwMDQyODFBOCAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuaCAqLywK
LQkJCQlFNDRFRTNBNjE3NTc2RTU1MDBFRUU4Q0YgLyogRm9udEdlbmVyaWNGYW1pbGllcy5jcHAg
Ki8sCiAJCQkJRTQ0RUUzQTcxNzU3NkU1NTAwRUVFOENGIC8qIEZvbnRHZW5lcmljRmFtaWxpZXMu
aCAqLywKIAkJCQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLywK
IAkJCQkxQzQ2NzRGRDI2RjQ4NDM2MDBCNjEyNzMgLyogRm9udFBhbGV0dGUuaCAqLywKIAkJCQkx
QzVFMURBNjI2Rjk0OUI5MDBFMDdBRjEgLyogRm9udFBhbGV0dGVWYWx1ZXMuaCAqLywKLQkJCQk4
NEI2MjY4NDEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5jcHAgKi8sCiAJCQkJ
QjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLywKLQkJCQkz
NzFGNEZGQjBEMjVFN0YzMDBFQ0UwRDUgLyogRm9udFJhbmdlcy5jcHAgKi8sCiAJCQkJMzcxRjRG
RkEwRDI1RTdGMzAwRUNFMEQ1IC8qIEZvbnRSYW5nZXMuaCAqLywKLQkJCQlDMkFCMEFGNDFFNkIz
QzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRobS5jcHAgKi8sCiAJCQkJQzJBQjBB
RjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCAqLywKIAkJCQlC
MkMzREE1QTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggKi8sCiAJCQkJRTQxOTA0
MUUxQ0M2NDg2QjAwQzM1RjVEIC8qIEZvbnRTZWxlY3RvckNsaWVudC5oICovLAotCQkJCTRBNkU5
RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuY3BwICovLAogCQkJCTRB
NkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuaCAqLywKLQkJCQk3
Q0U2Q0JGQzE4N0YzOTQ5MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLywKIAkJCQk3
Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggKi8sCiAJCQkJQ0Q1
MjVCQTIxRUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5oICovLAotCQkJCTRGQjM5MEFDMTVFRjYx
RjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCiAJCQkJQkMyM0YwREEwREFGRjRB
NDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCi0JCQkJMEZCNjI1MkMxOERFMUIxNTAw
QTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRkI2MjUyRDE4REUxQjE1
MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLywKIAkJCQkwODZCQkQwRTEzNjAzOUMy
MDA4QjE1RDggLyogR2x5cGguaCAqLywKIAkJCQlCMkMzREE1QjBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhCdWZmZXIuaCAqLywKIAkJCQkxQzREMEREMTI0RDlGMERCMDAzRDc0OTggLyogR2x5cGhC
dWZmZXJNZW1iZXJzLmggKi8sCiAJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBo
TWV0cmljc01hcC5oICovLAogCQkJCTA4NzNCODZBMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBh
Z2UuaCAqLywKLQkJCQlCQzUzQzYwNzBEQTU2QzU3MDAyMUVCNUQgLyogR3JhZGllbnQuY3BwICov
LAogCQkJCUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovLAotCQkJCTJE
MkZDMDU2MTQ2MENENkYwMDI2MzYzMyAvKiBHcmFkaWVudEltYWdlLmNwcCAqLywKIAkJCQkyRDJG
QzA1NzE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJbWFnZS5oICovLAotCQkJCUIyQTAxNTky
MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuY3BwICovLAogCQkJCUIyQTAxNTkz
MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlGNDI5OTRGOTI3
MENGRTQ4MDAzMjI5OEIgLyogR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyLmggKi8sCi0J
CQkJMzEzREU4NkQyM0E5Njk2NjAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmNwcCAqLywK
IAkJCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0R0wuaCAqLywK
IAkJCQk3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzLmggKi8sCi0JCQkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4
dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovLAogCQkJCTdCQjM0QTQ1MjUzNzc2QzYwMDAyOUQwOCAv
KiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8sCiAJCQkJN0I5NUNGRTkyNzU0
RkY2RTAwMDA2MENFIC8qIEdyYXBoaWNzQ29udGV4dEdMU3RhdGUuaCAqLywKLQkJCQkwRjU4MEIw
OTBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5jcHAgKi8sCiAJCQkJMEY1ODBCMEEw
RjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCAqLywKIAkJCQkwRjU4MEIwQjBGMTJB
MjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllckNsaWVudC5oICovLAotCQkJCTdCQkZERUNEMjc0
MjhGNTQwMEVEMEI3NyAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY3Bw
ICovLAogCQkJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29udGVu
dHNEaXNwbGF5RGVsZWdhdGUuaCAqLywKIAkJCQkxQUM2OTU5MjE2MUExRTUzMDAzNzMyQ0IgLyog
R3JhcGhpY3NMYXllckZhY3RvcnkuaCAqLywKLQkJCQkwRkEyNEQ3NzE2MkRGOTE5MDBBM0Y0QzAg
LyogR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwICovLAogCQkJCTBGQTI0RDc4MTYyREY5MTkwMEEz
RjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5oICovLAotCQkJCUIyQTAxNTk0MEFGNkNENTMw
MDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCAqLywKIAkJCQlCMkEwMTU5NTBBRjZDRDUzMDA2
QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5oICovLAogCQkJCTc3QTE3QTdBMTJGMjg5MEIwMDRFMDJG
NiAvKiBHcmFwaGljc1R5cGVzR0wuaCAqLywKLQkJCQlDREE1OTU5MjIxNDZERUMzMDBBODQxODUg
LyogSEVWQ1V0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0RBNTk1OTEyMTQ2REVDMzAwQTg0MTg1IC8q
IEhFVkNVdGlsaXRpZXMuaCAqLywKIAkJCQlCMjc1MzU0MDBCMDUzODE0MDAyQ0U2NEYgLyogSWNv
bi5oICovLAotCQkJCUIyNzUzNTQxMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5jcHAgKi8sCiAJ
CQkJQjI3NTM1NDIwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmggKi8sCiAJCQkJNTVBMzM2Rjgx
RDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggKi8sCi0JCQkJNDNEMjU5NzYx
M0M4MTZGNDAwNjA4NTU5IC8qIEltYWdlQnVmZmVyLmNwcCAqLywKIAkJCQlCMkExMEI5MTBCMzgx
OEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCAqLywKLQkJCQk3MkJBQzNBNDIzRTE3MzI3MDA4
RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmNwcCAqLywKIAkJCQk3MkJBQzNBNTIzRTE3MzI4
MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCi0JCQkJNDNEMjU5ODYxM0M4MTZG
NDAwNjA4NTU5IC8qIEltYWdlQnVmZmVyUGlwZS5jcHAgKi8sCiAJCQkJQjJBMTBDOTEwQjM4MThC
RDAwMDk5QUE0IC8qIEltYWdlQnVmZmVyUGlwZS5oICovLAotCQkJCUNEMTlGRUE3MUY1NzM5NzIw
MDBDNDJGQiAvKiBJbWFnZURlY29kZXIuY3BwICovLAogCQkJCUNEMTlGRUE2MUY1NzM5NzIwMDBD
NDJGQiAvKiBJbWFnZURlY29kZXIuaCAqLywKIAkJCQkxRDQ3NjU4RDI1Q0NBNzc4MDA3QUYzMTIg
LyogSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oICovLAotCQkJCTU1NzZBNTYyMUQ4OEE3MDgwMEND
QzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLywKIAkJCQk1NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMg
LyogSW1hZ2VGcmFtZS5oICovLAogCQkJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFn
ZU9ic2VydmVyLmggKi8sCiAJCQkJQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3Jp
ZW50YXRpb24uaCAqLywKIAkJCQk3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWlu
dGluZ09wdGlvbnMuaCAqLywKLQkJCQlDQTNBNEFBQjI1NDE2RTNDMDA2Q0RBRTIgLyogSW1hZ2VS
ZXNvbHV0aW9uLmNwcCAqLywKIAkJCQlDQTNBNEFBRDI1NDE2RTNFMDA2Q0RBRTIgLyogSW1hZ2VS
ZXNvbHV0aW9uLmggKi8sCi0JCQkJNTU0Njc1NzcxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291
cmNlLmNwcCAqLywKIAkJCQk1NTQ2NzU3ODFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2Uu
aCAqLywKIAkJCQk1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovLAog
CQkJCTU1QkJENDI4MjREQjUzQTIwMEJCNkUwQyAvKiBJbWFnZVV0aWxpdGllcy5oICovLAotCQkJ
CTA3ODYzM0Y4MjQwNzE1RDIwMDg3QUUyMSAvKiBJbmJhbmRHZW5lcmljQ3VlLmNwcCAqLywKIAkJ
CQkwNzg2MzNERTIzRkVERjIyMDA4N0FFMjEgLyogSW5iYW5kR2VuZXJpY0N1ZS5oICovLAogCQkJ
CTA3MDZBMEQ3MjQwODMwQTYwMEU5MzgxOCAvKiBJbmJhbmRHZW5lcmljQ3VlSWRlbnRpZmllci5o
ICovLAogCQkJCTA3OTQxNzkzMTY2RUEwNEUwMDk0MTZDMiAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmggKi8sCiAJCQkJMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQlGNDU3NzVDRDI0MTQzN0Q1MDAyREYxQTAgLyogSW5s
aW5lUGF0aERhdGEuaCAqLywKLQkJCQkyRDQ2RjA0RDE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9p
bnQuY3BwICovLAogCQkJCUIyNzUzNTQ0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oICov
LAogCQkJCUU0NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAqLywKLQkJ
CQlCMjc1MzU0NTBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgKi8sCiAJCQkJQjI3NTM1
NDYwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLywKIAkJCQlBMkI5MjE3MjE2QzVDQzQy
MDA0MURDRDkgLyogSW50UmVjdEV4dGVudC5oICovLAogCQkJCUUxMzRGNUFBMTJFRTM0M0YwMDRF
QzU4RCAvKiBJbnRSZWN0SGFzaC5oICovLAotCQkJCTJENDZGMDRGMTdCOTZGRDIwMDU2NDdGMCAv
KiBJbnRTaXplLmNwcCAqLywKIAkJCQlCMjc1MzU0NzBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6
ZS5oICovLAogCQkJCUIyNzUzNTQ4MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplSGFzaC5oICov
LAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFUZXh0SXRlcmF0b3IuaCAq
LywKIAkJCQkwRjczNkVDQTI2Q0NCOTdBMDAwQUQ3Q0EgLyogTGF5ZXJUcmVlQXNUZXh0T3B0aW9u
cy5oICovLAotCQkJCTBGMzZFNzM2MUJEMTgzN0EwMDJEQjg5MSAvKiBMYXlvdXRQb2ludC5jcHAg
Ki8sCiAJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggKi8sCi0J
CQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovLAogCQkJCTE0
MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8sCi0JCQkJMEYzNkU3Mzgx
QkQxODRCOTAwMkRCODkxIC8qIExheW91dFNpemUuY3BwICovLAogCQkJCTE0MURDMDRFMTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRTaXplLmggKi8sCiAJCQkJQ0RERTAyRTkxOEIzREZDNzAwQ0Y3
RkYxIC8qIExlZ2FjeUNETVNlc3Npb24uaCAqLywKIAkJCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRD
QTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oICovLAogCQkJCTA3OTIxNjUzMUFBNTYwQUEwMEEz
QzA0OSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50LmggKi8sCi0JCQkJMDc4RTQzRDcxQUJC
NkM3RTAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwICovLAogCQkJCTA3
OEU0M0Q4MUFCQjZDN0UwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggKi8s
Ci0JCQkJRTRCNDFFMEMwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlhUGxheWVyLmNwcCAqLywKIAkJ
CQlFNEI0MUUwRDBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIuaCAqLywKIAkJCQlDRDUy
MDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAogCQkJCUY0Mjky
NjE3MjUyNjRENDQwMDAwNzg5OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAqLywKQEAgLTI4
ODA2LDMxICsyODgzOSwyMCBAQAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRp
YVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0
IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8sCi0JCQkJMDdCOTNGRkIyM0I5MkFBQjAwMzZGOEVBIC8q
IE1JTUVUeXBlQ2FjaGUuY3BwICovLAogCQkJCTA3QjkzRkY5MjNCOTJBQUEwMDM2RjhFQSAvKiBN
SU1FVHlwZUNhY2hlLmggKi8sCi0JCQkJMkRDOEQzOTYyNUYyRkU5MzAwQ0ZDQkFCIC8qIE1vZGVs
LmNwcCAqLywKIAkJCQkyREM4RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAqLywKLQkJ
CQkzMTRCRTNBNDFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNw
cCAqLywKIAkJCQkzMTRCRTNBNTFCMzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlLmggKi8sCi0JCQkJNzI1MjM5NkIyNTRDQURDMjAwRjVGQjE1IC8qIE5hdGl2ZUltYWdl
LmNwcCAqLywKIAkJCQk1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAq
LywKIAkJCQkyREEzOTdFMzI2NUM3Mzc0MDA0NjhGMzMgLyogTnVsbEdyYXBoaWNzQ29udGV4dC5o
ICovLAotCQkJCUIyNzUzNTUyMEIwNTM4MTQwMDJDRTY0RiAvKiBQYXRoLmNwcCAqLywKIAkJCQlC
Mjc1MzU1MzBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5oICovLAotCQkJCUE4OERENDg4MEI0NjI5
QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovLAogCQkJCUE4OERENDg2MEI0
NjI5QTMwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuaCAqLywKLQkJCQkyRDUwMDJGOTFC
NTZENzk5MDAyMEFBRjcgLyogUGF0aFV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMkQ1MDAyRkExQjU2
RDc5OTAwMjBBQUY3IC8qIFBhdGhVdGlsaXRpZXMuaCAqLywKLQkJCQlBOEZBNkU1QzBFNENGREVE
MDBENUNGNDkgLyogUGF0dGVybi5jcHAgKi8sCiAJCQkJQThGQTZFNUIwRTRDRkRFRDAwRDVDRjQ5
IC8qIFBhdHRlcm4uaCAqLywKLQkJCQlCQzQ4MzlCQjI2NDYxODFBMDBBMjhCNjIgLyogUGl4ZWxC
dWZmZXIuY3BwICovLAogCQkJCUJDNDgzOUJBMjY0NjE4MUEwMEEyOEI2MiAvKiBQaXhlbEJ1ZmZl
ci5oICovLAotCQkJCUJDMENBNzREMjY0QUVEMEEwMDRGREM2MiAvKiBQaXhlbEJ1ZmZlckNvbnZl
cnNpb24uY3BwICovLAogCQkJCUJDMENBNzRDMjY0QUVEMEEwMDRGREM2MiAvKiBQaXhlbEJ1ZmZl
ckNvbnZlcnNpb24uaCAqLywKLQkJCQlCQzYzNUU4RjI2NEMyRUNFMDAwRUYzM0EgLyogUGl4ZWxC
dWZmZXJGb3JtYXQuY3BwICovLAogCQkJCUJDNjM1RThCMjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhl
bEJ1ZmZlckZvcm1hdC5oICovLAotCQkJCUJDNjM1RTkwMjY0QzQ2OUYwMDBFRjMzQSAvKiBQaXhl
bEZvcm1hdC5jcHAgKi8sCiAJCQkJQkNBNTU5MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9y
bWF0LmggKi8sCisJCQkJQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlCQzNFNjI0MjI2NTk3OTE3MDA1NDhBQ0QgLyog
UGxhdGZvcm1Db2xvclNwYWNlLmggKi8sCiAJCQkJNzI2RDU2RTEyNTNBRTA0MzAwMDJFRjkwIC8q
IFBsYXRmb3JtSW1hZ2UuaCAqLywKIAkJCQk3MkJBQzNBNjIzRTE3MzI4MDA4RDc0MUMgLyogUGxh
dGZvcm1JbWFnZUJ1ZmZlci5oICovLApAQCAtMjg4MzgsNTUgKzI4ODYwLDQyIEBACiAJCQkJMDU2
MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVGQ0Q3
QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCiAJ
CQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCi0J
CQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8s
CiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICov
LAorCQkJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJh
dGlvbi5oICovLAogCQkJCUNEMUY5QUZCMjZGRDM4QzkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVv
Q29sb3JQcmltYXJpZXMuaCAqLywKIAkJCQlDRDFGOUFGQTI2RkQzODU5MDA2MTdFQjYgLyogUGxh
dGZvcm1WaWRlb0NvbG9yU3BhY2UuaCAqLywKIAkJCQlDRDFGOUFGRDI2RkQzOENCMDA2MTdFQjYg
LyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNpZW50cy5oICovLAorCQkJCUNERDA4QUMxMjc3
RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJ
CQkJQ0QxRjlBRkMyNkZEMzhDQTAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJh
Y3RlcmlzdGljcy5oICovLAotCQkJCUJDQUI0MTdGMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24u
Y3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKLQkJ
CQk3QkU3MjY1QjI1NzYzQjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuY3BwICovLAogCQkJCTdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5oICovLAotCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhG
MiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5jcHAgKi8sCiAJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEw
OEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi8sCiAJCQkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2
ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLywKIAkJCQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTgg
LyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCi0JCQkJQTczRjk1RkMxMkM5N0JG
RTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywKLQkJCQkwRjNERDQ0RDEyRjVFQTFCMDAwRDkxOTAg
LyogU2hhZG93Qmx1ci5jcHAgKi8sCiAJCQkJMEYzREQ0NEUxMkY1RUExQjAwMEQ5MTkwIC8qIFNo
YWRvd0JsdXIuaCAqLywKIAkJCQkxQzREQjAyNDI3MzM5RTVFMDA3QjBBRDEgLyogU2hvdWxkTG9j
YWxpemVBeGlzTmFtZXMuaCAqLywKLQkJCQkxREQxMjdBQzI1NkUzQTg3MDBCMjI3RDcgLyogU291
cmNlQnVmZmVyUHJpdmF0ZS5jcHAgKi8sCiAJCQkJQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGUuaCAqLywKIAkJCQlDREM4QjVBQzE4MDRBRTVEMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTdDODNERTg1MUQwNENCRDQw
MEZFQkNGMyAvKiBTcHJpbmdTb2x2ZXIuaCAqLywKLQkJCQlCMjM1NDBGMDBEMDA3ODJFMDAyMzgy
RkEgLyogU3RyaW5nVHJ1bmNhdG9yLmNwcCAqLywKIAkJCQlCMjM1NDBGMTBEMDA3ODJFMDAyMzgy
RkEgLyogU3RyaW5nVHJ1bmNhdG9yLmggKi8sCiAJCQkJMDg3NTU4QzQxM0I0QTU3RDAwRjQ5MzA3
IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oICovLAogCQkJCTNCQjZCODBGMjJB
N0QzMTEwMDNBMkE2OSAvKiBUYWJTaXplLmggKi8sCi0JCQkJMzc2RENDRTAxM0I0Rjk2NjAwMkVC
RUZDIC8qIFRleHRSdW4uY3BwICovLAogCQkJCUE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBU
ZXh0UnVuLmggKi8sCi0JCQkJQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uLmNwcCAqLywKIAkJCQlDREQxRTUyNTE2N0JBNTY0MDBDRTgyMEIgLyogVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLywKIAkJCQkxQUY4OUE0MTE1MThGREVBMDBFNTQ3QjUg
LyogVGlsZWRCYWNraW5nLmggKi8sCi0JCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRy
YWNrUHJpdmF0ZUJhc2UuY3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAvKiBU
cmFja1ByaXZhdGVCYXNlLmggKi8sCiAJCQkJQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQuaCAqLywKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMg
LyogVW5pdEJlemllci5oICovLAotCQkJCTBGNUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxv
Y2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0
eURhdGEuaCAqLywKIAkJCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1h
bmFnZXIuaCAqLywKIAkJCQkwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFj
a1F1YWxpdHlNZXRyaWNzLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5IC8qIFZp
ZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZp
ZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCi0JCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0
IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8q
IFZQOVV0aWxpdGllcy5oICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0
aENhY2hlLmggKi8sCi0JCQkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0
b3IuY3BwICovLAogCQkJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9y
LmggKi8sCiAJCQkJNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggKi8sCi0J
CQkJMzc5OTE5OTQxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmNwcCAqLywKIAkJ
CQkzNzk5MTk5NTEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gZ3JhcGhpY3M7CkBAIC0zMzE4Niw2ICszMzE5NSw3IEBACiAJCQkJNzExQUQx
MjYyMzZEODZFNTAwNkZGMzdDIC8qIEFuaW1hdGlvbkV2ZW50QmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDlFOTEyQUQwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERDA4QUMyMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTRDN0M2
NjFGREFEMkExMDBGMkJFRTEgLyogQW5pbWF0aW9uUGxheWJhY2tFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzE0QzdDNjcxRkRBRDJBOTAwRjJCRUUxIC8qIEFuaW1hdGlvblBsYXliYWNrRXZl
bnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTAyNUVDRDFGOTlGMENFMDA0QTI1MEMgLyog
QW5pbWF0aW9uVGltZWxpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0NjQsNiArMzQ0NzQsNyBA
QAogCQkJCUUxMTJGNDcyMUUzQTg2MTYwMEQ2Q0RGRCAvKiBHcmlkLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDNFMjUxQzE4MDQ2QjA2MDBFMjdGNTYgLyogR3JpZEFyZWEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjcwNUMzMTY1NkJENjUwMEMyRTI3QyAv
KiBHcmlkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjc0ODNGMThGRUJDRUMwMDA2
RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkEx
MDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggaW4gSGVhZGVycyAqLywKQEAg
LTM0ODcxLDYgKzM0ODgyLDcgQEAKIAkJCQlDRDVGRjQ5QTIxNjJFNEE2MDA0QkQ4NkYgLyogSVNP
U2NoZW1lSW5mb3JtYXRpb25Cb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUNENUZGNDlCMjE2MkU0
QjcwMDRCRDg2RiAvKiBJU09TY2hlbWVUeXBlQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDVG
RjQ5NzIxNjJFMkI3MDA0QkQ4NkYgLyogSVNPVHJhY2tFbmNyeXB0aW9uQm94LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDREQwOEFDMDI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdEMTJGNUMyM0RFNTQzRjAwODA5
OTdEIC8qIElTT1ZUVEN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEyNDdFMzgxRkVBNUY4NjAw
OEMwOENFIC8qIEl0ZXJhdGlvbkNvbXBvc2l0ZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0MzMEQ5ODQxRjgxNUFFQzAwMjY4MzU2IC8qIEpTQWJvcnRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IGEy
NzEwNjc1ZThhNzQwOTQ0ZTY5ZjlhZWY3MWU5Nzg5MzFlYTg1Y2YuLjY5OTRiMTEzMWUyMzQ4ZTRl
ZTlkMjVjMDlhY2Q0ZGY2NTg3YzEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmNwcApAQCAtMTcxLDYgKzE3MSwxMSBAQCB2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRD
aGFuZ2VkKGJvb2wgZW5hYmxlZCkKICAgICB9KTsKIH0KIAordm9pZCBBdWRpb1RyYWNrOjpjb25m
aWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUoY29uZmlndXJh
dGlvbik7Cit9CisKIHZvaWQgQXVkaW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcm
IGlkKQogewogICAgIHNldElkKGlkKTsKQEAgLTIzMSwxMCArMjM2LDcgQEAgdm9pZCBBdWRpb1Ry
YWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogCiB2b2lkIEF1ZGlvVHJhY2s6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpCiB7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRDb2Rl
YyhtX3ByaXZhdGUtPmNvZGVjKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U2FtcGxlUmF0
ZShtX3ByaXZhdGUtPnNhbXBsZVJhdGUoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXROdW1i
ZXJPZkNoYW5uZWxzKG1fcHJpdmF0ZS0+bnVtYmVyT2ZDaGFubmVscygpKTsKLSAgICBtX2NvbmZp
Z3VyYXRpb24tPnNldEJpdHJhdGUobV9wcml2YXRlLT5iaXRyYXRlKCkpOworICAgIG1fY29uZmln
dXJhdGlvbi0+c2V0U3RhdGUobV9wcml2YXRlLT5jb25maWd1cmF0aW9uKCkpOwogfQogCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5o
CmluZGV4IDRmMDA3MDgxNzJlOGQ1ZjgyNzhjMDNhNTQ4Y2RlNWI2YTZjYWNhYzUuLjRlMTg2YzE2
NjIwN2IwN2E3OGQwZTc2ZWM0ZDNkZDA5MDk5NjE3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svQXVkaW9UcmFjay5oCkBAIC03OSw2ICs3OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBBdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7
CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uJikgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAg
ICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IDZk
NzBiY2I4ZDBkYTFiYmYyOTJhMzU1OGNhMGQ5MDFiZWVlMTE4ZDYuLmU4NDc0YmI2Y2E5OWQ1ZWI1
MzVmMDUzMWJmZjI1MGEyYzI5OWQ3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTI3LDE2ICsyNywxMiBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0cnVjdCBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgewotICAgIFN0cmlu
ZyBjb2RlYzsKLSAgICB1aW50MzJfdCBzYW1wbGVSYXRlIHsgMCB9OwotICAgIHVpbnQzMl90IG51
bWJlck9mQ2hhbm5lbHMgeyAwIH07Ci0gICAgdWludDY0X3QgYml0cmF0ZSB7IDAgfTsKLX07Cit1
c2luZyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgPSBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CkBAIC00NCw2ICs0MCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uPiBjcmVhdGUoQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0JiYgaW5p
dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbihXVEZNb3Zl
KGluaXQpKSk7IH0KICAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkpOyB9
CiAKKyAgICB2b2lkIHNldFN0YXRlKGNvbnN0IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCYg
c3RhdGUpIHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKICAgICBTdHJpbmcgY29kZWMoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlLmNvZGVjOyB9CiAgICAgdm9pZCBzZXRDb2RlYyhTdHJpbmcgY29kZWMp
IHsgbV9zdGF0ZS5jb2RlYyA9IGNvZGVjOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suY3BwCmluZGV4IDc5NTc3MzMzNzk1Y2Q5MDMxM2Y0YTNlMjc3OGFhMGFmZmQ3M2Rk
YzEuLjczZTlkMGYxN2FmNTY1YjdhMmQxZDk5M2M5MmM3MzdkNzk0ZjQ0YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtMTY0LDYgKzE2NCwxMSBAQCB2b2lk
IFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChib29sIHNlbGVjdGVkKQogICAgIH0pOwogfQog
Cit2b2lkIFZpZGVvVHJhY2s6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25maWd1cmF0
aW9uLT5zZXRTdGF0ZShjb25maWd1cmF0aW9uKTsKK30KKwogdm9pZCBWaWRlb1RyYWNrOjppZENo
YW5nZWQoY29uc3QgQXRvbVN0cmluZyYgaWQpCiB7CiAgICAgc2V0SWQoaWQpOwpAQCAtMjYyLDEy
ICsyNjcsNyBAQCB2b2lkIFZpZGVvVHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAKIHZv
aWQgVmlkZW9UcmFjazo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21Qcml2YXRlKCkKIHsKLSAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldENvZGVjKG1fcHJpdmF0ZS0+Y29kZWMoKSk7Ci0gICAgbV9jb25m
aWd1cmF0aW9uLT5zZXRXaWR0aChtX3ByaXZhdGUtPndpZHRoKCkpOwotICAgIG1fY29uZmlndXJh
dGlvbi0+c2V0SGVpZ2h0KG1fcHJpdmF0ZS0+aGVpZ2h0KCkpOwotICAgIG1fY29uZmlndXJhdGlv
bi0+c2V0Q29sb3JTcGFjZShWaWRlb0NvbG9yU3BhY2U6OmNyZWF0ZShtX3ByaXZhdGUtPmNvbG9y
U3BhY2UoKSkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0RnJhbWVyYXRlKG1fcHJpdmF0ZS0+
ZnJhbWVyYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Qml0cmF0ZShtX3ByaXZhdGUt
PmJpdHJhdGUoKSk7CisgICAgbV9jb25maWd1cmF0aW9uLT5zZXRTdGF0ZShtX3ByaXZhdGUtPmNv
bmZpZ3VyYXRpb24oKSk7CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKaW5kZXggN2E5NzhjNzMyMzYwYjc3Nzc2NDdmNDJl
ZGJmMjEwNjg2ZDE0MGQxOC4uZTFlMGU5YjAyNThkNTEyNzYyOTcwNmQwZWM0MjJhM2NiZDAzZjY5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTgzLDcgKzgzLDcg
QEAgcHJpdmF0ZToKIAogICAgIC8vIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBz
ZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdl
ZCgpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbkZyb21Qcml2YXRlKCk7IH0KKyAgICB2b2lk
IGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24mKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlk
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKaW5kZXggZDIwZDI0M2NhNjEw
NmVlY2YzNGY5MWU0ZDM1YjNjYmRiN2Q5N2IyZi4uYzU5NjFmNDkxZDgwMGZjZDM0ZTM0MDY5Yzdk
NzhkNGVmM2JjZTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMjcsMTkgKzI3LDEzIEBACiAKICNpZiBFTkFCTEUo
VklERU8pCiAKKyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgiCiAj
aW5jbHVkZSAiVmlkZW9Db2xvclNwYWNlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFZpZGVvVHJhY2tDb25maWd1cmF0
aW9uSW5pdCB7Ci0gICAgU3RyaW5nIGNvZGVjOwotICAgIHVpbnQzMl90IHdpZHRoIHsgMCB9Owot
ICAgIHVpbnQzMl90IGhlaWdodCB7IDAgfTsKLSAgICBSZWZQdHI8VmlkZW9Db2xvclNwYWNlPiBj
b2xvclNwYWNlOwotICAgIGRvdWJsZSBmcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgYml0
cmF0ZSB7IDAgfTsKLX07Cit1c2luZyBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgPSBQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uOwogCiBjbGFzcyBWaWRlb1RyYWNrQ29uZmlndXJh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvVHJhY2tDb25maWd1cmF0aW9uPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00Nyw2ICs0MSwxMiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxWaWRlb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKFZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uSW5pdCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24oV1RGTW92ZShpbml0KSkpOyB9CiAgICAgc3RhdGljIFJlZjxWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbigpKTsgfQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbkluaXQmIHN0YXRlKQorICAgIHsKKyAgICAgICAgbV9zdGF0ZSA9IHN0YXRl
OworICAgICAgICBtX2NvbG9yU3BhY2UtPnNldFN0YXRlKG1fc3RhdGUuY29sb3JTcGFjZSk7Cisg
ICAgfQorCiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5jb2RlYzsg
fQogICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5nIGNvZGVjKSB7IG1fc3RhdGUuY29kZWMgPSBjb2Rl
YzsgfQogCkBAIC01Niw4ICs1Niw4IEBAIHB1YmxpYzoKICAgICB1aW50MzJfdCBoZWlnaHQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlLmhlaWdodDsgfQogICAgIHZvaWQgc2V0SGVpZ2h0KHVpbnQz
Ml90IGhlaWdodCkgeyBtX3N0YXRlLmhlaWdodCA9IGhlaWdodDsgfQogCi0gICAgUmVmUHRyPFZp
ZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuY29sb3JT
cGFjZTsgfQotICAgIHZvaWQgc2V0Q29sb3JTcGFjZShSZWZQdHI8VmlkZW9Db2xvclNwYWNlPiYm
IGNvbG9yU3BhY2UpIHsgbV9zdGF0ZS5jb2xvclNwYWNlID0gV1RGTW92ZShjb2xvclNwYWNlKTsg
fQorICAgIFJlZjxWaWRlb0NvbG9yU3BhY2U+IGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBt
X2NvbG9yU3BhY2U7IH0KKyAgICB2b2lkIHNldENvbG9yU3BhY2UoUmVmPFZpZGVvQ29sb3JTcGFj
ZT4mJiBjb2xvclNwYWNlKSB7IG1fY29sb3JTcGFjZSA9IFdURk1vdmUoY29sb3JTcGFjZSk7IH0K
IAogICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmZyYW1lcmF0
ZTsgfQogICAgIHZvaWQgc2V0RnJhbWVyYXRlKGRvdWJsZSBmcmFtZXJhdGUpIHsgbV9zdGF0ZS5m
cmFtZXJhdGUgPSBmcmFtZXJhdGU7IH0KQEAgLTY4LDExICs2OCwxNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKFZpZGVvVHJhY2tDb25maWd1cmF0aW9u
SW5pdCYmIGluaXQpCiAgICAgICAgIDogbV9zdGF0ZShpbml0KQorICAgICAgICAsIG1fY29sb3JT
cGFjZShWaWRlb0NvbG9yU3BhY2U6OmNyZWF0ZShpbml0LmNvbG9yU3BhY2UpKQorICAgIHsKKyAg
ICB9CisgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKQorICAgICAgICA6IG1fY29sb3JTcGFj
ZShWaWRlb0NvbG9yU3BhY2U6OmNyZWF0ZSgpKQogICAgIHsKICAgICB9Ci0gICAgVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24oKSA9IGRlZmF1bHQ7CiAKICAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkluaXQgbV9zdGF0ZTsKKyAgICBSZWY8VmlkZW9Db2xvclNwYWNlPiBtX2NvbG9yU3BhY2U7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGUuaAppbmRleCAzMmVjNThkZTQyZmZlOWRjYmY0MzhiYzdjNmQ3YTZjMjc5MGUy
MTE1Li5mOWMwMDMyNDc0NTZlMzg4MDlmZGYxODdiMDc3MjcxOTIxNTAzY2YxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgogCkBAIC02NCwxOCArNjUsMTYgQEAgcHVibGljOgogCiAgICAgdXNpbmcgRW5hYmxlZENo
YW5nZWRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoQXVkaW9UcmFja1ByaXZhdGUmLCBib29sIGVu
YWJsZWQpPjsKICAgICB2b2lkIHNldEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2soRW5hYmxlZENoYW5n
ZWRDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1fZW5hYmxlZENoYW5nZWRDYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spOyB9Ci0gICAgCi0gICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4g
bV9jb2RlYzsgfQotICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5nJiYgY29kZWMpIHsgbV9jb2RlYyA9
IFdURk1vdmUoY29kZWMpOyB9Ci0gICAgCi0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQotICAgIHZvaWQgc2V0U2FtcGxlUmF0ZSh1aW50MzJf
dCBzYW1wbGVSYXRlKSB7IG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7IH0KLSAgICAKLSAgICB1
aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZkNoYW5u
ZWxzOyB9Ci0gICAgdm9pZCBzZXROdW1iZXJPZkNoYW5uZWxzKHVpbnQzMl90IG51bWJlck9mQ2hh
bm5lbHMpIHsgbV9udW1iZXJPZkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVsczsgfQotICAgIAot
ICAgIHVpbnQ2NF90IGJpdHJhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHJhdGU7IH0KLSAgICB2
b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0cmF0ZSkgeyBtX2JpdHJhdGUgPSBiaXRyYXRlOyB9
CisKKyAgICBjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CisgICAgdm9pZCBzZXRDb25m
aWd1cmF0aW9uKFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQorICAgIHsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24gPT0gbV9jb25maWd1cmF0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVu
dC0+Y29uZmlndXJhdGlvbkNoYW5nZWQobV9jb25maWd1cmF0aW9uKTsKKyAgICB9CiAKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiQXVkaW9UcmFja1ByaXZhdGUiOyB9CkBAIC04NywxMCArODYs
NyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFdlYWtQdHI8QXVkaW9UcmFja1ByaXZhdGVD
bGllbnQ+IG1fY2xpZW50OwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKLSAgICBTdHJp
bmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3NhbXBsZVJhdGUgeyAwIH07Ci0gICAgdWludDMy
X3QgbV9udW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fYml0cmF0ZSB7IDAg
fTsKKyAgICBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsK
ICAgICBFbmFibGVkQ2hhbmdlZENhbGxiYWNrIG1fZW5hYmxlZENoYW5nZWRDYWxsYmFjazsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudC5oCmluZGV4IDBhZTIwNDUxNzllMTc5YzkzN2RiZjY2M2UwNzVh
OTQ0ZTgzNmRjZDguLjYxZWU4NjQ0MTc4NDI5ODk1MjViNWY0ZTg3NjQ3MDBkY2RiMjk0ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaApAQCAtMzIsMTAgKzMyLDEyIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOworc3RydWN0IFBsYXRmb3JtQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGlj
IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmFi
bGVkQ2hhbmdlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKSA9IDA7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZp
ZGVvQ29sb3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1WaWRlb0NvbG9yU3BhY2UuaAppbmRleCAyODg3NDNkZTVmNzEzMmU2MGEwYzBjY2M0NzE5ZWQx
MjVhYTBmN2ExLi41MGU0YWI5Mjc2NDUwMGE1YWNhM2YxZTc0YTliODg4ZmExYjU0YzhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlLmgKQEAgLTQzLDYgKzQzLDE5IEBAIHN0cnVjdCBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZSB7CiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNl
Jik7CiB9OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYgYikKK3sKKyAgICByZXR1
cm4gYS5wcmltYXJpZXMgPT0gYi5wcmltYXJpZXMKKyAgICAgICAgJiYgYS50cmFuc2ZlciA9PSBi
LnRyYW5zZmVyCisgICAgICAgICYmIGEubWF0cml4ID09IGIubWF0cml4CisgICAgICAgICYmIGEu
ZnVsbFJhbmdlID09IGIuZnVsbFJhbmdlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZSYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCiB0ZW1wbGF0ZSA8Y2xhc3Mg
RW5jb2Rlcj4KIHZvaWQgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2U6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggNTJjOWZlMjIwZjMwYTNmMzE5NTcyOTMyZDM2
YWM2ZDk5MzEwYjM1Ni4uNjIzZjk0MWE2N2U4NmE1MTAyMzAxMjBmN2FiMDA4OWIxYzNlMjc2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNs
dWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5j
bHVkZSAiVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KQEAgLTYyLDM2ICs2MiwyMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU2VsZWN0ZWRDaGFuZ2Vk
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFZpZGVvVHJhY2tQcml2YXRlJiwgYm9vbCBzZWxlY3Rl
ZCk+OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2soU2VsZWN0ZWRDaGFuZ2Vk
Q2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1
cm4gbV9jb2RlYzsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykg
eyBtX2NvZGVjID0gV1RGTW92ZShjb2RlYyk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90
IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRX
aWR0aCh1aW50MzJfdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KLSAgICAKLSAgICB2aXJ0
dWFsIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7
IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2Uo
KSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29s
b3JTcGFjZShQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNw
YWNlID0gV1RGTW92ZShjb2xvclNwYWNlKTsgfQotICAgIAotICAgIHZpcnR1YWwgZG91YmxlIGZy
YW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fZnJhbWVyYXRlID0gZnJhbWVyYXRl
OyB9Ci0gICAgCi0gICAgdmlydHVhbCB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0cmF0
ZSkgeyBtX2JpdHJhdGUgPSBiaXRyYXRlOyB9Ci0gICAgCisgICAgY29uc3QgUGxhdGZvcm1WaWRl
b1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybVZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25m
aWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJh
dGlvbik7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4g
bV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsKLSAg
ICBTdHJpbmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQz
Ml90IG1faGVpZ2h0IHsgMCB9OwotICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JT
cGFjZTsKLSAgICBkb3VibGUgbV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRy
YXRlIHsgMCB9OworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25maWd1
cmF0aW9uOwogCiAgICAgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRD
YWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCBkNTFiMzcyMTIzYWU0MDQwYmQw
ZTY1NzhiNGEwODk3NTk5NDFlZTBkLi42NWI3YmY2Njc3MTg3ZDlkMmMxMDEzODVmZTM3M2M1OTQ3
MWVhNjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9u
OworCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVC
YXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJv
b2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24mKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCmluZGV4IDRiNzI1OTA3YjRiNGIyNTVkMDcyZDUx
NmE1NjNiODQ2NTQ4MDZmOTIuLmY0MjVjZTIzYmVmZDIzNDg3Nzg0NjcyYTBhYjJlNThhOTRiNTAw
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1t
CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIEFWQXNzZXRUcmFjayogYXNzZXRUcmFja0Zvcihj
b25zdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsJiBpbXBsKQogc3RhdGljIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb25Gb3IoY29uc3QgQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbCYgaW1wbCkKIHsKICAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKGlt
cGwpOwotICAgIGlmICghYXNzZXRUcmFjayB8fCAhYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlv
bnMuY291bnQpCisgICAgaWYgKCFhc3NldFRyYWNrIHx8IFthc3NldFRyYWNrIHN0YXR1c09mVmFs
dWVGb3JLZXk6QCJmb3JtYXREZXNjcmlwdGlvbnMiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0
YXR1c0xvYWRlZCB8fCAhYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnMuY291bnQpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmPihhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9uc1swXSk7CiB9CkBAIC0yOTEs
MTAgKzI5MSwxMiBAQCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsOjpjb2xvclNwYWNlKCkgY29uc3QKIAogZG91YmxlIEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw6OmZyYW1lcmF0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8gYXNzZXRUcmFjayA9IGFz
c2V0VHJhY2tGb3IoKnRoaXMpKQotICAgICAgICByZXR1cm4gYXNzZXRUcmFjay5ub21pbmFsRnJh
bWVSYXRlOwotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIGF1
dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJhY2tGb3IoKnRoaXMpOworICAgIGlmICghYXNzZXRUcmFj
aykKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVG
b3JLZXk6QCJub21pbmFsRnJhbWVSYXRlIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNM
b2FkZWQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBhc3NldFRyYWNrLm5vbWluYWxG
cmFtZVJhdGU7CiB9CiAKIHVpbnQzMl90IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNhbXBs
ZVJhdGUoKSBjb25zdApAQCAtMzI4LDYgKzMzMCw4IEBAIHVpbnQ2NF90IEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OmJpdHJhdGUoKSBjb25zdAogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0
VHJhY2tGb3IoKnRoaXMpOwogICAgIGlmICghYXNzZXRUcmFjaykKICAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJlc3RpbWF0ZWREYXRh
UmF0ZSIgZXJyb3I6bmlsXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1
cm4gMDsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoYXNzZXRUcmFjay5lc3RpbWF0ZWREYXRhUmF0
ZSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBhc3NldFRyYWNrLmVzdGltYXRlZERh
dGFSYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuaAppbmRleCA4OTAwNTEwMWVlNmQ0Nzc3ODkwNjFkNzI3N2FmYzVhNGE2ODZhOGQwLi5h
Mjc3ZjZmNmExZmRjNzMzNmExYmNhYjM4NDU4ZmI3NDBlM2Y3ZTFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNr
UHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQVZG
LmgiCisjaW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNr
OwogT0JKQ19DTEFTUyBBVlBsYXllckl0ZW07CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgog
ICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAgIEF1
ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDJik7CisgICAgQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
PiYmKTsKIAogICAgIHZvaWQgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CisgICAgdm9pZCBh
dWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4gbV9pbXBsOworCisgICAgdXNpbmcgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25PYnNlcnZlciBtX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMubW0KaW5kZXggMWNiOTU4OWQ4NWU5MDA5MTAxMmJlOWE3MDQ5NTlhZjExZGExODMzYi4u
OGU1ZWZlZWJiZTY0OWEyNGU4MmMxMTQ0MDZmNTYyODFmN2RhMDQ1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQpAQCAtMzMsMTcg
KzMzLDI5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2Jq
Qzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKLSAg
ICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkK
KyAgICA6IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw+KHRyYWNrKSkKK3sKK30KKworQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpB
dWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKKyAgICA6IEF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+
KHRyYWNrKSkKIHsKLSAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rp
b25PcHRpb25BVkZPYmpDJiBvcHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsPihvcHRpb24pKQorICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZP
YmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30K
KworQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3Rk
Ojp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1f
aW1wbChXVEZNb3ZlKGltcGwpKQorICAgICwgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2Vy
dmVyKFt0aGlzXSB7IGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAg
IG1faW1wbC0+c2V0QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX2F1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwog
fQogCisKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9t
VHJhY2soKQogewogICAgIC8vIERvbid0IGNhbGwgdGhpcy0+c2V0RW5hYmxlZCgpIGJlY2F1c2Ug
aXQgYWxzbyBzZXRzIHRoZSBlbmFibGVkIHN0YXRlIG9mIHRoZQpAQCAtNTUsMTEgKzY3LDEyIEBA
IHZvaWQgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2so
KQogICAgIHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgp
KTsKICAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1f
aW1wbC0+Y29kZWMoKSk7Ci0gICAgc2V0U2FtcGxlUmF0ZShtX2ltcGwtPnNhbXBsZVJhdGUoKSk7
Ci0gICAgc2V0TnVtYmVyT2ZDaGFubmVscyhtX2ltcGwtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0g
ICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7CisgICAgc2V0Q29uZmlndXJhdGlvbiht
X2ltcGwtPmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkpOworfQogCit2b2lkIEF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQzo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBz
ZXRDb25maWd1cmF0aW9uKG1faW1wbC0+YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAK
IHZvaWQgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpzZXRQbGF5ZXJJdGVtVHJhY2soQVZQbGF5
ZXJJdGVtVHJhY2sgKnRyYWNrKQpAQCAtNzMsMTIgKzg2LDYgQEAgQVZQbGF5ZXJJdGVtVHJhY2sq
IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cGxheWVySXRlbVRyYWNrKCkKICAgICByZXR1cm4g
bV9pbXBsLT5wbGF5ZXJJdGVtVHJhY2soKTsKIH0KIAotQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
OjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1f
aW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKLXsKLSAg
ICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKLX0KLQogdm9pZCBBdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakM6OnNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNrICp0cmFjaykKIHsKICAgICBtX2lt
cGwgPSBtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCmlu
ZGV4IDlkOWQ2NGFhMjZhZjcyM2I0NmJhODcyNDhhMzkxZDI5ZThjYThiMWMuLmVhZjNmMTE4YjI1
YTQzODg5OTIyZjU2YzZiZGVjZmQ5YzU4Y2Y4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcApAQCAtMzAsMjQgKzMwLDMwIEBA
CiAKICNpbXBvcnQgIkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKICNpbXBvcnQgIk1lZGlh
U2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNr
KQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJh
Y2spKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFj
aygpOwogfQogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQogewotICAg
IHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMm
IG9wdGlvbikKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0lt
cGw+KG9wdGlvbikpCisgICAgOiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPihvcHRpb24pKQoreworfQorCitWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4mJiBpbXBsKQorICAgIDogbV9pbXBsKFdURk1vdmUoaW1w
bCkpCisgICAgLCBtX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoW3RoaXNdIHsgdmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7IH0pCiB7CisgICAgbV9pbXBsLT5zZXRWaWRl
b1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNl
cnZlcik7CiAgICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKQEAgLTYyLDE1ICs2
OCwxMiBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJv
bVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1wbC0+
bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBzZXRD
b2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFdpZHRoKG1faW1wbC0+d2lkdGgoKSk7Ci0g
ICAgc2V0SGVpZ2h0KG1faW1wbC0+aGVpZ2h0KCkpOwotICAgIHNldENvbG9yU3BhY2UobV9pbXBs
LT5jb2xvclNwYWNlKCkpOwotICAgIHNldEZyYW1lcmF0ZShtX2ltcGwtPmZyYW1lcmF0ZSgpKTsK
LSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKLQotICAgIGlmIChhdXRvKiBjbGll
bnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5jb25maWd1cmF0aW9uQ2hhbmdl
ZCgpOworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlv
bigpKTsKK30KKwordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZCgpCit7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVv
VHJhY2tDb25maWd1cmF0aW9uKCkpOwogfQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qzo6c2V0UGxheWVySXRlbVRyYWNrKEFWUGxheWVySXRlbVRyYWNrICp0cmFjaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKaW5kZXggZjQ1
YWZlNGY2OWFkMTM4MmJiMGYxOGZjYzQyZmY1YmE5NjlkOTFiMy4uZmYwY2RmYjM2ZTUxOTIyMjli
OGU2NTUxZTNmMWRlODM2ZGM3MTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
VklERU8pCiAKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIgorI2luY2x1ZGUgPHd0
Zi9PYnNlcnZlci5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQ
bGF5ZXJJdGVtOwpAQCAtNzUsOSArNzYsMTQgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBWaWRl
b1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqKTsKICAgICBleHBsaWNpdCBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAgZXhwbGljaXQgVmlk
ZW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOworICAg
IGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21U
cmFjaygpOworICAgIHZvaWQgdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAg
IHVzaW5nIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+
OworICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgbV92aWRlb1RyYWNrQ29uZmln
dXJhdGlvbk9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA2
ODYxOGM3MjdhMmU3NTM4MTJlYjdkYjU4M2JhMGJlZTdmMDJlOTgxLi43NmEwYWJjOGU5OWE3ZWJm
NjZmMTk3MzU0OGVlNjU2MGY2NjRlNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAt
NTAsMTIgKzUwLDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAg
IHNldExhYmVsKG1faW1wbC0+bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5n
dWFnZSgpKTsKLSAgICBzZXRDb2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFdpZHRoKG1f
aW1wbC0+d2lkdGgoKSk7Ci0gICAgc2V0SGVpZ2h0KG1faW1wbC0+aGVpZ2h0KCkpOwotICAgIHNl
dENvbG9yU3BhY2UobV9pbXBsLT5jb2xvclNwYWNlKCkpOwotICAgIHNldEZyYW1lcmF0ZShtX2lt
cGwtPmZyYW1lcmF0ZSgpKTsKLSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAg
ICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9
CiAKIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEFzc2V0VHJh
Y2soQVZBc3NldFRyYWNrICp0cmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCmlu
ZGV4IDExY2FjODAwMjMxZTA4YzUzZWI2ZTM4ZDg0ZjZiMzM3M2M5MWJjZmIuLjU3N2IxMTAwMGJl
MTM1N2YyMzVhOTE3YWY0NzU1YWJhN2RkYWQ4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVX
ZWJNLmNwcApAQCAtNDAsNiArNDAsOCBAQCBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJh
Y2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYgdHJhY2tFbnRyeSkKIHsKICAgICBpZiAo
bV90cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKICAgICAgICAgc2V0U2VsZWN0ZWQobV90
cmFjay5pc19lbmFibGVkLnZhbHVlKCkpOworCisgICAgdXBkYXRlQ29uZmlndXJhdGlvbigpOwog
fQogCiBBdG9tU3RyaW5nIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6aWQoKSBjb25zdApAQCAtMTQ1
LDYgKzE0NywxNyBAQCBkb3VibGUgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpmcmFtZXJhdGUoKSBj
b25zdAogICAgIHJldHVybiAwOwogfQogCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dXBk
YXRlQ29uZmlndXJhdGlvbigpCit7CisgICAgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uIHsKKyAgICAgICAgeyAuY29kZWMgPSBjb2RlYygpIH0sCisgICAgICAg
IC53aWR0aCA9IHdpZHRoKCksCisgICAgICAgIC5oZWlnaHQgPSBoZWlnaHQoKSwKKyAgICAgICAg
LmZyYW1lcmF0ZSA9IGZyYW1lcmF0ZSgpLAorICAgIH07CisgICAgc2V0Q29uZmlndXJhdGlvbihX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKaW5kZXggOTlmZDA3ZmUyZDcxZDky
ZGMyZTFjOTNlOTc2MWNlZTFjNjZhNGI0MC4uN2JkMTllOWJkNzM2MDExODA4YzBmMGU0MzRjNDQ4
ZjJkNGEwMjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKQEAgLTQzLDEzICs0Mywx
NiBAQCBwdWJsaWM6CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gZGVmYXVsdEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKLSAgICBTdHJpbmcgY29k
ZWMoKSBjb25zdCBmaW5hbDsKLSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0IGZpbmFsOwotICAg
IHVpbnQzMl90IGhlaWdodCgpIGNvbnN0IGZpbmFsOwotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBj
b25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6
VHJhY2tFbnRyeSYmKTsKKworICAgIFN0cmluZyBjb2RlYygpIGNvbnN0OworICAgIHVpbnQzMl90
IHdpZHRoKCkgY29uc3Q7CisgICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3Q7CisgICAgZG91Ymxl
IGZyYW1lcmF0ZSgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOworCiAg
ICAgd2VibTo6VHJhY2tFbnRyeSBtX3RyYWNrOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX3Ry
YWNrSUQ7CiAgICAgbXV0YWJsZSBBdG9tU3RyaW5nIG1fbGFiZWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmlu
ZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0ZDFmYThhNTMuLjgxMDQwMDI4ZTE3
MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC0yOSwx
MSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYgKzU0LDE5IEBAIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiAgICAgbV90cmFja1ByaXZhdGUt
PmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVt
b3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKK0F1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQog
ewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5pZCgpLAotICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdl
KCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpLAotICAgICAg
ICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB7CisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYWJlbCgp
LAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQ
cml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCksCi0gICAgICAgIGZh
bHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSwKLSAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAgICAgIDAsCi0gICAgICAgIDAsCi0g
ICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmJpdHJhdGUo
KSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJhdGUoKSwKLSAgICAgICAgbV90cmFj
a1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmNv
bmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2ICs5MSwxMSBAQCB2b2lkIFJlbW90
ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQogICAgIGNvbmZp
Z3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25m
aWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKIHZvaWQg
UmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiB7CiAg
ICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaAppbmRleCBkMmRlYzQ1YTZkYjNm
ZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4yZjQ1ODcwODAwOWU4MDE3YWI4NWQzNDMzNzgx
OGJlNjA4NGZmY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERlY29k
ZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbmU7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KQEAgLTY5LDYgKzY5
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9p
ZCBlbmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKSBmaW5h
bDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CkBAIC03Niw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQg
d2lsbFJlbW92ZSgpIGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uKCk7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAK
ICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggMmVkZWUxOTg3MWM3ZDM3YTQ1NDVlM2VjNTA1
NmI2MTYzMzAxYTNlZC4uYjIxNGFlYTEzYThkNWY3Yjc2ZjY1MmM3ZGM2ZTVjNDY4OGQ1NDUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAi
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAt
NTQsMjMgKzU0LDIwIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQ
cm94eSgpCiAgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0
aW9uKCkKK1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogewotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbiB7IH07Ci0gICAgY29uZmlndXJhdGlvbi50cmFja0lkID0g
bV90cmFja1ByaXZhdGUtPmlkKCk7Ci0gICAgY29uZmlndXJhdGlvbi5sYWJlbCA9IG1fdHJhY2tQ
cml2YXRlLT5sYWJlbCgpOwotICAgIGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UgPSBtX3RyYWNrUHJp
dmF0ZS0+bGFuZ3VhZ2UoKTsKLSAgICBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXggPSBtX3RyYWNr
UHJpdmF0ZS0+dHJhY2tJbmRleCgpOwotICAgIGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFu
Y2UgPSBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKLSAgICBjb25maWd1cmF0
aW9uLnNlbGVjdGVkID0gbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCk7Ci0gICAgY29uZmlndXJh
dGlvbi52aWRlb0tpbmQgPSBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpOwotICAgIGNvbmZpZ3VyYXRp
b24uY29kZWMgPSBtX3RyYWNrUHJpdmF0ZS0+Y29kZWMoKTsKLSAgICBjb25maWd1cmF0aW9uLndp
ZHRoID0gbV90cmFja1ByaXZhdGUtPndpZHRoKCk7Ci0gICAgY29uZmlndXJhdGlvbi5oZWlnaHQg
PSBtX3RyYWNrUHJpdmF0ZS0+aGVpZ2h0KCk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2xvclNwYWNl
ID0gbV90cmFja1ByaXZhdGUtPmNvbG9yU3BhY2UoKTsKLSAgICBjb25maWd1cmF0aW9uLmZyYW1l
cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5mcmFtZXJhdGUoKTsKLSAgICBjb25maWd1cmF0aW9uLmJp
dHJhdGUgPSBtX3RyYWNrUHJpdmF0ZS0+Yml0cmF0ZSgpOwotICAgIHJldHVybiBjb25maWd1cmF0
aW9uOworICAgIHJldHVybiB7CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5pZCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhYmVsKCksCisgICAgICAgICAg
ICBtX3RyYWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5zdGFydFRpbWVWYXJpYW5jZSgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPnRyYWNr
SW5kZXgoKSwKKyAgICAgICAgfSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCks
CisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5jb25maWd1cmF0aW9uKCksCisgICAgfTsKIH0KIAogdm9pZCBSZW1vdGVWaWRlb1RyYWNrUHJv
eHk6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCmluZGV4IDkzNzI3MDcwMGQ0MzRi
MTFmMDA4ZjNlYzlmMjRlODViOTQyNDhiODcuLjg5NTA3NGM2ZjA2MzU4Y2U1ZDZhMWNhMjk5MTMz
YzA3ZWMwYjg4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgRGVjb2Rl
cjsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Owotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNr
UHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVWaWRl
b1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CkBAIC02OSw3ICs2OSw3
IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQg
c2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5n
ZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsgfQorICAgIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
biYpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9CiAKICAgICAvLyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OwpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAot
ICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOworICAg
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CiAg
ICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKCk7CiAKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oCmluZGV4IDk0ODQzNDE2NjIzYjM5NDE3ZTMyNzQyNTIxM2U1Y2YwYmIz
ZWIxMWYuLmU0OGUwNzg5ODMyZmE2Y2I4YjNhYWIyZjI2YTRkZDVmY2U4NmY5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDAsMjEgKzM4LDYgQEAgc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgIE1lZGlhVGltZSBzdGFydFRp
bWVWYXJpYW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIGludCB0cmFja0luZGV4
OwogCi0gICAgYm9vbCBlbmFibGVkOwotICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpL
aW5kIGF1ZGlvS2luZCB7IFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07
Ci0KLSAgICBib29sIHNlbGVjdGVkOwotICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpL
aW5kIHZpZGVvS2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07
Ci0KLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgd2lkdGg7Ci0gICAgdWludDMyX3Qg
aGVpZ2h0OwotICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7
Ci0gICAgZG91YmxlIGZyYW1lcmF0ZTsKLSAgICB1aW50NjRfdCBiaXRyYXRlOwotICAgIHVpbnQz
Ml90IHNhbXBsZVJhdGU7Ci0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVsczsKLQogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICB7CkBAIC02MywxMjcgKzQ2LDIyIEBAIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBsYW5ndWFnZTsKICAgICAgICAg
ZW5jb2RlciA8PCBzdGFydFRpbWVWYXJpYW5jZTsKICAgICAgICAgZW5jb2RlciA8PCB0cmFja0lu
ZGV4OwotICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7Ci0gICAgICAgIGVuY29kZXIgPDwgYXVk
aW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOwotICAgICAgICBlbmNvZGVyIDw8
IHZpZGVvS2luZDsKLSAgICAgICAgZW5jb2RlciA8PCBjb2RlYzsKLSAgICAgICAgZW5jb2RlciA8
PCB3aWR0aDsKLSAgICAgICAgZW5jb2RlciA8PCBoZWlnaHQ7Ci0gICAgICAgIGVuY29kZXIgPDwg
Y29sb3JTcGFjZTsKLSAgICAgICAgZW5jb2RlciA8PCBmcmFtZXJhdGU7Ci0gICAgICAgIGVuY29k
ZXIgPDwgYml0cmF0ZTsKLSAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVSYXRlOwotICAgICAgICBl
bmNvZGVyIDw8IG51bWJlck9mQ2hhbm5lbHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNz
IERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IHRy
YWNrSWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gdHJhY2tJZDsKLSAgICAgICAgaWYgKCF0cmFja0lk
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPEF0b21TdHJpbmc+IGxhYmVsOwotICAgICAgICBkZWNvZGVyID4+IGxhYmVsOwotICAgICAg
ICBpZiAoIWxhYmVsKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IGxhbmd1YWdlOwotICAgICAgICBkZWNvZGVyID4+
IGxhbmd1YWdlOwotICAgICAgICBpZiAoIWxhbmd1YWdlKQotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gc3RhcnRUaW1l
VmFyaWFuY2U7Ci0gICAgICAgIGRlY29kZXIgPj4gc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgICAg
IGlmICghc3RhcnRUaW1lVmFyaWFuY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50PiB0cmFja0luZGV4OwotICAgICAgICBkZWNv
ZGVyID4+IHRyYWNrSW5kZXg7Ci0gICAgICAgIGlmICghdHJhY2tJbmRleCkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBlbmFi
bGVkOwotICAgICAgICBkZWNvZGVyID4+IGVuYWJsZWQ7Ci0gICAgICAgIGlmICghZW5hYmxlZCkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZD4gYXVkaW9LaW5kOwotICAgICAgICBk
ZWNvZGVyID4+IGF1ZGlvS2luZDsKLSAgICAgICAgaWYgKCFhdWRpb0tpbmQpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2Vs
ZWN0ZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc2VsZWN0ZWQ7Ci0gICAgICAgIGlmICghc2VsZWN0
ZWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ+IHZpZGVvS2luZDsKLSAgICAg
ICAgZGVjb2RlciA+PiB2aWRlb0tpbmQ7Ci0gICAgICAgIGlmICghdmlkZW9LaW5kKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gY29kZWM7Ci0gICAgICAgIGRlY29kZXIgPj4gY29kZWM7Ci0gICAgICAgIGlmICghY29kZWMp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IHdpZHRoOwotICAgICAgICBkZWNvZGVyID4+IHdpZHRoOwotICAgICAgICBp
ZiAoIXdpZHRoKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBoZWlnaHQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGVpZ2h0
OwotICAgICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFj
ZT4gY29sb3JTcGFjZTsKLSAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOwotICAgICAgICBp
ZiAoIWNvbG9yU3BhY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAg
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZXJhdGU7Ci0gICAgICAgIGRlY29kZXIgPj4g
ZnJhbWVyYXRlOwotICAgICAgICBpZiAoIWZyYW1lcmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gYml0cmF0ZTsK
LSAgICAgICAgZGVjb2RlciA+PiBiaXRyYXRlOwotICAgICAgICBpZiAoIWJpdHJhdGUpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICAKLSAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gc2FtcGxlUmF0ZTsKLSAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVSYXRl
OwotICAgICAgICBpZiAoIXNhbXBsZVJhdGUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG51bWJlck9mQ2hhbm5lbHM7
Ci0gICAgICAgIGRlY29kZXIgPj4gbnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgaWYgKCFudW1i
ZXJPZkNoYW5uZWxzKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAg
ICByZXR1cm4ge3sKLSAgICAgICAgICAgIFdURk1vdmUoKnRyYWNrSWQpLAotICAgICAgICAgICAg
V1RGTW92ZSgqbGFiZWwpLAotICAgICAgICAgICAgV1RGTW92ZSgqbGFuZ3VhZ2UpLAotICAgICAg
ICAgICAgV1RGTW92ZSgqc3RhcnRUaW1lVmFyaWFuY2UpLAotICAgICAgICAgICAgKnRyYWNrSW5k
ZXgsCi0gICAgICAgICAgICAqZW5hYmxlZCwKLSAgICAgICAgICAgICphdWRpb0tpbmQsCi0gICAg
ICAgICAgICAqc2VsZWN0ZWQsCi0gICAgICAgICAgICAqdmlkZW9LaW5kLAotICAgICAgICAgICAg
V1RGTW92ZSgqY29kZWMpLAotICAgICAgICAgICAgKndpZHRoLAotICAgICAgICAgICAgKmhlaWdo
dCwKLSAgICAgICAgICAgIFdURk1vdmUoKmNvbG9yU3BhY2UpLAotICAgICAgICAgICAgKmZyYW1l
cmF0ZSwKLSAgICAgICAgICAgICpiaXRyYXRlLAotICAgICAgICAgICAgKnNhbXBsZVJhdGUsCi0g
ICAgICAgICAgICAqbnVtYmVyT2ZDaGFubmVscywKLSAgICAgICAgfX07CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi50cmFja0lkKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxhYmVs
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmxhbmd1YWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNl
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLnRyYWNrSW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZjI4Y2Y1YzBiMGIwMzlhZjZiMDYy
Y2FhZDA0MDFhZGJjNjhmZjFmLi5mZWU4MTZmNzg3MjhkMmMxZTM4ODEzYzAzYWZkZjM1Y2Q2ODE1
ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTYxOTgsNiArNjE5OCw4IEBACiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJ
T0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9
ICI8YWJzb2x1dGU+IjsgfTsKIAkJQ0RDREM5OUIyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVu
dFN0YXRlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDREM5OUMyNDhGRThEQTAwQTY5NTIyIC8q
IEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuZG93bWVu
dFN0YXRlVHJhY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQzMy
NzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQzQyNzdFRDdFMDAwRUEzNzU1IC8q
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2OTcsNiAr
NjY5OSw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBEMTcyRjYg
LyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5NDQyNDEyQzREQTAwOTEwRUVGIC8qIGlvcyAqLywKKwkJ
CQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3NTUgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmggKi8sCiAJCQkJMUQ0RkI0MEIyNTY1Qzg5QTAwMUFDMkFEIC8qIEluaXRpYWxp
emF0aW9uU2VnbWVudEluZm8uaCAqLywKIAkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1
RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLApAQCAtNjc3
Miw2ICs2Nzc1LDcgQEAKIAkJCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzFCQzU3QjIzQ0E1MzI0MDA2
ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJD
NTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8s
CisJCQkJQ0REMDhBQzQyNzdFRDdFMDAwRUEzNzU1IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDNlZDc2YzMy
YzgxNjZmMTljMjcxNjdhNzY1MzFjODJjMWVkNjUyNDUuLmY5ZTRiMWMzMjk1Y2UxM2IyMDJlMzc4
YjBkMjc1NDFiNGY0MDZmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwx
NCArMjksMTQgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3ND
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3ND
b25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVu
dGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CitBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25m
aWd1cmF0aW9uKQogICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVj
dGlvbikKICAgICAsIG1fcGxheWVySWRlbnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwg
bV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGU6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIEF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uKQordm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRl
Q29uZmlndXJhdGlvbihBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25m
aWd1cmF0aW9uKQogewogICAgIGlmIChjb25maWd1cmF0aW9uLnRyYWNrSWQgIT0gbV9pZCkgewog
ICAgICAgICBhdXRvIGNoYW5nZWQgPSAhbV9pZC5pc0VtcHR5KCk7CkBAIC04MCwxMSArODAsOCBA
QCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpbwogCiAgICAgbV90cmFja0luZGV4ID0gY29uZmlndXJh
dGlvbi50cmFja0luZGV4OwogICAgIG1fc3RhcnRUaW1lVmFyaWFuY2UgPSBjb25maWd1cmF0aW9u
LnN0YXJ0VGltZVZhcmlhbmNlOwotICAgIG1fa2luZCA9IGNvbmZpZ3VyYXRpb24uYXVkaW9LaW5k
OwotICAgIHNldENvZGVjKFdURk1vdmUoY29uZmlndXJhdGlvbi5jb2RlYykpOwotICAgIHNldFNh
bXBsZVJhdGUoY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlKTsKLSAgICBzZXROdW1iZXJPZkNoYW5u
ZWxzKGNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscyk7Ci0gICAgc2V0Qml0cmF0ZShjb25m
aWd1cmF0aW9uLmJpdHJhdGUpOworICAgIG1fa2luZCA9IGNvbmZpZ3VyYXRpb24ua2luZDsKKyAg
ICBzZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbi50cmFja0NvbmZpZ3VyYXRp
b24pKTsKICAgICAKICAgICBBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChjb25maWd1cmF0
aW9uLmVuYWJsZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGYxZjlmMGYzZDY1
YWM2NDg1NWIwNjVmMDI2NDRhMzY1ZGU0M2ViZDQuLjJmYzA4NDUxNWQ2MjBkMGM2NWEzZGNlYmY3
MDc1ODE2YzE2ZmQyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTM2LDIxICszNiwy
MSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbjsKK3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b247CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OkF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQcml2
YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0
aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25u
ZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24sIHBsYXllcklkZW50aWZpZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlv
bikpKTsKICAgICB9CiAKICAgICBBdG9tU3RyaW5nIGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9pZDsgfQotICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmKTsKIAogICAgIHVzaW5nIEF1ZGlvVHJhY2tLaW5kID0gV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OktpbmQ7CiAgICAgQXVkaW9UcmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fa2luZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGYzNjRlNWMx
NjQ2YjUyNGI2NTJmZDYwZDU0ODg0ZjlmNGEyYjVmOGIuLjliN2NjZWNjZTg4NjgzMzNkMjM5OGY5
YTAxZTkzNDFjM2M0OGRkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTU3
NSw3ICs1NzUsNyBAQCBGbG9hdFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXR1cmFs
U2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUubmF0dXJhbFNpemU7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2F1ZGlvVHJhY2tzLmVuc3VyZShpZGVudGlm
aWVyLCBbJl0gewogICAgICAgICByZXR1cm4gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0
ZShtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSk7CkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1v
dGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQogewogICAgIEFTU0VSVChtX2F1ZGlvVHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIApA
QCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVH
ZW5lcmljQ3VlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlCiAgICAgICAgIHRyYWNr
LT5yZW1vdmVHZW5lcmljQ3VlKEluYmFuZEdlbmVyaWNDdWU6OmNyZWF0ZShXVEZNb3ZlKGN1ZURh
dGEpKSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRl
b1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3ZpZGVvVHJhY2tzLmVu
c3VyZShpZGVudGlmaWVyLCBbJl0gewogICAgICAgICByZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRl
bnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CkBAIC03NjMsNyArNzYzLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJlbW90ZVZpZGVvVHJhY2soVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1v
dGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQogewogICAgIEFTU0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggYjBhZmUyMWVlMDNlZTI2
Mzc4NDA5NzJiZjJmMzA0NDcyM2Q2NzFiZC4uZTAxZmNlYzZjODYxYjFmOWEyMmQwNDhjZTNiOThi
NDRmOGViNWM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC02Nyw4ICs2Nyw5IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOwog
Y2xhc3MgVXNlckRhdGE7CitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwotc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUg
ZmluYWwKICAgICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
QEAgLTExNywxMyArMTE4LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3VycmVudFRpbWVDaGFu
Z2VkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1vbm90b25pY1RpbWUmLCBib29sKTsKIAotICAg
IHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlQXVk
aW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3RlQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29u
ZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCi0gICAgdm9pZCBhZGRSZW1vdGVWaWRl
b1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllcik7Ci0gICAgdm9pZCByZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKKyAgICB2b2lkIHJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJik7CiAKICAgICB2b2lkIGFkZFJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsK
ICAgICB2b2lkIHJlbW92ZVJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXgg
YTYwNjAzOTBlOTA1OTA4NmRmNDUzZjc1NjFkOWY1MTdlNmI0YWUwYS4uNWVkZjc1MzhmNWFmNjYz
YmE3OGZlOWM2N2U3YTY0MmFkYjZkZGVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUubWVzc2FnZXMuaW4KQEAgLTQxLDEzICs0MSwxMyBAQCBtZXNzYWdlcyAtPiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAKICAgICBDdXJyZW50VGltZUNoYW5n
ZWQoTWVkaWFUaW1lIG1lZGlhVGltZSwgTW9ub3RvbmljVGltZSB3YWxsVGltZSwgYm9vbCB0aW1l
SXNQcm9ncmVzc2luZykKIAotICAgIEFkZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBBZGRSZW1vdGVBdWRpb1Ry
YWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3Qg
V2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
bikKICAgICBSZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lEKQotICAgIFJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0
IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQor
ICAgIFJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6QXVkaW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKLSAgICBBZGRSZW1vdGVW
aWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCisgICAgQWRkUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgUmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVW
aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0
cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQogCiAgICAgQWRkUmVtb3RlVGV4dFRyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZVRleHRUcmFj
ayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOGJhOTI1OWU1MGUzZWNkYjBiODJjZTYyOTMxMzJlMTNh
ZWI0YzhiMi4uMGY4ZDVmODMxMTM4OWFkY2NjYjg4ODU5YTgyNzQ5YmQ5YTAxZDk0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTMyLDEwICszMiwxMSBAQAogI2luY2x1ZGUgIkdQ
VVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKK1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdw
dVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50
aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKQEAgLTU0LDcgKzU1LDcgQEAg
dm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkK
ICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lk
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGlmIChjb25maWd1cmF0aW9uLnRy
YWNrSWQgIT0gbV9pZCkgewogICAgICAgICBhdXRvIGNoYW5nZWQgPSAhbV9pZC5pc0VtcHR5KCk7
CkBAIC03OSwxNCArODAsOCBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVD
b25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpbwogCiAgICAgbV90cmFj
a0luZGV4ID0gY29uZmlndXJhdGlvbi50cmFja0luZGV4OwogICAgIG1fc3RhcnRUaW1lVmFyaWFu
Y2UgPSBjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNlOwotICAgIG1fa2luZCA9IGNvbmZp
Z3VyYXRpb24udmlkZW9LaW5kOwotICAgIG1fY29kZWMgPSBjb25maWd1cmF0aW9uLmNvZGVjOwot
ICAgIG1fd2lkdGggPSBjb25maWd1cmF0aW9uLndpZHRoOwotICAgIG1faGVpZ2h0ID0gY29uZmln
dXJhdGlvbi5oZWlnaHQ7Ci0gICAgbV9jb2xvclNwYWNlID0gY29uZmlndXJhdGlvbi5jb2xvclNw
YWNlOwotICAgIG1fZnJhbWVyYXRlID0gY29uZmlndXJhdGlvbi5mcmFtZXJhdGU7Ci0gICAgbV9i
aXRyYXRlID0gY29uZmlndXJhdGlvbi5iaXRyYXRlOwotCisgICAgbV9raW5kID0gY29uZmlndXJh
dGlvbi5raW5kOworICAgIHNldENvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uLnRy
YWNrQ29uZmlndXJhdGlvbikpOwogICAgIFZpZGVvVHJhY2tQcml2YXRlOjpzZXRTZWxlY3RlZChj
b25maWd1cmF0aW9uLnNlbGVjdGVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IDY5ZmNkODZjNjRkYzIwZmZiNmQ5OTUxNjJmYjA4Zjg4NWUxMTU1MWMuLmM4MTYxZjIxMTc2NTVk
YjU2YmYxMWZiMTMxMDc3NTNlODVmMTJlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKQEAg
LTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CkBAIC0zNywxOCAr
MzYsMTggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9u
OwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOwogCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZQogICAgIDogcHVibGljIFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25u
ZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0aWMgUmVmPFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3ND
b25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24sIHBsYXllcklkZW50aWZpZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJh
dGlvbikpKTsKICAgICB9CiAKLSAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24o
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcgVmlk
ZW9UcmFja0tpbmQgPSBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAgICBWaWRl
b1RyYWNrS2luZCBraW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CkBAIC01Nywx
NSArNTYsOSBAQCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fdHJhY2tJbmRleDsgfQogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5j
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc3RhcnRUaW1lVmFyaWFuY2U7IH0KLSAgICBTdHJp
bmcgY29kZWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdWludDMyX3Qg
d2lkdGgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dpZHRoOyB9Ci0gICAgdWludDMyX3QgaGVp
Z2h0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9oZWlnaHQ7IH0KLSAgICBXZWJDb3JlOjpQbGF0
Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
b2xvclNwYWNlOyB9Ci0gICAgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fZnJhbWVyYXRlOyB9Ci0gICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fYml0cmF0ZTsgfQogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
KEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYpOworICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB2
b2lkIHNldFNlbGVjdGVkKGJvb2wpIGZpbmFsOwogCkBAIC03NiwxMiArNjksNiBAQCBwcml2YXRl
OgogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKICAgICBBdG9tU3RyaW5nIG1fbGFuZ3VhZ2U7CiAg
ICAgaW50IG1fdHJhY2tJbmRleCB7IC0xIH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWlu
dDMyX3QgbV93aWR0aCB7IDAgfTsKLSAgICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKLSAgICBX
ZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBtX2NvbG9yU3BhY2U7Ci0gICAgZG91Ymxl
IG1fZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fYml0cmF0ZSB7IDAgfTsKICAgICBN
ZWRpYVRpbWUgbV9zdGFydFRpbWVWYXJpYW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9Owog
ICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZGVuZGlmaWVyOwogfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3ODRlY2RlYjAzOGUxMzRiM2MwOGFhZTJhMDE2NzFkMjAzNmNlOTg5Li5kNTQyMTMwZDhkYjhh
ZmM4ZWJlZmUwMjFjYjg0MDViZjA5YTMzOTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MTItMzEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBIYW5nIGluIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmJpdHJhdGUoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NzUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlc2UgcHJv
cGVydGllcyBhcmUgZHluYW1pYywgdGVzdCB0aGVtIHdpdGggYHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHlgLgorCisgICAgICAgICogbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5o
dG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRt
bDoKKwogMjAyMS0xMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlIGluIFBsdWdpbiBhbmQgUGx1
Z2luQ29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8t
dHJhY2stY29uZmlndXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8t
dHJhY2stY29uZmlndXJhdGlvbi5odG1sCmluZGV4IGE1N2UyNjMwMmYzNjEwMDc1NTZiMzQyYmYz
NjNiNjcyNmY2ZjMyODkuLmU3MzQ2MDhjNmVhN2Y1NjIyYzkzMjc3OTY3NWJmYWVlNzU1MmUwNzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3Vy
YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWwKQEAgLTksMTIgKzksMTIgQEAKIAkJCWZpbmRNZWRpYUVsZW1lbnQoKTsK
IAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvYXVkaW8tdHJhY2tzLm1wNCInKTsKIAkJ
CWF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LmF1ZGlvVHJhY2tzLmxlbmd0aCcsIDAsICc+Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1
ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3Rl
ZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdtcDRhLjQwLjIn
KTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5z
YW1wbGVSYXRlJywgNDQxMDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMnLCAyKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRyYXRlJywgMTAwMDAwLCAnPj0n
KTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxl
bmd0aCcsIDAsICc+Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5h
dWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNv
ZGVjJywgJ21wNGEuNDAuMicpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlJywgNDQxMDApOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5udW1iZXJPZkNoYW5uZWxzJywgMik7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAw
MDAsICc+PScpOwogCQkJZW5kVGVzdCgpOwogCQl9KTsKIAk8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbApp
bmRleCAxMjAzOTk5ODIwNDVmOTMxZTg5ZjMzNjU2MzhmNTM3YjEzMjY2MDQ0Li5iNWRkNmYyN2Fh
MGI2YWIyZjIxYzkzN2IyMTU0ZTA4YzYwMzM3YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCkBAIC05LDMwICs5
LDMwIEBACiAJCQlmaW5kTWVkaWFFbGVtZW50KCk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9j
b250ZW50L3Rlc3QubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsK
LQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgMSk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0n
KTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2RlYycsICdhdmMxLjRENDAwRCcpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwotCQkJdGVzdEV4cGVj
dGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAs
ICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5t
YXRyaXgnLCAnYnQ0NzBiZycpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ3NtcHRlMTcwbScpOwotCQkJ
dGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3Bh
Y2UudHJhbnNmZXInLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5jb2RlYycsICdhdmMxLjRENDAwRCcpOworCQkJYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcs
IDMyMCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAy
NDAwMDAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRy
aXgnLCAnYnQ0NzBiZycpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdzbXB0
ZTE3MG0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOwogCQkJ
cnVuKCd2aWRlby5zcmMgPSAiLi4vY29udGVudC90ZXN0LWhldmMubXA0IicpOwogCQkJYXdhaXQg
d2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3MubGVuZ3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBd
LmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdodmMxLjEuNi5MOTMuQjAnKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcs
IDMyMCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24uaGVpZ2h0JywgMjQwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5iaXRyYXRlJywgMTUwMDAwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29s
b3JTcGFjZScsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NzA5Jyk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5w
cmltYXJpZXMnLCAnYnQ3MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsK
KwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNv
bmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnaHZjMS4xLjYu
TDkzLkIwJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3Rl
ZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0Jywg
MjQwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDE1MDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZy
YW1lcmF0ZScsIDMwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDcwOScpOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2xvclNwYWNlLnByaW1hcmllcycsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRy
YW5zZmVyJywgJ2J0NzA5Jyk7CiAJCQllbmRUZXN0KCk7CiAJCX0pOwogCTwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448129</attachid>
            <date>2021-12-31 12:28:00 -0800</date>
            <delta_ts>2021-12-31 12:46:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231122759.patch</filename>
            <type>text/plain</type>
            <size>100636</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5N2M4ZGM1NzgzZjlk
NDkxZTM2ZTE1Mjg4YzA1ODI3NDFlZGQ0Ni4uMGE4ZmEzZWRiOGE5ZTI2MGY5YjE2ZDJkZGM2MDRj
NmQyYmI0NGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MmNjNTc4NGJiYWI1MGJlNjlmMTRlMTgxMGY3MmEwMDE2YTYyNjAyLi5hZjQyN2RiZDFkOGM5
M2Y1Mzk3YWVjZDA2MzQ2ZWZhMDc0Y2I2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYjY2MmIwODdlNzJlZGU2ZWM3YzkzNWRmYTQ3ZjA3ZTBkYzRkMDc2Zi4uYWY4OGY3NWY0ODFh
NDhiZmZlYTA5OWZkZTEwMGViMTFjZThiNGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU3Niw2ICs0NTc2LDkgQEAKIAkJ
Q0RDQzlCRDEyMjM4N0VBQTAwRkZCNTFDIC8qIE1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENDOUJE
MDIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENENDFFODFD
M0REQjBBMDA5NjVEOTkgLyogUGFyc2VkQ29udGVudFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENENDFFNjFDM0REQjA5MDA5NjVEOTkgLyog
UGFyc2VkQ29udGVudFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJC
MThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQkQyNzdFNTQyNjAwRUEzNzU1IC8q
IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCQzI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDREQwOEFDMDI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDREQwOEFDMjI3N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDREQ3MDg5NzE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYg
LyogU2FtcGxlTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RE
QzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTNBODU0MTdG
NUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8q
IEF1ZGlvVHJhY2tQcml2YXRlQVZGLmggKi87IH07CkBAIC0xNjE0OCw2ICsxNjE1MSw5IEBACiAJ
CUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBFdmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHREYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBIaWdo
bGlnaHREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCQzI3N0U1
NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDMTI3N0U1NTRFMDBFQTM3
NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NDE4MzU5RjZFMDAy
QjNEQzYgLyogU2FtcGxlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNhbXBsZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk1
MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2FtcGxlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODY2
OCwyMDQgKzI4Njc0LDIzMiBAQAogCQkJCTM3MjE0OTMzMThGMEI2RDYwMDE1NkVEQyAvKiBvcGVu
dHlwZSAqLywKIAkJCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLywK
IAkJCQlCQzYzNUU5MTI2NEM0NzYwMDAwRUYzM0EgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5j
cHAgKi8sCi0JCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLywKIAkJCQkwRjdFNDc1MzI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwICovLAotCQkJCTBGN0U0NzU0MjVFRUI3OUIwMDEzRjkwOSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovLAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAorCQkJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3QyAvKiBCaWZ1cmNh
dGVkR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKKwkJCQlBODk5NDMyNzBCNDIzMzg3MDBEN0M4MDIg
LyogQml0bWFwSW1hZ2UuY3BwICovLAorCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAvKiBD
b2xvci5jcHAgKi8sCisJCQkJN0MxQjRBNjUyNEE5OTc1OTAwMzM3MjdGIC8qIENvbG9yQmxlbmRp
bmcuY3BwICovLAorCQkJCTdDNTE0RTAyMjRBRjgwNTgwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNp
b24uY3BwICovLAorCQkJCUJDREM2NDI0Mjc1MTdCMDQwMDM4RkIzOSAvKiBDb2xvckludGVycG9s
YXRpb24uY3BwICovLAorCQkJCUJDNkVCODQ1MjYyNjZCNjEwMDMyMjVBNyAvKiBDb2xvckx1bWlu
YW5jZS5jcHAgKi8sCisJCQkJN0NEMUU2OTIyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFs
aXphdGlvbi5jcHAgKi8sCisJCQkJQkNBRkVEQUYyNTk2NkQwNTAwMzBFNkFBIC8qIENvbG9yU3Bh
Y2UuY3BwICovLAorCQkJCTBGRTZDNzZCMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGll
cy5jcHAgKi8sCisJCQkJQzJGNEU3ODgxRTQ1QUVERjAwNkQ3MTA1IC8qIENvbXBsZXhUZXh0Q29u
dHJvbGxlci5jcHAgKi8sCisJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQlCQzJDQ0EwRjI2NTVEREIyMDBCOEMwMzUgLyog
RGVzdGluYXRpb25Db2xvclNwYWNlLmNwcCAqLywKKwkJCQk0OUZDN0E0RjE0NDRBRjVGMDBBNUQ4
NjQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCAqLywKKwkJCQkyRDI5RUNDMTE5MkVDQzgz
MDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCAqLywKKwkJCQkyRDI5
RUNDMzE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAg
Ki8sCisJCQkJMEZCQjVGQzkyNjBFOUI0MzAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuY3BwICov
LAorCQkJCTJFODg4Q0E5MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuY3BwICovLAorCQkJ
CUIyNzUzNTNBMEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50LmNwcCAqLywKKwkJCQlCMkUy
N0M5RDBCMEYyQjA5MDBGMTdDN0IgLyogRmxvYXRQb2ludDNELmNwcCAqLywKKwkJCQk2RUM0ODA5
RjE2RUE2MzhBMDBBNDhEQ0IgLyogRmxvYXRQb2x5Z29uLmNwcCAqLywKKwkJCQkwRkQ3MjM4MTBF
QzhCRDkzMDBDQTVERDcgLyogRmxvYXRRdWFkLmNwcCAqLywKKwkJCQlCMjc1MzUzQzBCMDUzODE0
MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmNwcCAqLywKKwkJCQk2RTBFNTY5OTE4M0JGRkU2MDBFMEU4
RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgKi8sCisJCQkJQjI3NTM1M0UwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0U2l6ZS5jcHAgKi8sCisJCQkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8q
IEZvbnQuY3BwICovLAorCQkJCUIyQzNEQTUxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUu
Y3BwICovLAorCQkJCUIyQzNEQTRGMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZS5jcHAg
Ki8sCisJCQkJRTRFOEI0RjAyMTZCOEI1RjAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVzY3JpcHRp
b24uY3BwICovLAorCQkJCUIyQzNEQTU2MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZv
bnRzLmNwcCAqLywKKwkJCQkzN0FDQ0U2MjBEQTJBQTk2MDA4OUU2MDIgLyogRm9udERlc2NyaXB0
aW9uLmNwcCAqLywKKwkJCQlDMjgwQjNGRDFFRjQ2MDg5MDBEMzUxMzUgLyogRm9udEZhbWlseVNw
ZWNpZmljYXRpb25OdWxsLmNwcCAqLywKKwkJCQlFNDRFRTNBNjE3NTc2RTU1MDBFRUU4Q0YgLyog
Rm9udEdlbmVyaWNGYW1pbGllcy5jcHAgKi8sCisJCQkJODRCNjI2ODQxMzMxMzhGOTAwOTVBNDg5
IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovLAorCQkJCTM3MUY0RkZCMEQyNUU3RjMwMEVDRTBE
NSAvKiBGb250UmFuZ2VzLmNwcCAqLywKKwkJCQlDMkFCMEFGNDFFNkIzQzZDMDAxMzQ4QzUgLyog
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5jcHAgKi8sCisJCQkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZB
N0Y4IC8qIEZvbnRUYWdnZWRTZXR0aW5ncy5jcHAgKi8sCisJCQkJN0NFNkNCRkMxODdGMzk0OTAw
RDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAgKi8sCisJCQkJNEZCMzkwQUMxNUVGNjFGMzAw
N0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQkwRkI2MjUyQzE4REUxQjE1MDBB
MDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwICovLAorCQkJCUJDNTNDNjA3MERBNTZDNTcw
MDIxRUI1RCAvKiBHcmFkaWVudC5jcHAgKi8sCisJCQkJMkQyRkMwNTYxNDYwQ0Q2RjAwMjYzNjMz
IC8qIEdyYWRpZW50SW1hZ2UuY3BwICovLAorCQkJCUIyQTAxNTkyMEFGNkNENTMwMDZCQ0UwRSAv
KiBHcmFwaGljc0NvbnRleHQuY3BwICovLAorCQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCisJCQkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4
IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovLAorCQkJCTBGNTgwQjA5
MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmNwcCAqLywKKwkJCQk3QkJGREVDRDI3
NDI4RjU0MDBFRDBCNzcgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmNw
cCAqLywKKwkJCQkwRkEyNEQ3NzE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0
ZXIuY3BwICovLAorCQkJCUIyQTAxNTk0MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVz
LmNwcCAqLywKKwkJCQlDREE1OTU5MjIxNDZERUMzMDBBODQxODUgLyogSEVWQ1V0aWxpdGllcy5j
cHAgKi8sCisJCQkJQjI3NTM1NDEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCAqLywKKwkJ
CQk0M0QyNTk3NjEzQzgxNkY0MDA2MDg1NTkgLyogSW1hZ2VCdWZmZXIuY3BwICovLAorCQkJCTcy
QkFDM0E0MjNFMTczMjcwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwICovLAorCQkJ
CTQzRDI1OTg2MTNDODE2RjQwMDYwODU1OSAvKiBJbWFnZUJ1ZmZlclBpcGUuY3BwICovLAorCQkJ
CUNEMTlGRUE3MUY1NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuY3BwICovLAorCQkJCTU1
NzZBNTYyMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLywKKwkJCQlDQTNBNEFB
QjI1NDE2RTNDMDA2Q0RBRTIgLyogSW1hZ2VSZXNvbHV0aW9uLmNwcCAqLywKKwkJCQk1NTQ2NzU3
NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovLAorCQkJCTA3ODYzM0Y4MjQw
NzE1RDIwMDg3QUUyMSAvKiBJbmJhbmRHZW5lcmljQ3VlLmNwcCAqLywKKwkJCQkyRDQ2RjA0RDE3
Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwICovLAorCQkJCUIyNzUzNTQ1MEIwNTM4MTQw
MDJDRTY0RiAvKiBJbnRSZWN0LmNwcCAqLywKKwkJCQkyRDQ2RjA0RjE3Qjk2RkQyMDA1NjQ3RjAg
LyogSW50U2l6ZS5jcHAgKi8sCisJCQkJMEYzNkU3MzYxQkQxODM3QTAwMkRCODkxIC8qIExheW91
dFBvaW50LmNwcCAqLywKKwkJCQkxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5jcHAgKi8sCisJCQkJMEYzNkU3MzgxQkQxODRCOTAwMkRCODkxIC8qIExheW91dFNpemUuY3Bw
ICovLAorCQkJCTA3OEU0M0Q3MUFCQjZDN0UwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyLmNwcCAqLywKKwkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5
ZXIuY3BwICovLAorCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hl
LmNwcCAqLywKKwkJCQkyREM4RDM5NjI1RjJGRTkzMDBDRkNCQUIgLyogTW9kZWwuY3BwICovLAor
CQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2Uu
Y3BwICovLAorCQkJCTcyNTIzOTZCMjU0Q0FEQzIwMEY1RkIxNSAvKiBOYXRpdmVJbWFnZS5jcHAg
Ki8sCisJCQkJQjI3NTM1NTIwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwICovLAorCQkJCUE4
OERENDg4MEI0NjI5QjAwMEMwMjk5MCAvKiBQYXRoVHJhdmVyc2FsU3RhdGUuY3BwICovLAorCQkJ
CTJENTAwMkY5MUI1NkQ3OTkwMDIwQUFGNyAvKiBQYXRoVXRpbGl0aWVzLmNwcCAqLywKKwkJCQlB
OEZBNkU1QzBFNENGREVEMDBENUNGNDkgLyogUGF0dGVybi5jcHAgKi8sCisJCQkJQkM0ODM5QkIy
NjQ2MTgxQTAwQTI4QjYyIC8qIFBpeGVsQnVmZmVyLmNwcCAqLywKKwkJCQlCQzBDQTc0RDI2NEFF
RDBBMDA0RkRDNjIgLyogUGl4ZWxCdWZmZXJDb252ZXJzaW9uLmNwcCAqLywKKwkJCQlCQzYzNUU4
RjI2NEMyRUNFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuY3BwICovLAorCQkJCUJDNjM1
RTkwMjY0QzQ2OUYwMDBFRjMzQSAvKiBQaXhlbEZvcm1hdC5jcHAgKi8sCisJCQkJMDc0RTgyQjgx
OEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCisJCQkJQkNBQjQx
N0YxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCisJCQkJN0JFNzI2NUIyNTc2M0I4
RDAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcCAqLywKKwkJ
CQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAor
CQkJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8sCisJCQkJ
MEYzREQ0NEQxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwICovLAorCQkJCTFERDEy
N0FDMjU2RTNBODcwMEIyMjdENyAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCAqLywKKwkJCQlC
MjM1NDBGMDBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmNwcCAqLywKKwkJCQkz
NzZEQ0NFMDEzQjRGOTY2MDAyRUJFRkMgLyogVGV4dFJ1bi5jcHAgKi8sCisJCQkJQ0QxRTczNDYx
NjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLywKKwkJCQkw
NzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCisJCQkJ
MEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCisJCQkJQ0Q2
RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QjAy
RUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovLAorCQkJCTM3OTkxOTk0
MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgKi8sCisJCQkJNzI5OUJDNjQy
M0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywKKwkJCQkwRjdF
NDc1NDI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLywKIAkJCQk3MjJB
ODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVG
MjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Qx
RjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCi0J
CQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwICovLAogCQkJCTJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggKi8sCi0JCQkJQTg5OTQzMjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmNwcCAqLywKIAkJCQlBODk5NDMyNjBCNDIzMzg3MDBEN0M4MDIgLyogQml0bWFwSW1hZ2Uu
aCAqLywKLQkJCQlCMjc1MzUzODBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3IuY3BwICovLAogCQkJ
CUIyNzUzNTM5MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5oICovLAotCQkJCTdDMUI0QTY1MjRB
OTk3NTkwMDMzNzI3RiAvKiBDb2xvckJsZW5kaW5nLmNwcCAqLywKIAkJCQk3QzFCNEE2NzI0QTk5
NzY2MDAzMzcyN0YgLyogQ29sb3JCbGVuZGluZy5oICovLAogCQkJCTdDQUM2QUVDMjQ3RjFDNTEw
MEU2MUQ1OSAvKiBDb2xvckNvbXBvbmVudHMuaCAqLywKLQkJCQk3QzUxNEUwMjI0QUY4MDU4MDA1
MDcxMEYgLyogQ29sb3JDb252ZXJzaW9uLmNwcCAqLywKIAkJCQk3QzUxNEUwMDI0QUY4MDU4MDA1
MDcxMEYgLyogQ29sb3JDb252ZXJzaW9uLmggKi8sCiAJCQkJMzEwM0I3REUxREIwMTU1NjAwOEJC
ODkwIC8qIENvbG9ySGFzaC5oICovLAotCQkJCUJDREM2NDI0Mjc1MTdCMDQwMDM4RkIzOSAvKiBD
b2xvckludGVycG9sYXRpb24uY3BwICovLAogCQkJCUJDREM2NDI1Mjc1MTdCMDQwMDM4RkIzOSAv
KiBDb2xvckludGVycG9sYXRpb24uaCAqLywKIAkJCQlCQzJFRThFODI3NjU5NDJBMDA3Nzc2OEIg
LyogQ29sb3JJbnRlcnBvbGF0aW9uTWV0aG9kLmggKi8sCi0JCQkJQkM2RUI4NDUyNjI2NkI2MTAw
MzIyNUE3IC8qIENvbG9yTHVtaW5hbmNlLmNwcCAqLywKIAkJCQlCQzRBMjNFQjI1RUMxNjAyMDBB
QUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCAqLywKIAkJCQk3Q0FDNkFFODI0N0YwODIwMDBFNjFE
NTkgLyogQ29sb3JNYXRyaXguaCAqLywKIAkJCQlCQzEwMTM3QjI1QzM2MjRCMDBEQzc3M0MgLyog
Q29sb3JNb2RlbHMuaCAqLywKIAkJCQlCQ0IyRjg4RDI3NUJFRTU3MDA3MjMxQkYgLyogQ29sb3JO
b3JtYWxpemF0aW9uLmggKi8sCi0JCQkJN0NEMUU2OTIyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9y
U2VyaWFsaXphdGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEyNEFCRjYyNDAwODlDNDE5IC8qIENv
bG9yU2VyaWFsaXphdGlvbi5oICovLAotCQkJCUJDQUZFREFGMjU5NjZEMDUwMDMwRTZBQSAvKiBD
b2xvclNwYWNlLmNwcCAqLywKIAkJCQk5MzgyREY1NzEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JT
cGFjZS5oICovLAogCQkJCUJDMTAxMzdFMjVDMzYzMTYwMERDNzczQyAvKiBDb2xvclRyYW5zZmVy
RnVuY3Rpb25zLmggKi8sCiAJCQkJN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlw
ZXMuaCAqLywKLQkJCQkwRkU2Qzc2QjFGQkZCN0E2MDAyNUMwNTMgLyogQ29sb3JVdGlsaXRpZXMu
Y3BwICovLAogCQkJCTBGRTZDNzZDMUZCRkI3QTYwMDI1QzA1MyAvKiBDb2xvclV0aWxpdGllcy5o
ICovLAotCQkJCUMyRjRFNzg4MUU0NUFFREYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwICovLAogCQkJCUMyRjRFNzg5MUU0NUFFREYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENv
bnRyb2xsZXIuaCAqLywKIAkJCQkxQzg0QkU0MTI2RDM5MzlGMDAyRDYxRkMgLyogQ29tcG9zZWRD
aGFyYWN0ZXJDbHVzdGVyVGV4dEl0ZXJhdG9yLmggKi8sCiAJCQkJNzJCQUMzQTcyM0UxNzMyODAw
OEQ3NDFDIC8qIENvbmNyZXRlSW1hZ2VCdWZmZXIuaCAqLywKLQkJCQkyRDJGQzA1NDE0NjBDRDZG
MDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTJEMkZDMDU1
MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUE4
Q0I0MTAyMEU4NUI4QTUwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCAqLywKIAkJCQk1NTUxMzAwMDFF
N0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8sCi0JCQkJQkMyQ0NBMEYyNjU1
RERCMjAwQjhDMDM1IC8qIERlc3RpbmF0aW9uQ29sb3JTcGFjZS5jcHAgKi8sCiAJCQkJQkMyQ0NB
MEUyNjU1RERCMjAwQjhDMDM1IC8qIERlc3RpbmF0aW9uQ29sb3JTcGFjZS5oICovLAotCQkJCTQ5
RkM3QTRGMTQ0NEFGNUYwMEE1RDg2NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwICovLAog
CQkJCTQ5QUYyRDY4MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCAq
LywKLQkJCQkyRDI5RUNDMTE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmNwcCAqLywKIAkJCQkyRDI5RUNDMjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50LmggKi8sCiAJCQkJMEZCQjVGQkQyNjA5NUE5QzAwNTQ1NzJDIC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCAqLywKLQkJCQkyRDI5RUNDMzE5MkVDQzgz
MDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAgKi8sCiAJCQkJMkQy
OUVDQzQxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCAq
LywKLQkJCQkwRkJCNUZDOTI2MEU5QjQzMDA1NDU3MkMgLyogRGlzcGxheVVwZGF0ZS5jcHAgKi8s
CiAJCQkJMEZCQjVGQ0IyNjBFOUI0NDAwNTQ1NzJDIC8qIERpc3BsYXlVcGRhdGUuaCAqLywKIAkJ
CQkxQ0FGNTZEODI1MzAxNDU3MDAxN0I0NzIgLyogRHJhd0dseXBoc1JlY29yZGVyLmggKi8sCiAJ
CQkJNkU2N0QyQTgxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnNHTC5oICovLAotCQkJCTJF
ODg4Q0E5MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuY3BwICovLAogCQkJCTJFODg4Q0E4
MjVGNkE0MTEwMDU3OTE0QSAvKiBGbG9hdExpbmUuaCAqLywKLQkJCQlCMjc1MzUzQTBCMDUzODE0
MDAyQ0U2NEYgLyogRmxvYXRQb2ludC5jcHAgKi8sCiAJCQkJQjI3NTM1M0IwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0UG9pbnQuaCAqLywKLQkJCQlCMkUyN0M5RDBCMEYyQjA5MDBGMTdDN0IgLyog
RmxvYXRQb2ludDNELmNwcCAqLywKIAkJCQlCMkUyN0M5RTBCMEYyQjA5MDBGMTdDN0IgLyogRmxv
YXRQb2ludDNELmggKi8sCi0JCQkJNkVDNDgwOUYxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9s
eWdvbi5jcHAgKi8sCiAJCQkJNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9seWdv
bi5oICovLAotCQkJCTBGRDcyMzgxMEVDOEJEOTMwMENBNURENyAvKiBGbG9hdFF1YWQuY3BwICov
LAogCQkJCTBGRDcyMzgwMEVDOEJEOTMwMENBNURENyAvKiBGbG9hdFF1YWQuaCAqLywKLQkJCQlC
Mjc1MzUzQzBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmNwcCAqLywKIAkJCQlCMjc1MzUz
RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmggKi8sCi0JCQkJNkUwRTU2OTkxODNCRkZF
NjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuY3BwICovLAogCQkJCTZFMEU1NjlBMTgzQkZG
RTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8sCi0JCQkJQjI3NTM1M0UwQjA1Mzgx
NDAwMkNFNjRGIC8qIEZsb2F0U2l6ZS5jcHAgKi8sCiAJCQkJQjI3NTM1M0YwQjA1MzgxNDAwMkNF
NjRGIC8qIEZsb2F0U2l6ZS5oICovLAogCQkJCTU4Q0QzNUNBMThFQjRDMzkwMEI5RjNBQyAvKiBG
bG9hdFNpemVIYXNoLmggKi8sCi0JCQkJQjJDM0RBNTMwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnQu
Y3BwICovLAogCQkJCUIyQzNEQTU0MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250LmggKi8sCiAJCQkJ
QkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oICovLAotCQkJCUIyQzNE
QTUxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuY3BwICovLAogCQkJCUIyQzNEQTUyMEQw
MDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCAqLywKLQkJCQlCMkMzREE0RjBEMDA2Q0Q2MDBF
RjZGMjYgLyogRm9udENhc2NhZGUuY3BwICovLAogCQkJCUIyQzNEQTUwMEQwMDZDRDYwMEVGNkYy
NiAvKiBGb250Q2FzY2FkZS5oICovLAotCQkJCUU0RThCNEYwMjE2QjhCNUYwMEI4ODM0RCAvKiBG
b250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQlFNEU4QjRGMjIxNkI4QjYwMDBCODgz
NEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oICovLAotCQkJCUIyQzNEQTU2MEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmNwcCAqLywKIAkJCQlCMkMzREE1NzBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oICovLAogCQkJCTFDMjY2NzE5MjZGQTdGMkUw
MDExNzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggKi8sCi0JCQkJMzdBQ0NFNjIwREEyQUE5
NjAwODlFNjAyIC8qIEZvbnREZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJQjJDM0RBNTUwRDAwNkNE
NjAwRUY2RjI2IC8qIEZvbnREZXNjcmlwdGlvbi5oICovLAotCQkJCUMyODBCM0ZEMUVGNDYwODkw
MEQzNTEzNSAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuY3BwICovLAogCQkJCUMyQzJD
RjU1MUVGMzc2MUEwMDQyODFBOCAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwuaCAqLywK
LQkJCQlFNDRFRTNBNjE3NTc2RTU1MDBFRUU4Q0YgLyogRm9udEdlbmVyaWNGYW1pbGllcy5jcHAg
Ki8sCiAJCQkJRTQ0RUUzQTcxNzU3NkU1NTAwRUVFOENGIC8qIEZvbnRHZW5lcmljRmFtaWxpZXMu
aCAqLywKIAkJCQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLywK
IAkJCQkxQzQ2NzRGRDI2RjQ4NDM2MDBCNjEyNzMgLyogRm9udFBhbGV0dGUuaCAqLywKIAkJCQkx
QzVFMURBNjI2Rjk0OUI5MDBFMDdBRjEgLyogRm9udFBhbGV0dGVWYWx1ZXMuaCAqLywKLQkJCQk4
NEI2MjY4NDEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5jcHAgKi8sCiAJCQkJ
QjUzMjBENjkxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCAqLywKLQkJCQkz
NzFGNEZGQjBEMjVFN0YzMDBFQ0UwRDUgLyogRm9udFJhbmdlcy5jcHAgKi8sCiAJCQkJMzcxRjRG
RkEwRDI1RTdGMzAwRUNFMEQ1IC8qIEZvbnRSYW5nZXMuaCAqLywKLQkJCQlDMkFCMEFGNDFFNkIz
QzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRobS5jcHAgKi8sCiAJCQkJQzJBQjBB
RjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCAqLywKIAkJCQlC
MkMzREE1QTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggKi8sCiAJCQkJRTQxOTA0
MUUxQ0M2NDg2QjAwQzM1RjVEIC8qIEZvbnRTZWxlY3RvckNsaWVudC5oICovLAotCQkJCTRBNkU5
RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuY3BwICovLAogCQkJCTRB
NkU5RkM2MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuaCAqLywKLQkJCQk3
Q0U2Q0JGQzE4N0YzOTQ5MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLywKIAkJCQk3
Q0U2Q0JGQTE4N0YzNzA3MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmggKi8sCiAJCQkJQ0Q1
MjVCQTIxRUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5oICovLAotCQkJCTRGQjM5MEFDMTVFRjYx
RjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCiAJCQkJQkMyM0YwREEwREFGRjRB
NDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCi0JCQkJMEZCNjI1MkMxOERFMUIxNTAw
QTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRkI2MjUyRDE4REUxQjE1
MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLywKIAkJCQkwODZCQkQwRTEzNjAzOUMy
MDA4QjE1RDggLyogR2x5cGguaCAqLywKIAkJCQlCMkMzREE1QjBEMDA2Q0Q2MDBFRjZGMjYgLyog
R2x5cGhCdWZmZXIuaCAqLywKIAkJCQkxQzREMEREMTI0RDlGMERCMDAzRDc0OTggLyogR2x5cGhC
dWZmZXJNZW1iZXJzLmggKi8sCiAJCQkJQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBo
TWV0cmljc01hcC5oICovLAogCQkJCTA4NzNCODZBMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBh
Z2UuaCAqLywKLQkJCQlCQzUzQzYwNzBEQTU2QzU3MDAyMUVCNUQgLyogR3JhZGllbnQuY3BwICov
LAogCQkJCUJDNTNDNUY0MERBNTZCOTIwMDIxRUI1RCAvKiBHcmFkaWVudC5oICovLAogCQkJCUJD
MTlDREYzMjc3MTA2MzkwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcC5oICovLAogCQkJCUJD
MTlDRTI5Mjc3MkJGNzcwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCAqLywKIAkJCQky
RDJGQzA1NjE0NjBDRDZGMDAyNjM2MzMgLyogR3JhZGllbnRJbWFnZS5jcHAgKi8sCiAJCQkJMkQy
RkMwNTcxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdyYWRpZW50SW1hZ2UuaCAqLywKLQkJCQlCMkEwMTU5
MjBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQlCMkEwMTU5
MzBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJRjQyOTk0Rjky
NzBDRkU0ODAwMzIyOThCIC8qIEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllci5oICovLAot
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8s
CiAJCQkJMzEzREU4NkYyM0E5Njk2NzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggKi8s
CiAJCQkJN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcy5oICovLAotCQkJCTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRl
eHRHTEltYWdlRXh0cmFjdG9yLmNwcCAqLywKIAkJCQk3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDgg
LyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovLAogCQkJCTdCOTVDRkU5Mjc1
NEZGNkUwMDAwNjBDRSAvKiBHcmFwaGljc0NvbnRleHRHTFN0YXRlLmggKi8sCi0JCQkJMEY1ODBC
MDkwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuY3BwICovLAogCQkJCTBGNTgwQjBB
MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmggKi8sCiAJCQkJMEY1ODBCMEIwRjEy
QTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXJDbGllbnQuaCAqLywKLQkJCQk3QkJGREVDRDI3
NDI4RjU0MDBFRDBCNzcgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmNw
cCAqLywKIAkJCQk3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRl
bnRzRGlzcGxheURlbGVnYXRlLmggKi8sCiAJCQkJMUFDNjk1OTIxNjFBMUU1MzAwMzczMkNCIC8q
IEdyYXBoaWNzTGF5ZXJGYWN0b3J5LmggKi8sCi0JCQkJMEZBMjRENzcxNjJERjkxOTAwQTNGNEMw
IC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcCAqLywKIAkJCQkwRkEyNEQ3ODE2MkRGOTE5MDBB
M0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAqLywKLQkJCQlCMkEwMTU5NDBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgKi8sCiAJCQkJQjJBMDE1OTUwQUY2Q0Q1MzAw
NkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuaCAqLywKIAkJCQk3N0ExN0E3QTEyRjI4OTBCMDA0RTAy
RjYgLyogR3JhcGhpY3NUeXBlc0dMLmggKi8sCi0JCQkJQ0RBNTk1OTIyMTQ2REVDMzAwQTg0MTg1
IC8qIEhFVkNVdGlsaXRpZXMuY3BwICovLAogCQkJCUNEQTU5NTkxMjE0NkRFQzMwMEE4NDE4NSAv
KiBIRVZDVXRpbGl0aWVzLmggKi8sCiAJCQkJQjI3NTM1NDAwQjA1MzgxNDAwMkNFNjRGIC8qIElj
b24uaCAqLywKLQkJCQlCMjc1MzU0MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwICovLAog
CQkJCUIyNzUzNTQyMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZS5oICovLAogCQkJCTU1QTMzNkY4
MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovLAotCQkJCTQzRDI1OTc2
MTNDODE2RjQwMDYwODU1OSAvKiBJbWFnZUJ1ZmZlci5jcHAgKi8sCiAJCQkJQjJBMTBCOTEwQjM4
MThCRDAwMDk5QUE0IC8qIEltYWdlQnVmZmVyLmggKi8sCi0JCQkJNzJCQUMzQTQyM0UxNzMyNzAw
OEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5jcHAgKi8sCiAJCQkJNzJCQUMzQTUyM0UxNzMy
ODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovLAotCQkJCTQzRDI1OTg2MTNDODE2
RjQwMDYwODU1OSAvKiBJbWFnZUJ1ZmZlclBpcGUuY3BwICovLAogCQkJCUIyQTEwQzkxMEIzODE4
QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlclBpcGUuaCAqLywKLQkJCQlDRDE5RkVBNzFGNTczOTcy
MDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmNwcCAqLywKIAkJCQlDRDE5RkVBNjFGNTczOTcyMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi8sCiAJCQkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEy
IC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLywKLQkJCQk1NTc2QTU2MjFEODhBNzA4MDBD
Q0MwNEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8sCiAJCQkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRD
IC8qIEltYWdlRnJhbWUuaCAqLywKIAkJCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1h
Z2VPYnNlcnZlci5oICovLAogCQkJCUE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9y
aWVudGF0aW9uLmggKi8sCiAJCQkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFp
bnRpbmdPcHRpb25zLmggKi8sCi0JCQkJQ0EzQTRBQUIyNTQxNkUzQzAwNkNEQUUyIC8qIEltYWdl
UmVzb2x1dGlvbi5jcHAgKi8sCiAJCQkJQ0EzQTRBQUQyNTQxNkUzRTAwNkNEQUUyIC8qIEltYWdl
UmVzb2x1dGlvbi5oICovLAotCQkJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNv
dXJjZS5jcHAgKi8sCiAJCQkJNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNl
LmggKi8sCiAJCQkJNTU1MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLywK
IAkJCQk1NUJCRDQyODI0REI1M0EyMDBCQjZFMEMgLyogSW1hZ2VVdGlsaXRpZXMuaCAqLywKLQkJ
CQkwNzg2MzNGODI0MDcxNUQyMDA4N0FFMjEgLyogSW5iYW5kR2VuZXJpY0N1ZS5jcHAgKi8sCiAJ
CQkJMDc4NjMzREUyM0ZFREYyMjAwODdBRTIxIC8qIEluYmFuZEdlbmVyaWNDdWUuaCAqLywKIAkJ
CQkwNzA2QTBENzI0MDgzMEE2MDBFOTM4MTggLyogSW5iYW5kR2VuZXJpY0N1ZUlkZW50aWZpZXIu
aCAqLywKIAkJCQkwNzk0MTc5MzE2NkVBMDRFMDA5NDE2QzIgLyogSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZS5oICovLAogCQkJCTA3Q0U3N0Q0MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJRjQ1Nzc1Q0QyNDE0MzdENTAwMkRGMUEwIC8qIElu
bGluZVBhdGhEYXRhLmggKi8sCi0JCQkJMkQ0NkYwNEQxN0I5NkZCRDAwNTY0N0YwIC8qIEludFBv
aW50LmNwcCAqLywKIAkJCQlCMjc1MzU0NDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnQuaCAq
LywKIAkJCQlFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8sCi0J
CQkJQjI3NTM1NDUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovLAogCQkJCUIyNzUz
NTQ2MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmggKi8sCiAJCQkJQTJCOTIxNzIxNkM1Q0M0
MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLywKIAkJCQlFMTM0RjVBQTEyRUUzNDNGMDA0
RUM1OEQgLyogSW50UmVjdEhhc2guaCAqLywKLQkJCQkyRDQ2RjA0RjE3Qjk2RkQyMDA1NjQ3RjAg
LyogSW50U2l6ZS5jcHAgKi8sCiAJCQkJQjI3NTM1NDcwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNp
emUuaCAqLywKIAkJCQlCMjc1MzU0ODBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhhc2guaCAq
LywKIAkJCQk2NUNDNkJFRDE2MDE0RUMwMDAwRUQyN0QgLyogTGF0aW4xVGV4dEl0ZXJhdG9yLmgg
Ki8sCiAJCQkJMEY3MzZFQ0EyNkNDQjk3QTAwMEFEN0NBIC8qIExheWVyVHJlZUFzVGV4dE9wdGlv
bnMuaCAqLywKLQkJCQkwRjM2RTczNjFCRDE4MzdBMDAyREI4OTEgLyogTGF5b3V0UG9pbnQuY3Bw
ICovLAogCQkJCTE0MURDMDRCMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRQb2ludC5oICovLAot
CQkJCTE0MURDMDRDMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKIAkJCQkx
NDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oICovLAotCQkJCTBGMzZFNzM4
MUJEMTg0QjkwMDJEQjg5MSAvKiBMYXlvdXRTaXplLmNwcCAqLywKIAkJCQkxNDFEQzA0RTE2NDgz
NEI5MDAzNzFFNUEgLyogTGF5b3V0U2l6ZS5oICovLAogCQkJCUNEREUwMkU5MThCM0RGQzcwMENG
N0ZGMSAvKiBMZWdhY3lDRE1TZXNzaW9uLmggKi8sCiAJCQkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0
Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCAqLywKIAkJCQkwNzkyMTY1MzFBQTU2MEFBMDBB
M0MwNDkgLyogTWVkaWFQbGF5YmFja1RhcmdldENsaWVudC5oICovLAotCQkJCTA3OEU0M0Q3MUFC
QjZDN0UwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmNwcCAqLywKIAkJCQkw
NzhFNDNEODFBQkI2QzdFMDAxQzJGQTYgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oICov
LAotCQkJCUU0QjQxRTBDMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXllci5jcHAgKi8sCiAJ
CQkJRTRCNDFFMEQwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlhUGxheWVyLmggKi8sCiAJCQkJQ0Q1
MjA5RTMxQjBCRDgzODAwNzcxODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5
MjYxNzI1MjY0RDQ0MDAwMDc4OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCkBAIC0y
ODg3MywzMSArMjg5MDcsMjAgQEAKIAkJCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVk
aWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcw
NCAvKiBNZWRpYVVzYWdlSW5mby5oICovLAotCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhFQSAv
KiBNSU1FVHlwZUNhY2hlLmNwcCAqLywKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyog
TUlNRVR5cGVDYWNoZS5oICovLAotCQkJCTJEQzhEMzk2MjVGMkZFOTMwMENGQ0JBQiAvKiBNb2Rl
bC5jcHAgKi8sCiAJCQkJMkRDOEQzOTcyNUYyRkU5NDAwQ0ZDQkFCIC8qIE1vZGVsLmggKi8sCi0J
CQkJMzE0QkUzQTQxQjMxMDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5j
cHAgKi8sCiAJCQkJMzE0QkUzQTUxQjMxMDNGQjAwMTQxOTgyIC8qIE5hbWVkSW1hZ2VHZW5lcmF0
ZWRJbWFnZS5oICovLAotCQkJCTcyNTIzOTZCMjU0Q0FEQzIwMEY1RkIxNSAvKiBOYXRpdmVJbWFn
ZS5jcHAgKi8sCiAJCQkJNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmgg
Ki8sCiAJCQkJMkRBMzk3RTMyNjVDNzM3NDAwNDY4RjMzIC8qIE51bGxHcmFwaGljc0NvbnRleHQu
aCAqLywKLQkJCQlCMjc1MzU1MjBCMDUzODE0MDAyQ0U2NEYgLyogUGF0aC5jcHAgKi8sCiAJCQkJ
QjI3NTM1NTMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGguaCAqLywKLQkJCQlBODhERDQ4ODBCNDYy
OUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCAqLywKIAkJCQlBODhERDQ4NjBC
NDYyOUEzMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmggKi8sCi0JCQkJMkQ1MDAyRjkx
QjU2RDc5OTAwMjBBQUY3IC8qIFBhdGhVdGlsaXRpZXMuY3BwICovLAogCQkJCTJENTAwMkZBMUI1
NkQ3OTkwMDIwQUFGNyAvKiBQYXRoVXRpbGl0aWVzLmggKi8sCi0JCQkJQThGQTZFNUMwRTRDRkRF
RDAwRDVDRjQ5IC8qIFBhdHRlcm4uY3BwICovLAogCQkJCUE4RkE2RTVCMEU0Q0ZERUQwMEQ1Q0Y0
OSAvKiBQYXR0ZXJuLmggKi8sCi0JCQkJQkM0ODM5QkIyNjQ2MTgxQTAwQTI4QjYyIC8qIFBpeGVs
QnVmZmVyLmNwcCAqLywKIAkJCQlCQzQ4MzlCQTI2NDYxODFBMDBBMjhCNjIgLyogUGl4ZWxCdWZm
ZXIuaCAqLywKLQkJCQlCQzBDQTc0RDI2NEFFRDBBMDA0RkRDNjIgLyogUGl4ZWxCdWZmZXJDb252
ZXJzaW9uLmNwcCAqLywKIAkJCQlCQzBDQTc0QzI2NEFFRDBBMDA0RkRDNjIgLyogUGl4ZWxCdWZm
ZXJDb252ZXJzaW9uLmggKi8sCi0JCQkJQkM2MzVFOEYyNjRDMkVDRTAwMEVGMzNBIC8qIFBpeGVs
QnVmZmVyRm9ybWF0LmNwcCAqLywKIAkJCQlCQzYzNUU4QjI2NEMyQ0FFMDAwRUYzM0EgLyogUGl4
ZWxCdWZmZXJGb3JtYXQuaCAqLywKLQkJCQlCQzYzNUU5MDI2NEM0NjlGMDAwRUYzM0EgLyogUGl4
ZWxGb3JtYXQuY3BwICovLAogCQkJCUJDQTU1OTEyMjYzREJENzkwMDdGMTlCMyAvKiBQaXhlbEZv
cm1hdC5oICovLAorCQkJCUNERDA4QUJGMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQkMzRTYyNDIyNjU5NzkxNzAwNTQ4QUNEIC8q
IFBsYXRmb3JtQ29sb3JTcGFjZS5oICovLAogCQkJCTcyNkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAv
KiBQbGF0Zm9ybUltYWdlLmggKi8sCiAJCQkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBs
YXRmb3JtSW1hZ2VCdWZmZXIuaCAqLywKQEAgLTI4OTA1LDU1ICsyODkyOCw0MiBAQAogCQkJCTA1
NjJGOTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNE
N0IxOURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAog
CQkJCTA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICovLAot
CQkJCTA3NEU4MkI4MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuY3BwICov
LAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAq
LywKKwkJCQlDREQwOEFCQzI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3Vy
YXRpb24uaCAqLywKIAkJCQlDRDFGOUFGQjI2RkQzOEM5MDA2MTdFQjYgLyogUGxhdGZvcm1WaWRl
b0NvbG9yUHJpbWFyaWVzLmggKi8sCiAJCQkJQ0QxRjlBRkEyNkZEMzg1OTAwNjE3RUI2IC8qIFBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlLmggKi8sCiAJCQkJQ0QxRjlBRkQyNkZEMzhDQjAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaCAqLywKKwkJCQlDREQwOEFDMTI3
N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovLAog
CQkJCUNEMUY5QUZDMjZGRDM4Q0EwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvVHJhbnNmZXJDaGFy
YWN0ZXJpc3RpY3MuaCAqLywKLQkJCQlCQ0FCNDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9u
LmNwcCAqLywKIAkJCQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCi0J
CQkJN0JFNzI2NUIyNTc2M0I4RDAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmNwcCAqLywKIAkJCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLywKLQkJCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0ExNTUzMjE3N0EzOUEwMEVB
MDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcyOTlCQzY2MjNENjg2QzYwMEND
Njg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4
IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovLAotCQkJCUE3M0Y5NUZDMTJDOTdC
RkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8sCiAJCQkJQTczRjk1RkQxMkM5N0JGRTAw
MzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8sCi0JCQkJMEYzREQ0NEQxMkY1RUExQjAwMEQ5MTkw
IC8qIFNoYWRvd0JsdXIuY3BwICovLAogCQkJCTBGM0RENDRFMTJGNUVBMUIwMDBEOTE5MCAvKiBT
aGFkb3dCbHVyLmggKi8sCiAJCQkJMUM0REIwMjQyNzMzOUU1RTAwN0IwQUQxIC8qIFNob3VsZExv
Y2FsaXplQXhpc05hbWVzLmggKi8sCi0JCQkJMUREMTI3QUMyNTZFM0E4NzAwQjIyN0Q3IC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwICovLAogCQkJCUNENjQxRUIyMTgxOEY1RUQwMEVFNEM0MSAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlLmggKi8sCiAJCQkJQ0RDOEI1QUMxODA0QUU1RDAwMTZFNjg1
IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAqLywKIAkJCQk3QzgzREU4NTFEMDRDQkQ0
MDBGRUJDRjMgLyogU3ByaW5nU29sdmVyLmggKi8sCi0JCQkJQjIzNTQwRjAwRDAwNzgyRTAwMjM4
MkZBIC8qIFN0cmluZ1RydW5jYXRvci5jcHAgKi8sCiAJCQkJQjIzNTQwRjEwRDAwNzgyRTAwMjM4
MkZBIC8qIFN0cmluZ1RydW5jYXRvci5oICovLAogCQkJCTA4NzU1OEM0MTNCNEE1N0QwMEY0OTMw
NyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCAqLywKIAkJCQkzQkI2QjgwRjIy
QTdEMzExMDAzQTJBNjkgLyogVGFiU2l6ZS5oICovLAotCQkJCTM3NkRDQ0UwMTNCNEY5NjYwMDJF
QkVGQyAvKiBUZXh0UnVuLmNwcCAqLywKIAkJCQlBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyog
VGV4dFJ1bi5oICovLAotCQkJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5jcHAgKi8sCiAJCQkJQ0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi8sCiAJCQkJMUFGODlBNDExNTE4RkRFQTAwRTU0N0I1
IC8qIFRpbGVkQmFja2luZy5oICovLAotCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBU
cmFja1ByaXZhdGVCYXNlLmNwcCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyog
VHJhY2tQcml2YXRlQmFzZS5oICovLAogCQkJCUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBU
cmFja1ByaXZhdGVCYXNlQ2xpZW50LmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVD
IC8qIFVuaXRCZXppZXIuaCAqLywKLQkJCQkwRjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVs
b2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2Np
dHlEYXRhLmggKi8sCiAJCQkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyLmggKi8sCiAJCQkJMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJh
Y2tRdWFsaXR5TWV0cmljcy5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBW
aWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovLAotCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RB
NCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAv
KiBWUDlVdGlsaXRpZXMuaCAqLywKIAkJCQkxNDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lk
dGhDYWNoZS5oICovLAotCQkJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJh
dG9yLmNwcCAqLywKIAkJCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRv
ci5oICovLAogCQkJCTUwMUJBQUE4MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oICovLAot
CQkJCTM3OTkxOTk0MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgKi8sCiAJ
CQkJMzc5OTE5OTUxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGdyYXBoaWNzOwpAQCAtMzMyNTUsNiArMzMyNjUsNyBAQAogCQkJCTcxMUFE
MTI2MjM2RDg2RTUwMDZGRjM3QyAvKiBBbmltYXRpb25FdmVudEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcyQTczQkVGMjQ1QTNGOTAwMDFDOUQwMyAvKiBBbmltYXRpb25GcmFtZVJhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5RTkxMkFEMEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25M
aXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREQwOEFDMjI3N0U1NTRFMDBFQTM3NTUgLyogUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE0QzdD
NjYxRkRBRDJBMTAwRjJCRUUxIC8qIEFuaW1hdGlvblBsYXliYWNrRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTcxNEM3QzY3MUZEQUQyQTkwMEYyQkVFMSAvKiBBbmltYXRpb25QbGF5YmFja0V2
ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEwMjVFQ0QxRjk5RjBDRTAwNEEyNTBDIC8q
IEFuaW1hdGlvblRpbWVsaW5lLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NTM3LDYgKzM0NTQ4LDcg
QEAKIAkJCQlFMTEyRjQ3MjFFM0E4NjE2MDBENkNERkQgLyogR3JpZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0QzRTI1MUMxODA0NkIwNjAwRTI3RjU2IC8qIEdyaWRBcmVhLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREVGNEZENzE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0REMDhBQkQyNzdFNTQyNjAwRUEzNzU1IC8qIFBsYXRmb3JtVHJhY2tDb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTI3MDVDMzE2NTZCRDY1MDBDMkUyN0Mg
LyogR3JpZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY3NDgzRjE4RkVCQ0VDMDAw
NkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTJB
MTA1MDE2NjQ0NEZEMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNDk0NSw2ICszNDk1Nyw3IEBACiAJCQkJQ0Q1RkY0OUEyMTYyRTRBNjAwNEJEODZGIC8qIElT
T1NjaGVtZUluZm9ybWF0aW9uQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDVGRjQ5QjIxNjJF
NEI3MDA0QkQ4NkYgLyogSVNPU2NoZW1lVHlwZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q1
RkY0OTcyMTYyRTJCNzAwNEJEODZGIC8qIElTT1RyYWNrRW5jcnlwdGlvbkJveC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0REMDhBQzAyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RDEyRjVDMjNERTU0M0YwMDgw
OTk3RCAvKiBJU09WVFRDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMjQ3RTM4MUZFQTVGODYw
MDhDMDhDRSAvKiBJdGVyYXRpb25Db21wb3NpdGVPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDMzBEOTg0MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCBh
MjcxMDY3NWU4YTc0MDk0NGU2OWY5YWVmNzFlOTc4OTMxZWE4NWNmLi42OTk0YjExMzFlMjM0OGU0
ZWU5ZDI1YzA5YWNkNGRmNjU4N2MxMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVk
aW9UcmFjay5jcHAKQEAgLTE3MSw2ICsxNzEsMTEgQEAgdm9pZCBBdWRpb1RyYWNrOjplbmFibGVk
Q2hhbmdlZChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFjazo6Y29u
ZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYg
Y29uZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKGNvbmZpZ3Vy
YXRpb24pOworfQorCiB2b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5n
JiBpZCkKIHsKICAgICBzZXRJZChpZCk7CkBAIC0yMzEsMTAgKzIzNiw3IEBAIHZvaWQgQXVkaW9U
cmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKIAogdm9pZCBBdWRpb1RyYWNrOjp1cGRhdGVD
b25maWd1cmF0aW9uRnJvbVByaXZhdGUoKQogewotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Q29k
ZWMobV9wcml2YXRlLT5jb2RlYygpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFNhbXBsZVJh
dGUobV9wcml2YXRlLT5zYW1wbGVSYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0TnVt
YmVyT2ZDaGFubmVscyhtX3ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAgbV9jb25m
aWd1cmF0aW9uLT5zZXRCaXRyYXRlKG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAgICBtX2NvbmZp
Z3VyYXRpb24tPnNldFN0YXRlKG1fcHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsKIH0KIAogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
aAppbmRleCA0ZjAwNzA4MTcyZThkNWY4Mjc4YzAzYTU0OGNkZTViNmE2Y2FjYWM1Li40ZTE4NmMx
NjYyMDdiMDdhNzhkMGU3NmVjNGQzZGQwOTA5OTYxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFs
OworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAog
ICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaAppbmRleCA2
ZDcwYmNiOGQwZGExYmJmMjkyYTM1NThjYTBkOTAxYmVlZTExOGQ2Li5lODQ3NGJiNmNhOTlkNWVi
NTM1ZjA1MzFiZmYyNTBhMmMyOTlkNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0yNywxNiArMjcsMTIgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1zdHJ1Y3QgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IHsKLSAgICBTdHJp
bmcgY29kZWM7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1aW50MzJfdCBu
dW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19Owor
dXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29u
ZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNDQsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCYmIGlu
aXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oV1RGTW92
ZShpbml0KSkpOyB9CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsg
fQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQm
IHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQorCiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZS5jb2RlYzsgfQogICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5nIGNvZGVj
KSB7IG1fc3RhdGUuY29kZWMgPSBjb2RlYzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmNwcAppbmRleCA3OTU3NzMzMzc5NWNkOTAzMTNmNGEzZTI3NzhhYTBhZmZkNzNk
ZGMxLi43M2U5ZDBmMTdhZjU2NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5NGY0NGE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTE2NCw2ICsxNjQsMTEgQEAgdm9p
ZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKICAgICB9KTsKIH0K
IAordm9pZCBWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJh
dGlvbi0+c2V0U3RhdGUoY29uZmlndXJhdGlvbik7Cit9CisKIHZvaWQgVmlkZW9UcmFjazo6aWRD
aGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmIGlkKQogewogICAgIHNldElkKGlkKTsKQEAgLTI2Miwx
MiArMjY3LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogCiB2
b2lkIFZpZGVvVHJhY2s6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpCiB7Ci0gICAg
bV9jb25maWd1cmF0aW9uLT5zZXRDb2RlYyhtX3ByaXZhdGUtPmNvZGVjKCkpOwotICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0V2lkdGgobV9wcml2YXRlLT53aWR0aCgpKTsKLSAgICBtX2NvbmZpZ3Vy
YXRpb24tPnNldEhlaWdodChtX3ByaXZhdGUtPmhlaWdodCgpKTsKLSAgICBtX2NvbmZpZ3VyYXRp
b24tPnNldENvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUobV9wcml2YXRlLT5jb2xv
clNwYWNlKCkpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEZyYW1lcmF0ZShtX3ByaXZhdGUt
PmZyYW1lcmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEJpdHJhdGUobV9wcml2YXRl
LT5iaXRyYXRlKCkpOworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUobV9wcml2YXRlLT5j
b25maWd1cmF0aW9uKCkpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IDdhOTc4YzczMjM2MGI3Nzc3NjQ3ZjQy
ZWRiZjIxMDY4NmQxNDBkMTguLmUxZTBlOWIwMjU4ZDUxMjc2Mjk3MDZkMGVjNDIyYTNjYmQwM2Y2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC04Myw3ICs4Myw3
IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQg
c2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5n
ZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpOyB9CisgICAgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uJikgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAgdm9pZCBp
ZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IGQyMGQyNDNjYTYx
MDZlZWNmMzRmOTFlNGQzNWIzY2JkYjdkOTdiMmYuLmM1OTYxZjQ5MWQ4MDBmY2QzNGUzNDA2OWM3
ZDc4ZDRlZjNiY2UyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTI3LDE5ICsyNywxMyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPKQogCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgIlZpZGVvQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBWaWRlb1RyYWNrQ29uZmlndXJh
dGlvbkluaXQgewotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aCB7IDAgfTsK
LSAgICB1aW50MzJfdCBoZWlnaHQgeyAwIH07Ci0gICAgUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4g
Y29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IGJp
dHJhdGUgeyAwIH07Ci19OwordXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDcsNiArNDEsMTIgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShWaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbkluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tD
b25maWd1cmF0aW9uKFdURk1vdmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24oKSk7IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25Jbml0JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fc3RhdGUgPSBzdGF0
ZTsKKyAgICAgICAgbV9jb2xvclNwYWNlLT5zZXRTdGF0ZShtX3N0YXRlLmNvbG9yU3BhY2UpOwor
ICAgIH0KKwogICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuY29kZWM7
IH0KICAgICB2b2lkIHNldENvZGVjKFN0cmluZyBjb2RlYykgeyBtX3N0YXRlLmNvZGVjID0gY29k
ZWM7IH0KIApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgaGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZS5oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhlaWdodCh1aW50
MzJfdCBoZWlnaHQpIHsgbV9zdGF0ZS5oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIFJlZlB0cjxW
aWRlb0NvbG9yU3BhY2U+IGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmNvbG9y
U3BhY2U7IH0KLSAgICB2b2lkIHNldENvbG9yU3BhY2UoUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4m
JiBjb2xvclNwYWNlKSB7IG1fc3RhdGUuY29sb3JTcGFjZSA9IFdURk1vdmUoY29sb3JTcGFjZSk7
IH0KKyAgICBSZWY8VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4g
bV9jb2xvclNwYWNlOyB9CisgICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZjxWaWRlb0NvbG9yU3Bh
Y2U+JiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2UpOyB9
CiAKICAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5mcmFtZXJh
dGU7IH0KICAgICB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fc3RhdGUu
ZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9CkBAIC02OCwxMSArNjgsMTYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkluaXQmJiBpbml0KQogICAgICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICAgICAgLCBtX2NvbG9y
U3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoaW5pdC5jb2xvclNwYWNlKSkKKyAgICB7Cisg
ICAgfQorICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBtX2NvbG9yU3Bh
Y2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoKSkKICAgICB7CiAgICAgfQotICAgIFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25Jbml0IG1fc3RhdGU7CisgICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gbV9jb2xvclNwYWNlOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlLmgKaW5kZXggMzJlYzU4ZGU0MmZmZTlkY2JmNDM4YmM3YzZkN2E2YzI3OTBl
MjExNS4uZjljMDAzMjQ3NDU2ZTM4ODA5ZmRmMTg3YjA3NzI3MTkyMTUwM2NmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQ
cml2YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KIApAQCAtNjQsMTggKzY1LDE2IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEVuYWJsZWRD
aGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEF1ZGlvVHJhY2tQcml2YXRlJiwgYm9vbCBl
bmFibGVkKT47CiAgICAgdm9pZCBzZXRFbmFibGVkQ2hhbmdlZENhbGxiYWNrKEVuYWJsZWRDaGFu
Z2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKTsgfQotICAgIAotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJu
IG1fY29kZWM7IH0KLSAgICB2b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1fY29kZWMg
PSBXVEZNb3ZlKGNvZGVjKTsgfQotICAgIAotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBjb25z
dCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVJhdGUodWludDMy
X3Qgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9Ci0gICAgCi0gICAg
dWludDMyX3QgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZDaGFu
bmVsczsgfQotICAgIHZvaWQgc2V0TnVtYmVyT2ZDaGFubmVscyh1aW50MzJfdCBudW1iZXJPZkNo
YW5uZWxzKSB7IG1fbnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7IH0KLSAgICAK
LSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9Ci0gICAg
dm9pZCBzZXRCaXRyYXRlKHVpbnQ2NF90IGJpdHJhdGUpIHsgbV9iaXRyYXRlID0gYml0cmF0ZTsg
fQorCisgICAgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0Q29u
ZmlndXJhdGlvbihQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlv
bikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlvbikK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShj
b25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGll
bnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQogCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkF1ZGlvVHJhY2tQcml2YXRlIjsgfQpAQCAtODcsMTAgKzg2
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQcml2YXRl
Q2xpZW50PiBtX2NsaWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgU3Ry
aW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9OwotICAgIHVpbnQz
Ml90IG1fbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAw
IH07CisgICAgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247
CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCAwYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2NjNlMDc1
YTk0NGU4MzZkY2Q4Li42MWVlODY0NDE3ODQyOTg5NTI1YjVmNGU4NzY0NzAwZGNkYjI5NGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMyLDEwICszMiwxMiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKK3N0cnVjdCBQbGF0Zm9ybUF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1Ymxp
YyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlZENoYW5nZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0aW9uQ2hh
bmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVmlkZW9Db2xvclNwYWNlLmgKaW5kZXggMjg4NzQzZGU1ZjcxMzJlNjBhMGMwY2NjNDcxOWVk
MTI1YWEwZjdhMS4uNTBlNGFiOTI3NjQ1MDBhNWFjYTNmMWU3NGE5Yjg4OGZhMWI1NGM4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oCkBAIC00Myw2ICs0MywxOSBAQCBzdHJ1Y3QgUGxhdGZvcm1WaWRl
b0NvbG9yU3BhY2UgewogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFj
ZSYpOwogfTsKIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZSYgYSwgY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGIpCit7CisgICAgcmV0
dXJuIGEucHJpbWFyaWVzID09IGIucHJpbWFyaWVzCisgICAgICAgICYmIGEudHJhbnNmZXIgPT0g
Yi50cmFuc2ZlcgorICAgICAgICAmJiBhLm1hdHJpeCA9PSBiLm1hdHJpeAorICAgICAgICAmJiBh
LmZ1bGxSYW5nZSA9PSBiLmZ1bGxSYW5nZTsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYgYSwgY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9y
U3BhY2UmIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwogdGVtcGxhdGUgPGNsYXNz
IEVuY29kZXI+CiB2b2lkIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDUyYzlmZTIyMGYzMGEzZjMxOTU3MjkzMmQz
NmFjNmQ5OTMxMGIzNTYuLjYyM2Y5NDFhNjdlODZhNTEwMjMwMTIwZjdhYjAwODliMWMzZTI3NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5j
bHVkZSAiUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CkBAIC02MiwzNiArNjIsMjMgQEAgcHVibGljOgogICAgIHVzaW5nIFNlbGVjdGVkQ2hhbmdl
ZENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChWaWRlb1RyYWNrUHJpdmF0ZSYsIGJvb2wgc2VsZWN0
ZWQpPjsKICAgICB2b2lkIHNldFNlbGVjdGVkQ2hhbmdlZENhbGxiYWNrKFNlbGVjdGVkQ2hhbmdl
ZENhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0
dXJuIG1fY29kZWM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29kZWMoU3RyaW5nJiYgY29kZWMp
IHsgbV9jb2RlYyA9IFdURk1vdmUoY29kZWMpOyB9Ci0gICAgCi0gICAgdmlydHVhbCB1aW50MzJf
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0
V2lkdGgodWludDMyX3Qgd2lkdGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9Ci0gICAgCi0gICAgdmly
dHVhbCB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXRIZWlnaHQodWludDMyX3QgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVpZ2h0
OyB9Ci0gICAgCi0gICAgdmlydHVhbCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xvclNwYWNl
KCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENv
bG9yU3BhY2UoUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmJiBjb2xvclNwYWNlKSB7IG1fY29sb3JT
cGFjZSA9IFdURk1vdmUoY29sb3JTcGFjZSk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGRvdWJsZSBm
cmFtZXJhdGUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lcmF0ZTsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcmFtZXJhdGUoZG91YmxlIGZyYW1lcmF0ZSkgeyBtX2ZyYW1lcmF0ZSA9IGZyYW1lcmF0
ZTsgfQotICAgIAotICAgIHZpcnR1YWwgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0cmF0ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRCaXRyYXRlKHVpbnQ2NF90IGJpdHJh
dGUpIHsgbV9iaXRyYXRlID0gYml0cmF0ZTsgfQotICAgIAorICAgIGNvbnN0IFBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb247IH0KKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb24oUGxhdGZvcm1WaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoY29u
ZmlndXJhdGlvbiA9PSBtX2NvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247CisgICAgICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5jb25maWd1cmF0aW9uQ2hhbmdlZChtX2NvbmZpZ3Vy
YXRpb24pOworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIFZpZGVvVHJhY2tQcml2YXRlKCkgPSBk
ZWZhdWx0OwogCiBwcml2YXRlOgogICAgIFdlYWtQdHI8VmlkZW9UcmFja1ByaXZhdGVDbGllbnQ+
IG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9zZWxlY3RlZCB7IGZhbHNlIH07Ci0g
ICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV93aWR0aCB7IDAgfTsKLSAgICB1aW50
MzJfdCBtX2hlaWdodCB7IDAgfTsKLSAgICBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBtX2NvbG9y
U3BhY2U7Ci0gICAgZG91YmxlIG1fZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fYml0
cmF0ZSB7IDAgfTsKKyAgICBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIG1fY29uZmln
dXJhdGlvbjsKIAogICAgIFNlbGVjdGVkQ2hhbmdlZENhbGxiYWNrIG1fc2VsZWN0ZWRDaGFuZ2Vk
Q2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKaW5kZXggZDUxYjM3MjEyM2FlNDA0MGJk
MGU2NTc4YjRhMDg5NzU5OTQxZWUwZC4uNjViN2JmNjY3NzE4N2Q5ZDJjMTAxMzg1ZmUzNzNjNTk0
NzFlYTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
bjsKKwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRl
QmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChi
b29sKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3MmQ1
MTZhNTYzYjg0NjU0ODA2ZjkyLi5mNDI1Y2UyM2JlZmQyMzQ4Nzc4NDY3MmEwYWIyZTU4YTk0YjUw
MGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5t
bQpAQCAtMjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBBVkFzc2V0VHJhY2sqIGFzc2V0VHJhY2tGb3Io
Y29uc3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHN0YXRpYyBDTUZvcm1hdERl
c2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uRm9yKGNvbnN0IEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwmIGltcGwpCiB7CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0Zvcihp
bXBsKTsKLSAgICBpZiAoIWFzc2V0VHJhY2sgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRp
b25zLmNvdW50KQorICAgIGlmICghYXNzZXRUcmFjayB8fCBbYXNzZXRUcmFjayBzdGF0dXNPZlZh
bHVlRm9yS2V5OkAiZm9ybWF0RGVzY3JpcHRpb25zIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVT
dGF0dXNMb2FkZWQgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50KQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4oYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnNbMF0pOwogfQpAQCAtMjkx
LDEwICsyOTEsMTIgQEAgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbDo6Y29sb3JTcGFjZSgpIGNvbnN0CiAKIGRvdWJsZSBBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsOjpmcmFtZXJhdGUoKSBjb25zdAogewotICAgIGlmIChhdXRvIGFzc2V0VHJhY2sgPSBh
c3NldFRyYWNrRm9yKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGFzc2V0VHJhY2subm9taW5hbEZy
YW1lUmF0ZTsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBh
dXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKKyAgICBpZiAoIWFzc2V0VHJh
Y2spCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVl
Rm9yS2V5OkAibm9taW5hbEZyYW1lUmF0ZSIgZXJyb3I6bmlsXSAhPSBBVktleVZhbHVlU3RhdHVz
TG9hZGVkKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXNzZXRUcmFjay5ub21pbmFs
RnJhbWVSYXRlOwogfQogCiB1aW50MzJfdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpzYW1w
bGVSYXRlKCkgY29uc3QKQEAgLTMyOCw2ICszMzAsOCBAQCB1aW50NjRfdCBBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkgY29uc3QKICAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3Nl
dFRyYWNrRm9yKCp0aGlzKTsKICAgICBpZiAoIWFzc2V0VHJhY2spCiAgICAgICAgIHJldHVybiAw
OworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiZXN0aW1hdGVkRGF0
YVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0
dXJuIDA7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFzc2V0VHJhY2suZXN0aW1hdGVkRGF0YVJh
dGUpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gYXNzZXRUcmFjay5lc3RpbWF0ZWRE
YXRhUmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVB
VkZPYmpDLmgKaW5kZXggODkwMDUxMDFlZTZkNDc3Nzg5MDYxZDcyNzdhZmM1YTRhNjg2YThkMC4u
YTI3N2Y2ZjZhMWZkYzczMzZhMWJjYWIzODQ1OGZiNzQwZTNmN2UxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFW
Ri5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFj
azsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOwpAQCAtNzUsOSArNzYsMTQgQEAgcHJpdmF0ZToK
ICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqKTsKICAgICBB
dWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAgQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOworICAgIEF1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOworICAgIHZvaWQg
YXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAgIHVzaW5nIEF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+OworICAgIEF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVB
VkZPYmpDLm1tCmluZGV4IDFjYjk1ODlkODVlOTAwOTEwMTJiZTlhNzA0OTU5YWYxMWRhMTgzM2Iu
LjhlNWVmZWViYmU2NDlhMjRlODJjMTE0NDA2ZjU2MjgxZjdkYTA0NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0KQEAgLTMzLDE3
ICszMywyOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayogdHJhY2spCi0g
ICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykp
CisgICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPih0cmFjaykpCit7Cit9CisKK0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2spCisgICAgOiBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Pih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKIEF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0
aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKKyAgICA6IEF1ZGlvVHJhY2tQcml2YXRlQVZG
T2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCit7Cit9
CisKK0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0
ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmIGltcGwpCisgICAgOiBt
X2ltcGwoV1RGTW92ZShpbXBsKSkKKyAgICAsIG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNl
cnZlcihbdGhpc10geyBhdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsgfSkKIHsKKyAg
ICBtX2ltcGwtPnNldEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIobV9hdWRpb1RyYWNr
Q29uZmlndXJhdGlvbk9ic2VydmVyKTsKICAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsK
IH0KIAorCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJv
bVRyYWNrKCkKIHsKICAgICAvLyBEb24ndCBjYWxsIHRoaXMtPnNldEVuYWJsZWQoKSBiZWNhdXNl
IGl0IGFsc28gc2V0cyB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUKQEAgLTU1LDExICs2NywxMiBA
QCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNr
KCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1wbC0+bGFiZWwo
KSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBzZXRDb2RlYyht
X2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFNhbXBsZVJhdGUobV9pbXBsLT5zYW1wbGVSYXRlKCkp
OwotICAgIHNldE51bWJlck9mQ2hhbm5lbHMobV9pbXBsLT5udW1iZXJPZkNoYW5uZWxzKCkpOwot
ICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOworICAgIHNldENvbmZpZ3VyYXRpb24o
bV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKK30KIAordm9pZCBBdWRpb1RyYWNr
UHJpdmF0ZUFWRk9iakM6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpCit7CisgICAg
c2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkpOwogfQog
CiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0UGxheWVySXRlbVRyYWNrKEFWUGxh
eWVySXRlbVRyYWNrICp0cmFjaykKQEAgLTczLDEyICs4Niw2IEBAIEFWUGxheWVySXRlbVRyYWNr
KiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnBsYXllckl0ZW1UcmFjaygpCiAgICAgcmV0dXJu
IG1faW1wbC0+cGxheWVySXRlbVRyYWNrKCk7CiB9CiAKLUF1ZGlvVHJhY2tQcml2YXRlQVZGT2Jq
Qzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2spCi0gICAgOiBt
X2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCi17Ci0g
ICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDOjpzZXRBc3NldFRyYWNrKEFWQXNzZXRUcmFjayAqdHJhY2spCiB7CiAgICAgbV9p
bXBsID0gbWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjayk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcApp
bmRleCA5ZDlkNjRhYTI2YWY3MjNiNDZiYTg3MjQ4YTM5MWQyOWU4Y2E4YjFjLi5lYWYzZjExOGIy
NWE0Mzg4OTkyMmY1NmM2YmRlY2ZkOWM1OGNmOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKQEAgLTMwLDI0ICszMCwzMCBA
QAogCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCiAjaW1wb3J0ICJNZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorI2ltcG9ydCAiUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFj
aykKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRy
YWNrKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKIHsKLSAgICByZXNldFByb3BlcnRpZXNGcm9tVHJh
Y2soKTsKIH0KIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKIHsKLSAg
ICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpD
JiBvcHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsPihvcHRpb24pKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30KKworVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1faW1wbChXVEZNb3ZlKGlt
cGwpKQorICAgICwgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFt0aGlzXSB7IHZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAgIG1faW1wbC0+c2V0Vmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2Jz
ZXJ2ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCkBAIC02MiwxNSAr
NjgsMTIgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zy
b21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRMYWJlbChtX2ltcGwt
PmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAgc2V0
Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRXaWR0aChtX2ltcGwtPndpZHRoKCkpOwot
ICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdodCgpKTsKLSAgICBzZXRDb2xvclNwYWNlKG1faW1w
bC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRGcmFtZXJhdGUobV9pbXBsLT5mcmFtZXJhdGUoKSk7
Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7Ci0KLSAgICBpZiAoYXV0byogY2xp
ZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+Y29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKKyAgICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24oKSk7Cit9CisKK3ZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjp2aWRlb1RyYWNrQ29u
ZmlndXJhdGlvbkNoYW5nZWQoKQoreworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT52aWRl
b1RyYWNrQ29uZmlndXJhdGlvbigpKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akM6OnNldFBsYXllckl0ZW1UcmFjayhBVlBsYXllckl0ZW1UcmFjayAqdHJhY2spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oCmluZGV4IGY0
NWFmZTRmNjlhZDEzODJiYjBmMThmY2M0MmZmNWJhOTY5ZDkxYjMuLmZmMGNkZmIzNmU1MTkyMjI5
YjhlNjU1MWUzZjFkZTgzNmRjNzE2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KFZJREVPKQogCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVBVkYuaCIKKyNpbmNsdWRlIDx3
dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFW
UGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgVmlk
ZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKik7CiAgICAgZXhwbGljaXQg
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAgIGV4cGxpY2l0IFZp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmKTsKKyAg
ICBleHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVfcHRyPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYpOwogCiAgICAgdm9pZCByZXNldFByb3BlcnRpZXNGcm9t
VHJhY2soKTsKKyAgICB2b2lkIHZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2ltcGw7CisKKyAg
ICB1c2luZyBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgp
PjsKKyAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyIG1fdmlkZW9UcmFja0NvbmZp
Z3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
Njg2MThjNzI3YTJlNzUzODEyZWI3ZGI1ODNiYTBiZWU3ZjAyZTk4MS4uNzZhMGFiYzhlOTlhN2Vi
ZjY2ZjE5NzM1NDhlZTY1NjBmNjY0ZTY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAg
LTUwLDEyICs1MCw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAg
ICBzZXRMYWJlbChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFu
Z3VhZ2UoKSk7Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRXaWR0aCht
X2ltcGwtPndpZHRoKCkpOwotICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdodCgpKTsKLSAgICBz
ZXRDb2xvclNwYWNlKG1faW1wbC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRGcmFtZXJhdGUobV9p
bXBsLT5mcmFtZXJhdGUoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7Cisg
ICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkpOwog
fQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRBc3NldFRy
YWNrKEFWQXNzZXRUcmFjayAqdHJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcApp
bmRleCAxMWNhYzgwMDIzMWUwOGM1M2ViNmUzOGQ4NGY2YjMzNzNjOTFiY2ZiLi41NzdiMTEwMDBi
ZTEzNTdmMjM1YTkxN2FmNDc1NWFiYTdkZGFkOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5jcHAKQEAgLTQwLDYgKzQwLDggQEAgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpWaWRlb1Ry
YWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmIHRyYWNrRW50cnkpCiB7CiAgICAgaWYg
KG1fdHJhY2suaXNfZW5hYmxlZC5pc19wcmVzZW50KCkpCiAgICAgICAgIHNldFNlbGVjdGVkKG1f
dHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpKTsKKworICAgIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsK
IH0KIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkKCkgY29uc3QKQEAgLTE0
NSw2ICsxNDcsMTcgQEAgZG91YmxlIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6ZnJhbWVyYXRlKCkg
Y29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OnVw
ZGF0ZUNvbmZpZ3VyYXRpb24oKQoreworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbiB7CisgICAgICAgIHsgLmNvZGVjID0gY29kZWMoKSB9LAorICAgICAg
ICAud2lkdGggPSB3aWR0aCgpLAorICAgICAgICAuaGVpZ2h0ID0gaGVpZ2h0KCksCisgICAgICAg
IC5mcmFtZXJhdGUgPSBmcmFtZXJhdGUoKSwKKyAgICB9OworICAgIHNldENvbmZpZ3VyYXRpb24o
V1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDk5ZmQwN2ZlMmQ3MWQ5
MmRjMmUxYzkzZTk3NjFjZWUxYzY2YTRiNDAuLjdiZDE5ZTliZDczNjAxMTgwOGMwZjBlNDM0YzQ0
OGYyZDRhMDIyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00MywxMyArNDMs
MTYgQEAgcHVibGljOgogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWw7CiAgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGRlZmF1bHRFbmFibGVkKCkgY29uc3QgZmluYWw7Ci0gICAgU3RyaW5nIGNv
ZGVjKCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdCBmaW5hbDsKLSAg
ICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBmaW5hbDsKLSAgICBkb3VibGUgZnJhbWVyYXRlKCkg
Y29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgVmlkZW9UcmFja1ByaXZhdGVXZWJNKHdlYm06
OlRyYWNrRW50cnkmJik7CisKKyAgICBTdHJpbmcgY29kZWMoKSBjb25zdDsKKyAgICB1aW50MzJf
dCB3aWR0aCgpIGNvbnN0OworICAgIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0OworICAgIGRvdWJs
ZSBmcmFtZXJhdGUoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKKwog
ICAgIHdlYm06OlRyYWNrRW50cnkgbV90cmFjazsKICAgICBtdXRhYmxlIEF0b21TdHJpbmcgbV90
cmFja0lEOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX2xhYmVsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApp
bmRleCA4NTM1MDAyYjFiMGY1MTU2OTE4NmIzOWM1NDE2YzI2NGQxZmE4YTUzLi44MTA0MDAyOGUx
NzE3ZTIyODJjYTRkNDBlNzU5YmU2NTczOWVmMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtMjks
MTEgKzI5LDExIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oIgotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24u
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU0LDI2ICs1NCwxOSBAQCBSZW1vdGVBdWRp
b1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKQogICAgIG1fdHJhY2tQcml2YXRl
LT5jbGVhckNsaWVudCgpOwogfQogCi1UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJl
bW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCitBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
IHsKICAgICByZXR1cm4gewotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKLSAgICAgICAg
bV90cmFja1ByaXZhdGUtPmxhYmVsKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFn
ZSgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKLSAgICAg
ICAgbV90cmFja1ByaXZhdGUtPnRyYWNrSW5kZXgoKSwKKyAgICAgICAgeworICAgICAgICAgICAg
bV90cmFja1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwo
KSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAgICAgICAg
bV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBtX3RyYWNr
UHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAogICAgICAgICBtX3RyYWNrUHJpdmF0
ZS0+ZW5hYmxlZCgpLAogICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpLAotICAgICAgICBm
YWxzZSwKLSAgICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUsCi0g
ICAgICAgIG1fdHJhY2tQcml2YXRlLT5jb2RlYygpLAotICAgICAgICAwLAotICAgICAgICAwLAot
ICAgICAgICB7IH0sCi0gICAgICAgIDAsCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5iaXRyYXRl
KCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zYW1wbGVSYXRlKCksCi0gICAgICAgIG1fdHJh
Y2tQcml2YXRlLT5udW1iZXJPZkNoYW5uZWxzKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5j
b25maWd1cmF0aW9uKCksCiAgICAgfTsKIH0KIApAQCAtOTgsNiArOTEsMTEgQEAgdm9pZCBSZW1v
dGVBdWRpb1RyYWNrUHJveHk6OmVuYWJsZWRDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKICAgICBjb25m
aWd1cmF0aW9uQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29u
ZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYg
Y29uZmlndXJhdGlvbikKK3sKKyAgICBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCiB2b2lk
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKQogewog
ICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKaW5kZXggZDJkZWM0NWE2ZGIz
ZmRmNzI2Yjc5OGJlYWFkZGQ1ZjI1OGQ5ZTNiZC4uMmY0NTg3MDgwMDllODAxN2FiODVkMzQzMzc4
MThiZTYwODRmZmNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBEZWNv
ZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb25lOwogCiBjbGFzcyBSZW1vdGVBdWRpb1Ry
YWNrUHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVB
dWRpb1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CkBAIC02OSw2ICs2
OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZv
aWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgZmlu
YWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQo
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpAQCAtNzYsNyArNzcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICB2b2lk
IHdpbGxSZW1vdmUoKSBmaW5hbDsKIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbigpOworICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOwog
CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCmluZGV4IDJlZGVlMTk4NzFjN2QzN2E0NTQ1ZTNlYzUw
NTZiNjE2MzMwMWEzZWQuLmIyMTRhZWExM2E4ZDVmN2I3NmY2NTJjN2RjNmU1YzQ2ODhkNTQ1MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1Ry
YWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVW
aWRlb1RyYWNrUHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgotI2luY2x1ZGUg
IlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTU0LDIzICs1NCwyMCBAQCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6On5SZW1vdGVWaWRlb1RyYWNr
UHJveHkoKQogICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCi1UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJh
dGlvbigpCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlVmlkZW9U
cmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKIHsKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24geyB9OwotICAgIGNvbmZpZ3VyYXRpb24udHJhY2tJZCA9
IG1fdHJhY2tQcml2YXRlLT5pZCgpOwotICAgIGNvbmZpZ3VyYXRpb24ubGFiZWwgPSBtX3RyYWNr
UHJpdmF0ZS0+bGFiZWwoKTsKLSAgICBjb25maWd1cmF0aW9uLmxhbmd1YWdlID0gbV90cmFja1By
aXZhdGUtPmxhbmd1YWdlKCk7Ci0gICAgY29uZmlndXJhdGlvbi50cmFja0luZGV4ID0gbV90cmFj
a1ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKLSAgICBjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlh
bmNlID0gbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCk7Ci0gICAgY29uZmlndXJh
dGlvbi5zZWxlY3RlZCA9IG1fdHJhY2tQcml2YXRlLT5zZWxlY3RlZCgpOwotICAgIGNvbmZpZ3Vy
YXRpb24udmlkZW9LaW5kID0gbV90cmFja1ByaXZhdGUtPmtpbmQoKTsKLSAgICBjb25maWd1cmF0
aW9uLmNvZGVjID0gbV90cmFja1ByaXZhdGUtPmNvZGVjKCk7Ci0gICAgY29uZmlndXJhdGlvbi53
aWR0aCA9IG1fdHJhY2tQcml2YXRlLT53aWR0aCgpOwotICAgIGNvbmZpZ3VyYXRpb24uaGVpZ2h0
ID0gbV90cmFja1ByaXZhdGUtPmhlaWdodCgpOwotICAgIGNvbmZpZ3VyYXRpb24uY29sb3JTcGFj
ZSA9IG1fdHJhY2tQcml2YXRlLT5jb2xvclNwYWNlKCk7Ci0gICAgY29uZmlndXJhdGlvbi5mcmFt
ZXJhdGUgPSBtX3RyYWNrUHJpdmF0ZS0+ZnJhbWVyYXRlKCk7Ci0gICAgY29uZmlndXJhdGlvbi5i
aXRyYXRlID0gbV90cmFja1ByaXZhdGUtPmJpdHJhdGUoKTsKLSAgICByZXR1cm4gY29uZmlndXJh
dGlvbjsKKyAgICByZXR1cm4geworICAgICAgICB7CisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0
ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYWJlbCgpLAorICAgICAgICAg
ICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0
ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT50cmFj
a0luZGV4KCksCisgICAgICAgIH0sCisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5zZWxlY3RlZCgp
LAorICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpLAorICAgICAgICBtX3RyYWNrUHJpdmF0
ZS0+Y29uZmlndXJhdGlvbigpLAorICAgIH07CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFja1By
b3h5Ojp1cGRhdGVDb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaAppbmRleCA5MzcyNzA3MDBkNDM0
YjExZjAwOGYzZWM5ZjI0ZTg1Yjk0MjQ4Yjg3Li44OTUwNzRjNmYwNjM1OGNlNWQ2YTFjYTI5OTEz
M2MwN2VjMGI4ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERlY29k
ZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlVmlkZW9UcmFj
a1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlVmlk
ZW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgpAQCAtNjksNyArNjks
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lk
IHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKLSAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKCkgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0KKyAgICB2b2lkIGNvbmZpZ3Vy
YXRpb25DaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24mKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsgfQogCiAgICAgLy8gVHJhY2tQcml2
YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAK
LSAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKyAg
ICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOwog
ICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOwogCiAgICAgV2Vha1B0cjxHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaAppbmRleCA5NDg0MzQxNjYyM2IzOTQxN2UzMjc0MjUyMTNlNWNmMGJi
M2ViMTFmLi5lNDhlMDc4OTgzMmZhNmNiOGIzYWFiMmYyNmE0ZGQ1ZmNlODZmOTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKQEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL01l
ZGlhVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQwLDIxICszOCw2IEBAIHN0cnVj
dCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKICAgICBNZWRpYVRpbWUgc3RhcnRU
aW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6Onplcm9UaW1lKCkgfTsKICAgICBpbnQgdHJhY2tJbmRl
eDsKIAotICAgIGJvb2wgZW5hYmxlZDsKLSAgICBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
S2luZCBhdWRpb0tpbmQgeyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9
OwotCi0gICAgYm9vbCBzZWxlY3RlZDsKLSAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6
S2luZCB2aWRlb0tpbmQgeyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9
OwotCi0gICAgU3RyaW5nIGNvZGVjOwotICAgIHVpbnQzMl90IHdpZHRoOwotICAgIHVpbnQzMl90
IGhlaWdodDsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xvclNwYWNl
OwotICAgIGRvdWJsZSBmcmFtZXJhdGU7Ci0gICAgdWludDY0X3QgYml0cmF0ZTsKLSAgICB1aW50
MzJfdCBzYW1wbGVSYXRlOwotICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHM7Ci0KICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgewpAQCAtNjMsMTI3ICs0NiwyMiBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiB7CiAgICAgICAgIGVuY29kZXIgPDwgbGFuZ3VhZ2U7CiAgICAgICAg
IGVuY29kZXIgPDwgc3RhcnRUaW1lVmFyaWFuY2U7CiAgICAgICAgIGVuY29kZXIgPDwgdHJhY2tJ
bmRleDsKLSAgICAgICAgZW5jb2RlciA8PCBlbmFibGVkOwotICAgICAgICBlbmNvZGVyIDw8IGF1
ZGlvS2luZDsKLSAgICAgICAgZW5jb2RlciA8PCBzZWxlY3RlZDsKLSAgICAgICAgZW5jb2RlciA8
PCB2aWRlb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgY29kZWM7Ci0gICAgICAgIGVuY29kZXIg
PDwgd2lkdGg7Ci0gICAgICAgIGVuY29kZXIgPDwgaGVpZ2h0OwotICAgICAgICBlbmNvZGVyIDw8
IGNvbG9yU3BhY2U7Ci0gICAgICAgIGVuY29kZXIgPDwgZnJhbWVyYXRlOwotICAgICAgICBlbmNv
ZGVyIDw8IGJpdHJhdGU7Ci0gICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKLSAgICAgICAg
ZW5jb2RlciA8PCBudW1iZXJPZkNoYW5uZWxzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiB0
cmFja0lkOwotICAgICAgICBkZWNvZGVyID4+IHRyYWNrSWQ7Ci0gICAgICAgIGlmICghdHJhY2tJ
ZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRp
b25hbDxBdG9tU3RyaW5nPiBsYWJlbDsKLSAgICAgICAgZGVjb2RlciA+PiBsYWJlbDsKLSAgICAg
ICAgaWYgKCFsYWJlbCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiBsYW5ndWFnZTsKLSAgICAgICAgZGVjb2RlciA+
PiBsYW5ndWFnZTsKLSAgICAgICAgaWYgKCFsYW5ndWFnZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxNZWRpYVRpbWU+IHN0YXJ0VGlt
ZVZhcmlhbmNlOwotICAgICAgICBkZWNvZGVyID4+IHN0YXJ0VGltZVZhcmlhbmNlOwotICAgICAg
ICBpZiAoIXN0YXJ0VGltZVZhcmlhbmNlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGludD4gdHJhY2tJbmRleDsKLSAgICAgICAgZGVj
b2RlciA+PiB0cmFja0luZGV4OwotICAgICAgICBpZiAoIXRyYWNrSW5kZXgpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZDsKLSAgICAgICAgZGVjb2RlciA+PiBlbmFibGVkOwotICAgICAgICBpZiAoIWVuYWJsZWQp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ+IGF1ZGlvS2luZDsKLSAgICAgICAg
ZGVjb2RlciA+PiBhdWRpb0tpbmQ7Ci0gICAgICAgIGlmICghYXVkaW9LaW5kKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNl
bGVjdGVkOwotICAgICAgICBkZWNvZGVyID4+IHNlbGVjdGVkOwotICAgICAgICBpZiAoIXNlbGVj
dGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kPiB2aWRlb0tpbmQ7Ci0gICAg
ICAgIGRlY29kZXIgPj4gdmlkZW9LaW5kOwotICAgICAgICBpZiAoIXZpZGVvS2luZCkKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGNvZGVjOwotICAgICAgICBkZWNvZGVyID4+IGNvZGVjOwotICAgICAgICBpZiAoIWNvZGVj
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQzMl90PiB3aWR0aDsKLSAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKLSAgICAgICAg
aWYgKCF3aWR0aCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gaGVpZ2h0OwotICAgICAgICBkZWNvZGVyID4+IGhlaWdo
dDsKLSAgICAgICAgaWYgKCFoZWlnaHQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3Bh
Y2U+IGNvbG9yU3BhY2U7Ci0gICAgICAgIGRlY29kZXIgPj4gY29sb3JTcGFjZTsKLSAgICAgICAg
aWYgKCFjb2xvclNwYWNlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZnJhbWVyYXRlOwotICAgICAgICBkZWNvZGVyID4+
IGZyYW1lcmF0ZTsKLSAgICAgICAgaWYgKCFmcmFtZXJhdGUpCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGJpdHJhdGU7
Ci0gICAgICAgIGRlY29kZXIgPj4gYml0cmF0ZTsKLSAgICAgICAgaWYgKCFiaXRyYXRlKQotICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IHNhbXBsZVJhdGU7Ci0gICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0
ZTsKLSAgICAgICAgaWYgKCFzYW1wbGVSYXRlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBudW1iZXJPZkNoYW5uZWxz
OwotICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mQ2hhbm5lbHM7Ci0gICAgICAgIGlmICghbnVt
YmVyT2ZDaGFubmVscykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgcmV0dXJuIHt7Ci0gICAgICAgICAgICBXVEZNb3ZlKCp0cmFja0lkKSwKLSAgICAgICAgICAg
IFdURk1vdmUoKmxhYmVsKSwKLSAgICAgICAgICAgIFdURk1vdmUoKmxhbmd1YWdlKSwKLSAgICAg
ICAgICAgIFdURk1vdmUoKnN0YXJ0VGltZVZhcmlhbmNlKSwKLSAgICAgICAgICAgICp0cmFja0lu
ZGV4LAotICAgICAgICAgICAgKmVuYWJsZWQsCi0gICAgICAgICAgICAqYXVkaW9LaW5kLAotICAg
ICAgICAgICAgKnNlbGVjdGVkLAotICAgICAgICAgICAgKnZpZGVvS2luZCwKLSAgICAgICAgICAg
IFdURk1vdmUoKmNvZGVjKSwKLSAgICAgICAgICAgICp3aWR0aCwKLSAgICAgICAgICAgICpoZWln
aHQsCi0gICAgICAgICAgICBXVEZNb3ZlKCpjb2xvclNwYWNlKSwKLSAgICAgICAgICAgICpmcmFt
ZXJhdGUsCi0gICAgICAgICAgICAqYml0cmF0ZSwKLSAgICAgICAgICAgICpzYW1wbGVSYXRlLAot
ICAgICAgICAgICAgKm51bWJlck9mQ2hhbm5lbHMsCi0gICAgICAgIH19OworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJZCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5sYWJl
bCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi5sYW5ndWFnZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5j
ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi50cmFja0luZGV4KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDNhN2NkNWU0N2U4ODUwYTY4ZGUy
Mzg5NmExZGFlMzhkODMxNGYzNi4uYWZhN2E1OTQ3MWU0ZGEzYjhjYTgwOWNhYTg3ODc1YTQxZjIy
OTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02MTg4LDYgKzYxODgsOCBAQAogCQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyog
SU9LaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CiAJCUNEQ0RDOTlCMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21l
bnRTdGF0ZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5kb3dtZW50U3RhdGVUcmFja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0RDOTlDMjQ4RkU4REEwMEE2OTUyMiAv
KiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbmRvd21l
bnRTdGF0ZVRyYWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUMz
Mjc3RUJDRTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUM0Mjc3RUQ3RTAwMEVBMzc1NSAv
KiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Np
b24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NjkwLDYg
KzY2OTIsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQwRUNFQTkyM0ZDODRCQjAwRDE3MkY2
IC8qIGNvY29hICovLAogCQkJCUNEQTk1OTQ0MjQxMkM0REEwMDkxMEVFRiAvKiBpb3MgKi8sCisJ
CQkJQ0REMDhBQzMyNzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbi5oICovLAogCQkJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0aWFs
aXphdGlvblNlZ21lbnRJbmZvLmggKi8sCiAJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIzRkYy
NUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKQEAgLTY3
NjUsNiArNjc2OCw3IEBACiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0IyM0NBNTMyNDAw
NjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzFC
QzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICov
LAorCQkJCUNERDA4QUM0Mjc3RUQ3RTAwMEVBMzc1NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCAzZWQ3NmMz
MmM4MTY2ZjE5YzI3MTY3YTc2NTMxYzgyYzFlZDY1MjQ1Li5mOWU0YjFjMzI5NWNlMTNiMjAyZTM3
OGIwZDI3NTQxYjRmNDA2ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMjks
MTQgKzI5LDE0IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJHUFVQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQorQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbmRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAs
IG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBBdWRpb1RyYWNr
UHJpdmF0ZTo6c2V0RW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0
ZUNvbmZpZ3VyYXRpb24oQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29uZmlndXJhdGlvbi50cmFja0lkICE9IG1faWQpIHsK
ICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0eSgpOwpAQCAtODAsMTEgKzgwLDgg
QEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1fdHJhY2tJbmRleCA9IGNvbmZpZ3Vy
YXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0gY29uZmlndXJhdGlv
bi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmF1ZGlvS2lu
ZDsKLSAgICBzZXRDb2RlYyhXVEZNb3ZlKGNvbmZpZ3VyYXRpb24uY29kZWMpKTsKLSAgICBzZXRT
YW1wbGVSYXRlKGNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZSk7Ci0gICAgc2V0TnVtYmVyT2ZDaGFu
bmVscyhjb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMpOwotICAgIHNldEJpdHJhdGUoY29u
ZmlndXJhdGlvbi5iaXRyYXRlKTsKKyAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7Cisg
ICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0
aW9uKSk7CiAgICAgCiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJsZWQoY29uZmlndXJh
dGlvbi5lbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCBmMWY5ZjBmM2Q2
NWFjNjQ4NTViMDY1ZjAyNjQ0YTM2NWRlNDNlYmQ0Li4yZmMwODQ1MTVkNjIwZDBjNjVhM2RjZWJm
NzA3NTgxNmMxNmZkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNiwyMSArMzYs
MjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwog
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVj
dGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29u
bmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3NDb25u
ZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pKSk7CiAgICAgfQogCiAgICAgQXRvbVN0cmluZyBpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1faWQ7IH0KLSAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJik7CiAKICAgICB1c2luZyBBdWRpb1RyYWNrS2luZCA9IFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpLaW5kOwogICAgIEF1ZGlvVHJhY2tLaW5kIGtpbmQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2tpbmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBmMzY0ZTVj
MTY0NmI1MjRiNjUyZmQ2MGQ1NDg4NGY5ZjRhMmI1ZjhiLi45YjdjY2VjY2U4ODY4MzMzZDIzOThm
OWEwMWU5MzQxYzNjNDhkZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC01
NzUsNyArNTc1LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0dXJh
bFNpemUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm5hdHVyYWxTaXplOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hdWRpb1RyYWNrcy5lbnN1cmUoaWRlbnRp
ZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpjcmVh
dGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQsIGlkZW50aWZpZXIsIFdU
Rk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVt
b3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZp
Z3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlv
bikKIHsKICAgICBBU1NFUlQobV9hdWRpb1RyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAK
QEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3Zl
R2VuZXJpY0N1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZQogICAgICAgICB0cmFj
ay0+cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRHZW5lcmljQ3VlOjpjcmVhdGUoV1RGTW92ZShjdWVE
YXRhKSkpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlk
ZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNrcy5l
bnN1cmUoaWRlbnRpZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlOjpjcmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQsIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNzYzLDcgKzc2Myw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVt
b3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKIHsKICAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGIwYWZlMjFlZTAzZWUy
NjM3ODQwOTcyYmYyZjMwNDQ3MjNkNjcxYmQuLmUwMWZjZWM2Yzg2MWIxZjlhMjJkMDQ4Y2UzYjk4
YjQ0ZjhlYjVjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtNjcsOCArNjcsOSBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjsK
IGNsYXNzIFVzZXJEYXRhOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKLXN0cnVj
dCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGZpbmFsCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
CkBAIC0xMTcsMTMgKzExOCwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGN1cnJlbnRUaW1lQ2hh
bmdlZChjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNb25vdG9uaWNUaW1lJiwgYm9vbCk7CiAKLSAg
ICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGFkZFJlbW90ZUF1
ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW90ZUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgcmVtb3RlQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAotICAgIHZvaWQgYWRkUmVtb3RlVmlk
ZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2Vk
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mJik7CisgICAgdm9pZCByZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYpOwogCiAgICAgdm9pZCBhZGRSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7
CiAgICAgdm9pZCByZW1vdmVSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
Zmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmluZGV4
IGE2MDYwMzkwZTkwNTkwODZkZjQ1M2Y3NTYxZDlmNTE3ZTZiNGFlMGEuLjVlZGY3NTM4ZjVhZjY2
M2JhNzhmZTljNjdlN2E2NDJhZGI2ZGRlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLm1lc3NhZ2VzLmluCkBAIC00MSwxMyArNDEsMTMgQEAgbWVzc2FnZXMgLT4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogCiAgICAgQ3VycmVudFRpbWVDaGFu
Z2VkKE1lZGlhVGltZSBtZWRpYVRpbWUsIE1vbm90b25pY1RpbWUgd2FsbFRpbWUsIGJvb2wgdGlt
ZUlzUHJvZ3Jlc3NpbmcpCiAKLSAgICBBZGRSZW1vdGVBdWRpb1RyYWNrKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQWRkUmVtb3RlQXVkaW9U
cmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0
IFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCiAgICAgUmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
KyAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OkF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCi0gICAgQWRkUmVtb3Rl
VmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwg
c3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKQorICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZVZpZGVvVHJhY2so
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVtb3Rl
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmln
dXJhdGlvbikKIAogICAgIEFkZFJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVUZXh0VHJh
Y2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhiYTkyNTllNTBlM2VjZGIwYjgyY2U2MjkzMTMyZTEz
YWViNGM4YjIuLjBmOGQ1ZjgzMTEzODlhZGNjY2I4ODg1OWE4Mjc0OWJkOWEwMWQ5NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0zMiwxMCArMzIsMTEgQEAKICNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJD
b3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihn
cHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVySWRlbnRpZmllcihwbGF5ZXJJZGVu
dGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCkBAIC01NCw3ICs1NSw3IEBA
IHZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQp
CiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIH0KIAotdm9p
ZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgVmlkZW9UcmFja1By
aXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29uZmlndXJhdGlvbi50
cmFja0lkICE9IG1faWQpIHsKICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0eSgp
OwpAQCAtNzksMTQgKzgwLDggQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRl
Q29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1fdHJh
Y2tJbmRleCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlh
bmNlID0gY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25m
aWd1cmF0aW9uLnZpZGVvS2luZDsKLSAgICBtX2NvZGVjID0gY29uZmlndXJhdGlvbi5jb2RlYzsK
LSAgICBtX3dpZHRoID0gY29uZmlndXJhdGlvbi53aWR0aDsKLSAgICBtX2hlaWdodCA9IGNvbmZp
Z3VyYXRpb24uaGVpZ2h0OwotICAgIG1fY29sb3JTcGFjZSA9IGNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZTsKLSAgICBtX2ZyYW1lcmF0ZSA9IGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlOwotICAgIG1f
Yml0cmF0ZSA9IGNvbmZpZ3VyYXRpb24uYml0cmF0ZTsKLQorICAgIG1fa2luZCA9IGNvbmZpZ3Vy
YXRpb24ua2luZDsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbi50
cmFja0NvbmZpZ3VyYXRpb24pKTsKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0U2VsZWN0ZWQo
Y29uZmlndXJhdGlvbi5zZWxlY3RlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRl
eCA2OWZjZDg2YzY0ZGMyMGZmYjZkOTk1MTYyZmIwOGY4ODVlMTE1NTFjLi5jODE2MWYyMTE3NjU1
ZGI1NmJmMTFmYjEzMTA3NzUzZTg1ZjEyZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlICJU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgpAQCAtMzcsMTgg
KzM2LDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlv
bjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUKICAgICA6IHB1YmxpYyBX
ZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29u
bmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVmlkZW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3ND
b25uZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKSk7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9u
KFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIFZp
ZGVvVHJhY2tLaW5kID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAgVmlk
ZW9UcmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpAQCAtNTcs
MTUgKzU2LDkgQEAgcHVibGljOgogICAgIEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2xhbmd1YWdlOyB9CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3RyYWNrSW5kZXg7IH0KICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFu
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0YXJ0VGltZVZhcmlhbmNlOyB9Ci0gICAgU3Ry
aW5nIGNvZGVjKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlYzsgfQotICAgIHVpbnQzMl90
IHdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHVpbnQzMl90IGhl
aWdodCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgV2ViQ29yZTo6UGxh
dGZvcm1WaWRlb0NvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29sb3JTcGFjZTsgfQotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2ZyYW1lcmF0ZTsgfQotICAgIHVpbnQ2NF90IGJpdHJhdGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2JpdHJhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKKyAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAg
dm9pZCBzZXRTZWxlY3RlZChib29sKSBmaW5hbDsKIApAQCAtNzYsMTIgKzY5LDYgQEAgcHJpdmF0
ZToKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbVN0cmluZyBtX2xhbmd1YWdlOwog
ICAgIGludCBtX3RyYWNrSW5kZXggeyAtMSB9OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAgIHVp
bnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0gICAg
V2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgbV9jb2xvclNwYWNlOwotICAgIGRvdWJs
ZSBtX2ZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CiAgICAg
TWVkaWFUaW1lIG1fc3RhcnRUaW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6Onplcm9UaW1lKCkgfTsK
ICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRlbmRpZmllcjsKIH07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjllZWQzOWNjNTY4OTY5NDIwOWJjNjFhZThlMTg1ZDg1MjFiY2YzZi4uZjNjZDg5ZjY1YWZi
Nzc5MzU1NjYyODM4MjljYjFkMmJlMDY5NTE5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2Nv
YV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZXNlIHBy
b3BlcnRpZXMgYXJlIGR5bmFtaWMsIHRlc3QgdGhlbSB3aXRoIGB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5YC4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24u
aHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0
bWw6CisKIDIwMjEtMTItMzEgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyODcwMjgpOiBJbmNvcnJlY3Qgcm9vdCBpbmxpbmUgYm94IGhvcml6
b250YWwgcG9zaXRpb24gd2hlbiB0ZXh0LWFsaWduIG9mZnNldCBpcyBwcmVzZW50CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0
bWwKaW5kZXggYTU3ZTI2MzAyZjM2MTAwNzU1NmIzNDJiZjM2M2I2NzI2ZjZmMzI4OS4uZTczNDYw
OGM2ZWE3ZjU2MjJjOTMyNzc5Njc1YmZhZWU3NTUyZTA3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbApAQCAtOSwx
MiArOSwxMiBAQAogCQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJcnVuKCd2aWRlby5zcmMgPSAi
Li4vY29udGVudC9hdWRpby10cmFja3MubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywg
J2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywg
MCwgJz4nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ21wNGEuNDAuMicpOwotCQkJdGVzdEV4cGVjdGVkKCd2
aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUnLCA0NDEwMCk7Ci0J
CQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ubnVtYmVy
T2ZDaGFubmVscycsIDIpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAwMDAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgMCwgJz4nKTsKKwkJCWF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnbXA0YS40MC4yJyk7CisJ
CQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLnNhbXBsZVJhdGUnLCA0NDEwMCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5l
bHMnLCAyKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDEwMDAwMCwgJz49Jyk7CiAJCQllbmRUZXN0
KCk7CiAJCX0pOwogCTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCmluZGV4IDEyMDM5OTk4MjA0NWY5MzFl
ODlmMzM2NTYzOGY1MzdiMTMyNjYwNDQuLmI1ZGQ2ZjI3YWEwYjZhYjJmMjFjOTM3YjIxNTRlMDhj
NjAzMzdjNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNr
LWNvbmZpZ3VyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10
cmFjay1jb25maWd1cmF0aW9uLmh0bWwKQEAgLTksMzAgKzksMzAgQEAKIAkJCWZpbmRNZWRpYUVs
ZW1lbnQoKTsKIAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvdGVzdC5tcDQiJyk7CiAJ
CQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRl
by52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ2F2YzEuNEQ0MDBEJyk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ud2lk
dGgnLCAzMjApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmhlaWdodCcsIDI0MCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDI0MDAwMCwgJz49Jyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywgMzAsICc+
PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDQ3MGJnJyk7Ci0J
CQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZS5wcmltYXJpZXMnLCAnc21wdGUxNzBtJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZp
ZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3MubGVu
Z3RoJywgMSk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywg
J2F2YzEuNEQ0MDBEJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJCWF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVp
Z2h0JywgMjQwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVv
VHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDI0MDAwMCwgJz49Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGws
ICchPScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFj
a3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDQ3MGJnJyk7CisJCQlh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ3NtcHRlMTcwbScpOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9j
b250ZW50L3Rlc3QtaGV2Yy5tcDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxh
eScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGws
ICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvZGVjJywgJ2h2YzEuMS42Lkw5My5CMCcpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJCXRlc3RFeHBlY3Rl
ZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwotCQkJ
dGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUn
LCAxNTAwMDAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29s
b3JTcGFjZS5tYXRyaXgnLCAnYnQ3MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdidDcwOScpOwot
CQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9y
U3BhY2UudHJhbnNmZXInLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICch
PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdodmMxLjEuNi5MOTMuQjAnKTsKKwkJCWF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24u
d2lkdGgnLCAzMjApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOworCQkJYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRy
YXRlJywgMTUwMDAwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywgMzAsICc+PScpOwor
CQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3Bh
Y2UubWF0cml4JywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywg
J2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3MDknKTsKIAkJ
CWVuZFRlc3QoKTsKIAkJfSk7CiAJPC9zY3JpcHQ+Cg==
</data>
<flag name="commit-queue"
          id="473930"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448130</attachid>
            <date>2021-12-31 12:32:03 -0800</date>
            <delta_ts>2021-12-31 12:50:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231123202.patch</filename>
            <type>text/plain</type>
            <size>95123</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5N2M4ZGM1NzgzZjlk
NDkxZTM2ZTE1Mjg4YzA1ODI3NDFlZGQ0Ni4uMGE4ZmEzZWRiOGE5ZTI2MGY5YjE2ZDJkZGM2MDRj
NmQyYmI0NGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MmNjNTc4NGJiYWI1MGJlNjlmMTRlMTgxMGY3MmEwMDE2YTYyNjAyLi5hZjQyN2RiZDFkOGM5
M2Y1Mzk3YWVjZDA2MzQ2ZWZhMDc0Y2I2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYjY2MmIwODdlNzJlZGU2ZWM3YzkzNWRmYTQ3ZjA3ZTBkYzRkMDc2Zi4uYjBhNjQ4N2NjOWQ5
ZTk0OGMzYmVkYTVkNzkwOTk0YjlmNGRmYmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU3Niw2ICs0NTc2LDkgQEAKIAkJ
Q0RDQzlCRDEyMjM4N0VBQTAwRkZCNTFDIC8qIE1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENDOUJE
MDIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENENDFFODFD
M0REQjBBMDA5NjVEOTkgLyogUGFyc2VkQ29udGVudFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENENDFFNjFDM0REQjA5MDA5NjVEOTkgLyog
UGFyc2VkQ29udGVudFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJC
MThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQkQyNzdFNTQyNjAwRUEzNzU1IC8q
IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCQzI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDREQwOEFDMDI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDREQwOEFDMjI3N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDREQ3MDg5NzE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYg
LyogU2FtcGxlTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RE
QzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERTNBODU0MTdG
NUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8q
IEF1ZGlvVHJhY2tQcml2YXRlQVZGLmggKi87IH07CkBAIC0xNjE0OCw2ICsxNjE1MSw5IEBACiAJ
CUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBFdmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHREYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBIaWdo
bGlnaHREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCQzI3N0U1
NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0REMDhBQkYyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDMTI3N0U1NTRFMDBFQTM3
NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NDE4MzU5RjZFMDAy
QjNEQzYgLyogU2FtcGxlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNhbXBsZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk1
MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2FtcGxlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODg5
OCw2ICsyODkwNCw3IEBACiAJCQkJQkM2MzVFOEIyNjRDMkNBRTAwMEVGMzNBIC8qIFBpeGVsQnVm
ZmVyRm9ybWF0LmggKi8sCiAJCQkJQkM2MzVFOTAyNjRDNDY5RjAwMEVGMzNBIC8qIFBpeGVsRm9y
bWF0LmNwcCAqLywKIAkJCQlCQ0E1NTkxMjI2M0RCRDc5MDA3RjE5QjMgLyogUGl4ZWxGb3JtYXQu
aCAqLywKKwkJCQlDREQwOEFCRjI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCUJDM0U2MjQyMjY1OTc5MTcwMDU0OEFDRCAvKiBQbGF0
Zm9ybUNvbG9yU3BhY2UuaCAqLywKIAkJCQk3MjZENTZFMTI1M0FFMDQzMDAwMkVGOTAgLyogUGxh
dGZvcm1JbWFnZS5oICovLAogCQkJCTcyQkFDM0E2MjNFMTczMjgwMDhENzQxQyAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyLmggKi8sCkBAIC0yODkwNyw5ICsyODkxNCwxMSBAQAogCQkJCTA3Mjg0N0Uy
MTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICovLAogCQkJCTA3NEU4MkI4
MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuY3BwICovLAogCQkJCTA3NEU4
MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLywKKwkJCQlDREQw
OEFCQzI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCAqLywK
IAkJCQlDRDFGOUFGQjI2RkQzOEM5MDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb0NvbG9yUHJpbWFy
aWVzLmggKi8sCiAJCQkJQ0QxRjlBRkEyNkZEMzg1OTAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9D
b2xvclNwYWNlLmggKi8sCiAJCQkJQ0QxRjlBRkQyNkZEMzhDQjAwNjE3RUI2IC8qIFBsYXRmb3Jt
VmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaCAqLywKKwkJCQlDREQwOEFDMTI3N0U1NTRFMDBFQTM3
NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovLAogCQkJCUNEMUY5QUZD
MjZGRDM4Q0EwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3Mu
aCAqLywKIAkJCQlCQ0FCNDE3RjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCAqLywKIAkJ
CQlCQ0FCNDE4MDEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggKi8sCkBAIC0zNDUwOCw2ICsz
NDUxNyw3IEBACiAJCQkJQkM1M0M1RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGllbnRBdHRy
aWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE5Q0RGNDI3NzEwNjM5MDA1M0Y3MzQgLyog
R3JhZGllbnRDb2xvclN0b3AuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMTlDRTJCMjc3MkJGN0Iw
MDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDgx
RjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE5Q0RGMjI3NkZGQzZEMDA1M0Y3MzQgLyogR3JhZGllbnRSZW5kZXJlckNHLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NN
YWMuaCBpbiBIZWFkZXJzICovLApAQCAtMzY0MTQsNiArMzY0MjQsNyBAQAogCQkJCUJDNjM1RThD
MjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhlbEJ1ZmZlckZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNBNTU5MTQyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREVGQTIyODFFNzY2OUU4MDAwQUU5OUMgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCBp
biBIZWFkZXJzICovLAorCQkJCUNERDA4QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTlCM0VERDEyOERC
NTAyMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1RTIwMDYxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FG
aWx0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NDQ1LDkgKzM2NDU2LDExIEBACiAJCQkJMUFE
OEY4MUIxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3RDA3MzMxODg0QzU2QzAwQjRBRjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1U
aW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUg
LyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMUY5
QjAyMjcwMDMyM0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEMUY5QjAxMjcwMDIwQjcwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDMyNzAwMzIzRDAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNERDA4QUMyMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDFGOUIwNDI3MDAzMjNEMDA2MTdFQjYgLyogUGxh
dGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNzU3Myw3ICszNzU4Niw2IEBACiAJCQkJQkU5MTNEODAxODFF
RjkyNDAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MUY5QjFDMjcwMjRCQzIwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3Rz
LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE5Q0UyQjI3NzJCRjdCMDA1M0Y3MzQgLyogR3JhZGll
bnRDb2xvclN0b3BzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwNzEzMjFCRDgzMDhCMDBEQkM0
RjIgLyogVHJhbnNhY3Rpb25PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VFRjQx
MjU3OTlGRDkwMDY1NjNCQiAvKiBUcmFuc2ZlckZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OUU5MTFDNDBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKaW5kZXgg
YTI3MTA2NzVlOGE3NDA5NDRlNjlmOWFlZjcxZTk3ODkzMWVhODVjZi4uNjk5NGIxMTMxZTIzNDhl
NGVlOWQyNWMwOWFjZDRkZjY1ODdjMTAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwCkBAIC0xNzEsNiArMTcxLDExIEBAIHZvaWQgQXVkaW9UcmFjazo6ZW5hYmxl
ZENoYW5nZWQoYm9vbCBlbmFibGVkKQogICAgIH0pOwogfQogCit2b2lkIEF1ZGlvVHJhY2s6OmNv
bmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25maWd1cmF0aW9uLT5zZXRTdGF0ZShjb25maWd1
cmF0aW9uKTsKK30KKwogdm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbVN0cmlu
ZyYgaWQpCiB7CiAgICAgc2V0SWQoaWQpOwpAQCAtMjMxLDEwICsyMzYsNyBAQCB2b2lkIEF1ZGlv
VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAKIHZvaWQgQXVkaW9UcmFjazo6dXBkYXRl
Q29uZmlndXJhdGlvbkZyb21Qcml2YXRlKCkKIHsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldENv
ZGVjKG1fcHJpdmF0ZS0+Y29kZWMoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRTYW1wbGVS
YXRlKG1fcHJpdmF0ZS0+c2FtcGxlUmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldE51
bWJlck9mQ2hhbm5lbHMobV9wcml2YXRlLT5udW1iZXJPZkNoYW5uZWxzKCkpOwotICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0Qml0cmF0ZShtX3ByaXZhdGUtPmJpdHJhdGUoKSk7CisgICAgbV9jb25m
aWd1cmF0aW9uLT5zZXRTdGF0ZShtX3ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSk7CiB9CiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
LmgKaW5kZXggNGYwMDcwODE3MmU4ZDVmODI3OGMwM2E1NDhjZGU1YjZhNmNhY2FjNS4uNGUxODZj
MTY2MjA3YjA3YTc4ZDBlNzZlYzRkM2RkMDkwOTk2MTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSBmaW5h
bDsKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb24mKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQK
ICAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKaW5kZXgg
NmQ3MGJjYjhkMGRhMWJiZjI5MmEzNTU4Y2EwZDkwMWJlZWUxMThkNi4uZTg0NzRiYjZjYTk5ZDVl
YjUzNWYwNTMxYmZmMjUwYTJjMjk5ZDcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMjcsMTYgKzI3LDEyIEBACiAK
ICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1
cmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RydWN0IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCB7Ci0gICAgU3Ry
aW5nIGNvZGVjOwotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUgeyAwIH07Ci0gICAgdWludDMyX3Qg
bnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBiaXRyYXRlIHsgMCB9OwotfTsK
K3VzaW5nIEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCA9IFBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb247CiAKIGNsYXNzIEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKQEAgLTQ0LDYgKzQwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBp
bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKFdURk1v
dmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
JiBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKwogICAgIFN0cmluZyBjb2RlYygpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGUuY29kZWM7IH0KICAgICB2b2lkIHNldENvZGVjKFN0cmluZyBjb2Rl
YykgeyBtX3N0YXRlLmNvZGVjID0gY29kZWM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKaW5kZXggNzk1NzczMzM3OTVjZDkwMzEzZjRhM2UyNzc4YWEwYWZmZDcz
ZGRjMS4uNzNlOWQwZjE3YWY1NjViN2EyZDFkOTkzYzkyYzczN2Q3OTRmNDRhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0xNjQsNiArMTY0LDExIEBAIHZv
aWQgVmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKGJvb2wgc2VsZWN0ZWQpCiAgICAgfSk7CiB9
CiAKK3ZvaWQgVmlkZW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3Vy
YXRpb24tPnNldFN0YXRlKGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lkIFZpZGVvVHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJZChpZCk7CkBAIC0yNjIs
MTIgKzI2Nyw3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKIAog
dm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKQogewotICAg
IG1fY29uZmlndXJhdGlvbi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2RlYygpKTsKLSAgICBtX2Nv
bmZpZ3VyYXRpb24tPnNldFdpZHRoKG1fcHJpdmF0ZS0+d2lkdGgoKSk7Ci0gICAgbV9jb25maWd1
cmF0aW9uLT5zZXRIZWlnaHQobV9wcml2YXRlLT5oZWlnaHQoKSk7Ci0gICAgbV9jb25maWd1cmF0
aW9uLT5zZXRDb2xvclNwYWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKG1fcHJpdmF0ZS0+Y29s
b3JTcGFjZSgpKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRGcmFtZXJhdGUobV9wcml2YXRl
LT5mcmFtZXJhdGUoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRyYXRlKG1fcHJpdmF0
ZS0+Yml0cmF0ZSgpKTsKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKG1fcHJpdmF0ZS0+
Y29uZmlndXJhdGlvbigpKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCA3YTk3OGM3MzIzNjBiNzc3NzY0N2Y0
MmVkYmYyMTA2ODZkMTQwZDE4Li5lMWUwZTliMDI1OGQ1MTI3NjI5NzA2ZDBlYzQyMmEzY2JkMDNm
Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAtODMsNyArODMs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lk
IHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKLSAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKCkgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKTsgfQorICAgIHZv
aWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJh
dGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQg
aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAppbmRleCBkMjBkMjQzY2E2
MTA2ZWVjZjM0ZjkxZTRkMzViM2NiZGI3ZDk3YjJmLi5jNTk2MWY0OTFkODAwZmNkMzRlMzQwNjlj
N2Q3OGQ0ZWYzYmNlMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0yNywxOSArMjcsMTMgQEAKIAogI2lmIEVOQUJM
RShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIK
ICNpbmNsdWRlICJWaWRlb0NvbG9yU3BhY2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb25Jbml0IHsKLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgd2lkdGggeyAwIH07
Ci0gICAgdWludDMyX3QgaGVpZ2h0IHsgMCB9OwotICAgIFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+
IGNvbG9yU3BhY2U7Ci0gICAgZG91YmxlIGZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBi
aXRyYXRlIHsgMCB9OwotfTsKK3VzaW5nIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uSW5pdCA9IFBs
YXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFZpZGVvVHJhY2tDb25maWd1
cmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ3LDYgKzQxLDEyIEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tDb25maWd1cmF0aW9uPiBjcmVhdGUoVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25Jbml0JiYgaW5pdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbihXVEZNb3ZlKGluaXQpKSk7IH0KICAgICBzdGF0aWMgUmVmPFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkpOyB9CiAKKyAgICB2b2lkIHNldFN0YXRlKGNvbnN0IFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uSW5pdCYgc3RhdGUpCisgICAgeworICAgICAgICBtX3N0YXRlID0gc3Rh
dGU7CisgICAgICAgIG1fY29sb3JTcGFjZS0+c2V0U3RhdGUobV9zdGF0ZS5jb2xvclNwYWNlKTsK
KyAgICB9CisKICAgICBTdHJpbmcgY29kZWMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmNvZGVj
OyB9CiAgICAgdm9pZCBzZXRDb2RlYyhTdHJpbmcgY29kZWMpIHsgbV9zdGF0ZS5jb2RlYyA9IGNv
ZGVjOyB9CiAKQEAgLTU2LDggKzU2LDggQEAgcHVibGljOgogICAgIHVpbnQzMl90IGhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuaGVpZ2h0OyB9CiAgICAgdm9pZCBzZXRIZWlnaHQodWlu
dDMyX3QgaGVpZ2h0KSB7IG1fc3RhdGUuaGVpZ2h0ID0gaGVpZ2h0OyB9CiAKLSAgICBSZWZQdHI8
VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5jb2xv
clNwYWNlOyB9Ci0gICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+
JiYgY29sb3JTcGFjZSkgeyBtX3N0YXRlLmNvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2Up
OyB9CisgICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY29sb3JTcGFjZTsgfQorICAgIHZvaWQgc2V0Q29sb3JTcGFjZShSZWY8VmlkZW9Db2xvclNw
YWNlPiYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNwYWNlID0gV1RGTW92ZShjb2xvclNwYWNlKTsg
fQogCiAgICAgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuZnJhbWVy
YXRlOyB9CiAgICAgdm9pZCBzZXRGcmFtZXJhdGUoZG91YmxlIGZyYW1lcmF0ZSkgeyBtX3N0YXRl
LmZyYW1lcmF0ZSA9IGZyYW1lcmF0ZTsgfQpAQCAtNjgsMTEgKzY4LDE2IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25Jbml0JiYgaW5pdCkKICAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgICAgICwgbV9jb2xv
clNwYWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKGluaXQuY29sb3JTcGFjZSkpCisgICAgewor
ICAgIH0KKyAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbigpCisgICAgICAgIDogbV9jb2xvclNw
YWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKCkpCiAgICAgewogICAgIH0KLSAgICBWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbigpID0gZGVmYXVsdDsKIAogICAgIFZpZGVvVHJhY2tDb25maWd1cmF0
aW9uSW5pdCBtX3N0YXRlOworICAgIFJlZjxWaWRlb0NvbG9yU3BhY2U+IG1fY29sb3JTcGFjZTsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1
ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZS5oCmluZGV4IDMyZWM1OGRlNDJmZmU5ZGNiZjQzOGJjN2M2ZDdhNmMyNzkw
ZTIxMTUuLmY5YzAwMzI0NzQ1NmUzODgwOWZkZjE4N2IwNzcyNzE5MjE1MDNjZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNr
UHJpdmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAKQEAgLTY0LDE4ICs2NSwxNiBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBFbmFibGVk
Q2hhbmdlZENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChBdWRpb1RyYWNrUHJpdmF0ZSYsIGJvb2wg
ZW5hYmxlZCk+OwogICAgIHZvaWQgc2V0RW5hYmxlZENoYW5nZWRDYWxsYmFjayhFbmFibGVkQ2hh
bmdlZENhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9lbmFibGVkQ2hhbmdlZENhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7IH0KLSAgICAKLSAgICBTdHJpbmcgY29kZWMoKSBjb25zdCB7IHJldHVy
biBtX2NvZGVjOyB9Ci0gICAgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykgeyBtX2NvZGVj
ID0gV1RGTW92ZShjb2RlYyk7IH0KLSAgICAKLSAgICB1aW50MzJfdCBzYW1wbGVSYXRlKCkgY29u
c3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9Ci0gICAgdm9pZCBzZXRTYW1wbGVSYXRlKHVpbnQz
Ml90IHNhbXBsZVJhdGUpIHsgbV9zYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsgfQotICAgIAotICAg
IHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mQ2hh
bm5lbHM7IH0KLSAgICB2b2lkIHNldE51bWJlck9mQ2hhbm5lbHModWludDMyX3QgbnVtYmVyT2ZD
aGFubmVscykgeyBtX251bWJlck9mQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOyB9Ci0gICAg
Ci0gICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cmF0ZTsgfQotICAg
IHZvaWQgc2V0Qml0cmF0ZSh1aW50NjRfdCBiaXRyYXRlKSB7IG1fYml0cmF0ZSA9IGJpdHJhdGU7
IH0KKworICAgIGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb247IH0KKyAgICB2b2lkIHNldENv
bmZpZ3VyYXRpb24oUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCisgICAgeworICAgICAgICBpZiAoY29uZmlndXJhdGlvbiA9PSBtX2NvbmZpZ3VyYXRpb24p
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUo
Y29uZmlndXJhdGlvbik7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5jb25maWd1cmF0aW9uQ2hhbmdlZChtX2NvbmZpZ3VyYXRpb24pOworICAgIH0KIAogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBdWRpb1RyYWNrUHJpdmF0ZSI7IH0KQEAgLTg3LDEwICs4
Niw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudD4gbV9jbGllbnQ7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwotICAgIFN0
cmluZyBtX2NvZGVjOwotICAgIHVpbnQzMl90IG1fc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1aW50
MzJfdCBtX251bWJlck9mQ2hhbm5lbHMgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsg
MCB9OworICAgIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9u
OwogICAgIEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgbV9lbmFibGVkQ2hhbmdlZENhbGxiYWNrOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKaW5kZXggMGFlMjA0NTE3OWUxNzljOTM3ZGJmNjYzZTA3
NWE5NDRlODM2ZGNkOC4uNjFlZTg2NDQxNzg0Mjk4OTUyNWI1ZjRlODc2NDcwMGRjZGIyOTRkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMCArMzIsMTIgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CitzdHJ1Y3QgUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJs
aWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVu
YWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNo
YW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjg3Yjdi
Mzc2NmE2YzRiMjUyY2Q0NGI1OTNjODk1YWQ0NTI5NjE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbi5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIlBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgdWludDMyX3Qgc2Ft
cGxlUmF0ZSB7IDAgfTsKKyAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsgMCB9OworICAg
IHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJik7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mIGEsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mIGIpCit7CisgICAgcmV0dXJuIGEuY29kZWMgPT0gYi5j
b2RlYworICAgICAgICAmJiBhLnNhbXBsZVJhdGUgPT0gYi5zYW1wbGVSYXRlCisgICAgICAgICYm
IGEubnVtYmVyT2ZDaGFubmVscyA9PSBiLm51bWJlck9mQ2hhbm5lbHMKKyAgICAgICAgJiYgYS5i
aXRyYXRlID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+Cit2b2lk
IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5jb2RlciA8PCBzYW1wbGVS
YXRlOworICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKKyAgICBlbmNvZGVyIDw8IGJp
dHJhdGU7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorYm9vbCBQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24uY29kZWMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNhbXBsZVJhdGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm51bWJl
ck9mQ2hhbm5lbHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMGY5N2E2MDBmODRlNDMwNzc1YjU4OTAxNjBmNGEwNjdmNDhkMjI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
cmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGxhdGZvcm1UcmFja0NvbmZp
Z3VyYXRpb24geworICAgIFN0cmluZyBjb2RlYzsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UuaAppbmRleCAyODg3NDNkZTVmNzEzMmU2MGEwYzBjY2M0NzE5ZWQxMjVhYTBmN2Ex
Li41MGU0YWI5Mjc2NDUwMGE1YWNhM2YxZTc0YTliODg4ZmExYjU0YzhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xv
clNwYWNlLmgKQEAgLTQzLDYgKzQzLDE5IEBAIHN0cnVjdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFj
ZSB7CiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJik7CiB9Owog
CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBh
LCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYgYikKK3sKKyAgICByZXR1cm4gYS5wcmlt
YXJpZXMgPT0gYi5wcmltYXJpZXMKKyAgICAgICAgJiYgYS50cmFuc2ZlciA9PSBiLnRyYW5zZmVy
CisgICAgICAgICYmIGEubWF0cml4ID09IGIubWF0cml4CisgICAgICAgICYmIGEuZnVsbFJhbmdl
ID09IGIuZnVsbFJhbmdlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBsYXRm
b3JtVmlkZW9Db2xvclNwYWNlJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYgYikK
K3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCiB0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4K
IHZvaWQgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
NWFmY2U2NzRkNDkyNWNlOGMxOWYzM2RmMzY4M2EzMjQ2ZTA1ZGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRp
b24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIDogUGxh
dGZvcm1UcmFja0NvbmZpZ3VyYXRpb24geworICAgIHVpbnQzMl90IHdpZHRoIHsgMCB9OworICAg
IHVpbnQzMl90IGhlaWdodCB7IDAgfTsKKyAgICBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xv
clNwYWNlOworICAgIGRvdWJsZSBmcmFtZXJhdGUgeyAwIH07CisgICAgdWludDY0X3QgYml0cmF0
ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmln
dXJhdGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2RlYyA9PSBiLmNvZGVjCisgICAgICAgICYm
IGEud2lkdGggPT0gYi53aWR0aAorICAgICAgICAmJiBhLmhlaWdodCA9PSBiLmhlaWdodAorICAg
ICAgICAmJiBhLmNvbG9yU3BhY2UgPT0gYi5jb2xvclNwYWNlCisgICAgICAgICYmIGEuZnJhbWVy
YXRlID09IGIuZnJhbWVyYXRlCisgICAgICAgICYmIGEuYml0cmF0ZSA9PSBiLmJpdHJhdGU7Cit9
CisKK3RlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPgordm9pZCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IGNvZGVjOworICAgIGVuY29kZXIgPDwgd2lkdGg7CisgICAgZW5jb2RlciA8PCBoZWlnaHQ7
CisgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOworICAgIGVuY29kZXIgPDwgZnJhbWVyYXRlOwor
ICAgIGVuY29kZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Citi
b29sIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5jb2RlYykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ud2lkdGgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1
cmF0aW9uLmhlaWdodCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5i
aXRyYXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggNTJjOWZlMjIwZjMwYTNmMzE5NTcyOTMyZDM2YWM2ZDk5
MzEwYjM1Ni4uNjIzZjk0MWE2N2U4NmE1MTAyMzAxMjBmN2FiMDA4OWIxYzNlMjc2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0
ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJQ
bGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KQEAg
LTYyLDM2ICs2MiwyMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKFZpZGVvVHJhY2tQcml2YXRlJiwgYm9vbCBzZWxlY3RlZCk+Owog
ICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2soU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJh
Y2smJiBjYWxsYmFjaykgeyBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9j
b2RlYzsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykgeyBtX2Nv
ZGVjID0gV1RGTW92ZShjb2RlYyk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90IHdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaWR0aCh1
aW50MzJfdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVp
bnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KLSAg
ICAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25z
dCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFj
ZShQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNwYWNlID0g
V1RGTW92ZShjb2xvclNwYWNlKTsgfQotICAgIAotICAgIHZpcnR1YWwgZG91YmxlIGZyYW1lcmF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEZy
YW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9Ci0g
ICAgCi0gICAgdmlydHVhbCB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRy
YXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0cmF0ZSkgeyBt
X2JpdHJhdGUgPSBiaXRyYXRlOyB9Ci0gICAgCisgICAgY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJh
dGlvbjsgfQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0
aW9uID09IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9j
b25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAg
ICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7
CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7
CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGll
bnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsKLSAgICBTdHJp
bmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQzMl90IG1f
aGVpZ2h0IHsgMCB9OwotICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JTcGFjZTsK
LSAgICBkb3VibGUgbV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsg
MCB9OworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9u
OwogCiAgICAgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFj
azsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCBkNTFiMzcyMTIzYWU0MDQwYmQwZTY1Nzhi
NGEwODk3NTk5NDFlZTBkLi42NWI3YmY2Njc3MTg3ZDlkMmMxMDEzODVmZTM3M2M1OTQ3MWVhNjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uOworCiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24mKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsLm1tCmluZGV4IDRiNzI1OTA3YjRiNGIyNTVkMDcyZDUxNmE1NjNi
ODQ2NTQ4MDZmOTIuLmY0MjVjZTIzYmVmZDIzNDg3Nzg0NjcyYTBhYjJlNThhOTRiNTAwZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tCkBAIC0y
NTYsNyArMjU2LDcgQEAgc3RhdGljIEFWQXNzZXRUcmFjayogYXNzZXRUcmFja0Zvcihjb25zdCBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsJiBpbXBsKQogc3RhdGljIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0RGVzY3JpcHRpb25Gb3IoY29uc3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bCYgaW1wbCkKIHsKICAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKGltcGwpOwot
ICAgIGlmICghYXNzZXRUcmFjayB8fCAhYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnMuY291
bnQpCisgICAgaWYgKCFhc3NldFRyYWNrIHx8IFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JL
ZXk6QCJmb3JtYXREZXNjcmlwdGlvbnMiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xv
YWRlZCB8fCAhYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnMuY291bnQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPihhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9uc1swXSk7CiB9CkBAIC0yOTEsMTAgKzI5
MSwxMiBAQCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Ojpjb2xvclNwYWNlKCkgY29uc3QKIAogZG91YmxlIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6
OmZyYW1lcmF0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJh
Y2tGb3IoKnRoaXMpKQotICAgICAgICByZXR1cm4gYXNzZXRUcmFjay5ub21pbmFsRnJhbWVSYXRl
OwotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIGF1dG8gYXNz
ZXRUcmFjayA9IGFzc2V0VHJhY2tGb3IoKnRoaXMpOworICAgIGlmICghYXNzZXRUcmFjaykKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgaWYgKFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6
QCJub21pbmFsRnJhbWVSYXRlIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBhc3NldFRyYWNrLm5vbWluYWxGcmFtZVJh
dGU7CiB9CiAKIHVpbnQzMl90IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNhbXBsZVJhdGUo
KSBjb25zdApAQCAtMzI4LDYgKzMzMCw4IEBAIHVpbnQ2NF90IEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw6OmJpdHJhdGUoKSBjb25zdAogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJhY2tG
b3IoKnRoaXMpOwogICAgIGlmICghYXNzZXRUcmFjaykKICAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJlc3RpbWF0ZWREYXRhUmF0ZSIg
ZXJyb3I6bmlsXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gMDsK
ICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoYXNzZXRUcmFjay5lc3RpbWF0ZWREYXRhUmF0ZSkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBhc3NldFRyYWNrLmVzdGltYXRlZERhdGFSYXRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMu
aAppbmRleCA4OTAwNTEwMWVlNmQ0Nzc3ODkwNjFkNzI3N2FmYzVhNGE2ODZhOGQwLi5hMjc3ZjZm
NmExZmRjNzMzNmExYmNhYjM4NDU4ZmI3NDBlM2Y3ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQVZGLmgiCisj
aW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwogT0JK
Q19DTEFTUyBBVlBsYXllckl0ZW07CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgogICAgIEF1
ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAgIEF1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDJik7CisgICAgQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmKTsK
IAogICAgIHZvaWQgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CisgICAgdm9pZCBhdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbD4gbV9pbXBsOworCisgICAgdXNpbmcgQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb25PYnNlcnZlciBtX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMu
bW0KaW5kZXggMWNiOTU4OWQ4NWU5MDA5MTAxMmJlOWE3MDQ5NTlhZjExZGExODMzYi4uOGU1ZWZl
ZWJiZTY0OWEyNGU4MmMxMTQ0MDZmNTYyODFmN2RhMDQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQpAQCAtMzMsMTcgKzMzLDI5
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKLSAgICA6IG1f
aW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6
IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw+KHRyYWNrKSkKK3sKK30KKworQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1Ry
YWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKKyAgICA6IEF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNr
KSkKIHsKLSAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRp
b25BVkZPYmpDJiBvcHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPihvcHRpb24pKQorICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1h
a2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30KKworQXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlx
dWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFt0
aGlzXSB7IGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAgIG1faW1w
bC0+c2V0QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX2F1ZGlvVHJhY2tDb25maWd1
cmF0aW9uT2JzZXJ2ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCisK
IHZvaWQgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2so
KQogewogICAgIC8vIERvbid0IGNhbGwgdGhpcy0+c2V0RW5hYmxlZCgpIGJlY2F1c2UgaXQgYWxz
byBzZXRzIHRoZSBlbmFibGVkIHN0YXRlIG9mIHRoZQpAQCAtNTUsMTEgKzY3LDEyIEBAIHZvaWQg
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQogICAg
IHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgpKTsKICAg
ICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1faW1wbC0+
Y29kZWMoKSk7Ci0gICAgc2V0U2FtcGxlUmF0ZShtX2ltcGwtPnNhbXBsZVJhdGUoKSk7Ci0gICAg
c2V0TnVtYmVyT2ZDaGFubmVscyhtX2ltcGwtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAgc2V0
Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwt
PmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkpOworfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
QVZGT2JqQzo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBzZXRDb25m
aWd1cmF0aW9uKG1faW1wbC0+YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZvaWQg
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpzZXRQbGF5ZXJJdGVtVHJhY2soQVZQbGF5ZXJJdGVt
VHJhY2sgKnRyYWNrKQpAQCAtNzMsMTIgKzg2LDYgQEAgQVZQbGF5ZXJJdGVtVHJhY2sqIEF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6cGxheWVySXRlbVRyYWNrKCkKICAgICByZXR1cm4gbV9pbXBs
LT5wbGF5ZXJJdGVtVHJhY2soKTsKIH0KIAotQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbCht
YWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKLXsKLSAgICByZXNl
dFByb3BlcnRpZXNGcm9tVHJhY2soKTsKLX0KLQogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akM6OnNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNrICp0cmFjaykKIHsKICAgICBtX2ltcGwgPSBt
YWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCmluZGV4IDlk
OWQ2NGFhMjZhZjcyM2I0NmJhODcyNDhhMzkxZDI5ZThjYThiMWMuLmVhZjNmMTE4YjI1YTQzODg5
OTIyZjU2YzZiZGVjZmQ5YzU4Y2Y4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcApAQCAtMzAsMjQgKzMwLDMwIEBACiAKICNp
bXBvcnQgIkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
OjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQotICAg
IDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQor
ICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwog
fQogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhB
VkFzc2V0VHJhY2sqIHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbD4odHJhY2spKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1h
a2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0
UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlv
bikKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9w
dGlvbikpCisgICAgOiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsPihvcHRpb24pKQoreworfQorCitWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbD4mJiBpbXBsKQorICAgIDogbV9pbXBsKFdURk1vdmUoaW1wbCkpCisg
ICAgLCBtX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoW3RoaXNdIHsgdmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7IH0pCiB7CisgICAgbV9pbXBsLT5zZXRWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbk9ic2VydmVyKG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik7
CiAgICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKQEAgLTYyLDE1ICs2OCwxMiBA
QCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNr
KCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1wbC0+bGFiZWwo
KSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBzZXRDb2RlYyht
X2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFdpZHRoKG1faW1wbC0+d2lkdGgoKSk7Ci0gICAgc2V0
SGVpZ2h0KG1faW1wbC0+aGVpZ2h0KCkpOwotICAgIHNldENvbG9yU3BhY2UobV9pbXBsLT5jb2xv
clNwYWNlKCkpOwotICAgIHNldEZyYW1lcmF0ZShtX2ltcGwtPmZyYW1lcmF0ZSgpKTsKLSAgICBz
ZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKLQotICAgIGlmIChhdXRvKiBjbGllbnQgPSB0
aGlzLT5jbGllbnQoKSkKLSAgICAgICAgY2xpZW50LT5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOwor
ICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpKTsK
K30KKwordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnZpZGVvVHJhY2tDb25maWd1cmF0
aW9uQ2hhbmdlZCgpCit7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tD
b25maWd1cmF0aW9uKCkpOwogfQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0
UGxheWVySXRlbVRyYWNrKEFWUGxheWVySXRlbVRyYWNrICp0cmFjaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKaW5kZXggZjQ1YWZlNGY2
OWFkMTM4MmJiMGYxOGZjYzQyZmY1YmE5NjlkOTFiMy4uZmYwY2RmYjM2ZTUxOTIyMjliOGU2NTUx
ZTNmMWRlODM2ZGM3MTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU8p
CiAKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIgorI2luY2x1ZGUgPHd0Zi9PYnNl
cnZlci5oPgogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJ
dGVtOwpAQCAtNzUsOSArNzYsMTQgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqKTsKICAgICBleHBsaWNpdCBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAgZXhwbGljaXQgVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOworICAgIGV4cGxp
Y2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygp
OworICAgIHZvaWQgdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAgIHVzaW5n
IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+OworICAg
IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA2ODYxOGM3
MjdhMmU3NTM4MTJlYjdkYjU4M2JhMGJlZTdmMDJlOTgxLi43NmEwYWJjOGU5OWE3ZWJmNjZmMTk3
MzU0OGVlNjU2MGY2NjRlNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNTAsMTIg
KzUwLDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVzZXRQ
cm9wZXJ0aWVzRnJvbVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExh
YmVsKG1faW1wbC0+bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgp
KTsKLSAgICBzZXRDb2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFdpZHRoKG1faW1wbC0+
d2lkdGgoKSk7Ci0gICAgc2V0SGVpZ2h0KG1faW1wbC0+aGVpZ2h0KCkpOwotICAgIHNldENvbG9y
U3BhY2UobV9pbXBsLT5jb2xvclNwYWNlKCkpOwotICAgIHNldEZyYW1lcmF0ZShtX2ltcGwtPmZy
YW1lcmF0ZSgpKTsKLSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAgICBzZXRD
b25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZv
aWQgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEFzc2V0VHJhY2soQVZB
c3NldFRyYWNrICp0cmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCmluZGV4IDEx
Y2FjODAwMjMxZTA4YzUzZWI2ZTM4ZDg0ZjZiMzM3M2M5MWJjZmIuLjU3N2IxMTAwMGJlMTM1N2Yy
MzVhOTE3YWY0NzU1YWJhN2RkYWQ4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNw
cApAQCAtNDAsNiArNDAsOCBAQCBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQcml2
YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYgdHJhY2tFbnRyeSkKIHsKICAgICBpZiAobV90cmFj
ay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKICAgICAgICAgc2V0U2VsZWN0ZWQobV90cmFjay5p
c19lbmFibGVkLnZhbHVlKCkpOworCisgICAgdXBkYXRlQ29uZmlndXJhdGlvbigpOwogfQogCiBB
dG9tU3RyaW5nIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6aWQoKSBjb25zdApAQCAtMTQ1LDYgKzE0
NywxNyBAQCBkb3VibGUgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpmcmFtZXJhdGUoKSBjb25zdAog
ICAgIHJldHVybiAwOwogfQogCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dXBkYXRlQ29u
ZmlndXJhdGlvbigpCit7CisgICAgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uIHsKKyAgICAgICAgeyAuY29kZWMgPSBjb2RlYygpIH0sCisgICAgICAgIC53aWR0
aCA9IHdpZHRoKCksCisgICAgICAgIC5oZWlnaHQgPSBoZWlnaHQoKSwKKyAgICAgICAgLmZyYW1l
cmF0ZSA9IGZyYW1lcmF0ZSgpLAorICAgIH07CisgICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NPVVJD
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Zp
ZGVvVHJhY2tQcml2YXRlV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKaW5kZXggOTlmZDA3ZmUyZDcxZDkyZGMyZTFj
OTNlOTc2MWNlZTFjNjZhNGI0MC4uN2JkMTllOWJkNzM2MDExODA4YzBmMGU0MzRjNDQ4ZjJkNGEw
MjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKQEAgLTQzLDEzICs0MywxNiBAQCBw
dWJsaWM6CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gZGVmYXVsdEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKLSAgICBTdHJpbmcgY29kZWMoKSBj
b25zdCBmaW5hbDsKLSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQz
Ml90IGhlaWdodCgpIGNvbnN0IGZpbmFsOwotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCBm
aW5hbDsKIAogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tF
bnRyeSYmKTsKKworICAgIFN0cmluZyBjb2RlYygpIGNvbnN0OworICAgIHVpbnQzMl90IHdpZHRo
KCkgY29uc3Q7CisgICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3Q7CisgICAgZG91YmxlIGZyYW1l
cmF0ZSgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOworCiAgICAgd2Vi
bTo6VHJhY2tFbnRyeSBtX3RyYWNrOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX3RyYWNrSUQ7
CiAgICAgbXV0YWJsZSBBdG9tU3RyaW5nIG1fbGFiZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTllOWQ2YWVkODlmMTFiOTIxY2UxMGY5NjE1
YTllZjgzNTY1YmMxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiA6IFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24geworICAgIGJvb2wgZW5hYmxlZDsKKyAgICBXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZCBraW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OktpbmQ6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1
cmF0aW9uIHRyYWNrQ29uZmlndXJhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAg
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZShlbmNvZGVyKTsKKyAgICAg
ICAgZW5jb2RlciA8PCBlbmFibGVkOworICAgICAgICBlbmNvZGVyIDw8IGtpbmQ7CisgICAgICAg
IGVuY29kZXIgPDwgdHJhY2tDb25maWd1cmF0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlIDxj
bGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKCFUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uOjpkZWNvZGUoZGVjb2RlciwgY29uZmlndXJhdGlvbikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5l
bmFibGVkKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLmtpbmQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0
aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNw
cAppbmRleCA4NTM1MDAyYjFiMGY1MTU2OTE4NmIzOWM1NDE2YzI2NGQxZmE4YTUzLi44MTA0MDAy
OGUxNzE3ZTIyODJjYTRkNDBlNzU5YmU2NTczOWVmMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAt
MjksMTEgKzI5LDExIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oIgotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU0LDI2ICs1NCwxOSBAQCBSZW1vdGVB
dWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKQogICAgIG1fdHJhY2tQcml2
YXRlLT5jbGVhckNsaWVudCgpOwogfQogCi1UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCitBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9u
KCkKIHsKICAgICByZXR1cm4gewotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKLSAgICAg
ICAgbV90cmFja1ByaXZhdGUtPmxhYmVsKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5n
dWFnZSgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKLSAg
ICAgICAgbV90cmFja1ByaXZhdGUtPnRyYWNrSW5kZXgoKSwKKyAgICAgICAgeworICAgICAgICAg
ICAgbV90cmFja1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFi
ZWwoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAgICAg
ICAgbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBtX3Ry
YWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAogICAgICAgICBtX3RyYWNrUHJp
dmF0ZS0+ZW5hYmxlZCgpLAogICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpLAotICAgICAg
ICBmYWxzZSwKLSAgICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUs
Ci0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5jb2RlYygpLAotICAgICAgICAwLAotICAgICAgICAw
LAotICAgICAgICB7IH0sCi0gICAgICAgIDAsCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5iaXRy
YXRlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zYW1wbGVSYXRlKCksCi0gICAgICAgIG1f
dHJhY2tQcml2YXRlLT5udW1iZXJPZkNoYW5uZWxzKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5jb25maWd1cmF0aW9uKCksCiAgICAgfTsKIH0KIApAQCAtOTgsNiArOTEsMTEgQEAgdm9pZCBS
ZW1vdGVBdWRpb1RyYWNrUHJveHk6OmVuYWJsZWRDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKICAgICBj
b25maWd1cmF0aW9uQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6
Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
biYgY29uZmlndXJhdGlvbikKK3sKKyAgICBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCiB2
b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKQog
ewogICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKaW5kZXggZDJkZWM0NWE2
ZGIzZmRmNzI2Yjc5OGJlYWFkZGQ1ZjI1OGQ5ZTNiZC4uMmY0NTg3MDgwMDllODAxN2FiODVkMzQz
Mzc4MThiZTYwODRmZmNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBE
ZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb25lOwogCiBjbGFzcyBSZW1vdGVBdWRp
b1RyYWNrUHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1v
dGVBdWRpb1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CkBAIC02OSw2
ICs2OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudAogICAg
IHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CisgICAgdm9pZCBjb25maWd1cmF0aW9u
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikg
ZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5n
ZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpAQCAtNzYsNyArNzcsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICB2
b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24gY29uZmlndXJhdGlvbigpOworICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgp
OwogCiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCmluZGV4IDJlZGVlMTk4NzFjN2QzN2E0NTQ1ZTNl
YzUwNTZiNjE2MzMwMWEzZWQuLmIyMTRhZWExM2E4ZDVmN2I3NmY2NTJjN2RjNmU1YzQ2ODhkNTQ1
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgotI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTU0LDIzICs1NCwyMCBAQCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6On5SZW1vdGVWaWRlb1Ry
YWNrUHJveHkoKQogICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCi1UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmln
dXJhdGlvbigpCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlVmlk
ZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKIHsKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24geyB9OwotICAgIGNvbmZpZ3VyYXRpb24udHJhY2tJ
ZCA9IG1fdHJhY2tQcml2YXRlLT5pZCgpOwotICAgIGNvbmZpZ3VyYXRpb24ubGFiZWwgPSBtX3Ry
YWNrUHJpdmF0ZS0+bGFiZWwoKTsKLSAgICBjb25maWd1cmF0aW9uLmxhbmd1YWdlID0gbV90cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCk7Ci0gICAgY29uZmlndXJhdGlvbi50cmFja0luZGV4ID0gbV90
cmFja1ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKLSAgICBjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZh
cmlhbmNlID0gbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCk7Ci0gICAgY29uZmln
dXJhdGlvbi5zZWxlY3RlZCA9IG1fdHJhY2tQcml2YXRlLT5zZWxlY3RlZCgpOwotICAgIGNvbmZp
Z3VyYXRpb24udmlkZW9LaW5kID0gbV90cmFja1ByaXZhdGUtPmtpbmQoKTsKLSAgICBjb25maWd1
cmF0aW9uLmNvZGVjID0gbV90cmFja1ByaXZhdGUtPmNvZGVjKCk7Ci0gICAgY29uZmlndXJhdGlv
bi53aWR0aCA9IG1fdHJhY2tQcml2YXRlLT53aWR0aCgpOwotICAgIGNvbmZpZ3VyYXRpb24uaGVp
Z2h0ID0gbV90cmFja1ByaXZhdGUtPmhlaWdodCgpOwotICAgIGNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZSA9IG1fdHJhY2tQcml2YXRlLT5jb2xvclNwYWNlKCk7Ci0gICAgY29uZmlndXJhdGlvbi5m
cmFtZXJhdGUgPSBtX3RyYWNrUHJpdmF0ZS0+ZnJhbWVyYXRlKCk7Ci0gICAgY29uZmlndXJhdGlv
bi5iaXRyYXRlID0gbV90cmFja1ByaXZhdGUtPmJpdHJhdGUoKTsKLSAgICByZXR1cm4gY29uZmln
dXJhdGlvbjsKKyAgICByZXR1cm4geworICAgICAgICB7CisgICAgICAgICAgICBtX3RyYWNrUHJp
dmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYWJlbCgpLAorICAgICAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJp
dmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT50
cmFja0luZGV4KCksCisgICAgICAgIH0sCisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5zZWxlY3Rl
ZCgpLAorICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpLAorICAgICAgICBtX3RyYWNrUHJp
dmF0ZS0+Y29uZmlndXJhdGlvbigpLAorICAgIH07CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9UcmFj
a1Byb3h5Ojp1cGRhdGVDb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaAppbmRleCA5MzcyNzA3MDBk
NDM0YjExZjAwOGYzZWM5ZjI0ZTg1Yjk0MjQ4Yjg3Li44OTUwNzRjNmYwNjM1OGNlNWQ2YTFjYTI5
OTEzM2MwN2VjMGI4ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERl
Y29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlVmlkZW9U
cmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3Rl
VmlkZW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgpAQCAtNjksNyAr
NjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2
b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKLSAgICB2b2lkIGNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0KKyAgICB2b2lkIGNvbmZp
Z3VyYXRpb25DaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24mKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsgfQogCiAgICAgLy8gVHJhY2tQ
cml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdl
ZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7
CiAKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsK
KyAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigp
OwogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOwogCiAgICAgV2Vha1B0cjxHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaAppbmRleCA5NDg0MzQxNjYyM2IzOTQxN2UzMjc0MjUyMTNlNWNm
MGJiM2ViMTFmLi5lNDhlMDc4OTgzMmZhNmNiOGIzYWFiMmYyNmE0ZGQ1ZmNlODZmOTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKQEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3Rm
L01lZGlhVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQwLDIxICszOCw2IEBAIHN0
cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKICAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6Onplcm9UaW1lKCkgfTsKICAgICBpbnQgdHJhY2tJ
bmRleDsKIAotICAgIGJvb2wgZW5hYmxlZDsKLSAgICBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0
ZTo6S2luZCBhdWRpb0tpbmQgeyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9u
ZSB9OwotCi0gICAgYm9vbCBzZWxlY3RlZDsKLSAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0
ZTo6S2luZCB2aWRlb0tpbmQgeyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9u
ZSB9OwotCi0gICAgU3RyaW5nIGNvZGVjOwotICAgIHVpbnQzMl90IHdpZHRoOwotICAgIHVpbnQz
Ml90IGhlaWdodDsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xvclNw
YWNlOwotICAgIGRvdWJsZSBmcmFtZXJhdGU7Ci0gICAgdWludDY0X3QgYml0cmF0ZTsKLSAgICB1
aW50MzJfdCBzYW1wbGVSYXRlOwotICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHM7Ci0KICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgewpAQCAtNjMsMTI3ICs0NiwyMiBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiB7CiAgICAgICAgIGVuY29kZXIgPDwgbGFuZ3VhZ2U7CiAgICAg
ICAgIGVuY29kZXIgPDwgc3RhcnRUaW1lVmFyaWFuY2U7CiAgICAgICAgIGVuY29kZXIgPDwgdHJh
Y2tJbmRleDsKLSAgICAgICAgZW5jb2RlciA8PCBlbmFibGVkOwotICAgICAgICBlbmNvZGVyIDw8
IGF1ZGlvS2luZDsKLSAgICAgICAgZW5jb2RlciA8PCBzZWxlY3RlZDsKLSAgICAgICAgZW5jb2Rl
ciA8PCB2aWRlb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgY29kZWM7Ci0gICAgICAgIGVuY29k
ZXIgPDwgd2lkdGg7Ci0gICAgICAgIGVuY29kZXIgPDwgaGVpZ2h0OwotICAgICAgICBlbmNvZGVy
IDw8IGNvbG9yU3BhY2U7Ci0gICAgICAgIGVuY29kZXIgPDwgZnJhbWVyYXRlOwotICAgICAgICBl
bmNvZGVyIDw8IGJpdHJhdGU7Ci0gICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKLSAgICAg
ICAgZW5jb2RlciA8PCBudW1iZXJPZkNoYW5uZWxzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxj
bGFzcyBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5n
PiB0cmFja0lkOwotICAgICAgICBkZWNvZGVyID4+IHRyYWNrSWQ7Ci0gICAgICAgIGlmICghdHJh
Y2tJZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpv
cHRpb25hbDxBdG9tU3RyaW5nPiBsYWJlbDsKLSAgICAgICAgZGVjb2RlciA+PiBsYWJlbDsKLSAg
ICAgICAgaWYgKCFsYWJlbCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxBdG9tU3RyaW5nPiBsYW5ndWFnZTsKLSAgICAgICAgZGVjb2Rl
ciA+PiBsYW5ndWFnZTsKLSAgICAgICAgaWYgKCFsYW5ndWFnZSkKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxNZWRpYVRpbWU+IHN0YXJ0
VGltZVZhcmlhbmNlOwotICAgICAgICBkZWNvZGVyID4+IHN0YXJ0VGltZVZhcmlhbmNlOwotICAg
ICAgICBpZiAoIXN0YXJ0VGltZVZhcmlhbmNlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGludD4gdHJhY2tJbmRleDsKLSAgICAgICAg
ZGVjb2RlciA+PiB0cmFja0luZGV4OwotICAgICAgICBpZiAoIXRyYWNrSW5kZXgpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
ZW5hYmxlZDsKLSAgICAgICAgZGVjb2RlciA+PiBlbmFibGVkOwotICAgICAgICBpZiAoIWVuYWJs
ZWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ+IGF1ZGlvS2luZDsKLSAgICAg
ICAgZGVjb2RlciA+PiBhdWRpb0tpbmQ7Ci0gICAgICAgIGlmICghYXVkaW9LaW5kKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+
IHNlbGVjdGVkOwotICAgICAgICBkZWNvZGVyID4+IHNlbGVjdGVkOwotICAgICAgICBpZiAoIXNl
bGVjdGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kPiB2aWRlb0tpbmQ7Ci0g
ICAgICAgIGRlY29kZXIgPj4gdmlkZW9LaW5kOwotICAgICAgICBpZiAoIXZpZGVvS2luZCkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IGNvZGVjOwotICAgICAgICBkZWNvZGVyID4+IGNvZGVjOwotICAgICAgICBpZiAoIWNv
ZGVjKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiB3aWR0aDsKLSAgICAgICAgZGVjb2RlciA+PiB3aWR0aDsKLSAgICAg
ICAgaWYgKCF3aWR0aCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gaGVpZ2h0OwotICAgICAgICBkZWNvZGVyID4+IGhl
aWdodDsKLSAgICAgICAgaWYgKCFoZWlnaHQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9y
U3BhY2U+IGNvbG9yU3BhY2U7Ci0gICAgICAgIGRlY29kZXIgPj4gY29sb3JTcGFjZTsKLSAgICAg
ICAgaWYgKCFjb2xvclNwYWNlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZnJhbWVyYXRlOwotICAgICAgICBkZWNvZGVy
ID4+IGZyYW1lcmF0ZTsKLSAgICAgICAgaWYgKCFmcmFtZXJhdGUpCi0gICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGJpdHJh
dGU7Ci0gICAgICAgIGRlY29kZXIgPj4gYml0cmF0ZTsKLSAgICAgICAgaWYgKCFiaXRyYXRlKQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgCi0gICAgICAgIHN0ZDo6
b3B0aW9uYWw8dWludDMyX3Q+IHNhbXBsZVJhdGU7Ci0gICAgICAgIGRlY29kZXIgPj4gc2FtcGxl
UmF0ZTsKLSAgICAgICAgaWYgKCFzYW1wbGVSYXRlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBudW1iZXJPZkNoYW5u
ZWxzOwotICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mQ2hhbm5lbHM7Ci0gICAgICAgIGlmICgh
bnVtYmVyT2ZDaGFubmVscykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgcmV0dXJuIHt7Ci0gICAgICAgICAgICBXVEZNb3ZlKCp0cmFja0lkKSwKLSAgICAgICAg
ICAgIFdURk1vdmUoKmxhYmVsKSwKLSAgICAgICAgICAgIFdURk1vdmUoKmxhbmd1YWdlKSwKLSAg
ICAgICAgICAgIFdURk1vdmUoKnN0YXJ0VGltZVZhcmlhbmNlKSwKLSAgICAgICAgICAgICp0cmFj
a0luZGV4LAotICAgICAgICAgICAgKmVuYWJsZWQsCi0gICAgICAgICAgICAqYXVkaW9LaW5kLAot
ICAgICAgICAgICAgKnNlbGVjdGVkLAotICAgICAgICAgICAgKnZpZGVvS2luZCwKLSAgICAgICAg
ICAgIFdURk1vdmUoKmNvZGVjKSwKLSAgICAgICAgICAgICp3aWR0aCwKLSAgICAgICAgICAgICpo
ZWlnaHQsCi0gICAgICAgICAgICBXVEZNb3ZlKCpjb2xvclNwYWNlKSwKLSAgICAgICAgICAgICpm
cmFtZXJhdGUsCi0gICAgICAgICAgICAqYml0cmF0ZSwKLSAgICAgICAgICAgICpzYW1wbGVSYXRl
LAotICAgICAgICAgICAgKm51bWJlck9mQ2hhbm5lbHMsCi0gICAgICAgIH19OworICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJZCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5s
YWJlbCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5sYW5ndWFnZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJp
YW5jZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi50cmFja0luZGV4KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMTRmNmEwMzcwYzA2MTFlODRkN2Fk
OTE3NzFkOGY0NjVlNWEzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gOiBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKKyAgICBib29sIHNlbGVjdGVkOworICAgIFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kIGtpbmQgeyBXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gdHJhY2tDb25maWd1cmF0aW9uOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2RlKGVuY29kZXIpOwor
ICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOworICAgICAgICBlbmNvZGVyIDw8IGtpbmQ7Cisg
ICAgICAgIGVuY29kZXIgPDwgdHJhY2tDb25maWd1cmF0aW9uOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKCFUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uOjpkZWNvZGUoZGVjb2RlciwgY29uZmlndXJhdGlvbikpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJh
dGlvbi5zZWxlY3RlZCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5raW5kKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnRyYWNrQ29u
ZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQzYTdj
ZDVlNDdlODg1MGE2OGRlMjM4OTZhMWRhZTM4ZDgzMTRmMzYuLmFmYTdhNTk0NzFlNGRhM2I4Y2E4
MDljYWE4Nzg3NWE0MWYyMjk1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE4OCw2ICs2MTg4LDggQEAKIAkJQ0RDQTg1RDQxMzJB
QzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQu
ZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3
b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlDRENEQzk5QjI0OEZFOERBMDBB
Njk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVuZG93bWVu
dFN0YXRlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENEQzk5QzI0
OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRW5kb3dtZW50U3RhdGVUcmFja2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3NTUgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDNDI3
N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENTM1NzEyNDBEREUw
NjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENTM1NzIyNDBEREUwNjAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjY5MCw2ICs2NjkyLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5
MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJCQlDREE5NTk0NDI0MTJDNERBMDA5MTBF
RUYgLyogaW9zICovLAorCQkJCUNERDA4QUMzMjc3RUJDRTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkxRDRGQjQwQjI1NjVDODlBMDAx
QUMyQUQgLyogSW5pdGlhbGl6YXRpb25TZWdtZW50SW5mby5oICovLAogCQkJCTlCMTIyOUNDMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJ
CQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmggKi8sCkBAIC02NzY1LDYgKzY3NjgsNyBAQAogCQkJCTA3RTE5RjA1MjNENERDODgwMDk0
RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3
MUJDNTdCMjNDQTUzMjQwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmggKi8sCiAJCQkJMDcxQkM1N0QyM0NBNTZEMjAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCAqLywKKwkJCQlDREQwOEFDNDI3N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1l
ZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggM2VkNzZjMzJjODE2NmYxOWMyNzE2N2E3NjUzMWM4MmMxZWQ2NTI0NS4uZjllNGIx
YzMyOTVjZTEzYjIwMmUzNzhiMGQyNzU0MWI0ZjQwNmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTI5LDE0ICsyOSwxNCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKK0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
KGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklk
ZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKQEAgLTU1LDcgKzU1LDcg
QEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQp
CiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQg
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24udHJh
Y2tJZCAhPSBtX2lkKSB7CiAgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsK
QEAgLTgwLDExICs4MCw4IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNv
bmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvCiAKICAgICBtX3RyYWNr
SW5kZXggPSBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXg7CiAgICAgbV9zdGFydFRpbWVWYXJpYW5j
ZSA9IGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgbV9raW5kID0gY29uZmln
dXJhdGlvbi5hdWRpb0tpbmQ7Ci0gICAgc2V0Q29kZWMoV1RGTW92ZShjb25maWd1cmF0aW9uLmNv
ZGVjKSk7Ci0gICAgc2V0U2FtcGxlUmF0ZShjb25maWd1cmF0aW9uLnNhbXBsZVJhdGUpOwotICAg
IHNldE51bWJlck9mQ2hhbm5lbHMoY29uZmlndXJhdGlvbi5udW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICBzZXRCaXRyYXRlKGNvbmZpZ3VyYXRpb24uYml0cmF0ZSk7CisgICAgbV9raW5kID0gY29uZmln
dXJhdGlvbi5raW5kOworICAgIHNldENvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9u
LnRyYWNrQ29uZmlndXJhdGlvbikpOwogICAgIAogICAgIEF1ZGlvVHJhY2tQcml2YXRlOjpzZXRF
bmFibGVkKGNvbmZpZ3VyYXRpb24uZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgK
aW5kZXggZjFmOWYwZjNkNjVhYzY0ODU1YjA2NWYwMjY0NGEzNjVkZTQzZWJkNC4uMmZjMDg0NTE1
ZDYyMGQwYzY1YTNkY2ViZjcwNzU4MTZjMTZmZDI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aApAQCAtMzYsMjEgKzM2LDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKQogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRp
YyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBw
bGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIs
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVySWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIEF0b21TdHJpbmcgaWQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2lkOyB9Ci0gICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCB1cGRhdGVDb25maWd1
cmF0aW9uKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogcHJpdmF0
ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcgQXVkaW9UcmFja0tpbmQgPSBXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAgICBBdWRpb1RyYWNrS2luZCBraW5kKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggZjM2NGU1YzE2NDZiNTI0YjY1MmZkNjBkNTQ4ODRmOWY0YTJiNWY4Yi4uOWI3Y2Nl
Y2NlODg2ODMzM2QyMzk4ZjlhMDFlOTM0MWMzYzQ4ZGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtNTc1LDcgKzU3NSw3IEBAIEZsb2F0U2l6ZSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5u
YXR1cmFsU2l6ZTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90
ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFj
a3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CiAgICAgICAgIHJldHVybiBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBtX2lk
LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTYwNSw3ICs2MDUsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgQVNTRVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMo
aWRlbnRpZmllcikpOwogCkBAIC03MzMsNyArNzMzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGUKICAgICAgICAgdHJhY2stPnJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kR2VuZXJpY0N1ZTo6Y3Jl
YXRlKFdURk1vdmUoY3VlRGF0YSkpKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9
IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CiAgICAgICAgIHJldHVybiBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVj
dGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTc2
Myw3ICs3NjMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3Rl
VmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaQogICAgIH0KIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgQVNTRVJUKG1fdmlkZW9UcmFj
a3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRl
eCBiMGFmZTIxZWUwM2VlMjYzNzg0MDk3MmJmMmYzMDQ0NzIzZDY3MWJkLi5lMDFmY2VjNmM4NjFi
MWY5YTIyZDA0OGNlM2I5OGI0NGY4ZWI1YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgK
QEAgLTY3LDggKzY3LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyRGF0YTsKK3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVj
dCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSBmaW5hbAogICAgIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZQpAQCAtMTE3LDEzICsxMTgsMTMgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTW9ub3RvbmljVGlt
ZSYsIGJvb2wpOwogCi0gICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAg
dm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJl
bW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBy
ZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHJl
bW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKLSAgICB2
b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGFkZFJlbW90ZVZpZGVv
VHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW90ZVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHZvaWQgYWRkUmVtb3RlVGV4dFRy
YWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlVGV4dFRyYWNrKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbgppbmRleCBhNjA2MDM5MGU5MDU5MDg2ZGY0NTNmNzU2MWQ5ZjUxN2U2YjRhZTBh
Li41ZWRmNzUzOGY1YWY2NjNiYTc4ZmU5YzY3ZTdhNjQyYWRiNmRkZWRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNDEsMTMgKzQxLDEzIEBAIG1l
c3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKIAogICAg
IEN1cnJlbnRUaW1lQ2hhbmdlZChNZWRpYVRpbWUgbWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lIHdh
bGxUaW1lLCBib29sIHRpbWVJc1Byb2dyZXNzaW5nKQogCi0gICAgQWRkUmVtb3RlQXVkaW9UcmFj
ayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdl
YktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQorICAg
IEFkZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVtb3RlQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2Vk
KFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2Vi
S2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
IAotICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24gY29uZmlndXJhdGlvbikKKyAgICBBZGRSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVS
ZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFj
a0lEKQotICAgIFJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQorICAgIFJlbW90ZVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKICAgICBBZGRSZW1vdGVUZXh0VHJhY2soV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRl
eHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgUmVt
b3ZlUmVtb3RlVGV4dFRyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0
cmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9W
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCA4YmE5MjU5ZTUwZTNlY2Ri
MGI4MmNlNjI5MzEzMmUxM2FlYjRjOGIyLi4wZjhkNWY4MzExMzg5YWRjY2NiODg4NTlhODI3NDli
ZDlhMDFkOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAtMzIsMTAgKzMyLDEx
IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24u
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6
OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVmlkZW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6IG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50
aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQpA
QCAtNTQsNyArNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRTZWxlY3Rl
ZChib29sIHNlbGVjdGVkKQogICAgIFZpZGVvVHJhY2tQcml2YXRlOjpzZXRTZWxlY3RlZChzZWxl
Y3RlZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3Vy
YXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2
b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgaWYg
KGNvbmZpZ3VyYXRpb24udHJhY2tJZCAhPSBtX2lkKSB7CiAgICAgICAgIGF1dG8gY2hhbmdlZCA9
ICFtX2lkLmlzRW1wdHkoKTsKQEAgLTc5LDE0ICs4MCw4IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvCiAKICAgICBtX3RyYWNrSW5kZXggPSBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXg7CiAgICAg
bV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFuY2U7Ci0g
ICAgbV9raW5kID0gY29uZmlndXJhdGlvbi52aWRlb0tpbmQ7Ci0gICAgbV9jb2RlYyA9IGNvbmZp
Z3VyYXRpb24uY29kZWM7Ci0gICAgbV93aWR0aCA9IGNvbmZpZ3VyYXRpb24ud2lkdGg7Ci0gICAg
bV9oZWlnaHQgPSBjb25maWd1cmF0aW9uLmhlaWdodDsKLSAgICBtX2NvbG9yU3BhY2UgPSBjb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2U7Ci0gICAgbV9mcmFtZXJhdGUgPSBjb25maWd1cmF0aW9uLmZy
YW1lcmF0ZTsKLSAgICBtX2JpdHJhdGUgPSBjb25maWd1cmF0aW9uLmJpdHJhdGU7Ci0KKyAgICBt
X2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7CisgICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0aW9uKSk7CiAgICAgVmlkZW9UcmFja1ByaXZh
dGU6OnNldFNlbGVjdGVkKGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmgKaW5kZXggNjlmY2Q4NmM2NGRjMjBmZmI2ZDk5NTE2MmZiMDhmODg1ZTExNTUx
Yy4uYzgxNjFmMjExNzY1NWRiNTZiZjExZmIxMzEwNzc1M2U4NWYxMmU4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhUGxheWVySWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZh
dGUuaD4KQEAgLTM3LDE4ICszNiwxOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BV
UHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Ci1zdHJ1
Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
CiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKQogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBw
bGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0
YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVj
dGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZp
ZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVySWRlbnRpZmllciwgaWRlbmRpZmllciwg
V1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAotICAgIHZvaWQgdXBkYXRlQ29uZmln
dXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgdXBk
YXRlQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7
CiAKICAgICB1c2luZyBWaWRlb1RyYWNrS2luZCA9IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
OjpLaW5kOwogICAgIFZpZGVvVHJhY2tLaW5kIGtpbmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2tpbmQ7IH0KQEAgLTU3LDE1ICs1Niw5IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1
YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQogICAgIGludCB0cmFja0lu
ZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0luZGV4OyB9CiAgICAgTWVkaWFUaW1l
IHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zdGFydFRpbWVWYXJp
YW5jZTsgfQotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZWM7
IH0KLSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd2lkdGg7IH0K
LSAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2hlaWdodDsgfQot
ICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KLSAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZXJhdGU7IH0KLSAgICB1aW50NjRfdCBiaXRyYXRlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9iaXRyYXRlOyB9CiAKIHByaXZhdGU6Ci0gICAgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKIAogICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCkgZmluYWw7CiAKQEAgLTc2LDEy
ICs2OSw2IEBAIHByaXZhdGU6CiAgICAgQXRvbVN0cmluZyBtX2xhYmVsOwogICAgIEF0b21TdHJp
bmcgbV9sYW5ndWFnZTsKICAgICBpbnQgbV90cmFja0luZGV4IHsgLTEgfTsKLSAgICBTdHJpbmcg
bV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQzMl90IG1faGVp
Z2h0IHsgMCB9OwotICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JT
cGFjZTsKLSAgICBkb3VibGUgbV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRy
YXRlIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1l
Ojp6ZXJvVGltZSgpIH07CiAgICAgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkZW5k
aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDI5ZWVkMzljYzU2ODk2OTQyMDliYzYxYWU4ZTE4NWQ4NTIxYmNm
M2YuLmYzY2Q4OWY2NWFmYjc3OTM1NTY2MjgzODI5Y2IxZDJiZTA2OTUxOWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0xMi0zMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ29jb2FdIEhhbmcgaW4gQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0
cmF0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzQ3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
b3cgdGhhdCB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBkeW5hbWljLCB0ZXN0IHRoZW0gd2l0aCBgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseWAuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay9hdWRpby10cmFj
ay1jb25maWd1cmF0aW9uLmh0bWw6CisgICAgICAgICogbWVkaWEvdHJhY2svdmlkZW8tdHJhY2st
Y29uZmlndXJhdGlvbi5odG1sOgorCiAyMDIxLTEyLTMxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg3MDI4KTogSW5jb3JyZWN0IHJvb3Qg
aW5saW5lIGJveCBob3Jpem9udGFsIHBvc2l0aW9uIHdoZW4gdGV4dC1hbGlnbiBvZmZzZXQgaXMg
cHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2st
Y29uZmlndXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2st
Y29uZmlndXJhdGlvbi5odG1sCmluZGV4IGE1N2UyNjMwMmYzNjEwMDc1NTZiMzQyYmYzNjNiNjcy
NmY2ZjMyODkuLmU3MzQ2MDhjNmVhN2Y1NjIyYzkzMjc3OTY3NWJmYWVlNzU1MmUwNzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0
aW9uLmh0bWwKQEAgLTksMTIgKzksMTIgQEAKIAkJCWZpbmRNZWRpYUVsZW1lbnQoKTsKIAkJCXJ1
bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvYXVkaW8tdHJhY2tzLm1wNCInKTsKIAkJCWF3YWl0
IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlv
VHJhY2tzLmxlbmd0aCcsIDAsICc+Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlk
ZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdtcDRhLjQwLjInKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5zYW1wbGVS
YXRlJywgNDQxMDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMnLCAyKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
YXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRyYXRlJywgMTAwMDAwLCAnPj0nKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCcs
IDAsICc+Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywg
J21wNGEuNDAuMicpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVk
aW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlJywgNDQxMDApOworCQkJYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5udW1iZXJPZkNoYW5uZWxzJywgMik7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5
KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAwMDAsICc+
PScpOwogCQkJZW5kVGVzdCgpOwogCQl9KTsKIAk8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAppbmRleCAx
MjAzOTk5ODIwNDVmOTMxZTg5ZjMzNjU2MzhmNTM3YjEzMjY2MDQ0Li5iNWRkNmYyN2FhMGI2YWIy
ZjIxYzkzN2IyMTU0ZTA4YzYwMzM3YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCkBAIC05LDMwICs5LDMwIEBA
CiAJCQlmaW5kTWVkaWFFbGVtZW50KCk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50
L3Rlc3QubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRl
c3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycs
ICdhdmMxLjRENDAwRCcpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwotCQkJdGVzdEV4cGVjdGVkKCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAsICc+PScp
OwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZy
YW1lcmF0ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgn
LCAnYnQ0NzBiZycpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ3NtcHRlMTcwbScpOwotCQkJdGVzdEV4
cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJh
bnNmZXInLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVv
LnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5jb2RlYycsICdhdmMxLjRENDAwRCcpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7
CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAs
ICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFj
a3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNv
bG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAn
YnQ0NzBiZycpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdzbXB0ZTE3MG0n
KTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBd
LmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOwogCQkJcnVuKCd2
aWRlby5zcmMgPSAiLi4vY29udGVudC90ZXN0LWhldmMubXA0IicpOwogCQkJYXdhaXQgd2FpdEZv
cih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3Mu
bGVuZ3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFj
a3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdodmMxLjEuNi5MOTMuQjAnKTsKLQkJCXRlc3RF
eHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVp
Z2h0JywgMjQwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5iaXRyYXRlJywgMTUwMDAwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7Ci0JCQl0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFj
ZScsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NzA5Jyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJp
ZXMnLCAnYnQ3MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKKwkJCWF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnaHZjMS4xLjYuTDkzLkIw
Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQwKTsK
KwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNv
bmZpZ3VyYXRpb24uYml0cmF0ZScsIDE1MDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0
ZScsIDMwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZp
ZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScpOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNw
YWNlLnByaW1hcmllcycsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVy
JywgJ2J0NzA5Jyk7CiAJCQllbmRUZXN0KCk7CiAJCX0pOwogCTwvc2NyaXB0Pgo=
</data>
<flag name="commit-queue"
          id="473931"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448131</attachid>
            <date>2021-12-31 12:39:05 -0800</date>
            <delta_ts>2021-12-31 14:14:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231123904.patch</filename>
            <type>text/plain</type>
            <size>101845</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5N2M4ZGM1NzgzZjlk
NDkxZTM2ZTE1Mjg4YzA1ODI3NDFlZGQ0Ni4uMGE4ZmEzZWRiOGE5ZTI2MGY5YjE2ZDJkZGM2MDRj
NmQyYmI0NGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MmNjNTc4NGJiYWI1MGJlNjlmMTRlMTgxMGY3MmEwMDE2YTYyNjAyLi5hZjQyN2RiZDFkOGM5
M2Y1Mzk3YWVjZDA2MzQ2ZWZhMDc0Y2I2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmNvZGVjcy9WaWRlb0NvbG9yU3Bh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFjZS5o
CmluZGV4IGFlOGJmMmIzMDU3MTM1NDg5N2JkNmFiMWJhZDJkZDU3MTdmMjNkMDQuLmU5MGU1MDYy
MGQzNDA0MGMwNGM1YTQ2N2VjNzVkZmQwNGJmNzIxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFjZS5oCkBAIC00MCw4ICs0MCwxMSBA
QCBjbGFzcyBWaWRlb0NvbG9yU3BhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb0NvbG9yU3Bh
Y2U+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRl
b0NvbG9yU3BhY2UoKSk7IH07CisgICAgc3RhdGljIFJlZjxWaWRlb0NvbG9yU3BhY2U+IGNyZWF0
ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFZpZGVvQ29sb3JTcGFjZShpbml0KSk7IH0KICAgICBzdGF0aWMgUmVmPFZpZGVvQ29sb3JTcGFj
ZT4gY3JlYXRlKFZpZGVvQ29sb3JTcGFjZUluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFZpZGVvQ29sb3JTcGFjZShXVEZNb3ZlKGluaXQpKSk7IH0KIAorICAgIHZvaWQgc2V0U3Rh
dGUoY29uc3QgVmlkZW9Db2xvclNwYWNlSW5pdCYgc3RhdGUpIHsgbV9zdGF0ZSA9IHN0YXRlOyB9
CisKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZpZGVvQ29sb3JQcmltYXJpZXM+JiBwcmltYXJp
ZXMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnByaW1hcmllczsgfQogICAgIHZvaWQgc2V0UHJp
bWFyaWVzKHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xvclByaW1hcmllcz4mJiBwcmltYXJpZXMpIHsg
bV9zdGF0ZS5wcmltYXJpZXMgPSBXVEZNb3ZlKHByaW1hcmllcyk7IH0KIApAQCAtNTYsNiArNTks
MTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFZpZGVvQ29sb3JTcGFjZSgpID0gZGVmYXVs
dDsKKyAgICBWaWRlb0NvbG9yU3BhY2UoY29uc3QgVmlkZW9Db2xvclNwYWNlSW5pdCYgaW5pdCkK
KyAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgeworICAgIH0KICAgICBWaWRlb0NvbG9yU3Bh
Y2UoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQpCiAgICAgICAgIDogbV9zdGF0ZShXVEZNb3Zl
KGluaXQpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiNjYyYjA4N2U3MmVkZTZlYzdjOTM1ZGZhNDdmMDdlMGRjNGQw
NzZmLi5iMGE2NDg3Y2M5ZDllOTQ4YzNiZWRhNWQ3OTA5OTRiOWY0ZGZiZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTc2
LDYgKzQ1NzYsOSBAQAogCQlDRENDOUJEMTIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmls
aXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQ0M5QkQwMjIzODdFQUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxpdGllc0Vu
Y29kaW5nSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEQ0Q0MUU4MUMzRERCMEEwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0Q0MUU2MUMz
RERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENGQUJCRDE4QzBBRjc4MDA2Rjg0NTAg
LyogSGlnaGxpZ2h0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDREQwOEFCRDI3
N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDA4QUJDMjc3RTU0MjYwMEVB
Mzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4QUMwMjc3RTU0RjAwMEVBMzc1NSAv
KiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCRjI3N0U1NEYwMDBFQTM3NTUgLyogUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4QUMyMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFDMTI3N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUNERDcwODk3MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDcwODk1
MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRERDMUU3QTE4QTk1MkYzMDAyN0E5RDQgLyogTWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0RFM0E4NTQxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREUzQTg1MjE3
RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkYuaCAqLzsgfTsKQEAgLTE2MTQ4
LDYgKzE2MTUxLDkgQEAKIAkJQ0RDRTVDRDAxNDYzM0JDOTAwRDQ3Q0NBIC8qIEV2ZW50VGFyZ2V0
RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudFRhcmdldEZhY3RvcnkuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAv
KiBIaWdobGlnaHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hs
aWdodERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkFCQkMxOEMwQUYx
OTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCRjI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZv
cm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4
QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
RDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI4ODk4LDYgKzI4OTA0LDcgQEAKIAkJCQlCQzYzNUU4QjI2NEMyQ0FFMDAw
RUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuaCAqLywKIAkJCQlCQzYzNUU5MDI2NEM0NjlGMDAw
RUYzM0EgLyogUGl4ZWxGb3JtYXQuY3BwICovLAogCQkJCUJDQTU1OTEyMjYzREJENzkwMDdGMTlC
MyAvKiBQaXhlbEZvcm1hdC5oICovLAorCQkJCUNERDA4QUJGMjc3RTU0RjAwMEVBMzc1NSAvKiBQ
bGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQkMzRTYyNDIyNjU5Nzkx
NzAwNTQ4QUNEIC8qIFBsYXRmb3JtQ29sb3JTcGFjZS5oICovLAogCQkJCTcyNkQ1NkUxMjUzQUUw
NDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi8sCiAJCQkJNzJCQUMzQTYyM0UxNzMyODAw
OEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLywKQEAgLTI4OTA3LDkgKzI4OTE0LDEx
IEBACiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmgg
Ki8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5j
cHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdl
cy5oICovLAorCQkJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oICovLAogCQkJCUNEMUY5QUZCMjZGRDM4QzkwMDYxN0VCNiAvKiBQbGF0Zm9y
bVZpZGVvQ29sb3JQcmltYXJpZXMuaCAqLywKIAkJCQlDRDFGOUFGQTI2RkQzODU5MDA2MTdFQjYg
LyogUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCAqLywKIAkJCQlDRDFGOUFGRDI2RkQzOENCMDA2
MTdFQjYgLyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNpZW50cy5oICovLAorCQkJCUNERDA4
QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgg
Ki8sCiAJCQkJQ0QxRjlBRkMyNkZEMzhDQTAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9UcmFuc2Zl
ckNoYXJhY3RlcmlzdGljcy5oICovLAogCQkJCUJDQUI0MTdGMTNFMzU2RTgwMEQ4QUFGMyAvKiBS
ZWdpb24uY3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCAq
LywKQEAgLTM0NTA4LDYgKzM0NTE3LDcgQEAKIAkJCQlCQzUzQzVGNTBEQTU2QjkyMDAyMUVCNUQg
LyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTY0MEQwMEJGMjIwMDcxQjc4
MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTlDREY0Mjc3
MTA2MzkwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QkMxOUNFMkIyNzcyQkY3QjAwNTNGNzM0IC8qIEdyYWRpZW50Q29sb3JTdG9wcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdyYWRpZW50SW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMTlDREYyMjc2RkZDNkQwMDUzRjczNCAvKiBHcmFkaWVudFJl
bmRlcmVyQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAv
KiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjQxNCw2ICszNjQyNCw3
IEBACiAJCQkJQkM2MzVFOEMyNjRDMkNBRTAwMEVGMzNBIC8qIFBpeGVsQnVmZmVyRm9ybWF0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NTkxNDI2M0RCRDc5MDA3RjE5QjMgLyogUGl4ZWxGb3Jt
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0
Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0REMDhBQzAyNzdFNTRGMDAwRUEz
NzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5OUIzRUREMTI4REI1MDIwMEU3MjZDMiAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjVFMjAwNjE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFu
aW1hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEzMTYzRTE2RUQwQ0M4MDAzNUND
MDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzY0NDUsOSArMzY0
NTYsMTEgQEAKIAkJCQkxQUQ4RjgxQjExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVn
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxh
dGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NEU4MkJCMThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERDA4QUJE
Mjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxRjlCMDIyNzAwMzIzRDAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9Db2xv
clByaW1hcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDEyNzAwMjBCNzAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDFGOUIw
MzI3MDAzMjNEMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNpZW50cy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0REMDhBQzIyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMUY5QjA0MjcwMDMy
M0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvVHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk1QkE0RkFEMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9y
bVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM3NTczLDcgKzM3NTg2LDYgQEAK
IAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJh
c2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGQUMzMEZFMTg0RkIxNDUwMDhDNEYxRSAv
KiBUcmFpbGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMTlDRTJCMjc3MkJGN0Iw
MDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjA3
MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2FjdGlvbk9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2M0JCIC8qIFRyYW5zZmVyRnVuY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM0MEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1h
dGlvbk1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmNwcAppbmRleCBhMjcxMDY3NWU4YTc0MDk0NGU2OWY5YWVmNzFlOTc4OTMxZWE4NWNm
Li42OTk0YjExMzFlMjM0OGU0ZWU5ZDI1YzA5YWNkNGRmNjU4N2MxMDNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTE3MSw2ICsxNzEsMTEgQEAgdm9pZCBB
dWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKK3Zv
aWQgQXVkaW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24t
PnNldFN0YXRlKGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdl
ZChjb25zdCBBdG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJZChpZCk7CkBAIC0yMzEsMTAgKzIz
Niw3IEBAIHZvaWQgQXVkaW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKIAogdm9pZCBB
dWRpb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKQogewotICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2RlYygpKTsKLSAgICBtX2NvbmZpZ3Vy
YXRpb24tPnNldFNhbXBsZVJhdGUobV9wcml2YXRlLT5zYW1wbGVSYXRlKCkpOwotICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0TnVtYmVyT2ZDaGFubmVscyhtX3ByaXZhdGUtPm51bWJlck9mQ2hhbm5l
bHMoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRyYXRlKG1fcHJpdmF0ZS0+Yml0cmF0
ZSgpKTsKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKG1fcHJpdmF0ZS0+Y29uZmlndXJh
dGlvbigpKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA0ZjAwNzA4MTcyZThkNWY4Mjc4YzAzYTU0OGNkZTVi
NmE2Y2FjYWM1Li40ZTE4NmMxNjYyMDdiMDdhNzhkMGU3NmVjNGQzZGQwOTA5OTYxNzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtNzksNiArNzksNyBAQCBwcml2
YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRD
aGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3Qg
UGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQ
cml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24uaAppbmRleCA2ZDcwYmNiOGQwZGExYmJmMjkyYTM1NThjYTBkOTAxYmVlZTExOGQ2
Li5lODQ3NGJiNmNhOTlkNWViNTM1ZjA1MzFiZmYyNTBhMmMyOTlkNzI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0y
NywxNiArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b25Jbml0IHsKLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZSB7IDAg
fTsKLSAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVpbnQ2NF90IGJp
dHJhdGUgeyAwIH07Ci19OwordXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDQsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKEF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uSW5pdCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24oV1RGTW92ZShpbml0KSkpOyB9CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbigpKTsgfQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbkluaXQmIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQorCiAgICAgU3Ry
aW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5jb2RlYzsgfQogICAgIHZvaWQgc2V0
Q29kZWMoU3RyaW5nIGNvZGVjKSB7IG1fc3RhdGUuY29kZWMgPSBjb2RlYzsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA3OTU3NzMzMzc5NWNkOTAzMTNm
NGEzZTI3NzhhYTBhZmZkNzNkZGMxLi43M2U5ZDBmMTdhZjU2NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5
NGY0NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTE2
NCw2ICsxNjQsMTEgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxl
Y3RlZCkKICAgICB9KTsKIH0KIAordm9pZCBWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdl
ZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQor
eworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUoY29uZmlndXJhdGlvbik7Cit9CisKIHZv
aWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmIGlkKQogewogICAgIHNl
dElkKGlkKTsKQEAgLTI2MiwxMiArMjY3LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVLaW5k
RnJvbVByaXZhdGUoKQogCiB2b2lkIFZpZGVvVHJhY2s6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9t
UHJpdmF0ZSgpCiB7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRDb2RlYyhtX3ByaXZhdGUtPmNv
ZGVjKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0V2lkdGgobV9wcml2YXRlLT53aWR0aCgp
KTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEhlaWdodChtX3ByaXZhdGUtPmhlaWdodCgpKTsK
LSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldENvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVh
dGUobV9wcml2YXRlLT5jb2xvclNwYWNlKCkpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEZy
YW1lcmF0ZShtX3ByaXZhdGUtPmZyYW1lcmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNl
dEJpdHJhdGUobV9wcml2YXRlLT5iaXRyYXRlKCkpOworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0
U3RhdGUobV9wcml2YXRlLT5jb25maWd1cmF0aW9uKCkpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IDdhOTc4
YzczMjM2MGI3Nzc3NjQ3ZjQyZWRiZjIxMDY4NmQxNDBkMTguLmUxZTBlOWIwMjU4ZDUxMjc2Mjk3
MDZkMGVjNDIyYTNjYmQwM2Y2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFj
ay5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudAogICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQg
Y29uZmlndXJhdGlvbkNoYW5nZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJp
dmF0ZSgpOyB9CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uJikgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5o
CmluZGV4IGQyMGQyNDNjYTYxMDZlZWNmMzRmOTFlNGQzNWIzY2JkYjdkOTdiMmYuLmM1OTYxZjQ5
MWQ4MDBmY2QzNGUzNDA2OWM3ZDc4ZDRlZjNiY2UyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTI3LDE5ICsyNywx
MyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNr
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlZpZGVvQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBW
aWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgewotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50
MzJfdCB3aWR0aCB7IDAgfTsKLSAgICB1aW50MzJfdCBoZWlnaHQgeyAwIH07Ci0gICAgUmVmUHRy
PFZpZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlIHsgMCB9
OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19OwordXNpbmcgVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb25Jbml0ID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3Mg
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDcsNiArNDEs
MTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNy
ZWF0ZShWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKFdURk1vdmUoaW5pdCkpKTsgfQogICAgIHN0
YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7IH0KIAorICAgIHZvaWQgc2V0U3Rh
dGUoY29uc3QgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0JiBzdGF0ZSkKKyAgICB7CisgICAg
ICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgbV9jb2xvclNwYWNlLT5zZXRTdGF0ZShtX3N0
YXRlLmNvbG9yU3BhY2UpOworICAgIH0KKwogICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhdGUuY29kZWM7IH0KICAgICB2b2lkIHNldENvZGVjKFN0cmluZyBjb2RlYykgeyBt
X3N0YXRlLmNvZGVjID0gY29kZWM7IH0KIApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAgICAg
dWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5oZWlnaHQ7IH0KICAgICB2
b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9zdGF0ZS5oZWlnaHQgPSBoZWlnaHQ7
IH0KIAotICAgIFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+IGNvbG9yU3BhY2UoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRlLmNvbG9yU3BhY2U7IH0KLSAgICB2b2lkIHNldENvbG9yU3BhY2UoUmVmUHRy
PFZpZGVvQ29sb3JTcGFjZT4mJiBjb2xvclNwYWNlKSB7IG1fc3RhdGUuY29sb3JTcGFjZSA9IFdU
Rk1vdmUoY29sb3JTcGFjZSk7IH0KKyAgICBSZWY8VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNl
KCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgdm9pZCBzZXRDb2xvclNwYWNl
KFJlZjxWaWRlb0NvbG9yU3BhY2U+JiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZN
b3ZlKGNvbG9yU3BhY2UpOyB9CiAKICAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZS5mcmFtZXJhdGU7IH0KICAgICB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJh
bWVyYXRlKSB7IG1fc3RhdGUuZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9CkBAIC02OCwxMSArNjgs
MTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbihWaWRl
b1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KQogICAgICAgICA6IG1fc3RhdGUoaW5pdCkK
KyAgICAgICAgLCBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoaW5pdC5jb2xv
clNwYWNlKSkKKyAgICB7CisgICAgfQorICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkKKyAg
ICAgICAgOiBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoKSkKICAgICB7CiAg
ICAgfQotICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IG1fc3RhdGU7CisgICAgUmVmPFZpZGVvQ29sb3JTcGFj
ZT4gbV9jb2xvclNwYWNlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5kZXggMzJlYzU4ZGU0MmZmZTlkY2Jm
NDM4YmM3YzZkN2E2YzI3OTBlMjExNS4uZjljMDAzMjQ3NDU2ZTM4ODA5ZmRmMTg3YjA3NzI3MTky
MTUwM2NmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtNjQsMTggKzY1LDE2IEBAIHB1YmxpYzoKIAog
ICAgIHVzaW5nIEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEF1ZGlvVHJh
Y2tQcml2YXRlJiwgYm9vbCBlbmFibGVkKT47CiAgICAgdm9pZCBzZXRFbmFibGVkQ2hhbmdlZENh
bGxiYWNrKEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2VuYWJsZWRDaGFu
Z2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQotICAgIAotICAgIFN0cmluZyBjb2Rl
YygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB2b2lkIHNldENvZGVjKFN0cmluZyYm
IGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsgfQotICAgIAotICAgIHVpbnQzMl90
IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KLSAgICB2b2lkIHNl
dFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVS
YXRlOyB9Ci0gICAgCi0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0
dXJuIG1fbnVtYmVyT2ZDaGFubmVsczsgfQotICAgIHZvaWQgc2V0TnVtYmVyT2ZDaGFubmVscyh1
aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKSB7IG1fbnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9m
Q2hhbm5lbHM7IH0KLSAgICAKLSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRyYXRlOyB9Ci0gICAgdm9pZCBzZXRCaXRyYXRlKHVpbnQ2NF90IGJpdHJhdGUpIHsgbV9i
aXRyYXRlID0gYml0cmF0ZTsgfQorCisgICAgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsg
fQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09
IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1
cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlv
bik7CisgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciog
bG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkF1ZGlvVHJhY2tQcml2YXRl
IjsgfQpAQCAtODcsMTAgKzg2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBXZWFrUHRy
PEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7
IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV9zYW1wbGVSYXRl
IHsgMCB9OwotICAgIHVpbnQzMl90IG1fbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50
NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
biBtX2NvbmZpZ3VyYXRpb247CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFjayBtX2VuYWJsZWRD
aGFuZ2VkQ2FsbGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCAwYWUyMDQ1MTc5
ZTE3OWM5MzdkYmY2NjNlMDc1YTk0NGU4MzZkY2Q4Li42MWVlODY0NDE3ODQyOTg5NTI1YjVmNGU4
NzY0NzAwZGNkYjI5NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMyLDEwICszMiwxMiBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKK3N0cnVj
dCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyODdiN2IzNzY2YTZjNGIyNTJjZDQ0YjU5M2M4OTVhZDQ1Mjk2MTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiUGxhdGZvcm1UcmFj
a0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGxhdGZv
cm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiA6IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uIHsK
KyAgICB1aW50MzJfdCBzYW1wbGVSYXRlIHsgMCB9OworICAgIHVpbnQzMl90IG51bWJlck9mQ2hh
bm5lbHMgeyAwIH07CisgICAgdWludDY0X3QgYml0cmF0ZSB7IDAgfTsKKworICAgIHRlbXBsYXRl
IDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKTsKK307CisKK2lubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYg
YSwgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgYikKK3sKKyAgICByZXR1
cm4gYS5jb2RlYyA9PSBiLmNvZGVjCisgICAgICAgICYmIGEuc2FtcGxlUmF0ZSA9PSBiLnNhbXBs
ZVJhdGUKKyAgICAgICAgJiYgYS5udW1iZXJPZkNoYW5uZWxzID09IGIubnVtYmVyT2ZDaGFubmVs
cworICAgICAgICAmJiBhLmJpdHJhdGUgPT0gYi5iaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjb2RlYzsKKyAgICBl
bmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgZW5jb2RlciA8PCBudW1iZXJPZkNoYW5uZWxzOwor
ICAgIGVuY29kZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Citi
b29sIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5jb2RlYykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2FtcGxl
UmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNv
bmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYml0cmF0ZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVHJhY2tDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNr
Q29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjk3YTYwMGY4NGU0MzA3NzViNTg5MDE2MGY0
YTA2N2Y0OGQyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQ
bGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgU3RyaW5nIGNvZGVjOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVmlkZW9Db2xvclNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IDI4ODc0M2RlNWY3MTMyZTYwYTBjMGNj
YzQ3MTllZDEyNWFhMGY3YTEuLjUwZTRhYjkyNzY0NTAwYTVhY2EzZjFlNzRhOWI4ODhmYTFiNTRj
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaApAQCAtNDMsNiArNDMsMTkgQEAgc3RydWN0IFBsYXRm
b3JtVmlkZW9Db2xvclNwYWNlIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UmKTsKIH07CiAKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBiKQorewor
ICAgIHJldHVybiBhLnByaW1hcmllcyA9PSBiLnByaW1hcmllcworICAgICAgICAmJiBhLnRyYW5z
ZmVyID09IGIudHJhbnNmZXIKKyAgICAgICAgJiYgYS5tYXRyaXggPT0gYi5tYXRyaXgKKyAgICAg
ICAgJiYgYS5mdWxsUmFuZ2UgPT0gYi5mdWxsUmFuZ2U7Cit9CisKK2lubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIHRlbXBsYXRl
IDxjbGFzcyBFbmNvZGVyPgogdm9pZCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmI1YWZjZTY3NGQ0OTI1Y2U4YzE5ZjMzZGYzNjgzYTMyNDZlMDVkZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJQbGF0Zm9y
bVRyYWNrQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNwYWNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgdWludDMyX3Qg
d2lkdGggeyAwIH07CisgICAgdWludDMyX3QgaGVpZ2h0IHsgMCB9OworICAgIFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7CisgICAgZG91YmxlIGZyYW1lcmF0ZSB7IDAgfTsKKyAg
ICB1aW50NjRfdCBiaXRyYXRlIHsgMCB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZv
cm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBhLCBjb25zdCBQbGF0Zm9y
bVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBiKQoreworICAgIHJldHVybiBhLmNvZGVjID09IGIu
Y29kZWMKKyAgICAgICAgJiYgYS53aWR0aCA9PSBiLndpZHRoCisgICAgICAgICYmIGEuaGVpZ2h0
ID09IGIuaGVpZ2h0CisgICAgICAgICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3BhY2UKKyAg
ICAgICAgJiYgYS5mcmFtZXJhdGUgPT0gYi5mcmFtZXJhdGUKKyAgICAgICAgJiYgYS5iaXRyYXRl
ID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+Cit2b2lkIFBsYXRm
b3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5jb2RlciA8PCB3aWR0aDsKKyAgICBl
bmNvZGVyIDw8IGhlaWdodDsKKyAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CisgICAgZW5jb2Rl
ciA8PCBmcmFtZXJhdGU7CisgICAgZW5jb2RlciA8PCBiaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmNv
ZGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29u
ZmlndXJhdGlvbi53aWR0aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaGVpZ2h0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5jb2xvclNwYWNlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5m
cmFtZXJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmJpdHJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAppbmRleCA1MmM5ZmUyMjBmMzBhM2Yz
MTk1NzI5MzJkMzZhYzZkOTkzMTBiMzU2Li42MjNmOTQxYTY3ZTg2YTUxMDIzMDEyMGY3YWIwMDg5
YjFjM2UyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShWSURF
TykKIAotI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJh
c2UuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgpAQCAtNjIsMzYgKzYyLDIzIEBAIHB1YmxpYzoKICAgICB1c2luZyBTZWxl
Y3RlZENoYW5nZWRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoVmlkZW9UcmFja1ByaXZhdGUmLCBi
b29sIHNlbGVjdGVkKT47CiAgICAgdm9pZCBzZXRTZWxlY3RlZENoYW5nZWRDYWxsYmFjayhTZWxl
Y3RlZENoYW5nZWRDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1fc2VsZWN0ZWRDaGFuZ2VkQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCi0gICAgdmlydHVhbCBTdHJpbmcgY29kZWMoKSBj
b25zdCB7IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvZGVjKFN0cmlu
ZyYmIGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsgfQotICAgIAotICAgIHZpcnR1
YWwgdWludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldFdpZHRoKHVpbnQzMl90IHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQotICAg
IAotICAgIHZpcnR1YWwgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SGVpZ2h0KHVpbnQzMl90IGhlaWdodCkgeyBtX2hlaWdo
dCA9IGhlaWdodDsgfQotICAgIAotICAgIHZpcnR1YWwgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JTcGFjZTsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRDb2xvclNwYWNlKFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiYgY29sb3JTcGFjZSkg
eyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2UpOyB9Ci0gICAgCi0gICAgdmlydHVh
bCBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZXJhdGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0RnJhbWVyYXRlKGRvdWJsZSBmcmFtZXJhdGUpIHsgbV9mcmFtZXJhdGUg
PSBmcmFtZXJhdGU7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQ2NF90IGJpdHJhdGUoKSBjb25z
dCB7IHJldHVybiBtX2JpdHJhdGU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Qml0cmF0ZSh1aW50
NjRfdCBiaXRyYXRlKSB7IG1fYml0cmF0ZSA9IGJpdHJhdGU7IH0KLSAgICAKKyAgICBjb25zdCBQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKFBsYXRm
b3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAgICAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24gPT0gbV9jb25maWd1cmF0aW9uKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworICAgICAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+Y29uZmlndXJhdGlvbkNoYW5nZWQo
bV9jb25maWd1cmF0aW9uKTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBWaWRlb1RyYWNrUHJp
dmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50PiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1fc2VsZWN0ZWQgeyBm
YWxzZSB9OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAgIHVpbnQzMl90IG1fd2lkdGggeyAwIH07
Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0gICAgUGxhdGZvcm1WaWRlb0NvbG9yU3Bh
Y2UgbV9jb2xvclNwYWNlOwotICAgIGRvdWJsZSBtX2ZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1aW50
NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
biBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBTZWxlY3RlZENoYW5nZWRDYWxsYmFjayBtX3NlbGVj
dGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCmluZGV4IGQ1MWIzNzIx
MjNhZTQwNDBiZDBlNjU3OGI0YTA4OTc1OTk0MWVlMGQuLjY1YjdiZjY2NzcxODdkOWQyYzEwMTM4
NWZlMzczYzU5NDcxZWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaApAQCAtMzEsMTAgKzMxLDEy
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb247CisKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rl
ZENoYW5nZWQoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdl
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oCmluZGV4IGQyYmM1ZjI2NmYyNTAw
M2YwYjc2NmVhMDkzODM3NjRiM2Q5N2UzYWMuLjU2M2QwMWEzMDg3NGI5OWQ3ZjFhNjRhZWZmMmI4
YjhmNmExYTkzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJWaWRlb1Ry
YWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQ1LDggKzQ2LDEwIEBAIHR5
cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU2VsZWN0aW9u
T3B0aW9uQVZGT2JqQzsKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uOwor
c3RydWN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb247CiAKLWNsYXNzIEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGwgeworY2xhc3MgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbCA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbChBVlBsYXllckl0ZW1UcmFjayopOwpAQCAtNzEsNiArNzQsMjAgQEAgcHVi
bGljOgogCiAgICAgaW50IHRyYWNrSUQoKSBjb25zdDsKIAorICAgIHN0YXRpYyBTdHJpbmcgbGFu
Z3VhZ2VGb3JBVkFzc2V0VHJhY2soQVZBc3NldFRyYWNrKik7CisgICAgc3RhdGljIFN0cmluZyBs
YW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAq
KTsKKworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gdmlkZW9UcmFja0NvbmZp
Z3VyYXRpb24oKSBjb25zdDsKKyAgICB1c2luZyBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2Vy
dmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNldFZpZGVvVHJhY2tDb25maWd1cmF0
aW9uT2JzZXJ2ZXIoVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIpIHsg
bV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gb2JzZXJ2ZXI7IH0KKworICAgIFBs
YXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gYXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSBj
b25zdDsKKyAgICB1c2luZyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2
ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNldEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIo
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9hdWRpb1RyYWNr
Q29uZmlndXJhdGlvbk9ic2VydmVyID0gb2JzZXJ2ZXI7IH0KKworcHJpdmF0ZToKKyAgICB2b2lk
IGluaXRpYWxpemVBc3NldFRyYWNrKCk7CisKICAgICBTdHJpbmcgY29kZWMoKSBjb25zdDsKICAg
ICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0OwogICAgIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0OwpA
QCAtNzksMTQgKzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3Q7
CiAgICAgdWludDMyX3Qgc2FtcGxlUmF0ZSgpIGNvbnN0OwogICAgIHVpbnQzMl90IG51bWJlck9m
Q2hhbm5lbHMoKSBjb25zdDsKLSAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZBc3NldFRy
YWNrKEFWQXNzZXRUcmFjayopOwotICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VGb3JBVk1lZGlh
U2VsZWN0aW9uT3B0aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKik7CiAKLXByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPEFWUGxheWVySXRlbVRyYWNrPiBtX3BsYXllckl0ZW1UcmFjazsKLSAgICBS
ZXRhaW5QdHI8QVZBc3NldFRyYWNrPiBtX2Fzc2V0VHJhY2s7CiAgICAgUmV0YWluUHRyPEFWUGxh
eWVySXRlbT4gbV9wbGF5ZXJJdGVtOwogICAgIFJlZlB0cjxNZWRpYVNlbGVjdGlvbk9wdGlvbkFW
Rk9iakM+IG1fbWVkaWFTZWxlY3Rpb25PcHRpb247CisgICAgUmV0YWluUHRyPEFWQXNzZXRUcmFj
az4gbV9hc3NldFRyYWNrOworICAgIFdlYWtQdHI8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNl
cnZlcj4gbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyOworICAgIFdlYWtQdHI8QXVk
aW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcj4gbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9i
c2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3MmQ1MTZhNTYzYjg0NjU0ODA2Zjky
Li5lNzM1ZmE5ZWY0NzM3MzZjOGIxMTI3NzkwOTg0NDM2MzczMjRiMGUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQpAQCAtMzAsNiArMzAsOCBA
QAogCiAjaW1wb3J0ICJGb3JtYXREZXNjcmlwdGlvblV0aWxpdGllcy5oIgogI2ltcG9ydCAiTWVk
aWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24u
aCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNz
ZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWTWVkaWFTZWxlY3Rpb25Hcm91cC5o
PgpAQCAtMzcsNiArMzksNyBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbS5o
PgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRlbVRyYWNrLmg+CiAjaW1wb3J0IDxv
YmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpbXBvcnQgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmg+CkBAIC00OCwyNSArNTEsNTAgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBOU0FycmF5KiBhc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKCkKK3sK
KyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmpl
Y3RzOkAiZm9ybWF0RGVzY3JpcHRpb25zIiwgQCJlc3RpbWF0ZWREYXRhUmF0ZSIsIEAibm9taW5h
bEZyYW1lUmF0ZSIsIG5pbF07CisgICAgcmV0dXJuIGtleXM7Cit9CisKIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwoQVZQbGF5ZXJJdGVtVHJhY2sq
IHRyYWNrKQogICAgIDogbV9wbGF5ZXJJdGVtVHJhY2sodHJhY2spCiAgICAgLCBtX2Fzc2V0VHJh
Y2soW3RyYWNrIGFzc2V0VHJhY2tdKQogeworICAgIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CiB9
CiAKIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwo
QVZBc3NldFRyYWNrKiB0cmFjaykKICAgICA6IG1fYXNzZXRUcmFjayh0cmFjaykKIHsKKyAgICBp
bml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYgb3B0
aW9uKQogICAgIDogbV9tZWRpYVNlbGVjdGlvbk9wdGlvbigmb3B0aW9uKQorICAgICwgbV9hc3Nl
dFRyYWNrKG9wdGlvbi5hc3NldFRyYWNrKCkpCiB7CisgICAgaW5pdGlhbGl6ZUFzc2V0VHJhY2so
KTsKIH0KIAogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6fkFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwoKQogewogfQorCit2b2lkIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmluaXRpYWxp
emVBc3NldFRyYWNrKCkKK3sKKyAgICBpZiAoIW1fYXNzZXRUcmFjaykKKyAgICAgICAgcmV0dXJu
OworCisgICAgW21fYXNzZXRUcmFjayAgbG9hZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czph
c3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKCkgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtU
aGlzID0gV2Vha1B0cih0aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0geworICAgICAgICAgICAg
aWYgKHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2
ZXIpCisgICAgICAgICAgICAgICAgKCp3ZWFrVGhpcy0+bV9hdWRpb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyKSgpOworICAgICAgICAgICAgaWYgKHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX3Zp
ZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgKCp3ZWFrVGhp
cy0+bV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKSgpOworICAgICAgICB9KTsKKyAg
ICB9XTsKK30KICAgICAKIGJvb2wgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6ZW5hYmxlZCgp
IGNvbnN0CiB7CkBAIC0yMzIsNiArMjYwLDI4IEBAIFN0cmluZyBBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsOjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZNZWRpYVNlbGVjCiAg
ICAgcmV0dXJuIGxhbmd1YWdlOwogfQogCitQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9u
IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4geworICAgICAgICB7IGNvZGVjKCkgfSwKKyAgICAgICAgd2lkdGgo
KSwKKyAgICAgICAgaGVpZ2h0KCksCisgICAgICAgIGNvbG9yU3BhY2UoKSwKKyAgICAgICAgZnJh
bWVyYXRlKCksCisgICAgICAgIGJpdHJhdGUoKSwKKyAgICB9OworfQorCitQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4geworICAgICAgICB7IGNvZGVjKCkg
fSwKKyAgICAgICAgc2FtcGxlUmF0ZSgpLAorICAgICAgICBudW1iZXJPZkNoYW5uZWxzKCksCisg
ICAgICAgIGJpdHJhdGUoKSwKKyAgICB9OworfQorCiBpbnQgQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbDo6dHJhY2tJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fYXNzZXRUcmFjaykKQEAgLTI1Niw3
ICszMDYsNyBAQCBzdGF0aWMgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrRm9yKGNvbnN0IEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwmIGltcGwpCiBzdGF0aWMgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbkZvcihjb25zdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsJiBp
bXBsKQogewogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJhY2tGb3IoaW1wbCk7Ci0gICAg
aWYgKCFhc3NldFRyYWNrIHx8ICFhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5jb3VudCkK
KyAgICBpZiAoIWFzc2V0VHJhY2sgfHwgW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpA
ImZvcm1hdERlc2NyaXB0aW9ucyIgZXJyb3I6bmlsXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVk
IHx8ICFhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5jb3VudCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+
KGFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zWzBdKTsKIH0KQEAgLTI5MSwxMCArMzQxLDEy
IEBAIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmNv
bG9yU3BhY2UoKSBjb25zdAogCiBkb3VibGUgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6ZnJh
bWVyYXRlKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0Zv
cigqdGhpcykpCi0gICAgICAgIHJldHVybiBhc3NldFRyYWNrLm5vbWluYWxGcmFtZVJhdGU7Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgYXV0byBhc3NldFRy
YWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CisgICAgaWYgKCFhc3NldFRyYWNrKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpAIm5v
bWluYWxGcmFtZVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFzc2V0VHJhY2subm9taW5hbEZyYW1lUmF0ZTsK
IH0KIAogdWludDMyX3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2FtcGxlUmF0ZSgpIGNv
bnN0CkBAIC0zMjgsNiArMzgwLDggQEAgdWludDY0X3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bDo6Yml0cmF0ZSgpIGNvbnN0CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0Zvcigq
dGhpcyk7CiAgICAgaWYgKCFhc3NldFRyYWNrKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAo
W2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpAImVzdGltYXRlZERhdGFSYXRlIiBlcnJv
cjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCisgICAgICAgIHJldHVybiAwOwogICAg
IGlmICghc3RkOjppc2Zpbml0ZShhc3NldFRyYWNrLmVzdGltYXRlZERhdGFSYXRlKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFzc2V0VHJhY2suZXN0aW1hdGVkRGF0YVJhdGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCmlu
ZGV4IDg5MDA1MTAxZWU2ZDQ3Nzc4OTA2MWQ3Mjc3YWZjNWE0YTY4NmE4ZDAuLmEyNzdmNmY2YTFm
ZGM3MzM2YTFiY2FiMzg0NThmYjc0MGUzZjdlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYg
RU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKKyNpbmNs
dWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBPQkpDX0NM
QVNTIEFWUGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBAIHByaXZhdGU6CiAgICAgQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKik7CiAgICAgQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2Jq
QyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmKTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMoc3RkOjp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYpOwogCiAg
ICAgdm9pZCByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKKyAgICB2b2lkIGF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPiBtX2ltcGw7CisKKyAgICB1c2luZyBBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICBBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyIG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQpp
bmRleCAxY2I5NTg5ZDg1ZTkwMDkxMDEyYmU5YTcwNDk1OWFmMTFkYTE4MzNiLi44ZTVlZmVlYmJl
NjQ5YTI0ZTgyYzExNDQwNmY1NjI4MWY3ZGEwNDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tCkBAIC0zMywxNyArMzMsMjkgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1Ry
YWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQotICAgIDogbV9pbXBs
KG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQorICAgIDogQXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4odHJhY2spKQoreworfQorCitBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQorICAgIDogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQog
ewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCiBBdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFW
Rk9iakMmIG9wdGlvbikKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGw+KG9wdGlvbikpCisgICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVu
aXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPihvcHRpb24pKQoreworfQorCitBdWRpb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9w
dHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4mJiBpbXBsKQorICAgIDogbV9pbXBsKFdURk1v
dmUoaW1wbCkpCisgICAgLCBtX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoW3RoaXNd
IHsgYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7IH0pCiB7CisgICAgbV9pbXBsLT5z
ZXRBdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRp
b25PYnNlcnZlcik7CiAgICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKKwogdm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCiB7
CiAgICAgLy8gRG9uJ3QgY2FsbCB0aGlzLT5zZXRFbmFibGVkKCkgYmVjYXVzZSBpdCBhbHNvIHNl
dHMgdGhlIGVuYWJsZWQgc3RhdGUgb2YgdGhlCkBAIC01NSwxMSArNjcsMTIgQEAgdm9pZCBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0
SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRMYWJlbChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNl
dExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2Rl
YygpKTsKLSAgICBzZXRTYW1wbGVSYXRlKG1faW1wbC0+c2FtcGxlUmF0ZSgpKTsKLSAgICBzZXRO
dW1iZXJPZkNoYW5uZWxzKG1faW1wbC0+bnVtYmVyT2ZDaGFubmVscygpKTsKLSAgICBzZXRCaXRy
YXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAgICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+YXVk
aW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7Cit9CiAKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVBVkZP
YmpDOjphdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKQoreworICAgIHNldENvbmZpZ3Vy
YXRpb24obV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKIH0KIAogdm9pZCBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakM6OnNldFBsYXllckl0ZW1UcmFjayhBVlBsYXllckl0ZW1UcmFj
ayAqdHJhY2spCkBAIC03MywxMiArODYsNiBAQCBBVlBsYXllckl0ZW1UcmFjayogQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDOjpwbGF5ZXJJdGVtVHJhY2soKQogICAgIHJldHVybiBtX2ltcGwtPnBs
YXllckl0ZW1UcmFjaygpOwogfQogCi1BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VV
bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQotewotICAgIHJlc2V0UHJv
cGVydGllc0Zyb21UcmFjaygpOwotfQotCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQogewogICAgIG1faW1wbCA9IG1ha2VV
bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKaW5kZXggOWQ5ZDY0
YWEyNmFmNzIzYjQ2YmE4NzI0OGEzOTFkMjllOGNhOGIxYy4uZWFmM2YxMThiMjVhNDM4ODk5MjJm
NTZjNmJkZWNmZDljNThjZjhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCkBAIC0zMCwyNCArMzAsMzAgQEAKIAogI2ltcG9y
dCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24u
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayogdHJhY2spCi0gICAgOiBt
X2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCisgICAg
OiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAK
IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNz
ZXRUcmFjayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPih0cmFjaykpCisgICAgOiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVu
aXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQot
ICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9u
KSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCit7Cit9CisKK1ZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPiYmIGltcGwpCisgICAgOiBtX2ltcGwoV1RGTW92ZShpbXBsKSkKKyAgICAs
IG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihbdGhpc10geyB2aWRlb1RyYWNrQ29u
ZmlndXJhdGlvbkNoYW5nZWQoKTsgfSkKIHsKKyAgICBtX2ltcGwtPnNldFZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uT2JzZXJ2ZXIobV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKTsKICAg
ICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIApAQCAtNjIsMTUgKzY4LDEyIEBAIHZv
aWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQog
ICAgIHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgpKTsK
ICAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1faW1w
bC0+Y29kZWMoKSk7Ci0gICAgc2V0V2lkdGgobV9pbXBsLT53aWR0aCgpKTsKLSAgICBzZXRIZWln
aHQobV9pbXBsLT5oZWlnaHQoKSk7Ci0gICAgc2V0Q29sb3JTcGFjZShtX2ltcGwtPmNvbG9yU3Bh
Y2UoKSk7Ci0gICAgc2V0RnJhbWVyYXRlKG1faW1wbC0+ZnJhbWVyYXRlKCkpOwotICAgIHNldEJp
dHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOwotCi0gICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMt
PmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CisgICAg
c2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkpOworfQor
Cit2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6dmlkZW9UcmFja0NvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkKK3sKKyAgICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFja0NvbmZp
Z3VyYXRpb24oKSk7CiB9CiAKIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpzZXRQbGF5
ZXJJdGVtVHJhY2soQVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAppbmRleCBmNDVhZmU0ZjY5YWQx
MzgyYmIwZjE4ZmNjNDJmZjViYTk2OWQ5MWIzLi5mZjBjZGZiMzZlNTE5MjIyOWI4ZTY1NTFlM2Yx
ZGU4MzZkYzcxNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShWSURFTykKIAog
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQVZGLmgiCisjaW5jbHVkZSA8d3RmL09ic2VydmVy
Lmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwogT0JKQ19DTEFTUyBBVlBsYXllckl0ZW07
CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAgIGV4cGxpY2l0IFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBleHBsaWNpdCBWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDJik7CisgICAgZXhwbGljaXQg
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPiYmKTsKIAogICAgIHZvaWQgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7Cisg
ICAgdm9pZCB2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4gbV9pbXBsOworCisgICAgdXNpbmcgVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciBtX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2Jz
ZXJ2ZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDY4NjE4YzcyN2Ey
ZTc1MzgxMmViN2RiNTgzYmEwYmVlN2YwMmU5ODEuLjc2YTBhYmM4ZTk5YTdlYmY2NmYxOTczNTQ4
ZWU2NTYwZjY2NGU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01MCwxMiArNTAs
NyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXNldFByb3Bl
cnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFiZWwo
bV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkpOwot
ICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0gICAgc2V0V2lkdGgobV9pbXBsLT53aWR0
aCgpKTsKLSAgICBzZXRIZWlnaHQobV9pbXBsLT5oZWlnaHQoKSk7Ci0gICAgc2V0Q29sb3JTcGFj
ZShtX2ltcGwtPmNvbG9yU3BhY2UoKSk7Ci0gICAgc2V0RnJhbWVyYXRlKG1faW1wbC0+ZnJhbWVy
YXRlKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOworICAgIHNldENvbmZp
Z3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKIH0KIAogdm9pZCBW
aWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0QXNzZXRUcmFjayhBVkFzc2V0
VHJhY2sgKnRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKaW5kZXggMTFjYWM4
MDAyMzFlMDhjNTNlYjZlMzhkODRmNmIzMzczYzkxYmNmYi4uNTc3YjExMDAwYmUxMzU3ZjIzNWE5
MTdhZjQ3NTVhYmE3ZGRhZDhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCkBA
IC00MCw2ICs0MCw4IEBAIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFja1ByaXZhdGVX
ZWJNKHdlYm06OlRyYWNrRW50cnkmJiB0cmFja0VudHJ5KQogewogICAgIGlmIChtX3RyYWNrLmlz
X2VuYWJsZWQuaXNfcHJlc2VudCgpKQogICAgICAgICBzZXRTZWxlY3RlZChtX3RyYWNrLmlzX2Vu
YWJsZWQudmFsdWUoKSk7CisKKyAgICB1cGRhdGVDb25maWd1cmF0aW9uKCk7CiB9CiAKIEF0b21T
dHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjppZCgpIGNvbnN0CkBAIC0xNDUsNiArMTQ3LDE3
IEBAIGRvdWJsZSBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmZyYW1lcmF0ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK3ZvaWQgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjp1cGRhdGVDb25maWd1
cmF0aW9uKCkKK3sKKyAgICBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24geworICAgICAgICB7IC5jb2RlYyA9IGNvZGVjKCkgfSwKKyAgICAgICAgLndpZHRoID0g
d2lkdGgoKSwKKyAgICAgICAgLmhlaWdodCA9IGhlaWdodCgpLAorICAgICAgICAuZnJhbWVyYXRl
ID0gZnJhbWVyYXRlKCksCisgICAgfTsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9U
cmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCA5OWZkMDdmZTJkNzFkOTJkYzJlMWM5M2U5
NzYxY2VlMWM2NmE0YjQwLi43YmQxOWU5YmQ3MzYwMTE4MDhjMGYwZTQzNGM0NDhmMmQ0YTAyMmQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDMsMTMgKzQzLDE2IEBAIHB1Ymxp
YzoKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHRyYWNrVUlEKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxib29s
PiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0
IGZpbmFsOwotICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3Qg
aGVpZ2h0KCkgY29uc3QgZmluYWw7Ci0gICAgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IGZpbmFs
OwogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5
JiYpOworCisgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7CisgICAgdWludDMyX3Qgd2lkdGgoKSBj
b25zdDsKKyAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsKKyAgICBkb3VibGUgZnJhbWVyYXRl
KCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKCk7CisKICAgICB3ZWJtOjpU
cmFja0VudHJ5IG1fdHJhY2s7CiAgICAgbXV0YWJsZSBBdG9tU3RyaW5nIG1fdHJhY2tJRDsKICAg
ICBtdXRhYmxlIEF0b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWU5ZDZhZWQ4OWYxMWI5MjFjZTEwZjk2MTVhOWVm
ODM1NjViYzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvVHJhY2tQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIDogVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlOjpLaW5kIGtpbmQgeyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
S2luZDo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24gdHJhY2tDb25maWd1cmF0aW9uOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBl
bmNvZGVyIDw8IGVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIgPDwga2luZDsKKyAgICAgICAgZW5j
b2RlciA8PCB0cmFja0NvbmZpZ3VyYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNz
IERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIGNvbmZp
Z3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoIVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb246OmRlY29kZShkZWNvZGVyLCBjb25maWd1cmF0aW9uKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmVuYWJs
ZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvbmZpZ3VyYXRpb24ua2luZCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24p
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmlu
ZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0ZDFmYThhNTMuLjgxMDQwMDI4ZTE3
MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC0yOSwx
MSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYgKzU0LDE5IEBAIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiAgICAgbV90cmFja1ByaXZhdGUt
PmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVt
b3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKK0F1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQog
ewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5pZCgpLAotICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdl
KCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpLAotICAgICAg
ICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB7CisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYWJlbCgp
LAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQ
cml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCksCi0gICAgICAgIGZh
bHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSwKLSAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAgICAgIDAsCi0gICAgICAgIDAsCi0g
ICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmJpdHJhdGUo
KSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJhdGUoKSwKLSAgICAgICAgbV90cmFj
a1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmNv
bmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2ICs5MSwxMSBAQCB2b2lkIFJlbW90
ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQogICAgIGNvbmZp
Z3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25m
aWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9CisKIHZvaWQg
UmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpCiB7CiAg
ICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaAppbmRleCBkMmRlYzQ1YTZkYjNm
ZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4yZjQ1ODcwODAwOWU4MDE3YWI4NWQzNDMzNzgx
OGJlNjA4NGZmY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIERlY29k
ZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbmU7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1
ZGlvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KQEAgLTY5LDYgKzY5
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9p
ZCBlbmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKSBmaW5h
bDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CkBAIC03Niw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQg
d2lsbFJlbW92ZSgpIGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uKCk7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAK
ICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggMmVkZWUxOTg3MWM3ZDM3YTQ1NDVlM2VjNTA1
NmI2MTYzMzAxYTNlZC4uYjIxNGFlYTEzYThkNWY3Yjc2ZjY1MmM3ZGM2ZTVjNDY4OGQ1NDUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJh
Y2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvVHJhY2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAi
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAt
NTQsMjMgKzU0LDIwIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQ
cm94eSgpCiAgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0
aW9uKCkKK1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQogewotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbiB7IH07Ci0gICAgY29uZmlndXJhdGlvbi50cmFja0lkID0g
bV90cmFja1ByaXZhdGUtPmlkKCk7Ci0gICAgY29uZmlndXJhdGlvbi5sYWJlbCA9IG1fdHJhY2tQ
cml2YXRlLT5sYWJlbCgpOwotICAgIGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UgPSBtX3RyYWNrUHJp
dmF0ZS0+bGFuZ3VhZ2UoKTsKLSAgICBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXggPSBtX3RyYWNr
UHJpdmF0ZS0+dHJhY2tJbmRleCgpOwotICAgIGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFu
Y2UgPSBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKLSAgICBjb25maWd1cmF0
aW9uLnNlbGVjdGVkID0gbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCk7Ci0gICAgY29uZmlndXJh
dGlvbi52aWRlb0tpbmQgPSBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpOwotICAgIGNvbmZpZ3VyYXRp
b24uY29kZWMgPSBtX3RyYWNrUHJpdmF0ZS0+Y29kZWMoKTsKLSAgICBjb25maWd1cmF0aW9uLndp
ZHRoID0gbV90cmFja1ByaXZhdGUtPndpZHRoKCk7Ci0gICAgY29uZmlndXJhdGlvbi5oZWlnaHQg
PSBtX3RyYWNrUHJpdmF0ZS0+aGVpZ2h0KCk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2xvclNwYWNl
ID0gbV90cmFja1ByaXZhdGUtPmNvbG9yU3BhY2UoKTsKLSAgICBjb25maWd1cmF0aW9uLmZyYW1l
cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5mcmFtZXJhdGUoKTsKLSAgICBjb25maWd1cmF0aW9uLmJp
dHJhdGUgPSBtX3RyYWNrUHJpdmF0ZS0+Yml0cmF0ZSgpOwotICAgIHJldHVybiBjb25maWd1cmF0
aW9uOworICAgIHJldHVybiB7CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5pZCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhYmVsKCksCisgICAgICAgICAg
ICBtX3RyYWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5zdGFydFRpbWVWYXJpYW5jZSgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPnRyYWNr
SW5kZXgoKSwKKyAgICAgICAgfSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCks
CisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5jb25maWd1cmF0aW9uKCksCisgICAgfTsKIH0KIAogdm9pZCBSZW1vdGVWaWRlb1RyYWNrUHJv
eHk6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCmluZGV4IDkzNzI3MDcwMGQ0MzRi
MTFmMDA4ZjNlYzlmMjRlODViOTQyNDhiODcuLjg5NTA3NGM2ZjA2MzU4Y2U1ZDZhMWNhMjk5MTMz
YzA3ZWMwYjg4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgRGVjb2Rl
cjsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Owotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNr
UHJveHkgZmluYWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVWaWRl
b1RyYWNrUHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CkBAIC02OSw3ICs2OSw3
IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQg
c2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5n
ZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsgfQorICAgIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
biYpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9CiAKICAgICAvLyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OwpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAot
ICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOworICAg
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CiAg
ICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKCk7CiAKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oCmluZGV4IDk0ODQzNDE2NjIzYjM5NDE3ZTMyNzQyNTIxM2U1Y2YwYmIz
ZWIxMWYuLmU0OGUwNzg5ODMyZmE2Y2I4YjNhYWIyZjI2YTRkZDVmY2U4NmY5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDAsMjEgKzM4LDYgQEAgc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgIE1lZGlhVGltZSBzdGFydFRp
bWVWYXJpYW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIGludCB0cmFja0luZGV4
OwogCi0gICAgYm9vbCBlbmFibGVkOwotICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpL
aW5kIGF1ZGlvS2luZCB7IFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07
Ci0KLSAgICBib29sIHNlbGVjdGVkOwotICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpL
aW5kIHZpZGVvS2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07
Ci0KLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgd2lkdGg7Ci0gICAgdWludDMyX3Qg
aGVpZ2h0OwotICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7
Ci0gICAgZG91YmxlIGZyYW1lcmF0ZTsKLSAgICB1aW50NjRfdCBiaXRyYXRlOwotICAgIHVpbnQz
Ml90IHNhbXBsZVJhdGU7Ci0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVsczsKLQogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICB7CkBAIC02MywxMjcgKzQ2LDIyIEBAIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBsYW5ndWFnZTsKICAgICAgICAg
ZW5jb2RlciA8PCBzdGFydFRpbWVWYXJpYW5jZTsKICAgICAgICAgZW5jb2RlciA8PCB0cmFja0lu
ZGV4OwotICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7Ci0gICAgICAgIGVuY29kZXIgPDwgYXVk
aW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOwotICAgICAgICBlbmNvZGVyIDw8
IHZpZGVvS2luZDsKLSAgICAgICAgZW5jb2RlciA8PCBjb2RlYzsKLSAgICAgICAgZW5jb2RlciA8
PCB3aWR0aDsKLSAgICAgICAgZW5jb2RlciA8PCBoZWlnaHQ7Ci0gICAgICAgIGVuY29kZXIgPDwg
Y29sb3JTcGFjZTsKLSAgICAgICAgZW5jb2RlciA8PCBmcmFtZXJhdGU7Ci0gICAgICAgIGVuY29k
ZXIgPDwgYml0cmF0ZTsKLSAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVSYXRlOwotICAgICAgICBl
bmNvZGVyIDw8IG51bWJlck9mQ2hhbm5lbHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNz
IERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IHRy
YWNrSWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gdHJhY2tJZDsKLSAgICAgICAgaWYgKCF0cmFja0lk
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPEF0b21TdHJpbmc+IGxhYmVsOwotICAgICAgICBkZWNvZGVyID4+IGxhYmVsOwotICAgICAg
ICBpZiAoIWxhYmVsKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IGxhbmd1YWdlOwotICAgICAgICBkZWNvZGVyID4+
IGxhbmd1YWdlOwotICAgICAgICBpZiAoIWxhbmd1YWdlKQotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gc3RhcnRUaW1l
VmFyaWFuY2U7Ci0gICAgICAgIGRlY29kZXIgPj4gc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgICAg
IGlmICghc3RhcnRUaW1lVmFyaWFuY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50PiB0cmFja0luZGV4OwotICAgICAgICBkZWNv
ZGVyID4+IHRyYWNrSW5kZXg7Ci0gICAgICAgIGlmICghdHJhY2tJbmRleCkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBlbmFi
bGVkOwotICAgICAgICBkZWNvZGVyID4+IGVuYWJsZWQ7Ci0gICAgICAgIGlmICghZW5hYmxlZCkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZD4gYXVkaW9LaW5kOwotICAgICAgICBk
ZWNvZGVyID4+IGF1ZGlvS2luZDsKLSAgICAgICAgaWYgKCFhdWRpb0tpbmQpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2Vs
ZWN0ZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gc2VsZWN0ZWQ7Ci0gICAgICAgIGlmICghc2VsZWN0
ZWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ+IHZpZGVvS2luZDsKLSAgICAg
ICAgZGVjb2RlciA+PiB2aWRlb0tpbmQ7Ci0gICAgICAgIGlmICghdmlkZW9LaW5kKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gY29kZWM7Ci0gICAgICAgIGRlY29kZXIgPj4gY29kZWM7Ci0gICAgICAgIGlmICghY29kZWMp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IHdpZHRoOwotICAgICAgICBkZWNvZGVyID4+IHdpZHRoOwotICAgICAgICBp
ZiAoIXdpZHRoKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBoZWlnaHQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGVpZ2h0
OwotICAgICAgICBpZiAoIWhlaWdodCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFj
ZT4gY29sb3JTcGFjZTsKLSAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOwotICAgICAgICBp
ZiAoIWNvbG9yU3BhY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAg
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZXJhdGU7Ci0gICAgICAgIGRlY29kZXIgPj4g
ZnJhbWVyYXRlOwotICAgICAgICBpZiAoIWZyYW1lcmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gYml0cmF0ZTsK
LSAgICAgICAgZGVjb2RlciA+PiBiaXRyYXRlOwotICAgICAgICBpZiAoIWJpdHJhdGUpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICAKLSAgICAgICAgc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gc2FtcGxlUmF0ZTsKLSAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVSYXRl
OwotICAgICAgICBpZiAoIXNhbXBsZVJhdGUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG51bWJlck9mQ2hhbm5lbHM7
Ci0gICAgICAgIGRlY29kZXIgPj4gbnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgaWYgKCFudW1i
ZXJPZkNoYW5uZWxzKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAg
ICByZXR1cm4ge3sKLSAgICAgICAgICAgIFdURk1vdmUoKnRyYWNrSWQpLAotICAgICAgICAgICAg
V1RGTW92ZSgqbGFiZWwpLAotICAgICAgICAgICAgV1RGTW92ZSgqbGFuZ3VhZ2UpLAotICAgICAg
ICAgICAgV1RGTW92ZSgqc3RhcnRUaW1lVmFyaWFuY2UpLAotICAgICAgICAgICAgKnRyYWNrSW5k
ZXgsCi0gICAgICAgICAgICAqZW5hYmxlZCwKLSAgICAgICAgICAgICphdWRpb0tpbmQsCi0gICAg
ICAgICAgICAqc2VsZWN0ZWQsCi0gICAgICAgICAgICAqdmlkZW9LaW5kLAotICAgICAgICAgICAg
V1RGTW92ZSgqY29kZWMpLAotICAgICAgICAgICAgKndpZHRoLAotICAgICAgICAgICAgKmhlaWdo
dCwKLSAgICAgICAgICAgIFdURk1vdmUoKmNvbG9yU3BhY2UpLAotICAgICAgICAgICAgKmZyYW1l
cmF0ZSwKLSAgICAgICAgICAgICpiaXRyYXRlLAotICAgICAgICAgICAgKnNhbXBsZVJhdGUsCi0g
ICAgICAgICAgICAqbnVtYmVyT2ZDaGFubmVscywKLSAgICAgICAgfX07CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi50cmFja0lkKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxhYmVs
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmxhbmd1YWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNl
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLnRyYWNrSW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMxNGY2YTAzNzBjMDYxMWU4NGQ3YWQ5MTc3
MWQ4ZjQ2NWU1YTM3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiA6IFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24geworICAgIGJvb2wgc2VsZWN0ZWQ7CisgICAgV2ViQ29y
ZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQga2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2
YXRlOjpLaW5kOjpOb25lIH07CisgICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmln
dXJhdGlvbiB0cmFja0NvbmZpZ3VyYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUoZW5jb2Rlcik7CisgICAg
ICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7CisgICAgICAgIGVuY29kZXIgPDwga2luZDsKKyAgICAg
ICAgZW5jb2RlciA8PCB0cmFja0NvbmZpZ3VyYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGUg
PGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoIVRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb246OmRlY29kZShkZWNvZGVyLCBjb25maWd1cmF0aW9uKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9u
LnNlbGVjdGVkKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmtpbmQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1
cmF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDNhN2NkNWU0
N2U4ODUwYTY4ZGUyMzg5NmExZGFlMzhkODMxNGYzNi4uYWZhN2E1OTQ3MWU0ZGEzYjhjYTgwOWNh
YTg3ODc1YTQxZjIyOTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02MTg4LDYgKzYxODgsOCBAQAogCQlDRENBODVENDEzMkFDMkIz
MDBFOTYxREYgLyogSU9LaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFt
ZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7
IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUNEQ0RDOTlCMjQ4RkU4REEwMEE2OTUy
MiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5kb3dtZW50U3Rh
dGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0RDOTlDMjQ4RkU4
REEwMEE2OTUyMiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDA4QUMzMjc3RUJDRTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUM0Mjc3RUQ3
RTAwMEVBMzc1NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MTI0MERERTA2MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NjkwLDYgKzY2OTIsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQwRUNFQTkyM0ZD
ODRCQjAwRDE3MkY2IC8qIGNvY29hICovLAogCQkJCUNEQTk1OTQ0MjQxMkM0REEwMDkxMEVFRiAv
KiBpb3MgKi8sCisJCQkJQ0REMDhBQzMyNzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlvVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJB
RCAvKiBJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvLmggKi8sCiAJCQkJOUIxMjI5Q0MyM0ZGMjVG
MjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5
QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
aCAqLywKQEAgLTY3NjUsNiArNjc2OCw3IEBACiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0
IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1
N0IyM0NBNTMyNDAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAq
LywKIAkJCQkwNzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllci5oICovLAorCQkJCUNERDA4QUM0Mjc3RUQ3RTAwMEVBMzc1NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApp
bmRleCAzZWQ3NmMzMmM4MTY2ZjE5YzI3MTY3YTc2NTMxYzgyYzFlZDY1MjQ1Li5mOWU0YjFjMzI5
NWNlMTNiMjAyZTM3OGIwZDI3NTQxYjRmNDA2ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcApAQCAtMjksMTQgKzI5LDE0IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
ICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLUF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQorQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRp
ZmllcikKICAgICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQpAQCAtNTUsNyArNTUsNyBAQCB2
b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAg
ICBBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29uZmlndXJhdGlvbi50cmFja0lk
ICE9IG1faWQpIHsKICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0eSgpOwpAQCAt
ODAsMTEgKzgwLDggQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmln
dXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1fdHJhY2tJbmRl
eCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0g
Y29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25maWd1cmF0
aW9uLmF1ZGlvS2luZDsKLSAgICBzZXRDb2RlYyhXVEZNb3ZlKGNvbmZpZ3VyYXRpb24uY29kZWMp
KTsKLSAgICBzZXRTYW1wbGVSYXRlKGNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZSk7Ci0gICAgc2V0
TnVtYmVyT2ZDaGFubmVscyhjb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMpOwotICAgIHNl
dEJpdHJhdGUoY29uZmlndXJhdGlvbi5iaXRyYXRlKTsKKyAgICBtX2tpbmQgPSBjb25maWd1cmF0
aW9uLmtpbmQ7CisgICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24udHJh
Y2tDb25maWd1cmF0aW9uKSk7CiAgICAgCiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJs
ZWQoY29uZmlndXJhdGlvbi5lbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRl
eCBmMWY5ZjBmM2Q2NWFjNjQ4NTViMDY1ZjAyNjQ0YTM2NWRlNDNlYmQ0Li4yZmMwODQ1MTVkNjIw
ZDBjNjVhM2RjZWJmNzA3NTgxNmMxNmZkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBA
IC0zNiwyMSArMzYsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3ND
b25uZWN0aW9uOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwotc3RydWN0IFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklk
ZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBn
cHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXll
cklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCiAgICAgQXRvbVN0cmluZyBpZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1faWQ7IH0KLSAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRp
b24oQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiBwcml2YXRlOgot
ICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB1c2luZyBBdWRpb1RyYWNrS2luZCA9IFdlYkNvcmU6
OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOwogICAgIEF1ZGlvVHJhY2tLaW5kIGtpbmQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2tpbmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApp
bmRleCBmMzY0ZTVjMTY0NmI1MjRiNjUyZmQ2MGQ1NDg4NGY5ZjRhMmI1ZjhiLi45YjdjY2VjY2U4
ODY4MzMzZDIzOThmOWEwMWU5MzQxYzNjNDhkZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCkBAIC01NzUsNyArNTc1LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm5hdHVy
YWxTaXplOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVk
aW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hdWRpb1RyYWNrcy5l
bnN1cmUoaWRlbnRpZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlOjpjcmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQsIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNjA1LDcgKzYwNSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVt
b3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKIHsKICAgICBBU1NFUlQobV9hdWRpb1RyYWNrcy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CiAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVtb3ZlR2VuZXJpY0N1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZQog
ICAgICAgICB0cmFjay0+cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRHZW5lcmljQ3VlOjpjcmVhdGUo
V1RGTW92ZShjdWVEYXRhKSkpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92
aWRlb1RyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlOjpjcmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9u
KCksIG1faWQsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNzYzLDcg
Kzc2Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVWaWRl
b1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2Vk
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGIw
YWZlMjFlZTAzZWUyNjM3ODQwOTcyYmYyZjMwNDQ3MjNkNjcxYmQuLmUwMWZjZWM2Yzg2MWIxZjlh
MjJkMDQ4Y2UzYjk4YjQ0ZjhlYjVjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAt
NjcsOCArNjcsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlcjsKIGNsYXNzIFVzZXJEYXRhOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGZpbmFsCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlCkBAIC0xMTcsMTMgKzExOCwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGN1
cnJlbnRUaW1lQ2hhbmdlZChjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNb25vdG9uaWNUaW1lJiwg
Ym9vbCk7CiAKLSAgICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lk
IGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3Rl
QXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW90
ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgcmVtb3Rl
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAotICAgIHZvaWQg
YWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlVmlkZW9UcmFj
ayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCByZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJh
dGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdm9pZCBhZGRSZW1vdGVUZXh0VHJhY2so
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluCmluZGV4IGE2MDYwMzkwZTkwNTkwODZkZjQ1M2Y3NTYxZDlmNTE3ZTZiNGFlMGEuLjVl
ZGY3NTM4ZjVhZjY2M2JhNzhmZTljNjdlN2E2NDJhZGI2ZGRlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC00MSwxMyArNDEsMTMgQEAgbWVzc2Fn
ZXMgLT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogCiAgICAgQ3Vy
cmVudFRpbWVDaGFuZ2VkKE1lZGlhVGltZSBtZWRpYVRpbWUsIE1vbm90b25pY1RpbWUgd2FsbFRp
bWUsIGJvb2wgdGltZUlzUHJvZ3Jlc3NpbmcpCiAKLSAgICBBZGRSZW1vdGVBdWRpb1RyYWNrKFdl
YktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQWRk
UmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgc3RydWN0IFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAgICAgUmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVBdWRpb1RyYWNrQ29u
ZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKKyAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6
OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCi0g
ICAgQWRkUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uKQorICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJlbW90
ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQp
Ci0gICAgUmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24gY29uZmlndXJhdGlvbikKIAogICAgIEFkZFJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVS
ZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhiYTkyNTllNTBlM2VjZGIwYjgy
Y2U2MjkzMTMyZTEzYWViNGM4YjIuLjBmOGQ1ZjgzMTEzODlhZGNjY2I4ODg1OWE4Mjc0OWJkOWEw
MWQ5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0zMiwxMCArMzIsMTEgQEAK
ICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlv
biwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Vmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25u
ZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVySWRlbnRpZmll
cihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCkBAIC01
NCw3ICs1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKGJv
b2wgc2VsZWN0ZWQpCiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNlbGVjdGVk
KTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVmlkZW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29u
ZmlndXJhdGlvbi50cmFja0lkICE9IG1faWQpIHsKICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1f
aWQuaXNFbXB0eSgpOwpAQCAtNzksMTQgKzgwLDggQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8K
IAogICAgIG1fdHJhY2tJbmRleCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0
YXJ0VGltZVZhcmlhbmNlID0gY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBt
X2tpbmQgPSBjb25maWd1cmF0aW9uLnZpZGVvS2luZDsKLSAgICBtX2NvZGVjID0gY29uZmlndXJh
dGlvbi5jb2RlYzsKLSAgICBtX3dpZHRoID0gY29uZmlndXJhdGlvbi53aWR0aDsKLSAgICBtX2hl
aWdodCA9IGNvbmZpZ3VyYXRpb24uaGVpZ2h0OwotICAgIG1fY29sb3JTcGFjZSA9IGNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZTsKLSAgICBtX2ZyYW1lcmF0ZSA9IGNvbmZpZ3VyYXRpb24uZnJhbWVy
YXRlOwotICAgIG1fYml0cmF0ZSA9IGNvbmZpZ3VyYXRpb24uYml0cmF0ZTsKLQorICAgIG1fa2lu
ZCA9IGNvbmZpZ3VyYXRpb24ua2luZDsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29u
ZmlndXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24pKTsKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6
c2V0U2VsZWN0ZWQoY29uZmlndXJhdGlvbi5zZWxlY3RlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUuaAppbmRleCA2OWZjZDg2YzY0ZGMyMGZmYjZkOTk1MTYyZmIwOGY4ODVlMTE1NTFjLi5j
ODE2MWYyMTE3NjU1ZGI1NmJmMTFmYjEzMTA3NzUzZTg1ZjEyZTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
LSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5o
PgpAQCAtMzcsMTggKzM2LDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUKICAg
ICA6IHB1YmxpYyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBn
cHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXll
cklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGlj
IFJlZjxWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKSk7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVDb25maWd1cmF0
aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCB1cGRhdGVD
b25maWd1cmF0aW9uKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAog
ICAgIHVzaW5nIFZpZGVvVHJhY2tLaW5kID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6Oktp
bmQ7CiAgICAgVmlkZW9UcmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2lu
ZDsgfQpAQCAtNTcsMTUgKzU2LDkgQEAgcHVibGljOgogICAgIEF0b21TdHJpbmcgbGFuZ3VhZ2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xhbmd1YWdlOyB9CiAgICAgaW50IHRyYWNrSW5kZXgo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RyYWNrSW5kZXg7IH0KICAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lVmFyaWFuY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0YXJ0VGltZVZhcmlhbmNl
OyB9Ci0gICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlYzsgfQot
ICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93aWR0aDsgfQotICAg
IHVpbnQzMl90IGhlaWdodCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAg
V2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29sb3JTcGFjZTsgfQotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2ZyYW1lcmF0ZTsgfQotICAgIHVpbnQ2NF90IGJpdHJhdGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2JpdHJhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYpOwogCiAgICAgdm9pZCBzZXRTZWxlY3RlZChib29sKSBmaW5hbDsKIApAQCAtNzYsMTIgKzY5
LDYgQEAgcHJpdmF0ZToKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbVN0cmluZyBt
X2xhbmd1YWdlOwogICAgIGludCBtX3RyYWNrSW5kZXggeyAtMSB9OwotICAgIFN0cmluZyBtX2Nv
ZGVjOwotICAgIHVpbnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQg
eyAwIH07Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgbV9jb2xvclNwYWNl
OwotICAgIGRvdWJsZSBtX2ZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUg
eyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkgfTsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRlbmRpZmll
cjsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjllZWQzOWNjNTY4OTY5NDIwOWJjNjFhZThlMTg1ZDg1MjFiY2YzZi4u
ZjNjZDg5ZjY1YWZiNzc5MzU1NjYyODM4MjljYjFkMmJlMDY5NTE5YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0
aGF0IHRoZXNlIHByb3BlcnRpZXMgYXJlIGR5bmFtaWMsIHRlc3QgdGhlbSB3aXRoIGB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5YC4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNv
bmZpZ3VyYXRpb24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay92aWRlby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWw6CisKIDIwMjEtMTItMzEgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODcwMjgpOiBJbmNvcnJlY3Qgcm9vdCBpbmxp
bmUgYm94IGhvcml6b250YWwgcG9zaXRpb24gd2hlbiB0ZXh0LWFsaWduIG9mZnNldCBpcyBwcmVz
ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWwKaW5kZXggYTU3ZTI2MzAyZjM2MTAwNzU1NmIzNDJiZjM2M2I2NzI2ZjZm
MzI4OS4uZTczNDYwOGM2ZWE3ZjU2MjJjOTMyNzc5Njc1YmZhZWU3NTUyZTA3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24u
aHRtbApAQCAtOSwxMiArOSwxMiBAQAogCQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJcnVuKCd2
aWRlby5zcmMgPSAiLi4vY29udGVudC9hdWRpby10cmFja3MubXA0IicpOwogCQkJYXdhaXQgd2Fp
dEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFj
a3MubGVuZ3RoJywgMCwgJz4nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5h
dWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ21wNGEuNDAuMicpOwotCQkJdGVz
dEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUn
LCA0NDEwMCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24ubnVtYmVyT2ZDaGFubmVscycsIDIpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRp
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAwMDAsICc+PScpOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgMCwg
Jz4nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnbXA0
YS40MC4yJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUnLCA0NDEwMCk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLm51
bWJlck9mQ2hhbm5lbHMnLCAyKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDEwMDAwMCwgJz49Jyk7
CiAJCQllbmRUZXN0KCk7CiAJCX0pOwogCTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCmluZGV4IDEyMDM5
OTk4MjA0NWY5MzFlODlmMzM2NTYzOGY1MzdiMTMyNjYwNDQuLmI1ZGQ2ZjI3YWEwYjZhYjJmMjFj
OTM3YjIxNTRlMDhjNjAzMzdjNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKQEAgLTksMzAgKzksMzAgQEAKIAkJ
CWZpbmRNZWRpYUVsZW1lbnQoKTsKIAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvdGVz
dC5tcDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheScpOwotCQkJdGVzdEV4
cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOwotCQkJdGVz
dEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ2F2
YzEuNEQ0MDBEJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24ud2lkdGgnLCAzMjApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDI0MDAwMCwgJz49Jyk7Ci0J
CQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVy
YXRlJywgMzAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdi
dDQ3MGJnJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnc21wdGUxNzBtJyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2Zl
cicsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3MubGVuZ3RoJywgMSk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvZGVjJywgJ2F2YzEuNEQ0MDBEJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDI0MDAwMCwgJz49
Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZScsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDQ3
MGJnJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ3NtcHRlMTcwbScpOwor
CQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CiAJCQlydW4oJ3ZpZGVv
LnNyYyA9ICIuLi9jb250ZW50L3Rlc3QtaGV2Yy5tcDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZp
ZGVvLCAnY2FucGxheScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrcy5sZW5n
dGgnLCAxKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ2h2YzEuMS42Lkw5My5CMCcpOwotCQkJdGVzdEV4cGVj
dGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQn
LCAyNDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmJpdHJhdGUnLCAxNTAwMDAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRl
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RF
eHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywg
bnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ3MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycs
ICdidDcwOScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOworCQkJYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bicsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdodmMxLjEuNi5MOTMuQjAnKTsK
KwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNv
bmZpZ3VyYXRpb24ud2lkdGgnLCAzMjApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5iaXRyYXRlJywgMTUwMDAwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywg
MzAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9U
cmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2Uu
cHJpbWFyaWVzJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAn
YnQ3MDknKTsKIAkJCWVuZFRlc3QoKTsKIAkJfSk7CiAJPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448133</attachid>
            <date>2021-12-31 14:14:14 -0800</date>
            <delta_ts>2021-12-31 17:10:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231141413.patch</filename>
            <type>text/plain</type>
            <size>103062</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5N2M4ZGM1NzgzZjlk
NDkxZTM2ZTE1Mjg4YzA1ODI3NDFlZGQ0Ni4uMGE4ZmEzZWRiOGE5ZTI2MGY5YjE2ZDJkZGM2MDRj
NmQyYmI0NGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MmNjNTc4NGJiYWI1MGJlNjlmMTRlMTgxMGY3MmEwMDE2YTYyNjAyLi5hZjQyN2RiZDFkOGM5
M2Y1Mzk3YWVjZDA2MzQ2ZWZhMDc0Y2I2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBmOGI4OWYwZWVmZmZkOWUwMzA3YjY0OTk1NzRkZjI0MTUxZWNj
ZTlkLi5hNjlmYjY5NTU5Y2IzMzdiMmE5NzM1NjhlNTk0ZTZmOWIzOWQ0MmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTE1MjUsNiArMTUyNSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlci5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsRm9ybWF0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUNvbG9yU3BhY2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1JbWFnZS5oCkBAIC0xNTM0LDkgKzE1MzUsMTEgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
ZXh0VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUmVnaW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmNvZGVjcy9WaWRlb0NvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29k
ZWNzL1ZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IGFlOGJmMmIzMDU3MTM1NDg5N2JkNmFiMWJhZDJk
ZDU3MTdmMjNkMDQuLmU5MGU1MDYyMGQzNDA0MGMwNGM1YTQ2N2VjNzVkZmQwNGJmNzIxZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCkBAIC00MCw4ICs0MCwxMSBAQCBjbGFzcyBWaWRlb0NvbG9yU3BhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb0NvbG9yU3BhY2U+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBWaWRlb0NvbG9yU3BhY2UoKSk7IH07CisgICAgc3RhdGljIFJlZjxW
aWRlb0NvbG9yU3BhY2U+IGNyZWF0ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBpbml0KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShpbml0KSk7IH0KICAgICBzdGF0
aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKFZpZGVvQ29sb3JTcGFjZUluaXQmJiBpbml0
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShXVEZNb3ZlKGluaXQpKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9Db2xvclNwYWNlSW5pdCYgc3RhdGUp
IHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZpZGVvQ29s
b3JQcmltYXJpZXM+JiBwcmltYXJpZXMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnByaW1hcmll
czsgfQogICAgIHZvaWQgc2V0UHJpbWFyaWVzKHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xvclByaW1h
cmllcz4mJiBwcmltYXJpZXMpIHsgbV9zdGF0ZS5wcmltYXJpZXMgPSBXVEZNb3ZlKHByaW1hcmll
cyk7IH0KIApAQCAtNTYsNiArNTksMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFZpZGVv
Q29sb3JTcGFjZSgpID0gZGVmYXVsdDsKKyAgICBWaWRlb0NvbG9yU3BhY2UoY29uc3QgVmlkZW9D
b2xvclNwYWNlSW5pdCYgaW5pdCkKKyAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgeworICAg
IH0KICAgICBWaWRlb0NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQpCiAgICAg
ICAgIDogbV9zdGF0ZShXVEZNb3ZlKGluaXQpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNjYyYjA4N2U3MmVkZTZl
YzdjOTM1ZGZhNDdmMDdlMGRjNGQwNzZmLi5iMGE2NDg3Y2M5ZDllOTQ4YzNiZWRhNWQ3OTA5OTRi
OWY0ZGZiZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NTc2LDYgKzQ1NzYsOSBAQAogCQlDRENDOUJEMTIyMzg3RUFBMDBG
RkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0M5QkQwMjIzODdFQUEwMEZGQjUxQyAv
KiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQ0Q0MUU4MUMzRERCMEEwMDk2NUQ5OSAvKiBQ
YXJzZWRDb250ZW50UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQ0Q0MUU2MUMzRERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50UmFuZ2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENG
QUJCRDE4QzBBRjc4MDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8q
IEhpZ2hsaWdodERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4
QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCRjI3
N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4QUMyMjc3
RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFDMTI3N0U1NTRF
MDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERDcwODk3MTgzNTlGNkYw
MDJCM0RDNiAvKiBTYW1wbGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERDcwODk1MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRERDMUU3QTE4
QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERDMUU3OTE4QTk1MkYzMDAyN0E5
RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFM0E4NTQxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1
ZGlvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREUzQTg1MjE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCAqLzsgfTsKQEAgLTE2MTQ4LDYgKzE2MTUxLDkgQEAKIAkJQ0RDRTVDRDAxNDYzM0JDOTAw
RDQ3Q0NBIC8qIEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
dmVudFRhcmdldEZhY3RvcnkuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZB
QkJCMThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDRkFCQkMxOEMwQUYxOTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0
Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCRjI3N0U1
NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0REMUU1MjUxNjdC
QTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8q
IFNhbXBsZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4ODk4LDYgKzI4OTA0LDcgQEAKIAkJ
CQlCQzYzNUU4QjI2NEMyQ0FFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuaCAqLywKIAkJ
CQlCQzYzNUU5MDI2NEM0NjlGMDAwRUYzM0EgLyogUGl4ZWxGb3JtYXQuY3BwICovLAogCQkJCUJD
QTU1OTEyMjYzREJENzkwMDdGMTlCMyAvKiBQaXhlbEZvcm1hdC5oICovLAorCQkJCUNERDA4QUJG
Mjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8s
CiAJCQkJQkMzRTYyNDIyNjU5NzkxNzAwNTQ4QUNEIC8qIFBsYXRmb3JtQ29sb3JTcGFjZS5oICov
LAogCQkJCTcyNkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi8sCiAJ
CQkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLywK
QEAgLTI4OTA3LDkgKzI4OTE0LDExIEBACiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8q
IFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8q
IFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRD
IC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLAorCQkJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1
NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovLAogCQkJCUNEMUY5QUZCMjZGRDM4
QzkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCAqLywKIAkJCQlDRDFG
OUFGQTI2RkQzODU5MDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCAqLywKIAkJ
CQlDRDFGOUFGRDI2RkQzOENCMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNp
ZW50cy5oICovLAorCQkJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0QxRjlBRkMyNkZEMzhDQTAwNjE3RUI2IC8q
IFBsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oICovLAogCQkJCUJDQUI0MTdG
MTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uY3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgw
MEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKQEAgLTM0NTA4LDYgKzM0NTE3LDcgQEAKIAkJCQlCQzUz
QzVGNTBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3OTY0MEQwMEJGMjIwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMTlDREY0Mjc3MTA2MzkwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQkMxOUNFMkIyNzcyQkY3QjAwNTNGNzM0IC8qIEdyYWRpZW50
Q29sb3JTdG9wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0
IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTlDREYyMjc2RkZDNkQw
MDUzRjczNCAvKiBHcmFkaWVudFJlbmRlcmVyQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCQjY4
MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNjQxNCw2ICszNjQyNCw3IEBACiAJCQkJQkM2MzVFOEMyNjRDMkNBRTAwMEVGMzNBIC8q
IFBpeGVsQnVmZmVyRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NTkxNDI2M0RCRDc5
MDA3RjE5QjMgLyogUGl4ZWxGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0REMDhBQzAyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OUIzRUREMTI4REI1MDIwMEU3MjZDMiAvKiBQbGF0
Zm9ybUNBQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMjAwNjE4RTc3MUZDMDAz
RUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjEzMTYzRTE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzY0NDUsOSArMzY0NTYsMTEgQEAKIAkJCQkxQUQ4RjgxQjExQ0FCOUU5MDBFOTNF
NTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdEMDczMzE4
ODRDNTZDMDBCNEFGODYgLyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNERDA4QUJEMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDIyNzAwMzIzRDAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Qx
RjlCMDEyNzAwMjBCNzAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDFGOUIwMzI3MDAzMjNEMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01h
dHJpeENvZWZmaWNpZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0REMDhBQzIyNzdFNTU0RTAw
RUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEMUY5QjA0MjcwMDMyM0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3
Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1QkE0RkFEMjZEOTgx
QUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM3NTczLDcgKzM3NTg2LDYgQEAKIAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyogVHJh
Y2tQcml2YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3
RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGQUMz
MEZFMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovLAot
CQkJCUJDMTlDRTJCMjc3MkJGN0IwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2FjdGlvbk9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2M0JCIC8q
IFRyYW5zZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM0MEVGODZENDcw
MDlEMENBRiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCBhMjcxMDY3NWU4YTc0MDk0NGU2
OWY5YWVmNzFlOTc4OTMxZWE4NWNmLi42OTk0YjExMzFlMjM0OGU0ZWU5ZDI1YzA5YWNkNGRmNjU4
N2MxMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTE3
MSw2ICsxNzEsMTEgQEAgdm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJs
ZWQpCiAgICAgfSk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQo
Y29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sK
KyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lk
IEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJ
ZChpZCk7CkBAIC0yMzEsMTAgKzIzNiw3IEBAIHZvaWQgQXVkaW9UcmFjazo6dXBkYXRlS2luZEZy
b21Qcml2YXRlKCkKIAogdm9pZCBBdWRpb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVBy
aXZhdGUoKQogewotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2Rl
YygpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFNhbXBsZVJhdGUobV9wcml2YXRlLT5zYW1w
bGVSYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0TnVtYmVyT2ZDaGFubmVscyhtX3By
aXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRy
YXRlKG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRl
KG1fcHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA0ZjAwNzA4MTcy
ZThkNWY4Mjc4YzAzYTU0OGNkZTViNmE2Y2FjYWM1Li40ZTE4NmMxNjYyMDdiMDdhNzhkMGU3NmVj
NGQzZGQwOTA5OTYxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApA
QCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpIGZp
bmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2Vk
KGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaAppbmRleCA2ZDcwYmNiOGQwZGExYmJmMjky
YTM1NThjYTBkOTAxYmVlZTExOGQ2Li5lODQ3NGJiNmNhOTlkNWViNTM1ZjA1MzFiZmYyNTBhMmMy
OTlkNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbi5oCkBAIC0yNywxNiArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShWSURFTykK
IAorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3Qg
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IHsKLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWlu
dDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsg
MCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19OwordXNpbmcgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xh
c3MgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDQsNiAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4g
Y3JlYXRlKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oV1RGTW92ZShpbml0KSkpOyB9CiAgICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsgfQogCisgICAgdm9pZCBzZXRT
dGF0ZShjb25zdCBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmIHN0YXRlKSB7IG1fc3RhdGUg
PSBzdGF0ZTsgfQorCiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5j
b2RlYzsgfQogICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5nIGNvZGVjKSB7IG1fc3RhdGUuY29kZWMg
PSBjb2RlYzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRl
eCA3OTU3NzMzMzc5NWNkOTAzMTNmNGEzZTI3NzhhYTBhZmZkNzNkZGMxLi43M2U5ZDBmMTdhZjU2
NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5NGY0NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKQEAgLTE2NCw2ICsxNjQsMTEgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZWxl
Y3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKICAgICB9KTsKIH0KIAordm9pZCBWaWRlb1RyYWNr
Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUoY29u
ZmlndXJhdGlvbik7Cit9CisKIHZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21T
dHJpbmcmIGlkKQogewogICAgIHNldElkKGlkKTsKQEAgLTI2MiwxMiArMjY3LDcgQEAgdm9pZCBW
aWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogCiB2b2lkIFZpZGVvVHJhY2s6OnVw
ZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpCiB7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5z
ZXRDb2RlYyhtX3ByaXZhdGUtPmNvZGVjKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0V2lk
dGgobV9wcml2YXRlLT53aWR0aCgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEhlaWdodCht
X3ByaXZhdGUtPmhlaWdodCgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldENvbG9yU3BhY2Uo
VmlkZW9Db2xvclNwYWNlOjpjcmVhdGUobV9wcml2YXRlLT5jb2xvclNwYWNlKCkpKTsKLSAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldEZyYW1lcmF0ZShtX3ByaXZhdGUtPmZyYW1lcmF0ZSgpKTsKLSAg
ICBtX2NvbmZpZ3VyYXRpb24tPnNldEJpdHJhdGUobV9wcml2YXRlLT5iaXRyYXRlKCkpOworICAg
IG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUobV9wcml2YXRlLT5jb25maWd1cmF0aW9uKCkpOwog
fQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5oCmluZGV4IDdhOTc4YzczMjM2MGI3Nzc3NjQ3ZjQyZWRiZjIxMDY4NmQxNDBkMTgu
LmUxZTBlOWIwMjU4ZDUxMjc2Mjk3MDZkMGVjNDIyYTNjYmQwM2Y2OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJv
b2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSBmaW5hbCB7IHVwZGF0
ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpOyB9CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hh
bmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJikgZmluYWw7CiAKICAg
ICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IGQyMGQyNDNjYTYxMDZlZWNmMzRmOTFlNGQzNWIz
Y2JkYjdkOTdiMmYuLmM1OTYxZjQ5MWQ4MDBmY2QzNGUzNDA2OWM3ZDc4ZDRlZjNiY2UyMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0
aW9uLmgKQEAgLTI3LDE5ICsyNywxMyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVk
ZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlZpZGVvQ29s
b3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0cnVjdCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgewotICAgIFN0
cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aCB7IDAgfTsKLSAgICB1aW50MzJfdCBoZWln
aHQgeyAwIH07Ci0gICAgUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKLSAgICBk
b3VibGUgZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19Owor
dXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNDcsNiArNDEsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBp
bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKFdURk1v
dmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgbV9jb2xv
clNwYWNlLT5zZXRTdGF0ZShtX3N0YXRlLmNvbG9yU3BhY2UpOworICAgIH0KKwogICAgIFN0cmlu
ZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuY29kZWM7IH0KICAgICB2b2lkIHNldENv
ZGVjKFN0cmluZyBjb2RlYykgeyBtX3N0YXRlLmNvZGVjID0gY29kZWM7IH0KIApAQCAtNTYsOCAr
NTYsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0ZS5oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9z
dGF0ZS5oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+IGNv
bG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmNvbG9yU3BhY2U7IH0KLSAgICB2b2lk
IHNldENvbG9yU3BhY2UoUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4mJiBjb2xvclNwYWNlKSB7IG1f
c3RhdGUuY29sb3JTcGFjZSA9IFdURk1vdmUoY29sb3JTcGFjZSk7IH0KKyAgICBSZWY8VmlkZW9D
b2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9Cisg
ICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZjxWaWRlb0NvbG9yU3BhY2U+JiYgY29sb3JTcGFjZSkg
eyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2UpOyB9CiAKICAgICBkb3VibGUgZnJh
bWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5mcmFtZXJhdGU7IH0KICAgICB2b2lkIHNl
dEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fc3RhdGUuZnJhbWVyYXRlID0gZnJhbWVy
YXRlOyB9CkBAIC02OCwxMSArNjgsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KQogICAg
ICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICAgICAgLCBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNw
YWNlOjpjcmVhdGUoaW5pdC5jb2xvclNwYWNlKSkKKyAgICB7CisgICAgfQorICAgIFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNl
OjpjcmVhdGUoKSkKICAgICB7CiAgICAgfQotICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkg
PSBkZWZhdWx0OwogCiAgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IG1fc3RhdGU7Cisg
ICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gbV9jb2xvclNwYWNlOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5k
ZXggMzJlYzU4ZGU0MmZmZTlkY2JmNDM4YmM3YzZkN2E2YzI3OTBlMjExNS4uZjljMDAzMjQ3NDU2
ZTM4ODA5ZmRmMTg3YjA3NzI3MTkyMTUwM2NmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtNjQsMTgg
KzY1LDE2IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKEF1ZGlvVHJhY2tQcml2YXRlJiwgYm9vbCBlbmFibGVkKT47CiAgICAgdm9p
ZCBzZXRFbmFibGVkQ2hhbmdlZENhbGxiYWNrKEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxs
YmFjaykgeyBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQot
ICAgIAotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB2
b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsg
fQotICAgIAotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBs
ZVJhdGU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZSkgeyBt
X3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9Ci0gICAgCi0gICAgdWludDMyX3QgbnVtYmVyT2ZD
aGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZDaGFubmVsczsgfQotICAgIHZvaWQg
c2V0TnVtYmVyT2ZDaGFubmVscyh1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKSB7IG1fbnVtYmVy
T2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7IH0KLSAgICAKLSAgICB1aW50NjRfdCBiaXRy
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9Ci0gICAgdm9pZCBzZXRCaXRyYXRlKHVp
bnQ2NF90IGJpdHJhdGUpIHsgbV9iaXRyYXRlID0gYml0cmF0ZTsgfQorCisgICAgY29uc3QgUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAg
IGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAg
ICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25D
aGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIkF1ZGlvVHJhY2tQcml2YXRlIjsgfQpAQCAtODcsMTAgKzg2LDcgQEAgcHJvdGVjdGVkOgog
cHJpdmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsK
ICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAg
dWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fbnVtYmVyT2ZDaGFu
bmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1B
dWRpb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAgICAgRW5hYmxlZENoYW5n
ZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQuaAppbmRleCAwYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2NjNlMDc1YTk0NGU4MzZkY2Q4Li42MWVl
ODY0NDE3ODQyOTg5NTI1YjVmNGU4NzY0NzAwZGNkYjI5NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmgKQEAgLTMyLDEwICszMiwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRp
b1RyYWNrUHJpdmF0ZTsKK3N0cnVjdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOwog
CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyODdiN2IzNzY2YTZjNGIyNTJjZDQ0YjU5
M2M4OTVhZDQ1Mjk2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisj
aW5jbHVkZSAiUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdHJ1Y3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiA6IFBsYXRmb3Jt
VHJhY2tDb25maWd1cmF0aW9uIHsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlIHsgMCB9OworICAg
IHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMgeyAwIH07CisgICAgdWludDY0X3QgYml0cmF0ZSB7
IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2RlYyA9PSBiLmNvZGVjCisgICAgICAgICYmIGEu
c2FtcGxlUmF0ZSA9PSBiLnNhbXBsZVJhdGUKKyAgICAgICAgJiYgYS5udW1iZXJPZkNoYW5uZWxz
ID09IGIubnVtYmVyT2ZDaGFubmVscworICAgICAgICAmJiBhLmJpdHJhdGUgPT0gYi5iaXRyYXRl
OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBjb2RlYzsKKyAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgZW5jb2RlciA8
PCBudW1iZXJPZkNoYW5uZWxzOworICAgIGVuY29kZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxh
dGUgPGNsYXNzIERlY29kZXI+Citib29sIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5jb2RlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24u
Yml0cmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjk3YTYw
MGY4NGU0MzA3NzViNTg5MDE2MGY0YTA2N2Y0OGQyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShWSURFTykKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgU3Ry
aW5nIGNvZGVjOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IDI4
ODc0M2RlNWY3MTMyZTYwYTBjMGNjYzQ3MTllZDEyNWFhMGY3YTEuLjUwZTRhYjkyNzY0NTAwYTVh
Y2EzZjFlNzRhOWI4ODhmYTFiNTRjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaApAQCAtNDMsNiAr
NDMsMTkgQEAgc3RydWN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIHsKICAgICB0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmKTsKIH07CiAKK2lubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiBhLnByaW1hcmllcyA9PSBiLnByaW1hcmll
cworICAgICAgICAmJiBhLnRyYW5zZmVyID09IGIudHJhbnNmZXIKKyAgICAgICAgJiYgYS5tYXRy
aXggPT0gYi5tYXRyaXgKKyAgICAgICAgJiYgYS5mdWxsUmFuZ2UgPT0gYi5mdWxsUmFuZ2U7Cit9
CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Um
IGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiAhKGEg
PT0gYik7Cit9CisKIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPgogdm9pZCBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI1YWZjZTY3NGQ0OTI1Y2U4YzE5
ZjMzZGYzNjgzYTMyNDZlMDVkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCww
ICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8p
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJh
dGlvbiB7CisgICAgdWludDMyX3Qgd2lkdGggeyAwIH07CisgICAgdWludDMyX3QgaGVpZ2h0IHsg
MCB9OworICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7CisgICAgZG91Ymxl
IGZyYW1lcmF0ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBiaXRyYXRlIHsgMCB9OworCisgICAgdGVt
cGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpOworfTsKKwor
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBiKQoreworICAg
IHJldHVybiBhLmNvZGVjID09IGIuY29kZWMKKyAgICAgICAgJiYgYS53aWR0aCA9PSBiLndpZHRo
CisgICAgICAgICYmIGEuaGVpZ2h0ID09IGIuaGVpZ2h0CisgICAgICAgICYmIGEuY29sb3JTcGFj
ZSA9PSBiLmNvbG9yU3BhY2UKKyAgICAgICAgJiYgYS5mcmFtZXJhdGUgPT0gYi5mcmFtZXJhdGUK
KyAgICAgICAgJiYgYS5iaXRyYXRlID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5j
b2RlciA8PCB3aWR0aDsKKyAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICBlbmNvZGVyIDw8IGNv
bG9yU3BhY2U7CisgICAgZW5jb2RlciA8PCBmcmFtZXJhdGU7CisgICAgZW5jb2RlciA8PCBiaXRy
YXRlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUGxhdGZvcm1WaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCit7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmNvZGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi53aWR0aCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaGVpZ2h0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5mcmFtZXJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApp
bmRleCA1MmM5ZmUyMjBmMzBhM2YzMTk1NzI5MzJkMzZhYzZkOTkzMTBiMzU2Li42MjNmOTQxYTY3
ZTg2YTUxMDIzMDEyMGY3YWIwMDg5YjFjM2UyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNw
YWNlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNjIsMzYgKzYyLDIzIEBAIHB1
YmxpYzoKICAgICB1c2luZyBTZWxlY3RlZENoYW5nZWRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQo
VmlkZW9UcmFja1ByaXZhdGUmLCBib29sIHNlbGVjdGVkKT47CiAgICAgdm9pZCBzZXRTZWxlY3Rl
ZENoYW5nZWRDYWxsYmFjayhTZWxlY3RlZENoYW5nZWRDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1f
c2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCi0gICAgdmly
dHVhbCBTdHJpbmcgY29kZWMoKSBjb25zdCB7IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVj
KTsgfQotICAgIAotICAgIHZpcnR1YWwgdWludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X3dpZHRoOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpZHRoKHVpbnQzMl90IHdpZHRoKSB7IG1f
d2lkdGggPSB3aWR0aDsgfQotICAgIAotICAgIHZpcnR1YWwgdWludDMyX3QgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SGVpZ2h0KHVpbnQz
Ml90IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQotICAgIAotICAgIHZpcnR1YWwgUGxh
dGZvcm1WaWRlb0NvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JT
cGFjZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb2xvclNwYWNlKFBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlJiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2Up
OyB9Ci0gICAgCi0gICAgdmlydHVhbCBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZXJhdGU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVyYXRlKGRvdWJsZSBmcmFt
ZXJhdGUpIHsgbV9mcmFtZXJhdGUgPSBmcmFtZXJhdGU7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVp
bnQ2NF90IGJpdHJhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHJhdGU7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Qml0cmF0ZSh1aW50NjRfdCBiaXRyYXRlKSB7IG1fYml0cmF0ZSA9IGJpdHJhdGU7
IH0KLSAgICAKKyAgICBjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CisgICAgdm9pZCBz
ZXRDb25maWd1cmF0aW9uKFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24gPT0gbV9jb25maWd1cmF0
aW9uKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25m
aWd1cmF0aW9uOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+
Y29uZmlndXJhdGlvbkNoYW5nZWQobV9jb25maWd1cmF0aW9uKTsKKyAgICB9CisKIHByb3RlY3Rl
ZDoKICAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBX
ZWFrUHRyPFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAg
ICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAgIHVp
bnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0gICAg
UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgbV9jb2xvclNwYWNlOwotICAgIGRvdWJsZSBtX2ZyYW1l
cmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBTZWxlY3RlZENo
YW5nZWRDYWxsYmFjayBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oCmluZGV4IGQ1MWIzNzIxMjNhZTQwNDBiZDBlNjU3OGI0YTA4OTc1OTk0MWVlMGQuLjY1
YjdiZjY2NzcxODdkOWQyYzEwMTM4NWZlMzczYzU5NDcxZWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaApAQCAtMzEsMTAgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0
IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb247CisKIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpID0gMDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5o
CmluZGV4IGQyYmM1ZjI2NmYyNTAwM2YwYjc2NmVhMDkzODM3NjRiM2Q5N2UzYWMuLjU2M2QwMWEz
MDg3NGI5OWQ3ZjFhNjRhZWZmMmI4YjhmNmExYTkzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Uu
aCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTQ1LDggKzQ2LDEwIEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVz
Y3JpcHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzsKK3N0cnVjdCBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uOworc3RydWN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b247CiAKLWNsYXNzIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwgeworY2xhc3MgQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbChBVlBsYXllckl0ZW1UcmFjayopOwpA
QCAtNzEsNiArNzQsMjAgQEAgcHVibGljOgogCiAgICAgaW50IHRyYWNrSUQoKSBjb25zdDsKIAor
ICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VGb3JBVkFzc2V0VHJhY2soQVZBc3NldFRyYWNrKik7
CisgICAgc3RhdGljIFN0cmluZyBsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZN
ZWRpYVNlbGVjdGlvbk9wdGlvbiAqKTsKKworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24gdmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdDsKKyAgICB1c2luZyBWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNl
dFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25P
YnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0g
b2JzZXJ2ZXI7IH0KKworICAgIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gYXVkaW9U
cmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdDsKKyAgICB1c2luZyBBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNldEF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIoQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciYgb2Jz
ZXJ2ZXIpIHsgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gb2JzZXJ2ZXI7IH0K
KworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CisKICAgICBTdHJp
bmcgY29kZWMoKSBjb25zdDsKICAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0OwogICAgIHVpbnQz
Ml90IGhlaWdodCgpIGNvbnN0OwpAQCAtNzksMTQgKzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50
NjRfdCBiaXRyYXRlKCkgY29uc3Q7CiAgICAgdWludDMyX3Qgc2FtcGxlUmF0ZSgpIGNvbnN0Owog
ICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdDsKLSAgICBzdGF0aWMgU3RyaW5n
IGxhbmd1YWdlRm9yQVZBc3NldFRyYWNrKEFWQXNzZXRUcmFjayopOwotICAgIHN0YXRpYyBTdHJp
bmcgbGFuZ3VhZ2VGb3JBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRp
b24gKik7CiAKLXByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbVRyYWNrPiBtX3Bs
YXllckl0ZW1UcmFjazsKLSAgICBSZXRhaW5QdHI8QVZBc3NldFRyYWNrPiBtX2Fzc2V0VHJhY2s7
CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9wbGF5ZXJJdGVtOwogICAgIFJlZlB0cjxN
ZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+IG1fbWVkaWFTZWxlY3Rpb25PcHRpb247CisgICAg
UmV0YWluUHRyPEFWQXNzZXRUcmFjaz4gbV9hc3NldFRyYWNrOworICAgIFdlYWtQdHI8VmlkZW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcj4gbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2Vy
dmVyOworICAgIFdlYWtQdHI8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcj4gbV9hdWRp
b1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3
MmQ1MTZhNTYzYjg0NjU0ODA2ZjkyLi5lNzM1ZmE5ZWY0NzM3MzZjOGIxMTI3NzkwOTg0NDM2Mzcz
MjRiMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bC5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJGb3JtYXREZXNjcmlwdGlvblV0aWxp
dGllcy5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKKyNpbXBvcnQg
IlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
TWVkaWFTZWxlY3Rpb25Hcm91cC5oPgpAQCAtMzcsNiArMzksNyBAQAogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRl
bVRyYWNrLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CkBAIC00OCwyNSArNTEsNTAgQEAgQGVuZAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBOU0FycmF5KiBhc3NldFRyYWNrQ29uZmln
dXJhdGlvbktleU5hbWVzKCkKK3sKKyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJh
eSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAiZm9ybWF0RGVzY3JpcHRpb25zIiwgQCJlc3RpbWF0
ZWREYXRhUmF0ZSIsIEAibm9taW5hbEZyYW1lUmF0ZSIsIG5pbF07CisgICAgcmV0dXJuIGtleXM7
Cit9CisKIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0lt
cGwoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQogICAgIDogbV9wbGF5ZXJJdGVtVHJhY2sodHJh
Y2spCiAgICAgLCBtX2Fzc2V0VHJhY2soW3RyYWNrIGFzc2V0VHJhY2tdKQogeworICAgIGluaXRp
YWxpemVBc3NldFRyYWNrKCk7CiB9CiAKIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwoQVZBc3NldFRyYWNrKiB0cmFjaykKICAgICA6IG1fYXNzZXRU
cmFjayh0cmFjaykKIHsKKyAgICBpbml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKE1lZGlhU2VsZWN0
aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQogICAgIDogbV9tZWRpYVNlbGVjdGlvbk9wdGlvbigm
b3B0aW9uKQorICAgICwgbV9hc3NldFRyYWNrKG9wdGlvbi5hc3NldFRyYWNrKCkpCiB7CisgICAg
aW5pdGlhbGl6ZUFzc2V0VHJhY2soKTsKIH0KIAogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
fkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwoKQogewogfQorCit2b2lkIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OmluaXRpYWxpemVBc3NldFRyYWNrKCkKK3sKKyAgICBpZiAoIW1fYXNzZXRU
cmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fYXNzZXRUcmFjayAgbG9hZFZhbHVlc0Fz
eW5jaHJvbm91c2x5Rm9yS2V5czphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKCkgY29t
cGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gV2Vha1B0cih0aGlzKV0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2F1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgKCp3ZWFrVGhpcy0+bV9h
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKSgpOworICAgICAgICAgICAgaWYgKHdlYWtU
aGlzICYmIHdlYWtUaGlzLT5tX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpCisgICAg
ICAgICAgICAgICAgKCp3ZWFrVGhpcy0+bV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVy
KSgpOworICAgICAgICB9KTsKKyAgICB9XTsKK30KICAgICAKIGJvb2wgQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbDo6ZW5hYmxlZCgpIGNvbnN0CiB7CkBAIC0yMzIsNiArMjYwLDI4IEBAIFN0cmlu
ZyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25P
cHRpb24oQVZNZWRpYVNlbGVjCiAgICAgcmV0dXJuIGxhbmd1YWdlOwogfQogCitQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4geworICAgICAgICB7IGNvZGVj
KCkgfSwKKyAgICAgICAgd2lkdGgoKSwKKyAgICAgICAgaGVpZ2h0KCksCisgICAgICAgIGNvbG9y
U3BhY2UoKSwKKyAgICAgICAgZnJhbWVyYXRlKCksCisgICAgICAgIGJpdHJhdGUoKSwKKyAgICB9
OworfQorCitQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGw6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
eworICAgICAgICB7IGNvZGVjKCkgfSwKKyAgICAgICAgc2FtcGxlUmF0ZSgpLAorICAgICAgICBu
dW1iZXJPZkNoYW5uZWxzKCksCisgICAgICAgIGJpdHJhdGUoKSwKKyAgICB9OworfQorCiBpbnQg
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6dHJhY2tJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1f
YXNzZXRUcmFjaykKQEAgLTI1Niw3ICszMDYsNyBAQCBzdGF0aWMgQVZBc3NldFRyYWNrKiBhc3Nl
dFRyYWNrRm9yKGNvbnN0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwmIGltcGwpCiBzdGF0aWMg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbkZvcihjb25zdCBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsJiBpbXBsKQogewogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0
VHJhY2tGb3IoaW1wbCk7Ci0gICAgaWYgKCFhc3NldFRyYWNrIHx8ICFhc3NldFRyYWNrLmZvcm1h
dERlc2NyaXB0aW9ucy5jb3VudCkKKyAgICBpZiAoIWFzc2V0VHJhY2sgfHwgW2Fzc2V0VHJhY2sg
c3RhdHVzT2ZWYWx1ZUZvcktleTpAImZvcm1hdERlc2NyaXB0aW9ucyIgZXJyb3I6bmlsXSAhPSBB
VktleVZhbHVlU3RhdHVzTG9hZGVkIHx8ICFhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5j
b3VudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+KGFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zWzBdKTsK
IH0KQEAgLTI5MSwxMCArMzQxLDEyIEBAIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw6OmNvbG9yU3BhY2UoKSBjb25zdAogCiBkb3VibGUgQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbDo6ZnJhbWVyYXRlKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBhc3Nl
dFRyYWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcykpCi0gICAgICAgIHJldHVybiBhc3NldFRyYWNr
Lm5vbWluYWxGcmFtZVJhdGU7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IDA7CisgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CisgICAgaWYg
KCFhc3NldFRyYWNrKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3Rh
dHVzT2ZWYWx1ZUZvcktleTpAIm5vbWluYWxGcmFtZVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlW
YWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFzc2V0VHJh
Y2subm9taW5hbEZyYW1lUmF0ZTsKIH0KIAogdWludDMyX3QgQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbDo6c2FtcGxlUmF0ZSgpIGNvbnN0CkBAIC0zMjgsNiArMzgwLDggQEAgdWludDY0X3QgQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpIGNvbnN0CiAgICAgYXV0byBhc3NldFRy
YWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CiAgICAgaWYgKCFhc3NldFRyYWNrKQogICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpAImVz
dGltYXRlZERhdGFSYXRlIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCisg
ICAgICAgIHJldHVybiAwOwogICAgIGlmICghc3RkOjppc2Zpbml0ZShhc3NldFRyYWNrLmVzdGlt
YXRlZERhdGFSYXRlKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFzc2V0VHJhY2su
ZXN0aW1hdGVkRGF0YVJhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQy5oCmluZGV4IDg5MDA1MTAxZWU2ZDQ3Nzc4OTA2MWQ3Mjc3YWZjNWE0
YTY4NmE4ZDAuLmEyNzdmNmY2YTFmZGM3MzM2YTFiY2FiMzg0NThmYjc0MGUzZjdlMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a1ByaXZhdGVBVkYuaCIKKyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBB
VkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBA
IHByaXZhdGU6CiAgICAgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNr
Kik7CiAgICAgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAgIEF1
ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmKTsKKyAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw+JiYpOwogCiAgICAgdm9pZCByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsK
KyAgICB2b2lkIGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2ltcGw7CisKKyAgICB1c2luZyBB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICBB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyIG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25P
YnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQy5tbQppbmRleCAxY2I5NTg5ZDg1ZTkwMDkxMDEyYmU5YTcwNDk1OWFm
MTFkYTE4MzNiLi44ZTVlZmVlYmJlNjQ5YTI0ZTgyYzExNDQwNmY1NjI4MWY3ZGEwNDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1t
CkBAIC0zMywxNyArMzMsMjkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sq
IHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4odHJhY2spKQorICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQoreworfQorCitBdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQor
ICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwog
fQogCiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhN
ZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKLSAgICA6IG1faW1wbChtYWtlVW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCisgICAgOiBBdWRpb1RyYWNr
UHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPihvcHRp
b24pKQoreworfQorCitBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRl
QVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4mJiBpbXBs
KQorICAgIDogbV9pbXBsKFdURk1vdmUoaW1wbCkpCisgICAgLCBtX2F1ZGlvVHJhY2tDb25maWd1
cmF0aW9uT2JzZXJ2ZXIoW3RoaXNdIHsgYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7
IH0pCiB7CisgICAgbV9pbXBsLT5zZXRBdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKG1f
YXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik7CiAgICAgcmVzZXRQcm9wZXJ0aWVzRnJv
bVRyYWNrKCk7CiB9CiAKKwogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJv
cGVydGllc0Zyb21UcmFjaygpCiB7CiAgICAgLy8gRG9uJ3QgY2FsbCB0aGlzLT5zZXRFbmFibGVk
KCkgYmVjYXVzZSBpdCBhbHNvIHNldHMgdGhlIGVuYWJsZWQgc3RhdGUgb2YgdGhlCkBAIC01NSwx
MSArNjcsMTIgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGll
c0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRMYWJlbChtX2lt
cGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAg
c2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRTYW1wbGVSYXRlKG1faW1wbC0+c2Ft
cGxlUmF0ZSgpKTsKLSAgICBzZXROdW1iZXJPZkNoYW5uZWxzKG1faW1wbC0+bnVtYmVyT2ZDaGFu
bmVscygpKTsKLSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAgICBzZXRDb25m
aWd1cmF0aW9uKG1faW1wbC0+YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7Cit9CiAKK3ZvaWQg
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjphdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
KQoreworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlv
bigpKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnNldFBsYXllckl0ZW1U
cmFjayhBVlBsYXllckl0ZW1UcmFjayAqdHJhY2spCkBAIC03MywxMiArODYsNiBAQCBBVlBsYXll
ckl0ZW1UcmFjayogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpwbGF5ZXJJdGVtVHJhY2soKQog
ICAgIHJldHVybiBtX2ltcGwtPnBsYXllckl0ZW1UcmFjaygpOwogfQogCi1BdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNr
KQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJh
Y2spKQotewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwotfQotCiB2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQog
ewogICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJh
Y2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5jcHAKaW5kZXggOWQ5ZDY0YWEyNmFmNzIzYjQ2YmE4NzI0OGEzOTFkMjllOGNhOGIxYy4u
ZWFmM2YxMThiMjVhNDM4ODk5MjJmNTZjNmJkZWNmZDljNThjZjhhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCkBAIC0zMCwy
NCArMzAsMzAgQEAKIAogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIgogI2lt
cG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1U
cmFjayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsPih0cmFjaykpCisgICAgOiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1
ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0
aWVzRnJvbVRyYWNrKCk7CiB9CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVu
aXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCisgICAgOiBWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFj
aykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKIFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0
aW9uQVZGT2JqQyYgb3B0aW9uKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyht
YWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCit7Cit9CisKK1Zp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5p
cXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmIGltcGwpCisgICAgOiBtX2ltcGwo
V1RGTW92ZShpbXBsKSkKKyAgICAsIG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihb
dGhpc10geyB2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsgfSkKIHsKKyAgICBtX2lt
cGwtPnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIobV92aWRlb1RyYWNrQ29uZmln
dXJhdGlvbk9ic2VydmVyKTsKICAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIApA
QCAtNjIsMTUgKzY4LDEyIEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFi
ZWwobV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkp
OwotICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0gICAgc2V0V2lkdGgobV9pbXBsLT53
aWR0aCgpKTsKLSAgICBzZXRIZWlnaHQobV9pbXBsLT5oZWlnaHQoKSk7Ci0gICAgc2V0Q29sb3JT
cGFjZShtX2ltcGwtPmNvbG9yU3BhY2UoKSk7Ci0gICAgc2V0RnJhbWVyYXRlKG1faW1wbC0+ZnJh
bWVyYXRlKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOwotCi0gICAgaWYg
KGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPmNvbmZpZ3Vy
YXRpb25DaGFuZ2VkKCk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tD
b25maWd1cmF0aW9uKCkpOworfQorCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6dmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBzZXRDb25maWd1cmF0aW9uKG1f
aW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZvaWQgVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDOjpzZXRQbGF5ZXJJdGVtVHJhY2soQVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNr
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
aAppbmRleCBmNDVhZmU0ZjY5YWQxMzgyYmIwZjE4ZmNjNDJmZjViYTk2OWQ5MWIzLi5mZjBjZGZi
MzZlNTE5MjIyOWI4ZTY1NTFlM2YxZGU4MzZkYzcxNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQVZGLmgiCisj
aW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwogT0JK
Q19DTEFTUyBBVlBsYXllckl0ZW07CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAg
IGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBl
eHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZP
YmpDJik7CisgICAgZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5pcXVl
X3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmKTsKIAogICAgIHZvaWQgcmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKCk7CisgICAgdm9pZCB2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4gbV9p
bXBsOworCisgICAgdXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2Vy
dmVyPHZvaWQoKT47CisgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciBtX3ZpZGVv
VHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCmluZGV4IDY4NjE4YzcyN2EyZTc1MzgxMmViN2RiNTgzYmEwYmVlN2YwMmU5ODEuLjc2YTBh
YmM4ZTk5YTdlYmY2NmYxOTczNTQ4ZWU2NTYwZjY2NGU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC01MCwxMiArNTAsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1wbC0+
aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFnZSht
X2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0gICAg
c2V0V2lkdGgobV9pbXBsLT53aWR0aCgpKTsKLSAgICBzZXRIZWlnaHQobV9pbXBsLT5oZWlnaHQo
KSk7Ci0gICAgc2V0Q29sb3JTcGFjZShtX2ltcGwtPmNvbG9yU3BhY2UoKSk7Ci0gICAgc2V0RnJh
bWVyYXRlKG1faW1wbC0+ZnJhbWVyYXRlKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRy
YXRlKCkpOworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJh
dGlvbigpKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5jcHAKaW5kZXggMTFjYWM4MDAyMzFlMDhjNTNlYjZlMzhkODRmNmIzMzczYzkxYmNmYi4u
NTc3YjExMDAwYmUxMzU3ZjIzNWE5MTdhZjQ3NTVhYmE3ZGRhZDhiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC00MCw2ICs0MCw4IEBAIFZpZGVvVHJhY2tQcml2YXRlV2Vi
TTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNKHdlYm06OlRyYWNrRW50cnkmJiB0cmFja0VudHJ5KQog
ewogICAgIGlmIChtX3RyYWNrLmlzX2VuYWJsZWQuaXNfcHJlc2VudCgpKQogICAgICAgICBzZXRT
ZWxlY3RlZChtX3RyYWNrLmlzX2VuYWJsZWQudmFsdWUoKSk7CisKKyAgICB1cGRhdGVDb25maWd1
cmF0aW9uKCk7CiB9CiAKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjppZCgpIGNv
bnN0CkBAIC0xNDUsNiArMTQ3LDE3IEBAIGRvdWJsZSBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmZy
YW1lcmF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgVmlkZW9UcmFja1ByaXZh
dGVXZWJNOjp1cGRhdGVDb25maWd1cmF0aW9uKCkKK3sKKyAgICBQbGF0Zm9ybVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24geworICAgICAgICB7IC5jb2RlYyA9IGNvZGVjKCkg
fSwKKyAgICAgICAgLndpZHRoID0gd2lkdGgoKSwKKyAgICAgICAgLmhlaWdodCA9IGhlaWdodCgp
LAorICAgICAgICAuZnJhbWVyYXRlID0gZnJhbWVyYXRlKCksCisgICAgfTsKKyAgICBzZXRDb25m
aWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCA5OWZk
MDdmZTJkNzFkOTJkYzJlMWM5M2U5NzYxY2VlMWM2NmE0YjQwLi43YmQxOWU5YmQ3MzYwMTE4MDhj
MGYwZTQzNGM0NDhmMmQ0YTAyMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAt
NDMsMTMgKzQzLDE2IEBAIHB1YmxpYzoKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFs
OwogICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHRyYWNrVUlEKCkgY29uc3QgZmluYWw7CiAg
ICAgc3RkOjpvcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwotICAg
IFN0cmluZyBjb2RlYygpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3Qg
ZmluYWw7Ci0gICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgZmluYWw7Ci0gICAgZG91YmxlIGZy
YW1lcmF0ZSgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRl
V2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOworCisgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7Cisg
ICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdDsKKyAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsK
KyAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0
aW9uKCk7CisKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJhY2s7CiAgICAgbXV0YWJsZSBBdG9t
U3RyaW5nIG1fdHJhY2tJRDsKICAgICBtdXRhYmxlIEF0b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWU5ZDZhZWQ4
OWYxMWI5MjFjZTEwZjk2MTVhOWVmODM1NjViYzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvVHJhY2tQcml2YXRlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIDogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CisgICAgYm9vbCBlbmFi
bGVkOworICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kIGtpbmQgeyBXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gdHJhY2tDb25maWd1cmF0aW9uOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2Rl
KGVuY29kZXIpOworICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIg
PDwga2luZDsKKyAgICAgICAgZW5jb2RlciA8PCB0cmFja0NvbmZpZ3VyYXRpb247CisgICAgfQor
CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgV0FSTl9VTlVT
RURfUkVUVVJOIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoIVRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZShkZWNvZGVyLCBjb25maWd1cmF0aW9u
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmVuYWJsZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi50cmFja0NvbmZpZ3VyYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0
ZDFmYThhNTMuLjgxMDQwMDI4ZTE3MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwCkBAIC0yOSwxMSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYg
KzU0LDE5IEBAIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgp
CiAgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
K0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb24oKQogewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2
YXRlLT5pZCgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90
cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRp
bWVWYXJpYW5jZSgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAg
ICAgICB7CisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1f
dHJhY2tQcml2YXRlLT5sYWJlbCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1
YWdlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwK
KyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAg
ICAgICAgIG1fdHJhY2tQcml2YXRlLT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5raW5kKCksCi0gICAgICAgIGZhbHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJp
dmF0ZTo6S2luZDo6Tm9uZSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAg
ICAgIDAsCi0gICAgICAgIDAsCi0gICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90
cmFja1ByaXZhdGUtPmJpdHJhdGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJh
dGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAg
ICAgbV90cmFja1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2
ICs5MSwxMSBAQCB2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9v
bCBlbmFibGVkKQogICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
QXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCk7Cit9CisKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29u
c3QgQXRvbVN0cmluZyYpCiB7CiAgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
aAppbmRleCBkMmRlYzQ1YTZkYjNmZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4wMTM1Njc5
MTViNGU5MDBmZDM2YmU0NzliZDhmMmVjNDkyN2I4NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3
ICs0NCw3IEBAIGNsYXNzIERlY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAog
Y2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluPgpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1By
aXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZv
aWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAog
ICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKQEAgLTc2LDcgKzc3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKyAgICBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOwogICAgIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoKTsKIAogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAppbmRleCAyZWRlZTE5
ODcxYzdkMzdhNDU0NWUzZWM1MDU2YjYxNjMzMDFhM2VkLi5iMjE0YWVhMTNhOGQ1ZjdiNzZmNjUy
YzdkYzZlNWM0Njg4ZDU0NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
UHJveHkuaCIKLSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC01NCwyMyArNTQsMjAgQEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KCkKICAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGll
bnQoKTsKIH0KIAotVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCiB7Ci0gICAgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uIHsgfTsKLSAgICBjb25m
aWd1cmF0aW9uLnRyYWNrSWQgPSBtX3RyYWNrUHJpdmF0ZS0+aWQoKTsKLSAgICBjb25maWd1cmF0
aW9uLmxhYmVsID0gbV90cmFja1ByaXZhdGUtPmxhYmVsKCk7Ci0gICAgY29uZmlndXJhdGlvbi5s
YW5ndWFnZSA9IG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpOwotICAgIGNvbmZpZ3VyYXRpb24u
dHJhY2tJbmRleCA9IG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCk7Ci0gICAgY29uZmlndXJh
dGlvbi5zdGFydFRpbWVWYXJpYW5jZSA9IG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5j
ZSgpOwotICAgIGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQgPSBtX3RyYWNrUHJpdmF0ZS0+c2VsZWN0
ZWQoKTsKLSAgICBjb25maWd1cmF0aW9uLnZpZGVvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5k
KCk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IG1fdHJhY2tQcml2YXRlLT5jb2RlYygpOwot
ICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBtX3RyYWNrUHJpdmF0ZS0+d2lkdGgoKTsKLSAgICBj
b25maWd1cmF0aW9uLmhlaWdodCA9IG1fdHJhY2tQcml2YXRlLT5oZWlnaHQoKTsKLSAgICBjb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UgPSBtX3RyYWNrUHJpdmF0ZS0+Y29sb3JTcGFjZSgpOwotICAg
IGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID0gbV90cmFja1ByaXZhdGUtPmZyYW1lcmF0ZSgpOwot
ICAgIGNvbmZpZ3VyYXRpb24uYml0cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5iaXRyYXRlKCk7Ci0g
ICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247CisgICAgcmV0dXJuIHsKKyAgICAgICAgeworICAgICAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+
bGFiZWwoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAg
ICAgICAgbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAorICAgICAgICBtX3RyYWNr
UHJpdmF0ZS0+c2VsZWN0ZWQoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmtpbmQoKSwKKyAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKKyAgICB9OwogfQogCiB2b2lk
IFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6dXBkYXRlQ29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgK
aW5kZXggOTM3MjcwNzAwZDQzNGIxMWYwMDhmM2VjOWYyNGU4NWI5NDI0OGI4Ny4uODk1MDc0YzZm
MDYzNThjZTVkNmExY2EyOTkxMzNjMDdlYzBiODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaApAQCAtNDQsNyAr
NDQsNyBAQCBjbGFzcyBEZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNs
YXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6
TWFpbj4KQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9
CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uJikgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0K
IAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikgZmluYWw7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2ls
bFJlbW92ZSgpIGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uKCk7CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKIAogICAg
IFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKaW5kZXggOTQ4NDM0MTY2MjNiMzk0
MTdlMzI3NDI1MjEzZTVjZjBiYjNlYjExZi4uZTQ4ZTA3ODk4MzJmYTZjYjhiM2FhYjJmMjZhNGRk
NWZjZTg2ZjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCkBAIC0yNyw4ICsy
Nyw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvVHJhY2tQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5o
PgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
MCwyMSArMzgsNiBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CiAg
ICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07
CiAgICAgaW50IHRyYWNrSW5kZXg7CiAKLSAgICBib29sIGVuYWJsZWQ7Ci0gICAgV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGU6OktpbmQgYXVkaW9LaW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OktpbmQ6Ok5vbmUgfTsKLQotICAgIGJvb2wgc2VsZWN0ZWQ7Ci0gICAgV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OktpbmQgdmlkZW9LaW5kIHsgV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGU6OktpbmQ6Ok5vbmUgfTsKLQotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3
aWR0aDsKLSAgICB1aW50MzJfdCBoZWlnaHQ7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UgY29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlOwotICAgIHVpbnQ2NF90
IGJpdHJhdGU7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZTsKLSAgICB1aW50MzJfdCBudW1iZXJP
ZkNoYW5uZWxzOwotCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKQEAgLTYzLDEyNyArNDYsMjIgQEAgc3Ry
dWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8
IGxhbmd1YWdlOwogICAgICAgICBlbmNvZGVyIDw8IHN0YXJ0VGltZVZhcmlhbmNlOwogICAgICAg
ICBlbmNvZGVyIDw8IHRyYWNrSW5kZXg7Ci0gICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKLSAg
ICAgICAgZW5jb2RlciA8PCBhdWRpb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7
Ci0gICAgICAgIGVuY29kZXIgPDwgdmlkZW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IGNvZGVj
OwotICAgICAgICBlbmNvZGVyIDw8IHdpZHRoOwotICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsK
LSAgICAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOwotICAgICAgICBlbmNvZGVyIDw8IGZyYW1l
cmF0ZTsKLSAgICAgICAgZW5jb2RlciA8PCBiaXRyYXRlOwotICAgICAgICBlbmNvZGVyIDw8IHNh
bXBsZVJhdGU7Ci0gICAgICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8QXRvbVN0cmluZz4gdHJhY2tJZDsKLSAgICAgICAgZGVjb2RlciA+PiB0cmFja0lkOwot
ICAgICAgICBpZiAoIXRyYWNrSWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFiZWw7Ci0gICAgICAgIGRlY29k
ZXIgPj4gbGFiZWw7Ci0gICAgICAgIGlmICghbGFiZWwpCi0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFuZ3VhZ2U7
Ci0gICAgICAgIGRlY29kZXIgPj4gbGFuZ3VhZ2U7Ci0gICAgICAgIGlmICghbGFuZ3VhZ2UpCi0g
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8
TWVkaWFUaW1lPiBzdGFydFRpbWVWYXJpYW5jZTsKLSAgICAgICAgZGVjb2RlciA+PiBzdGFydFRp
bWVWYXJpYW5jZTsKLSAgICAgICAgaWYgKCFzdGFydFRpbWVWYXJpYW5jZSkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHRyYWNr
SW5kZXg7Ci0gICAgICAgIGRlY29kZXIgPj4gdHJhY2tJbmRleDsKLSAgICAgICAgaWYgKCF0cmFj
a0luZGV4KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGVuYWJsZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKLSAg
ICAgICAgaWYgKCFlbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kPiBh
dWRpb0tpbmQ7Ci0gICAgICAgIGRlY29kZXIgPj4gYXVkaW9LaW5kOwotICAgICAgICBpZiAoIWF1
ZGlvS2luZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBzZWxlY3RlZDsKLSAgICAgICAgZGVjb2RlciA+PiBzZWxlY3RlZDsK
LSAgICAgICAgaWYgKCFzZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2lu
ZD4gdmlkZW9LaW5kOwotICAgICAgICBkZWNvZGVyID4+IHZpZGVvS2luZDsKLSAgICAgICAgaWYg
KCF2aWRlb0tpbmQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlYzsKLSAgICAgICAgZGVjb2RlciA+PiBjb2RlYzsK
LSAgICAgICAgaWYgKCFjb2RlYykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gd2lkdGg7Ci0gICAgICAgIGRlY29kZXIg
Pj4gd2lkdGg7Ci0gICAgICAgIGlmICghd2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGhlaWdodDsKLSAgICAg
ICAgZGVjb2RlciA+PiBoZWlnaHQ7Ci0gICAgICAgIGlmICghaGVpZ2h0KQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlOwotICAgICAgICBkZWNvZGVyID4+IGNv
bG9yU3BhY2U7Ci0gICAgICAgIGlmICghY29sb3JTcGFjZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZyYW1lcmF0ZTsK
LSAgICAgICAgZGVjb2RlciA+PiBmcmFtZXJhdGU7Ci0gICAgICAgIGlmICghZnJhbWVyYXRlKQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBiaXRyYXRlOwotICAgICAgICBkZWNvZGVyID4+IGJpdHJhdGU7Ci0gICAgICAg
IGlmICghYml0cmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAg
IAotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBzYW1wbGVSYXRlOwotICAgICAgICBk
ZWNvZGVyID4+IHNhbXBsZVJhdGU7Ci0gICAgICAgIGlmICghc2FtcGxlUmF0ZSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJf
dD4gbnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZkNoYW5uZWxz
OwotICAgICAgICBpZiAoIW51bWJlck9mQ2hhbm5lbHMpCi0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgV1RGTW92ZSgqdHJh
Y2tJZCksCi0gICAgICAgICAgICBXVEZNb3ZlKCpsYWJlbCksCi0gICAgICAgICAgICBXVEZNb3Zl
KCpsYW5ndWFnZSksCi0gICAgICAgICAgICBXVEZNb3ZlKCpzdGFydFRpbWVWYXJpYW5jZSksCi0g
ICAgICAgICAgICAqdHJhY2tJbmRleCwKLSAgICAgICAgICAgICplbmFibGVkLAotICAgICAgICAg
ICAgKmF1ZGlvS2luZCwKLSAgICAgICAgICAgICpzZWxlY3RlZCwKLSAgICAgICAgICAgICp2aWRl
b0tpbmQsCi0gICAgICAgICAgICBXVEZNb3ZlKCpjb2RlYyksCi0gICAgICAgICAgICAqd2lkdGgs
Ci0gICAgICAgICAgICAqaGVpZ2h0LAotICAgICAgICAgICAgV1RGTW92ZSgqY29sb3JTcGFjZSks
Ci0gICAgICAgICAgICAqZnJhbWVyYXRlLAotICAgICAgICAgICAgKmJpdHJhdGUsCi0gICAgICAg
ICAgICAqc2FtcGxlUmF0ZSwKLSAgICAgICAgICAgICpudW1iZXJPZkNoYW5uZWxzLAotICAgICAg
ICB9fTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnRyYWNrSWQp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvbmZpZ3VyYXRpb24ubGFiZWwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24uc3RhcnRUaW1lVmFyaWFuY2UpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9W
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzE0ZjZh
MDM3MGMwNjExZTg0ZDdhZDkxNzcxZDhmNDY1ZTVhMzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIDogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CisgICAgYm9vbCBz
ZWxlY3RlZDsKKyAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZCBraW5kIHsgV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIHRyYWNrQ29uZmlndXJhdGlvbjsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVu
Y29kZShlbmNvZGVyKTsKKyAgICAgICAgZW5jb2RlciA8PCBzZWxlY3RlZDsKKyAgICAgICAgZW5j
b2RlciA8PCBraW5kOworICAgICAgICBlbmNvZGVyIDw8IHRyYWNrQ29uZmlndXJhdGlvbjsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmICgh
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKGRlY29kZXIsIGNvbmZpZ3Vy
YXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmln
dXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0M2E3Y2Q1ZTQ3ZTg4NTBhNjhkZTIzODk2YTFkYWUzOGQ4MzE0ZjM2Li5hZmE3
YTU5NDcxZTRkYTNiOGNhODA5Y2FhODc4NzVhNDFmMjI5NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxODgsNiArNjE4OCw4IEBA
CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQ0RD
REM5OUIyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDREM5OUMyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuZG93bWVudFN0YXRlVHJhY2tlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQzMyNzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0REMDhBQzQyNzdFRDdFMDAwRUEzNzU1IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENTM1NkYyNDBE
RDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDUz
NTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2OTAsNiArNjY5Miw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBEMTcyRjYgLyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5
NDQyNDEyQzREQTAwOTEwRUVGIC8qIGlvcyAqLywKKwkJCQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3
NTUgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUQ0
RkI0MEIyNTY1Qzg5QTAwMUFDMkFEIC8qIEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCAqLywK
IAkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLApAQCAtNjc2NSw2ICs2NzY4LDcgQEAKIAkJCQkwN0Ux
OUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCAqLywKIAkJCQkwNzFCQzU3QjIzQ0E1MzI0MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJDNTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8sCisJCQkJQ0REMDhBQzQyNzdFRDdFMDAw
RUEzNzU1IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDNlZDc2YzMyYzgxNjZmMTljMjcxNjdhNzY1MzFjODJj
MWVkNjUyNDUuLmY5ZTRiMWMzMjk1Y2UxM2IyMDJlMzc4YjBkMjc1NDFiNGY0MDZmZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwxNCArMjksMTQgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29u
bmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVySWRl
bnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIp
CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIEF1ZGlvVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGVuYWJs
ZWQpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0
aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGlmIChj
b25maWd1cmF0aW9uLnRyYWNrSWQgIT0gbV9pZCkgewogICAgICAgICBhdXRvIGNoYW5nZWQgPSAh
bV9pZC5pc0VtcHR5KCk7CkBAIC04MCwxMSArODAsOCBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
bwogCiAgICAgbV90cmFja0luZGV4ID0gY29uZmlndXJhdGlvbi50cmFja0luZGV4OwogICAgIG1f
c3RhcnRUaW1lVmFyaWFuY2UgPSBjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNlOwotICAg
IG1fa2luZCA9IGNvbmZpZ3VyYXRpb24uYXVkaW9LaW5kOwotICAgIHNldENvZGVjKFdURk1vdmUo
Y29uZmlndXJhdGlvbi5jb2RlYykpOwotICAgIHNldFNhbXBsZVJhdGUoY29uZmlndXJhdGlvbi5z
YW1wbGVSYXRlKTsKLSAgICBzZXROdW1iZXJPZkNoYW5uZWxzKGNvbmZpZ3VyYXRpb24ubnVtYmVy
T2ZDaGFubmVscyk7Ci0gICAgc2V0Qml0cmF0ZShjb25maWd1cmF0aW9uLmJpdHJhdGUpOworICAg
IG1fa2luZCA9IGNvbmZpZ3VyYXRpb24ua2luZDsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1v
dmUoY29uZmlndXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24pKTsKICAgICAKICAgICBBdWRpb1Ry
YWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChjb25maWd1cmF0aW9uLmVuYWJsZWQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oCmluZGV4IGYxZjlmMGYzZDY1YWM2NDg1NWIwNjVmMDI2NDRhMzY1ZGU0
M2ViZDQuLjJmYzA4NDUxNWQ2MjBkMGM2NWEzZGNlYmY3MDc1ODE2YzE2ZmQyNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmgKQEAgLTM2LDIxICszNiwyMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIHBsYXllcklkZW50aWZpZXIs
IGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKICAgICBBdG9t
U3RyaW5nIGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZDsgfQotICAgIHZvaWQgdXBkYXRl
Q29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZv
aWQgdXBkYXRlQ29uZmlndXJhdGlvbihBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJik7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7Cisg
ICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIEF1ZGlv
VHJhY2tLaW5kID0gV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAgQXVkaW9U
cmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGYzNjRlNWMxNjQ2YjUyNGI2NTJmZDYwZDU0ODg0Zjlm
NGEyYjVmOGIuLjliN2NjZWNjZTg4NjgzMzNkMjM5OGY5YTAxZTkzNDFjM2M0OGRkZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTU3NSw3ICs1NzUsNyBAQCBGbG9hdFNpemUg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY2FjaGVkU3RhdGUubmF0dXJhbFNpemU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1
bHQgPSBtX2F1ZGlvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewogICAgICAgICByZXR1
cm4gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CkBA
IC02MDUsNyArNjA1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJl
bW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmkKICAgICB9CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIEFTU0VSVChtX2F1ZGlv
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIApAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlCiAgICAgICAgIHRyYWNrLT5yZW1vdmVHZW5lcmljQ3VlKEluYmFu
ZEdlbmVyaWNDdWU6OmNyZWF0ZShXVEZNb3ZlKGN1ZURhdGEpKSk7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3Rl
VmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewog
ICAgICAgICByZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CkBAIC03NjMsNyArNzYzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW92ZVJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmkKICAg
ICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIEFT
U0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggYjBhZmUyMWVlMDNlZTI2Mzc4NDA5NzJiZjJmMzA0NDcyM2Q2NzFi
ZC4uZTAxZmNlYzZjODYxYjFmOWEyMmQwNDhjZTNiOThiNDRmOGViNWM3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC02Nyw4ICs2Nyw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xhc3MgVXNlckRhdGE7CitzdHJ1Y3Qg
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICAgICA6IHB1YmxpYyBXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKQEAgLTExNywxMyArMTE4LDEzIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1vbm90b25pY1RpbWUmLCBib29sKTsKIAotICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFj
ayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAg
ICAgdm9pZCByZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIpOwotICAgIHZvaWQgcmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CisgICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYpOwogCi0gICAgdm9pZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9p
ZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90
ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1v
dGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHJlbW90
ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB2b2lk
IGFkZFJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZVRl
eHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYTYwNjAzOTBlOTA1OTA4NmRmNDUzZjc1
NjFkOWY1MTdlNmI0YWUwYS4uNWVkZjc1MzhmNWFmNjYzYmE3OGZlOWM2N2U3YTY0MmFkYjZkZGVk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTQx
LDEzICs0MSwxMyBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVm
Q291bnRlZCB7CiAKICAgICBDdXJyZW50VGltZUNoYW5nZWQoTWVkaWFUaW1lIG1lZGlhVGltZSwg
TW9ub3RvbmljVGltZSB3YWxsVGltZSwgYm9vbCB0aW1lSXNQcm9ncmVzc2luZykKIAotICAgIEFk
ZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKKyAgICBBZGRSZW1vdGVBdWRpb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVBdWRp
b1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQotICAg
IFJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQorICAgIFJlbW90ZUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgc3RydWN0IFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAKLSAgICBBZGRSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQWRkUmVtb3RlVmlkZW9U
cmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0
IFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCiAgICAgUmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
KyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCiAgICAgQWRkUmVtb3Rl
VGV4dFRyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXgg
OGJhOTI1OWU1MGUzZWNkYjBiODJjZTYyOTMxMzJlMTNhZWI0YzhiMi4uMGY4ZDVmODMxMTM4OWFk
Y2NjYjg4ODU5YTgyNzQ5YmQ5YTAxZDk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTMyLDEwICszMiwxMSBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1WaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
IGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxh
eWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVj
dGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZp
ZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiAgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZp
ZXIoaWRlbmRpZmllcikKQEAgLTU0LDcgKzU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZTo6c2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmln
dXJhdGlvbihWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQogewogICAgIGlmIChjb25maWd1cmF0aW9uLnRyYWNrSWQgIT0gbV9pZCkgewogICAgICAg
ICBhdXRvIGNoYW5nZWQgPSAhbV9pZC5pc0VtcHR5KCk7CkBAIC03OSwxNCArODAsOCBAQCB2b2lk
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpbwogCiAgICAgbV90cmFja0luZGV4ID0gY29uZmlndXJhdGlvbi50
cmFja0luZGV4OwogICAgIG1fc3RhcnRUaW1lVmFyaWFuY2UgPSBjb25maWd1cmF0aW9uLnN0YXJ0
VGltZVZhcmlhbmNlOwotICAgIG1fa2luZCA9IGNvbmZpZ3VyYXRpb24udmlkZW9LaW5kOwotICAg
IG1fY29kZWMgPSBjb25maWd1cmF0aW9uLmNvZGVjOwotICAgIG1fd2lkdGggPSBjb25maWd1cmF0
aW9uLndpZHRoOwotICAgIG1faGVpZ2h0ID0gY29uZmlndXJhdGlvbi5oZWlnaHQ7Ci0gICAgbV9j
b2xvclNwYWNlID0gY29uZmlndXJhdGlvbi5jb2xvclNwYWNlOwotICAgIG1fZnJhbWVyYXRlID0g
Y29uZmlndXJhdGlvbi5mcmFtZXJhdGU7Ci0gICAgbV9iaXRyYXRlID0gY29uZmlndXJhdGlvbi5i
aXRyYXRlOwotCisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5raW5kOworICAgIHNldENvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpOwogICAg
IFZpZGVvVHJhY2tQcml2YXRlOjpzZXRTZWxlY3RlZChjb25maWd1cmF0aW9uLnNlbGVjdGVkKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDY5ZmNkODZjNjRkYzIwZmZiNmQ5OTUx
NjJmYjA4Zjg4NWUxMTU1MWMuLmM4MTYxZjIxMTc2NTVkYjU2YmYxMWZiMTMxMDc3NTNlODVmMTJl
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZGVvVHJhY2tQcml2YXRlLmg+CkBAIC0zNywxOCArMzYsMTggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1
Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZQogICAgIDogcHVibGljIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIHBsYXllcklkZW50aWZp
ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKLSAgICB2
b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcgVmlkZW9UcmFja0tpbmQgPSBXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAgICBWaWRlb1RyYWNrS2luZCBraW5kKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CkBAIC01NywxNSArNTYsOSBAQCBwdWJsaWM6CiAgICAg
QXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0K
ICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhY2tJbmRleDsg
fQogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc3RhcnRUaW1lVmFyaWFuY2U7IH0KLSAgICBTdHJpbmcgY29kZWMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3dpZHRoOyB9Ci0gICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9oZWlnaHQ7IH0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9Ci0gICAgZG91Ymxl
IGZyYW1lcmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVyYXRlOyB9Ci0gICAgdWlu
dDY0X3QgYml0cmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYml0cmF0ZTsgfQogCiBwcml2
YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIGZp
bmFsOwogCkBAIC03NiwxMiArNjksNiBAQCBwcml2YXRlOgogICAgIEF0b21TdHJpbmcgbV9sYWJl
bDsKICAgICBBdG9tU3RyaW5nIG1fbGFuZ3VhZ2U7CiAgICAgaW50IG1fdHJhY2tJbmRleCB7IC0x
IH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV93aWR0aCB7IDAgfTsKLSAg
ICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZSBtX2NvbG9yU3BhY2U7Ci0gICAgZG91YmxlIG1fZnJhbWVyYXRlIHsgMCB9OwotICAg
IHVpbnQ2NF90IG1fYml0cmF0ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWVWYXJp
YW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgbV9pZGVuZGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOWVlZDM5Y2M1Njg5Njk0MjA5YmM2
MWFlOGUxODVkODUyMWJjZjNmLi5mM2NkODlmNjVhZmI3NzkzNTU2NjI4MzgyOWNiMWQyYmUwNjk1
MTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTItMzEgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBIYW5nIGluIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OmJpdHJhdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NzUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlc2UgcHJvcGVydGllcyBhcmUgZHluYW1pYywgdGVz
dCB0aGVtIHdpdGggYHRlc3RFeHBlY3RlZEV2ZW50dWFsbHlgLgorCisgICAgICAgICogbWVkaWEv
dHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sOgorICAgICAgICAqIG1lZGlhL3Ry
YWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbDoKKwogMjAyMS0xMi0zMSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4NzAyOCk6
IEluY29ycmVjdCByb290IGlubGluZSBib3ggaG9yaXpvbnRhbCBwb3NpdGlvbiB3aGVuIHRleHQt
YWxpZ24gb2Zmc2V0IGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAppbmRleCBhNTdlMjYzMDJmMzYxMDA3
NTU2YjM0MmJmMzYzYjY3MjZmNmYzMjg5Li5lNzM0NjA4YzZlYTdmNTYyMmM5MzI3Nzk2NzViZmFl
ZTc1NTJlMDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFj
ay1jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8t
dHJhY2stY29uZmlndXJhdGlvbi5odG1sCkBAIC05LDEyICs5LDEyIEBACiAJCQlmaW5kTWVkaWFF
bGVtZW50KCk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50L2F1ZGlvLXRyYWNrcy5t
cDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheScpOwotCQkJdGVzdEV4cGVj
dGVkKCd2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGgnLCAwLCAnPicpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7Ci0JCQl0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAn
bXA0YS40MC4yJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uc2FtcGxlUmF0ZScsIDQ0MTAwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVk
aW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5udW1iZXJPZkNoYW5uZWxzJywgMik7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDEw
MDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRp
b1RyYWNrcy5sZW5ndGgnLCAwLCAnPicpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5jb2RlYycsICdtcDRhLjQwLjInKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZScsIDQ0
MTAwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscycsIDIpOworCQkJYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRy
YXRlJywgMTAwMDAwLCAnPj0nKTsKIAkJCWVuZFRlc3QoKTsKIAkJfSk7CiAJPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0
aW9uLmh0bWwKaW5kZXggMTIwMzk5OTgyMDQ1ZjkzMWU4OWYzMzY1NjM4ZjUzN2IxMzI2NjA0NC4u
YjVkZDZmMjdhYTBiNmFiMmYyMWM5MzdiMjE1NGUwOGM2MDMzN2M2MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbApA
QCAtOSwzMCArOSwzMCBAQAogCQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJcnVuKCd2aWRlby5z
cmMgPSAiLi4vY29udGVudC90ZXN0Lm1wNCInKTsKIAkJCWF3YWl0IHdhaXRGb3IodmlkZW8sICdj
YW5wbGF5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEp
OwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywg
bnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uY29kZWMnLCAnYXZjMS40RDQwMEQnKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRyYXRl
JywgMjQwMDAwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScp
OwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNv
bG9yU3BhY2UubWF0cml4JywgJ2J0NDcwYmcnKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdzbXB0ZTE3
MG0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKKwkJCWF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBu
dWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVv
VHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnYXZjMS40RDQwMEQnKTsKKwkJCWF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24ud2lkdGgnLCAzMjApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5i
aXRyYXRlJywgMjQwMDAwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywgMzAsICc+PScp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9y
U3BhY2UubWF0cml4JywgJ2J0NDcwYmcnKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJp
ZXMnLCAnc21wdGUxNzBtJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRl
by52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3
MDknKTsKIAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvdGVzdC1oZXZjLm1wNCInKTsK
IAkJCWF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRl
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnaHZjMS4xLjYuTDkz
LkIwJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24ud2lkdGgnLCAzMjApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVv
VHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDE1MDAwMCwgJz49Jyk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywg
MzAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDcwOScp
OwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNv
bG9yU3BhY2UucHJpbWFyaWVzJywgJ2J0NzA5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZp
ZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3MubGVu
Z3RoJywgMSk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywg
J2h2YzEuMS42Lkw5My5CMCcpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7CisJCQlhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmhlaWdodCcsIDI0MCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxNTAwMDAsICc+PScpOworCQkJ
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UnLCBu
dWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVv
VHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ3MDknKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29s
b3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOwogCQkJZW5kVGVzdCgpOwogCQl9KTsKIAk8L3Nj
cmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448138</attachid>
            <date>2021-12-31 17:10:55 -0800</date>
            <delta_ts>2021-12-31 21:29:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231171054.patch</filename>
            <type>text/plain</type>
            <size>104491</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5N2M4ZGM1NzgzZjlk
NDkxZTM2ZTE1Mjg4YzA1ODI3NDFlZGQ0Ni4uMGE4ZmEzZWRiOGE5ZTI2MGY5YjE2ZDJkZGM2MDRj
NmQyYmI0NGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MmNjNTc4NGJiYWI1MGJlNjlmMTRlMTgxMGY3MmEwMDE2YTYyNjAyLi5hZjQyN2RiZDFkOGM5
M2Y1Mzk3YWVjZDA2MzQ2ZWZhMDc0Y2I2Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBmOGI4OWYwZWVmZmZkOWUwMzA3YjY0OTk1NzRkZjI0MTUxZWNj
ZTlkLi5hNjlmYjY5NTU5Y2IzMzdiMmE5NzM1NjhlNTk0ZTZmOWIzOWQ0MmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTE1MjUsNiArMTUyNSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlci5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsRm9ybWF0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUNvbG9yU3BhY2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1JbWFnZS5oCkBAIC0xNTM0LDkgKzE1MzUsMTEgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
ZXh0VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUmVnaW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmNvZGVjcy9WaWRlb0NvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29k
ZWNzL1ZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IGFlOGJmMmIzMDU3MTM1NDg5N2JkNmFiMWJhZDJk
ZDU3MTdmMjNkMDQuLmU5MGU1MDYyMGQzNDA0MGMwNGM1YTQ2N2VjNzVkZmQwNGJmNzIxZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCkBAIC00MCw4ICs0MCwxMSBAQCBjbGFzcyBWaWRlb0NvbG9yU3BhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb0NvbG9yU3BhY2U+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBWaWRlb0NvbG9yU3BhY2UoKSk7IH07CisgICAgc3RhdGljIFJlZjxW
aWRlb0NvbG9yU3BhY2U+IGNyZWF0ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBpbml0KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShpbml0KSk7IH0KICAgICBzdGF0
aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKFZpZGVvQ29sb3JTcGFjZUluaXQmJiBpbml0
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShXVEZNb3ZlKGluaXQpKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9Db2xvclNwYWNlSW5pdCYgc3RhdGUp
IHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZpZGVvQ29s
b3JQcmltYXJpZXM+JiBwcmltYXJpZXMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnByaW1hcmll
czsgfQogICAgIHZvaWQgc2V0UHJpbWFyaWVzKHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xvclByaW1h
cmllcz4mJiBwcmltYXJpZXMpIHsgbV9zdGF0ZS5wcmltYXJpZXMgPSBXVEZNb3ZlKHByaW1hcmll
cyk7IH0KIApAQCAtNTYsNiArNTksMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFZpZGVv
Q29sb3JTcGFjZSgpID0gZGVmYXVsdDsKKyAgICBWaWRlb0NvbG9yU3BhY2UoY29uc3QgVmlkZW9D
b2xvclNwYWNlSW5pdCYgaW5pdCkKKyAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgeworICAg
IH0KICAgICBWaWRlb0NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQpCiAgICAg
ICAgIDogbV9zdGF0ZShXVEZNb3ZlKGluaXQpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNjYyYjA4N2U3MmVkZTZl
YzdjOTM1ZGZhNDdmMDdlMGRjNGQwNzZmLi5iMGE2NDg3Y2M5ZDllOTQ4YzNiZWRhNWQ3OTA5OTRi
OWY0ZGZiZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NTc2LDYgKzQ1NzYsOSBAQAogCQlDRENDOUJEMTIyMzg3RUFBMDBG
RkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0M5QkQwMjIzODdFQUEwMEZGQjUxQyAv
KiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQ0Q0MUU4MUMzRERCMEEwMDk2NUQ5OSAvKiBQ
YXJzZWRDb250ZW50UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQ0Q0MUU2MUMzRERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50UmFuZ2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENG
QUJCRDE4QzBBRjc4MDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8q
IEhpZ2hsaWdodERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4
QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCRjI3
N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4QUMyMjc3
RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFDMTI3N0U1NTRF
MDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERDcwODk3MTgzNTlGNkYw
MDJCM0RDNiAvKiBTYW1wbGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERDcwODk1MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRERDMUU3QTE4
QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERDMUU3OTE4QTk1MkYzMDAyN0E5
RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFM0E4NTQxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1
ZGlvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREUzQTg1MjE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCAqLzsgfTsKQEAgLTE2MTQ4LDYgKzE2MTUxLDkgQEAKIAkJQ0RDRTVDRDAxNDYzM0JDOTAw
RDQ3Q0NBIC8qIEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
dmVudFRhcmdldEZhY3RvcnkuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZB
QkJCMThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDRkFCQkMxOEMwQUYxOTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0
Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCRjI3N0U1
NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0REMUU1MjUxNjdC
QTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8q
IFNhbXBsZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4ODk4LDYgKzI4OTA0LDcgQEAKIAkJ
CQlCQzYzNUU4QjI2NEMyQ0FFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuaCAqLywKIAkJ
CQlCQzYzNUU5MDI2NEM0NjlGMDAwRUYzM0EgLyogUGl4ZWxGb3JtYXQuY3BwICovLAogCQkJCUJD
QTU1OTEyMjYzREJENzkwMDdGMTlCMyAvKiBQaXhlbEZvcm1hdC5oICovLAorCQkJCUNERDA4QUJG
Mjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8s
CiAJCQkJQkMzRTYyNDIyNjU5NzkxNzAwNTQ4QUNEIC8qIFBsYXRmb3JtQ29sb3JTcGFjZS5oICov
LAogCQkJCTcyNkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi8sCiAJ
CQkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLywK
QEAgLTI4OTA3LDkgKzI4OTE0LDExIEBACiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8q
IFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8q
IFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRD
IC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLAorCQkJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1
NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovLAogCQkJCUNEMUY5QUZCMjZGRDM4
QzkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCAqLywKIAkJCQlDRDFG
OUFGQTI2RkQzODU5MDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCAqLywKIAkJ
CQlDRDFGOUFGRDI2RkQzOENCMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNp
ZW50cy5oICovLAorCQkJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0QxRjlBRkMyNkZEMzhDQTAwNjE3RUI2IC8q
IFBsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oICovLAogCQkJCUJDQUI0MTdG
MTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uY3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgw
MEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKQEAgLTM0NTA4LDYgKzM0NTE3LDcgQEAKIAkJCQlCQzUz
QzVGNTBEQTU2QjkyMDAyMUVCNUQgLyogR3JhZGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3OTY0MEQwMEJGMjIwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMTlDREY0Mjc3MTA2MzkwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQkMxOUNFMkIyNzcyQkY3QjAwNTNGNzM0IC8qIEdyYWRpZW50
Q29sb3JTdG9wcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0
IC8qIEdyYWRpZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTlDREYyMjc2RkZDNkQw
MDUzRjczNCAvKiBHcmFkaWVudFJlbmRlcmVyQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCQjY4
MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNjQxNCw2ICszNjQyNCw3IEBACiAJCQkJQkM2MzVFOEMyNjRDMkNBRTAwMEVGMzNBIC8q
IFBpeGVsQnVmZmVyRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NTkxNDI2M0RCRDc5
MDA3RjE5QjMgLyogUGl4ZWxGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0REMDhBQzAyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OUIzRUREMTI4REI1MDIwMEU3MjZDMiAvKiBQbGF0
Zm9ybUNBQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMjAwNjE4RTc3MUZDMDAz
RUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjEzMTYzRTE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzY0NDUsOSArMzY0NTYsMTEgQEAKIAkJCQkxQUQ4RjgxQjExQ0FCOUU5MDBFOTNF
NTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdEMDczMzE4
ODRDNTZDMDBCNEFGODYgLyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNERDA4QUJEMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDIyNzAwMzIzRDAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Qx
RjlCMDEyNzAwMjBCNzAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDFGOUIwMzI3MDAzMjNEMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01h
dHJpeENvZWZmaWNpZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0REMDhBQzIyNzdFNTU0RTAw
RUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEMUY5QjA0MjcwMDMyM0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvVHJhbnNmZXJD
aGFyYWN0ZXJpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3
Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1QkE0RkFEMjZEOTgx
QUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM3NTczLDcgKzM3NTg2LDYgQEAKIAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyogVHJh
Y2tQcml2YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3
RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGQUMz
MEZFMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovLAot
CQkJCUJDMTlDRTJCMjc3MkJGN0IwMDUzRjczNCAvKiBHcmFkaWVudENvbG9yU3RvcHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2FjdGlvbk9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2M0JCIC8q
IFRyYW5zZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM0MEVGODZENDcw
MDlEMENBRiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCBhMjcxMDY3NWU4YTc0MDk0NGU2
OWY5YWVmNzFlOTc4OTMxZWE4NWNmLi42OTk0YjExMzFlMjM0OGU0ZWU5ZDI1YzA5YWNkNGRmNjU4
N2MxMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTE3
MSw2ICsxNzEsMTEgQEAgdm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJs
ZWQpCiAgICAgfSk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQo
Y29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sK
KyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lk
IEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJ
ZChpZCk7CkBAIC0yMzEsMTAgKzIzNiw3IEBAIHZvaWQgQXVkaW9UcmFjazo6dXBkYXRlS2luZEZy
b21Qcml2YXRlKCkKIAogdm9pZCBBdWRpb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVBy
aXZhdGUoKQogewotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2Rl
YygpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFNhbXBsZVJhdGUobV9wcml2YXRlLT5zYW1w
bGVSYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0TnVtYmVyT2ZDaGFubmVscyhtX3By
aXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRy
YXRlKG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRl
KG1fcHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA0ZjAwNzA4MTcy
ZThkNWY4Mjc4YzAzYTU0OGNkZTViNmE2Y2FjYWM1Li40ZTE4NmMxNjYyMDdiMDdhNzhkMGU3NmVj
NGQzZGQwOTA5OTYxNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApA
QCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpIGZp
bmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2Vk
KGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaAppbmRleCA2ZDcwYmNiOGQwZGExYmJmMjky
YTM1NThjYTBkOTAxYmVlZTExOGQ2Li5lODQ3NGJiNmNhOTlkNWViNTM1ZjA1MzFiZmYyNTBhMmMy
OTlkNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbi5oCkBAIC0yNywxNiArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShWSURFTykK
IAorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3Qg
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IHsKLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWlu
dDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsg
MCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19OwordXNpbmcgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xh
c3MgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxBdWRpb1RyYWNr
Q29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDQsNiAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4g
Y3JlYXRlKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oV1RGTW92ZShpbml0KSkpOyB9CiAgICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsgfQogCisgICAgdm9pZCBzZXRT
dGF0ZShjb25zdCBBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmIHN0YXRlKSB7IG1fc3RhdGUg
PSBzdGF0ZTsgfQorCiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5j
b2RlYzsgfQogICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5nIGNvZGVjKSB7IG1fc3RhdGUuY29kZWMg
PSBjb2RlYzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRl
eCA3OTU3NzMzMzc5NWNkOTAzMTNmNGEzZTI3NzhhYTBhZmZkNzNkZGMxLi43M2U5ZDBmMTdhZjU2
NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5NGY0NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKQEAgLTE2NCw2ICsxNjQsMTEgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZWxl
Y3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKICAgICB9KTsKIH0KIAordm9pZCBWaWRlb1RyYWNr
Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUoY29u
ZmlndXJhdGlvbik7Cit9CisKIHZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21T
dHJpbmcmIGlkKQogewogICAgIHNldElkKGlkKTsKQEAgLTI2MiwxMiArMjY3LDcgQEAgdm9pZCBW
aWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogCiB2b2lkIFZpZGVvVHJhY2s6OnVw
ZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpCiB7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5z
ZXRDb2RlYyhtX3ByaXZhdGUtPmNvZGVjKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0V2lk
dGgobV9wcml2YXRlLT53aWR0aCgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEhlaWdodCht
X3ByaXZhdGUtPmhlaWdodCgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldENvbG9yU3BhY2Uo
VmlkZW9Db2xvclNwYWNlOjpjcmVhdGUobV9wcml2YXRlLT5jb2xvclNwYWNlKCkpKTsKLSAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldEZyYW1lcmF0ZShtX3ByaXZhdGUtPmZyYW1lcmF0ZSgpKTsKLSAg
ICBtX2NvbmZpZ3VyYXRpb24tPnNldEJpdHJhdGUobV9wcml2YXRlLT5iaXRyYXRlKCkpOworICAg
IG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUobV9wcml2YXRlLT5jb25maWd1cmF0aW9uKCkpOwog
fQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5oCmluZGV4IDdhOTc4YzczMjM2MGI3Nzc3NjQ3ZjQyZWRiZjIxMDY4NmQxNDBkMTgu
LmUxZTBlOWIwMjU4ZDUxMjc2Mjk3MDZkMGVjNDIyYTNjYmQwM2Y2OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJv
b2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSBmaW5hbCB7IHVwZGF0
ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpOyB9CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hh
bmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJikgZmluYWw7CiAKICAg
ICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IGQyMGQyNDNjYTYxMDZlZWNmMzRmOTFlNGQzNWIz
Y2JkYjdkOTdiMmYuLmM1OTYxZjQ5MWQ4MDBmY2QzNGUzNDA2OWM3ZDc4ZDRlZjNiY2UyMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0
aW9uLmgKQEAgLTI3LDE5ICsyNywxMyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVk
ZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlZpZGVvQ29s
b3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0cnVjdCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQgewotICAgIFN0
cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aCB7IDAgfTsKLSAgICB1aW50MzJfdCBoZWln
aHQgeyAwIH07Ci0gICAgUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZTsKLSAgICBk
b3VibGUgZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19Owor
dXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNDcsNiArNDEsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBp
bml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKFdURk1v
dmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgbV9jb2xv
clNwYWNlLT5zZXRTdGF0ZShtX3N0YXRlLmNvbG9yU3BhY2UpOworICAgIH0KKwogICAgIFN0cmlu
ZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuY29kZWM7IH0KICAgICB2b2lkIHNldENv
ZGVjKFN0cmluZyBjb2RlYykgeyBtX3N0YXRlLmNvZGVjID0gY29kZWM7IH0KIApAQCAtNTYsOCAr
NTYsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0ZS5oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9z
dGF0ZS5oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+IGNv
bG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmNvbG9yU3BhY2U7IH0KLSAgICB2b2lk
IHNldENvbG9yU3BhY2UoUmVmUHRyPFZpZGVvQ29sb3JTcGFjZT4mJiBjb2xvclNwYWNlKSB7IG1f
c3RhdGUuY29sb3JTcGFjZSA9IFdURk1vdmUoY29sb3JTcGFjZSk7IH0KKyAgICBSZWY8VmlkZW9D
b2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9Cisg
ICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZjxWaWRlb0NvbG9yU3BhY2U+JiYgY29sb3JTcGFjZSkg
eyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2UpOyB9CiAKICAgICBkb3VibGUgZnJh
bWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5mcmFtZXJhdGU7IH0KICAgICB2b2lkIHNl
dEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fc3RhdGUuZnJhbWVyYXRlID0gZnJhbWVy
YXRlOyB9CkBAIC02OCwxMSArNjgsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KQogICAg
ICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICAgICAgLCBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNw
YWNlOjpjcmVhdGUoaW5pdC5jb2xvclNwYWNlKSkKKyAgICB7CisgICAgfQorICAgIFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNl
OjpjcmVhdGUoKSkKICAgICB7CiAgICAgfQotICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkg
PSBkZWZhdWx0OwogCiAgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IG1fc3RhdGU7Cisg
ICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gbV9jb2xvclNwYWNlOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5k
ZXggMzJlYzU4ZGU0MmZmZTlkY2JmNDM4YmM3YzZkN2E2YzI3OTBlMjExNS4uZjljMDAzMjQ3NDU2
ZTM4ODA5ZmRmMTg3YjA3NzI3MTkyMTUwM2NmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtNjQsMTgg
KzY1LDE2IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKEF1ZGlvVHJhY2tQcml2YXRlJiwgYm9vbCBlbmFibGVkKT47CiAgICAgdm9p
ZCBzZXRFbmFibGVkQ2hhbmdlZENhbGxiYWNrKEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxs
YmFjaykgeyBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQot
ICAgIAotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB2
b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsg
fQotICAgIAotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBs
ZVJhdGU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZSkgeyBt
X3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9Ci0gICAgCi0gICAgdWludDMyX3QgbnVtYmVyT2ZD
aGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZDaGFubmVsczsgfQotICAgIHZvaWQg
c2V0TnVtYmVyT2ZDaGFubmVscyh1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKSB7IG1fbnVtYmVy
T2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7IH0KLSAgICAKLSAgICB1aW50NjRfdCBiaXRy
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9Ci0gICAgdm9pZCBzZXRCaXRyYXRlKHVp
bnQ2NF90IGJpdHJhdGUpIHsgbV9iaXRyYXRlID0gYml0cmF0ZTsgfQorCisgICAgY29uc3QgUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAg
IGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAg
ICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25D
aGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIkF1ZGlvVHJhY2tQcml2YXRlIjsgfQpAQCAtODcsMTAgKzg2LDcgQEAgcHJvdGVjdGVkOgog
cHJpdmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsK
ICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAg
dWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fbnVtYmVyT2ZDaGFu
bmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1B
dWRpb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAgICAgRW5hYmxlZENoYW5n
ZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQuaAppbmRleCAwYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2NjNlMDc1YTk0NGU4MzZkY2Q4Li42MWVl
ODY0NDE3ODQyOTg5NTI1YjVmNGU4NzY0NzAwZGNkYjI5NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmgKQEAgLTMyLDEwICszMiwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRp
b1RyYWNrUHJpdmF0ZTsKK3N0cnVjdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOwog
CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyODdiN2IzNzY2YTZjNGIyNTJjZDQ0YjU5
M2M4OTVhZDQ1Mjk2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisj
aW5jbHVkZSAiUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdHJ1Y3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiA6IFBsYXRmb3Jt
VHJhY2tDb25maWd1cmF0aW9uIHsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlIHsgMCB9OworICAg
IHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMgeyAwIH07CisgICAgdWludDY0X3QgYml0cmF0ZSB7
IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2RlYyA9PSBiLmNvZGVjCisgICAgICAgICYmIGEu
c2FtcGxlUmF0ZSA9PSBiLnNhbXBsZVJhdGUKKyAgICAgICAgJiYgYS5udW1iZXJPZkNoYW5uZWxz
ID09IGIubnVtYmVyT2ZDaGFubmVscworICAgICAgICAmJiBhLmJpdHJhdGUgPT0gYi5iaXRyYXRl
OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBjb2RlYzsKKyAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgZW5jb2RlciA8
PCBudW1iZXJPZkNoYW5uZWxzOworICAgIGVuY29kZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxh
dGUgPGNsYXNzIERlY29kZXI+Citib29sIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
JiBjb25maWd1cmF0aW9uKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5jb2RlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24u
Yml0cmF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjk3YTYw
MGY4NGU0MzA3NzViNTg5MDE2MGY0YTA2N2Y0OGQyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShWSURFTykKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgU3Ry
aW5nIGNvZGVjOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IDI4
ODc0M2RlNWY3MTMyZTYwYTBjMGNjYzQ3MTllZDEyNWFhMGY3YTEuLjUwZTRhYjkyNzY0NTAwYTVh
Y2EzZjFlNzRhOWI4ODhmYTFiNTRjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaApAQCAtNDMsNiAr
NDMsMTkgQEAgc3RydWN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIHsKICAgICB0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNv
ZGVyJiwgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmKTsKIH07CiAKK2lubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiBhLnByaW1hcmllcyA9PSBiLnByaW1hcmll
cworICAgICAgICAmJiBhLnRyYW5zZmVyID09IGIudHJhbnNmZXIKKyAgICAgICAgJiYgYS5tYXRy
aXggPT0gYi5tYXRyaXgKKyAgICAgICAgJiYgYS5mdWxsUmFuZ2UgPT0gYi5mdWxsUmFuZ2U7Cit9
CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Um
IGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiAhKGEg
PT0gYik7Cit9CisKIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPgogdm9pZCBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI1YWZjZTY3NGQ0OTI1Y2U4YzE5
ZjMzZGYzNjgzYTMyNDZlMDVkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCww
ICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8p
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJh
dGlvbiB7CisgICAgdWludDMyX3Qgd2lkdGggeyAwIH07CisgICAgdWludDMyX3QgaGVpZ2h0IHsg
MCB9OworICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7CisgICAgZG91Ymxl
IGZyYW1lcmF0ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBiaXRyYXRlIHsgMCB9OworCisgICAgdGVt
cGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZShEZWNvZGVyJiwgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpOworfTsKKwor
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBiKQoreworICAg
IHJldHVybiBhLmNvZGVjID09IGIuY29kZWMKKyAgICAgICAgJiYgYS53aWR0aCA9PSBiLndpZHRo
CisgICAgICAgICYmIGEuaGVpZ2h0ID09IGIuaGVpZ2h0CisgICAgICAgICYmIGEuY29sb3JTcGFj
ZSA9PSBiLmNvbG9yU3BhY2UKKyAgICAgICAgJiYgYS5mcmFtZXJhdGUgPT0gYi5mcmFtZXJhdGUK
KyAgICAgICAgJiYgYS5iaXRyYXRlID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5j
b2RlciA8PCB3aWR0aDsKKyAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICBlbmNvZGVyIDw8IGNv
bG9yU3BhY2U7CisgICAgZW5jb2RlciA8PCBmcmFtZXJhdGU7CisgICAgZW5jb2RlciA8PCBiaXRy
YXRlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUGxhdGZvcm1WaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCit7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmNvZGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi53aWR0aCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaGVpZ2h0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5mcmFtZXJhdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApp
bmRleCA1MmM5ZmUyMjBmMzBhM2YzMTk1NzI5MzJkMzZhYzZkOTkzMTBiMzU2Li42MjNmOTQxYTY3
ZTg2YTUxMDIzMDEyMGY3YWIwMDg5YjFjM2UyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNw
YWNlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNjIsMzYgKzYyLDIzIEBAIHB1
YmxpYzoKICAgICB1c2luZyBTZWxlY3RlZENoYW5nZWRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQo
VmlkZW9UcmFja1ByaXZhdGUmLCBib29sIHNlbGVjdGVkKT47CiAgICAgdm9pZCBzZXRTZWxlY3Rl
ZENoYW5nZWRDYWxsYmFjayhTZWxlY3RlZENoYW5nZWRDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1f
c2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCi0gICAgdmly
dHVhbCBTdHJpbmcgY29kZWMoKSBjb25zdCB7IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVj
KTsgfQotICAgIAotICAgIHZpcnR1YWwgdWludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBt
X3dpZHRoOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpZHRoKHVpbnQzMl90IHdpZHRoKSB7IG1f
d2lkdGggPSB3aWR0aDsgfQotICAgIAotICAgIHZpcnR1YWwgdWludDMyX3QgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SGVpZ2h0KHVpbnQz
Ml90IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQotICAgIAotICAgIHZpcnR1YWwgUGxh
dGZvcm1WaWRlb0NvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JT
cGFjZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb2xvclNwYWNlKFBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlJiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3BhY2Up
OyB9Ci0gICAgCi0gICAgdmlydHVhbCBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZXJhdGU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVyYXRlKGRvdWJsZSBmcmFt
ZXJhdGUpIHsgbV9mcmFtZXJhdGUgPSBmcmFtZXJhdGU7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVp
bnQ2NF90IGJpdHJhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHJhdGU7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Qml0cmF0ZSh1aW50NjRfdCBiaXRyYXRlKSB7IG1fYml0cmF0ZSA9IGJpdHJhdGU7
IH0KLSAgICAKKyAgICBjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uOyB9CisgICAgdm9pZCBz
ZXRDb25maWd1cmF0aW9uKFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24gPT0gbV9jb25maWd1cmF0
aW9uKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25m
aWd1cmF0aW9uOworICAgICAgICBpZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+
Y29uZmlndXJhdGlvbkNoYW5nZWQobV9jb25maWd1cmF0aW9uKTsKKyAgICB9CisKIHByb3RlY3Rl
ZDoKICAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKICAgICBX
ZWFrUHRyPFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAg
ICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAgIHVp
bnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0gICAg
UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgbV9jb2xvclNwYWNlOwotICAgIGRvdWJsZSBtX2ZyYW1l
cmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBTZWxlY3RlZENo
YW5nZWRDYWxsYmFjayBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oCmluZGV4IGQ1MWIzNzIxMjNhZTQwNDBiZDBlNjU3OGI0YTA4OTc1OTk0MWVlMGQuLjY1
YjdiZjY2NzcxODdkOWQyYzEwMTM4NWZlMzczYzU5NDcxZWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaApAQCAtMzEsMTAgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0
IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb247CisKIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpID0gMDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5o
CmluZGV4IGQyYmM1ZjI2NmYyNTAwM2YwYjc2NmVhMDkzODM3NjRiM2Q5N2UzYWMuLjU2M2QwMWEz
MDg3NGI5OWQ3ZjFhNjRhZWZmMmI4YjhmNmExYTkzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Uu
aCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTQ1LDggKzQ2LDEwIEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVz
Y3JpcHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzsKK3N0cnVjdCBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uOworc3RydWN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b247CiAKLWNsYXNzIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwgeworY2xhc3MgQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbChBVlBsYXllckl0ZW1UcmFjayopOwpA
QCAtNzEsNiArNzQsMjAgQEAgcHVibGljOgogCiAgICAgaW50IHRyYWNrSUQoKSBjb25zdDsKIAor
ICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VGb3JBVkFzc2V0VHJhY2soQVZBc3NldFRyYWNrKik7
CisgICAgc3RhdGljIFN0cmluZyBsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25PcHRpb24oQVZN
ZWRpYVNlbGVjdGlvbk9wdGlvbiAqKTsKKworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24gdmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdDsKKyAgICB1c2luZyBWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNl
dFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25P
YnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0g
b2JzZXJ2ZXI7IH0KKworICAgIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gYXVkaW9U
cmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdDsKKyAgICB1c2luZyBBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICB2b2lkIHNldEF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIoQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciYgb2Jz
ZXJ2ZXIpIHsgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gb2JzZXJ2ZXI7IH0K
KworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CisKICAgICBTdHJp
bmcgY29kZWMoKSBjb25zdDsKICAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0OwogICAgIHVpbnQz
Ml90IGhlaWdodCgpIGNvbnN0OwpAQCAtNzksMTQgKzk2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50
NjRfdCBiaXRyYXRlKCkgY29uc3Q7CiAgICAgdWludDMyX3Qgc2FtcGxlUmF0ZSgpIGNvbnN0Owog
ICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdDsKLSAgICBzdGF0aWMgU3RyaW5n
IGxhbmd1YWdlRm9yQVZBc3NldFRyYWNrKEFWQXNzZXRUcmFjayopOwotICAgIHN0YXRpYyBTdHJp
bmcgbGFuZ3VhZ2VGb3JBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRp
b24gKik7CiAKLXByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbVRyYWNrPiBtX3Bs
YXllckl0ZW1UcmFjazsKLSAgICBSZXRhaW5QdHI8QVZBc3NldFRyYWNrPiBtX2Fzc2V0VHJhY2s7
CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9wbGF5ZXJJdGVtOwogICAgIFJlZlB0cjxN
ZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM+IG1fbWVkaWFTZWxlY3Rpb25PcHRpb247CisgICAg
UmV0YWluUHRyPEFWQXNzZXRUcmFjaz4gbV9hc3NldFRyYWNrOworICAgIFdlYWtQdHI8VmlkZW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcj4gbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2Vy
dmVyOworICAgIFdlYWtQdHI8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcj4gbV9hdWRp
b1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQppbmRleCA0YjcyNTkwN2I0YjRiMjU1ZDA3
MmQ1MTZhNTYzYjg0NjU0ODA2ZjkyLi5lNzM1ZmE5ZWY0NzM3MzZjOGIxMTI3NzkwOTg0NDM2Mzcz
MjRiMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bC5tbQpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJGb3JtYXREZXNjcmlwdGlvblV0aWxp
dGllcy5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKKyNpbXBvcnQg
IlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
TWVkaWFTZWxlY3Rpb25Hcm91cC5oPgpAQCAtMzcsNiArMzksNyBAQAogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWUGxheWVySXRlbS5oPgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWUGxheWVySXRl
bVRyYWNrLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29w
Lmg+CiAKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CkBAIC00OCwyNSArNTEsNTAgQEAgQGVuZAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBOU0FycmF5KiBhc3NldFRyYWNrQ29uZmln
dXJhdGlvbktleU5hbWVzKCkKK3sKKyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJh
eSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAiZm9ybWF0RGVzY3JpcHRpb25zIiwgQCJlc3RpbWF0
ZWREYXRhUmF0ZSIsIEAibm9taW5hbEZyYW1lUmF0ZSIsIG5pbF07CisgICAgcmV0dXJuIGtleXM7
Cit9CisKIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0lt
cGwoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQogICAgIDogbV9wbGF5ZXJJdGVtVHJhY2sodHJh
Y2spCiAgICAgLCBtX2Fzc2V0VHJhY2soW3RyYWNrIGFzc2V0VHJhY2tdKQogeworICAgIGluaXRp
YWxpemVBc3NldFRyYWNrKCk7CiB9CiAKIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwoQVZBc3NldFRyYWNrKiB0cmFjaykKICAgICA6IG1fYXNzZXRU
cmFjayh0cmFjaykKIHsKKyAgICBpbml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKE1lZGlhU2VsZWN0
aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQogICAgIDogbV9tZWRpYVNlbGVjdGlvbk9wdGlvbigm
b3B0aW9uKQorICAgICwgbV9hc3NldFRyYWNrKG9wdGlvbi5hc3NldFRyYWNrKCkpCiB7CisgICAg
aW5pdGlhbGl6ZUFzc2V0VHJhY2soKTsKIH0KIAogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
fkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwoKQogewogfQorCit2b2lkIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OmluaXRpYWxpemVBc3NldFRyYWNrKCkKK3sKKyAgICBpZiAoIW1fYXNzZXRU
cmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fYXNzZXRUcmFjayAgbG9hZFZhbHVlc0Fz
eW5jaHJvbm91c2x5Rm9yS2V5czphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKCkgY29t
cGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gV2Vha1B0cih0aGlzKV0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2F1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgKCp3ZWFrVGhpcy0+bV9h
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKSgpOworICAgICAgICAgICAgaWYgKHdlYWtU
aGlzICYmIHdlYWtUaGlzLT5tX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpCisgICAg
ICAgICAgICAgICAgKCp3ZWFrVGhpcy0+bV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVy
KSgpOworICAgICAgICB9KTsKKyAgICB9XTsKK30KICAgICAKIGJvb2wgQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbDo6ZW5hYmxlZCgpIGNvbnN0CiB7CkBAIC0yMzIsNiArMjYwLDI4IEBAIFN0cmlu
ZyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpsYW5ndWFnZUZvckFWTWVkaWFTZWxlY3Rpb25P
cHRpb24oQVZNZWRpYVNlbGVjCiAgICAgcmV0dXJuIGxhbmd1YWdlOwogfQogCitQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4geworICAgICAgICB7IGNvZGVj
KCkgfSwKKyAgICAgICAgd2lkdGgoKSwKKyAgICAgICAgaGVpZ2h0KCksCisgICAgICAgIGNvbG9y
U3BhY2UoKSwKKyAgICAgICAgZnJhbWVyYXRlKCksCisgICAgICAgIGJpdHJhdGUoKSwKKyAgICB9
OworfQorCitQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGw6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
eworICAgICAgICB7IGNvZGVjKCkgfSwKKyAgICAgICAgc2FtcGxlUmF0ZSgpLAorICAgICAgICBu
dW1iZXJPZkNoYW5uZWxzKCksCisgICAgICAgIGJpdHJhdGUoKSwKKyAgICB9OworfQorCiBpbnQg
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6dHJhY2tJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1f
YXNzZXRUcmFjaykKQEAgLTI1Niw3ICszMDYsNyBAQCBzdGF0aWMgQVZBc3NldFRyYWNrKiBhc3Nl
dFRyYWNrRm9yKGNvbnN0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwmIGltcGwpCiBzdGF0aWMg
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbkZvcihjb25zdCBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsJiBpbXBsKQogewogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0
VHJhY2tGb3IoaW1wbCk7Ci0gICAgaWYgKCFhc3NldFRyYWNrIHx8ICFhc3NldFRyYWNrLmZvcm1h
dERlc2NyaXB0aW9ucy5jb3VudCkKKyAgICBpZiAoIWFzc2V0VHJhY2sgfHwgW2Fzc2V0VHJhY2sg
c3RhdHVzT2ZWYWx1ZUZvcktleTpAImZvcm1hdERlc2NyaXB0aW9ucyIgZXJyb3I6bmlsXSAhPSBB
VktleVZhbHVlU3RhdHVzTG9hZGVkIHx8ICFhc3NldFRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5j
b3VudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+KGFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zWzBdKTsK
IH0KQEAgLTI5MSwxMCArMzQxLDEyIEBAIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw6OmNvbG9yU3BhY2UoKSBjb25zdAogCiBkb3VibGUgQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbDo6ZnJhbWVyYXRlKCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBhc3Nl
dFRyYWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcykpCi0gICAgICAgIHJldHVybiBhc3NldFRyYWNr
Lm5vbWluYWxGcmFtZVJhdGU7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IDA7CisgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CisgICAgaWYg
KCFhc3NldFRyYWNrKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3Rh
dHVzT2ZWYWx1ZUZvcktleTpAIm5vbWluYWxGcmFtZVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlW
YWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFzc2V0VHJh
Y2subm9taW5hbEZyYW1lUmF0ZTsKIH0KIAogdWludDMyX3QgQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbDo6c2FtcGxlUmF0ZSgpIGNvbnN0CkBAIC0zMjgsNiArMzgwLDggQEAgdWludDY0X3QgQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpIGNvbnN0CiAgICAgYXV0byBhc3NldFRy
YWNrID0gYXNzZXRUcmFja0ZvcigqdGhpcyk7CiAgICAgaWYgKCFhc3NldFRyYWNrKQogICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAoW2Fzc2V0VHJhY2sgc3RhdHVzT2ZWYWx1ZUZvcktleTpAImVz
dGltYXRlZERhdGFSYXRlIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCisg
ICAgICAgIHJldHVybiAwOwogICAgIGlmICghc3RkOjppc2Zpbml0ZShhc3NldFRyYWNrLmVzdGlt
YXRlZERhdGFSYXRlKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGFzc2V0VHJhY2su
ZXN0aW1hdGVkRGF0YVJhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQy5oCmluZGV4IDg5MDA1MTAxZWU2ZDQ3Nzc4OTA2MWQ3Mjc3YWZjNWE0
YTY4NmE4ZDAuLmEyNzdmNmY2YTFmZGM3MzM2YTFiY2FiMzg0NThmYjc0MGUzZjdlMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a1ByaXZhdGVBVkYuaCIKKyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBB
VkFzc2V0VHJhY2s7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBA
IHByaXZhdGU6CiAgICAgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNr
Kik7CiAgICAgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAgIEF1
ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmKTsKKyAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw+JiYpOwogCiAgICAgdm9pZCByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsK
KyAgICB2b2lkIGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2ltcGw7CisKKyAgICB1c2luZyBB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2ZXI8dm9pZCgpPjsKKyAgICBB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyIG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25P
YnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQy5tbQppbmRleCAxY2I5NTg5ZDg1ZTkwMDkxMDEyYmU5YTcwNDk1OWFm
MTFkYTE4MzNiLi44ZTVlZmVlYmJlNjQ5YTI0ZTgyYzExNDQwNmY1NjI4MWY3ZGEwNDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1t
CkBAIC0zMywxNyArMzMsMjkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sq
IHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4odHJhY2spKQorICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQoreworfQorCitBdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQor
ICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwog
fQogCiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhN
ZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKLSAgICA6IG1faW1wbChtYWtlVW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCisgICAgOiBBdWRpb1RyYWNr
UHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPihvcHRp
b24pKQoreworfQorCitBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRl
QVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4mJiBpbXBs
KQorICAgIDogbV9pbXBsKFdURk1vdmUoaW1wbCkpCisgICAgLCBtX2F1ZGlvVHJhY2tDb25maWd1
cmF0aW9uT2JzZXJ2ZXIoW3RoaXNdIHsgYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7
IH0pCiB7CisgICAgbV9pbXBsLT5zZXRBdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKG1f
YXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik7CiAgICAgcmVzZXRQcm9wZXJ0aWVzRnJv
bVRyYWNrKCk7CiB9CiAKKwogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJv
cGVydGllc0Zyb21UcmFjaygpCiB7CiAgICAgLy8gRG9uJ3QgY2FsbCB0aGlzLT5zZXRFbmFibGVk
KCkgYmVjYXVzZSBpdCBhbHNvIHNldHMgdGhlIGVuYWJsZWQgc3RhdGUgb2YgdGhlCkBAIC01NSwx
MSArNjcsMTIgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGll
c0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRMYWJlbChtX2lt
cGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAg
c2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRTYW1wbGVSYXRlKG1faW1wbC0+c2Ft
cGxlUmF0ZSgpKTsKLSAgICBzZXROdW1iZXJPZkNoYW5uZWxzKG1faW1wbC0+bnVtYmVyT2ZDaGFu
bmVscygpKTsKLSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAgICBzZXRDb25m
aWd1cmF0aW9uKG1faW1wbC0+YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7Cit9CiAKK3ZvaWQg
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjphdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
KQoreworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlv
bigpKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnNldFBsYXllckl0ZW1U
cmFjayhBVlBsYXllckl0ZW1UcmFjayAqdHJhY2spCkBAIC03MywxMiArODYsNiBAQCBBVlBsYXll
ckl0ZW1UcmFjayogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpwbGF5ZXJJdGVtVHJhY2soKQog
ICAgIHJldHVybiBtX2ltcGwtPnBsYXllckl0ZW1UcmFjaygpOwogfQogCi1BdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNr
KQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJh
Y2spKQotewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwotfQotCiB2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQog
ewogICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJh
Y2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5jcHAKaW5kZXggOWQ5ZDY0YWEyNmFmNzIzYjQ2YmE4NzI0OGEzOTFkMjllOGNhOGIxYy4u
ZWFmM2YxMThiMjVhNDM4ODk5MjJmNTZjNmJkZWNmZDljNThjZjhhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCkBAIC0zMCwy
NCArMzAsMzAgQEAKIAogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIgogI2lt
cG9ydCAiTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1U
cmFjayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsPih0cmFjaykpCisgICAgOiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1
ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0
aWVzRnJvbVRyYWNrKCk7CiB9CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVu
aXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCisgICAgOiBWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFj
aykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKIFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0
aW9uQVZGT2JqQyYgb3B0aW9uKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyht
YWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCit7Cit9CisKK1Zp
ZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5p
cXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmIGltcGwpCisgICAgOiBtX2ltcGwo
V1RGTW92ZShpbXBsKSkKKyAgICAsIG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihb
dGhpc10geyB2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsgfSkKIHsKKyAgICBtX2lt
cGwtPnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIobV92aWRlb1RyYWNrQ29uZmln
dXJhdGlvbk9ic2VydmVyKTsKICAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIApA
QCAtNjIsMTUgKzY4LDEyIEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1wbC0+aWQoKSk7CiAgICAgc2V0TGFi
ZWwobV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFnZShtX2ltcGwtPmxhbmd1YWdlKCkp
OwotICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0gICAgc2V0V2lkdGgobV9pbXBsLT53
aWR0aCgpKTsKLSAgICBzZXRIZWlnaHQobV9pbXBsLT5oZWlnaHQoKSk7Ci0gICAgc2V0Q29sb3JT
cGFjZShtX2ltcGwtPmNvbG9yU3BhY2UoKSk7Ci0gICAgc2V0RnJhbWVyYXRlKG1faW1wbC0+ZnJh
bWVyYXRlKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOwotCi0gICAgaWYg
KGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICBjbGllbnQtPmNvbmZpZ3Vy
YXRpb25DaGFuZ2VkKCk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tD
b25maWd1cmF0aW9uKCkpOworfQorCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6dmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBzZXRDb25maWd1cmF0aW9uKG1f
aW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZvaWQgVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDOjpzZXRQbGF5ZXJJdGVtVHJhY2soQVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNr
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
aAppbmRleCBmNDVhZmU0ZjY5YWQxMzgyYmIwZjE4ZmNjNDJmZjViYTk2OWQ5MWIzLi5mZjBjZGZi
MzZlNTE5MjIyOWI4ZTY1NTFlM2YxZGU4MzZkYzcxNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQVZGLmgiCisj
aW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwogT0JK
Q19DTEFTUyBBVlBsYXllckl0ZW07CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAg
IGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBl
eHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZP
YmpDJik7CisgICAgZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0ZDo6dW5pcXVl
X3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmKTsKIAogICAgIHZvaWQgcmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKCk7CisgICAgdm9pZCB2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4gbV9p
bXBsOworCisgICAgdXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2Vy
dmVyPHZvaWQoKT47CisgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciBtX3ZpZGVv
VHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCmluZGV4IDY4NjE4YzcyN2EyZTc1MzgxMmViN2RiNTgzYmEwYmVlN2YwMmU5ODEuLjc2YTBh
YmM4ZTk5YTdlYmY2NmYxOTczNTQ4ZWU2NTYwZjY2NGU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC01MCwxMiArNTAsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1wbC0+
aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFnZSht
X2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0gICAg
c2V0V2lkdGgobV9pbXBsLT53aWR0aCgpKTsKLSAgICBzZXRIZWlnaHQobV9pbXBsLT5oZWlnaHQo
KSk7Ci0gICAgc2V0Q29sb3JTcGFjZShtX2ltcGwtPmNvbG9yU3BhY2UoKSk7Ci0gICAgc2V0RnJh
bWVyYXRlKG1faW1wbC0+ZnJhbWVyYXRlKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRy
YXRlKCkpOworICAgIHNldENvbmZpZ3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJh
dGlvbigpKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sgKnRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5jcHAKaW5kZXggMTFjYWM4MDAyMzFlMDhjNTNlYjZlMzhkODRmNmIzMzczYzkxYmNmYi4u
NTc3YjExMDAwYmUxMzU3ZjIzNWE5MTdhZjQ3NTVhYmE3ZGRhZDhiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC00MCw2ICs0MCw4IEBAIFZpZGVvVHJhY2tQcml2YXRlV2Vi
TTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNKHdlYm06OlRyYWNrRW50cnkmJiB0cmFja0VudHJ5KQog
ewogICAgIGlmIChtX3RyYWNrLmlzX2VuYWJsZWQuaXNfcHJlc2VudCgpKQogICAgICAgICBzZXRT
ZWxlY3RlZChtX3RyYWNrLmlzX2VuYWJsZWQudmFsdWUoKSk7CisKKyAgICB1cGRhdGVDb25maWd1
cmF0aW9uKCk7CiB9CiAKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjppZCgpIGNv
bnN0CkBAIC0xNDUsNiArMTQ3LDE3IEBAIGRvdWJsZSBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmZy
YW1lcmF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgVmlkZW9UcmFja1ByaXZh
dGVXZWJNOjp1cGRhdGVDb25maWd1cmF0aW9uKCkKK3sKKyAgICBQbGF0Zm9ybVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24geworICAgICAgICB7IC5jb2RlYyA9IGNvZGVjKCkg
fSwKKyAgICAgICAgLndpZHRoID0gd2lkdGgoKSwKKyAgICAgICAgLmhlaWdodCA9IGhlaWdodCgp
LAorICAgICAgICAuZnJhbWVyYXRlID0gZnJhbWVyYXRlKCksCisgICAgfTsKKyAgICBzZXRDb25m
aWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCA5OWZk
MDdmZTJkNzFkOTJkYzJlMWM5M2U5NzYxY2VlMWM2NmE0YjQwLi43YmQxOWU5YmQ3MzYwMTE4MDhj
MGYwZTQzNGM0NDhmMmQ0YTAyMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAt
NDMsMTMgKzQzLDE2IEBAIHB1YmxpYzoKICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFs
OwogICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHRyYWNrVUlEKCkgY29uc3QgZmluYWw7CiAg
ICAgc3RkOjpvcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwotICAg
IFN0cmluZyBjb2RlYygpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3Qg
ZmluYWw7Ci0gICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgZmluYWw7Ci0gICAgZG91YmxlIGZy
YW1lcmF0ZSgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRl
V2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOworCisgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7Cisg
ICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdDsKKyAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsK
KyAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0
aW9uKCk7CisKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJhY2s7CiAgICAgbXV0YWJsZSBBdG9t
U3RyaW5nIG1fdHJhY2tJRDsKICAgICBtdXRhYmxlIEF0b21TdHJpbmcgbV9sYWJlbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWU5ZDZhZWQ4
OWYxMWI5MjFjZTEwZjk2MTVhOWVmODM1NjViYzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvVHJhY2tQcml2YXRlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIDogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CisgICAgYm9vbCBlbmFi
bGVkOworICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kIGtpbmQgeyBXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gdHJhY2tDb25maWd1cmF0aW9uOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2Rl
KGVuY29kZXIpOworICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIg
PDwga2luZDsKKyAgICAgICAgZW5jb2RlciA8PCB0cmFja0NvbmZpZ3VyYXRpb247CisgICAgfQor
CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIGJvb2wgV0FSTl9VTlVT
RURfUkVUVVJOIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoIVRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZShkZWNvZGVyLCBjb25maWd1cmF0aW9u
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmVuYWJsZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi50cmFja0NvbmZpZ3VyYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0
ZDFmYThhNTMuLjgxMDQwMDI4ZTE3MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwCkBAIC0yOSwxMSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYg
KzU0LDE5IEBAIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgp
CiAgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkK
K0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJv
eHk6OmNvbmZpZ3VyYXRpb24oKQogewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2
YXRlLT5pZCgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90
cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRp
bWVWYXJpYW5jZSgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAg
ICAgICB7CisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1f
dHJhY2tQcml2YXRlLT5sYWJlbCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1
YWdlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwK
KyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAg
ICAgICAgIG1fdHJhY2tQcml2YXRlLT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5raW5kKCksCi0gICAgICAgIGZhbHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJp
dmF0ZTo6S2luZDo6Tm9uZSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAg
ICAgIDAsCi0gICAgICAgIDAsCi0gICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90
cmFja1ByaXZhdGUtPmJpdHJhdGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJh
dGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAg
ICAgbV90cmFja1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2
ICs5MSwxMSBAQCB2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9v
bCBlbmFibGVkKQogICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
QXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25D
aGFuZ2VkKCk7Cit9CisKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29u
c3QgQXRvbVN0cmluZyYpCiB7CiAgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
aAppbmRleCBkMmRlYzQ1YTZkYjNmZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4wMTM1Njc5
MTViNGU5MDBmZDM2YmU0NzliZDhmMmVjNDkyN2I4NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3
ICs0NCw3IEBAIGNsYXNzIERlY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAog
Y2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluPgpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1By
aXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZv
aWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAog
ICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKQEAgLTc2LDcgKzc3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKyAgICBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOwogICAgIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoKTsKIAogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAppbmRleCAyZWRlZTE5
ODcxYzdkMzdhNDU0NWUzZWM1MDU2YjYxNjMzMDFhM2VkLi5iMjE0YWVhMTNhOGQ1ZjdiNzZmNjUy
YzdkYzZlNWM0Njg4ZDU0NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
UHJveHkuaCIKLSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC01NCwyMyArNTQsMjAgQEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KCkKICAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGll
bnQoKTsKIH0KIAotVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCiB7Ci0gICAgVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uIHsgfTsKLSAgICBjb25m
aWd1cmF0aW9uLnRyYWNrSWQgPSBtX3RyYWNrUHJpdmF0ZS0+aWQoKTsKLSAgICBjb25maWd1cmF0
aW9uLmxhYmVsID0gbV90cmFja1ByaXZhdGUtPmxhYmVsKCk7Ci0gICAgY29uZmlndXJhdGlvbi5s
YW5ndWFnZSA9IG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpOwotICAgIGNvbmZpZ3VyYXRpb24u
dHJhY2tJbmRleCA9IG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCk7Ci0gICAgY29uZmlndXJh
dGlvbi5zdGFydFRpbWVWYXJpYW5jZSA9IG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5j
ZSgpOwotICAgIGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQgPSBtX3RyYWNrUHJpdmF0ZS0+c2VsZWN0
ZWQoKTsKLSAgICBjb25maWd1cmF0aW9uLnZpZGVvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5k
KCk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IG1fdHJhY2tQcml2YXRlLT5jb2RlYygpOwot
ICAgIGNvbmZpZ3VyYXRpb24ud2lkdGggPSBtX3RyYWNrUHJpdmF0ZS0+d2lkdGgoKTsKLSAgICBj
b25maWd1cmF0aW9uLmhlaWdodCA9IG1fdHJhY2tQcml2YXRlLT5oZWlnaHQoKTsKLSAgICBjb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UgPSBtX3RyYWNrUHJpdmF0ZS0+Y29sb3JTcGFjZSgpOwotICAg
IGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID0gbV90cmFja1ByaXZhdGUtPmZyYW1lcmF0ZSgpOwot
ICAgIGNvbmZpZ3VyYXRpb24uYml0cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5iaXRyYXRlKCk7Ci0g
ICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247CisgICAgcmV0dXJuIHsKKyAgICAgICAgeworICAgICAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+
bGFiZWwoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAg
ICAgICAgbV90cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBt
X3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAorICAgICAgICBtX3RyYWNr
UHJpdmF0ZS0+c2VsZWN0ZWQoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmtpbmQoKSwKKyAg
ICAgICAgbV90cmFja1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKKyAgICB9OwogfQogCiB2b2lk
IFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6dXBkYXRlQ29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgK
aW5kZXggOTM3MjcwNzAwZDQzNGIxMWYwMDhmM2VjOWYyNGU4NWI5NDI0OGI4Ny4uODk1MDc0YzZm
MDYzNThjZTVkNmExY2EyOTkxMzNjMDdlYzBiODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaApAQCAtNDQsNyAr
NDQsNyBAQCBjbGFzcyBEZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNs
YXNzIFJlbW90ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6
TWFpbj4KQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZCgpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9
CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uJikgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0K
IAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikgZmluYWw7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2ls
bFJlbW92ZSgpIGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uKCk7CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKIAogICAg
IFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKaW5kZXggOTQ4NDM0MTY2MjNiMzk0
MTdlMzI3NDI1MjEzZTVjZjBiYjNlYjExZi4uZTQ4ZTA3ODk4MzJmYTZjYjhiM2FhYjJmMjZhNGRk
NWZjZTg2ZjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCkBAIC0yNyw4ICsy
Nyw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvVHJhY2tQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5o
PgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
MCwyMSArMzgsNiBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CiAg
ICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07
CiAgICAgaW50IHRyYWNrSW5kZXg7CiAKLSAgICBib29sIGVuYWJsZWQ7Ci0gICAgV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGU6OktpbmQgYXVkaW9LaW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OktpbmQ6Ok5vbmUgfTsKLQotICAgIGJvb2wgc2VsZWN0ZWQ7Ci0gICAgV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OktpbmQgdmlkZW9LaW5kIHsgV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGU6OktpbmQ6Ok5vbmUgfTsKLQotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3
aWR0aDsKLSAgICB1aW50MzJfdCBoZWlnaHQ7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UgY29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlOwotICAgIHVpbnQ2NF90
IGJpdHJhdGU7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZTsKLSAgICB1aW50MzJfdCBudW1iZXJP
ZkNoYW5uZWxzOwotCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKQEAgLTYzLDEyNyArNDYsMjIgQEAgc3Ry
dWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8
IGxhbmd1YWdlOwogICAgICAgICBlbmNvZGVyIDw8IHN0YXJ0VGltZVZhcmlhbmNlOwogICAgICAg
ICBlbmNvZGVyIDw8IHRyYWNrSW5kZXg7Ci0gICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKLSAg
ICAgICAgZW5jb2RlciA8PCBhdWRpb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7
Ci0gICAgICAgIGVuY29kZXIgPDwgdmlkZW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IGNvZGVj
OwotICAgICAgICBlbmNvZGVyIDw8IHdpZHRoOwotICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsK
LSAgICAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOwotICAgICAgICBlbmNvZGVyIDw8IGZyYW1l
cmF0ZTsKLSAgICAgICAgZW5jb2RlciA8PCBiaXRyYXRlOwotICAgICAgICBlbmNvZGVyIDw8IHNh
bXBsZVJhdGU7Ci0gICAgICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8QXRvbVN0cmluZz4gdHJhY2tJZDsKLSAgICAgICAgZGVjb2RlciA+PiB0cmFja0lkOwot
ICAgICAgICBpZiAoIXRyYWNrSWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFiZWw7Ci0gICAgICAgIGRlY29k
ZXIgPj4gbGFiZWw7Ci0gICAgICAgIGlmICghbGFiZWwpCi0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFuZ3VhZ2U7
Ci0gICAgICAgIGRlY29kZXIgPj4gbGFuZ3VhZ2U7Ci0gICAgICAgIGlmICghbGFuZ3VhZ2UpCi0g
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8
TWVkaWFUaW1lPiBzdGFydFRpbWVWYXJpYW5jZTsKLSAgICAgICAgZGVjb2RlciA+PiBzdGFydFRp
bWVWYXJpYW5jZTsKLSAgICAgICAgaWYgKCFzdGFydFRpbWVWYXJpYW5jZSkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHRyYWNr
SW5kZXg7Ci0gICAgICAgIGRlY29kZXIgPj4gdHJhY2tJbmRleDsKLSAgICAgICAgaWYgKCF0cmFj
a0luZGV4KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGVuYWJsZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKLSAg
ICAgICAgaWYgKCFlbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kPiBh
dWRpb0tpbmQ7Ci0gICAgICAgIGRlY29kZXIgPj4gYXVkaW9LaW5kOwotICAgICAgICBpZiAoIWF1
ZGlvS2luZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBzZWxlY3RlZDsKLSAgICAgICAgZGVjb2RlciA+PiBzZWxlY3RlZDsK
LSAgICAgICAgaWYgKCFzZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2lu
ZD4gdmlkZW9LaW5kOwotICAgICAgICBkZWNvZGVyID4+IHZpZGVvS2luZDsKLSAgICAgICAgaWYg
KCF2aWRlb0tpbmQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb2RlYzsKLSAgICAgICAgZGVjb2RlciA+PiBjb2RlYzsK
LSAgICAgICAgaWYgKCFjb2RlYykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gd2lkdGg7Ci0gICAgICAgIGRlY29kZXIg
Pj4gd2lkdGg7Ci0gICAgICAgIGlmICghd2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGhlaWdodDsKLSAgICAg
ICAgZGVjb2RlciA+PiBoZWlnaHQ7Ci0gICAgICAgIGlmICghaGVpZ2h0KQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlOwotICAgICAgICBkZWNvZGVyID4+IGNv
bG9yU3BhY2U7Ci0gICAgICAgIGlmICghY29sb3JTcGFjZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZyYW1lcmF0ZTsK
LSAgICAgICAgZGVjb2RlciA+PiBmcmFtZXJhdGU7Ci0gICAgICAgIGlmICghZnJhbWVyYXRlKQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBiaXRyYXRlOwotICAgICAgICBkZWNvZGVyID4+IGJpdHJhdGU7Ci0gICAgICAg
IGlmICghYml0cmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAg
IAotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBzYW1wbGVSYXRlOwotICAgICAgICBk
ZWNvZGVyID4+IHNhbXBsZVJhdGU7Ci0gICAgICAgIGlmICghc2FtcGxlUmF0ZSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJf
dD4gbnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZkNoYW5uZWxz
OwotICAgICAgICBpZiAoIW51bWJlck9mQ2hhbm5lbHMpCi0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgV1RGTW92ZSgqdHJh
Y2tJZCksCi0gICAgICAgICAgICBXVEZNb3ZlKCpsYWJlbCksCi0gICAgICAgICAgICBXVEZNb3Zl
KCpsYW5ndWFnZSksCi0gICAgICAgICAgICBXVEZNb3ZlKCpzdGFydFRpbWVWYXJpYW5jZSksCi0g
ICAgICAgICAgICAqdHJhY2tJbmRleCwKLSAgICAgICAgICAgICplbmFibGVkLAotICAgICAgICAg
ICAgKmF1ZGlvS2luZCwKLSAgICAgICAgICAgICpzZWxlY3RlZCwKLSAgICAgICAgICAgICp2aWRl
b0tpbmQsCi0gICAgICAgICAgICBXVEZNb3ZlKCpjb2RlYyksCi0gICAgICAgICAgICAqd2lkdGgs
Ci0gICAgICAgICAgICAqaGVpZ2h0LAotICAgICAgICAgICAgV1RGTW92ZSgqY29sb3JTcGFjZSks
Ci0gICAgICAgICAgICAqZnJhbWVyYXRlLAotICAgICAgICAgICAgKmJpdHJhdGUsCi0gICAgICAg
ICAgICAqc2FtcGxlUmF0ZSwKLSAgICAgICAgICAgICpudW1iZXJPZkNoYW5uZWxzLAotICAgICAg
ICB9fTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnRyYWNrSWQp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvbmZpZ3VyYXRpb24ubGFiZWwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24uc3RhcnRUaW1lVmFyaWFuY2UpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9W
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzE0ZjZh
MDM3MGMwNjExZTg0ZDdhZDkxNzcxZDhmNDY1ZTVhMzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvVHJhY2tQcml2YXRlLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIDogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CisgICAgYm9vbCBz
ZWxlY3RlZDsKKyAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZCBraW5kIHsgV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIHRyYWNrQ29uZmlndXJhdGlvbjsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVu
Y29kZShlbmNvZGVyKTsKKyAgICAgICAgZW5jb2RlciA8PCBzZWxlY3RlZDsKKyAgICAgICAgZW5j
b2RlciA8PCBraW5kOworICAgICAgICBlbmNvZGVyIDw8IHRyYWNrQ29uZmlndXJhdGlvbjsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmICgh
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKGRlY29kZXIsIGNvbmZpZ3Vy
YXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmln
dXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0M2E3Y2Q1ZTQ3ZTg4NTBhNjhkZTIzODk2YTFkYWUzOGQ4MzE0ZjM2Li5hZmE3
YTU5NDcxZTRkYTNiOGNhODA5Y2FhODc4NzVhNDFmMjI5NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxODgsNiArNjE4OCw4IEBA
CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQ0RD
REM5OUIyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDREM5OUMyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVuZG93bWVudFN0YXRlVHJhY2tlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQzMyNzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0REMDhBQzQyNzdFRDdFMDAwRUEzNzU1IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENTM1NkYyNDBE
RDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDUz
NTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2OTAsNiArNjY5Miw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBEMTcyRjYgLyogY29jb2EgKi8sCiAJCQkJQ0RBOTU5
NDQyNDEyQzREQTAwOTEwRUVGIC8qIGlvcyAqLywKKwkJCQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3
NTUgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUQ0
RkI0MEIyNTY1Qzg5QTAwMUFDMkFEIC8qIEluaXRpYWxpemF0aW9uU2VnbWVudEluZm8uaCAqLywK
IAkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLApAQCAtNjc2NSw2ICs2NzY4LDcgQEAKIAkJCQkwN0Ux
OUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCAqLywKIAkJCQkwNzFCQzU3QjIzQ0E1MzI0MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJDNTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8sCisJCQkJQ0REMDhBQzQyNzdFRDdFMDAw
RUEzNzU1IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDNlZDc2YzMyYzgxNjZmMTljMjcxNjdhNzY1MzFjODJj
MWVkNjUyNDUuLmY5ZTRiMWMzMjk1Y2UxM2IyMDJlMzc4YjBkMjc1NDFiNGY0MDZmZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwxNCArMjksMTQgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29u
bmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVySWRl
bnRpZmllcihwbGF5ZXJJZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIp
CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIEF1ZGlvVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGVuYWJs
ZWQpOwogfQogCi12b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0
aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGlmIChj
b25maWd1cmF0aW9uLnRyYWNrSWQgIT0gbV9pZCkgewogICAgICAgICBhdXRvIGNoYW5nZWQgPSAh
bV9pZC5pc0VtcHR5KCk7CkBAIC04MCwxMSArODAsOCBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
bwogCiAgICAgbV90cmFja0luZGV4ID0gY29uZmlndXJhdGlvbi50cmFja0luZGV4OwogICAgIG1f
c3RhcnRUaW1lVmFyaWFuY2UgPSBjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNlOwotICAg
IG1fa2luZCA9IGNvbmZpZ3VyYXRpb24uYXVkaW9LaW5kOwotICAgIHNldENvZGVjKFdURk1vdmUo
Y29uZmlndXJhdGlvbi5jb2RlYykpOwotICAgIHNldFNhbXBsZVJhdGUoY29uZmlndXJhdGlvbi5z
YW1wbGVSYXRlKTsKLSAgICBzZXROdW1iZXJPZkNoYW5uZWxzKGNvbmZpZ3VyYXRpb24ubnVtYmVy
T2ZDaGFubmVscyk7Ci0gICAgc2V0Qml0cmF0ZShjb25maWd1cmF0aW9uLmJpdHJhdGUpOworICAg
IG1fa2luZCA9IGNvbmZpZ3VyYXRpb24ua2luZDsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1v
dmUoY29uZmlndXJhdGlvbi50cmFja0NvbmZpZ3VyYXRpb24pKTsKICAgICAKICAgICBBdWRpb1Ry
YWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChjb25maWd1cmF0aW9uLmVuYWJsZWQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oCmluZGV4IGYxZjlmMGYzZDY1YWM2NDg1NWIwNjVmMDI2NDRhMzY1ZGU0
M2ViZDQuLjJmYzA4NDUxNWQ2MjBkMGM2NWEzZGNlYmY3MDc1ODE2YzE2ZmQyNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmgKQEAgLTM2LDIxICszNiwyMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVuZGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIHBsYXllcklkZW50aWZpZXIs
IGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKICAgICBBdG9t
U3RyaW5nIGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZDsgfQotICAgIHZvaWQgdXBkYXRl
Q29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZv
aWQgdXBkYXRlQ29uZmlndXJhdGlvbihBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJik7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7Cisg
ICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5nIEF1ZGlv
VHJhY2tLaW5kID0gV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAgQXVkaW9U
cmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGYzNjRlNWMxNjQ2YjUyNGI2NTJmZDYwZDU0ODg0Zjlm
NGEyYjVmOGIuLjliN2NjZWNjZTg4NjgzMzNkMjM5OGY5YTAxZTkzNDFjM2M0OGRkZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTU3NSw3ICs1NzUsNyBAQCBGbG9hdFNpemUg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY2FjaGVkU3RhdGUubmF0dXJhbFNpemU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjphZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgYXV0byBhZGRSZXN1
bHQgPSBtX2F1ZGlvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewogICAgICAgICByZXR1
cm4gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CkBA
IC02MDUsNyArNjA1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJl
bW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmkKICAgICB9CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIEFTU0VSVChtX2F1ZGlv
VHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIApAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVHZW5lcmljQ3VlKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlCiAgICAgICAgIHRyYWNrLT5yZW1vdmVHZW5lcmljQ3VlKEluYmFu
ZEdlbmVyaWNDdWU6OmNyZWF0ZShXVEZNb3ZlKGN1ZURhdGEpKSk7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3Rl
VmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewog
ICAgICAgICByZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CkBAIC03NjMsNyArNzYzLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW92ZVJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmkKICAg
ICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIEFT
U0VSVChtX3ZpZGVvVHJhY2tzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggYjBhZmUyMWVlMDNlZTI2Mzc4NDA5NzJiZjJmMzA0NDcyM2Q2NzFi
ZC4uZTAxZmNlYzZjODYxYjFmOWEyMmQwNDhjZTNiOThiNDRmOGViNWM3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC02Nyw4ICs2Nyw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xhc3MgVXNlckRhdGE7CitzdHJ1Y3Qg
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICAgICA6IHB1YmxpYyBXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKQEAgLTExNywxMyArMTE4LDEzIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1vbm90b25pY1RpbWUmLCBib29sKTsKIAotICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFj
ayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAg
ICAgdm9pZCByZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIpOwotICAgIHZvaWQgcmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CisgICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYpOwogCi0gICAgdm9pZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9p
ZCBhZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90
ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1v
dGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHJlbW90
ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB2b2lk
IGFkZFJlbW90ZVRleHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZVRl
eHRUcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggYTYwNjAzOTBlOTA1OTA4NmRmNDUzZjc1
NjFkOWY1MTdlNmI0YWUwYS4uNWVkZjc1MzhmNWFmNjYzYmE3OGZlOWM2N2U3YTY0MmFkYjZkZGVk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KQEAgLTQx
LDEzICs0MSwxMyBAQCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVm
Q291bnRlZCB7CiAKICAgICBDdXJyZW50VGltZUNoYW5nZWQoTWVkaWFUaW1lIG1lZGlhVGltZSwg
TW9ub3RvbmljVGltZSB3YWxsVGltZSwgYm9vbCB0aW1lSXNQcm9ncmVzc2luZykKIAotICAgIEFk
ZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKKyAgICBBZGRSZW1vdGVBdWRpb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVBdWRp
b1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQotICAg
IFJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQorICAgIFJlbW90ZUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgc3RydWN0IFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAKLSAgICBBZGRSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQWRkUmVtb3RlVmlkZW9U
cmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0
IFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pCiAgICAgUmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikK
KyAgICBSZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCiAgICAgQWRkUmVtb3Rl
VGV4dFRyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXgg
OGJhOTI1OWU1MGUzZWNkYjBiODJjZTYyOTMxMzJlMTNhZWI0YzhiMi4uMGY4ZDVmODMxMTM4OWFk
Y2NjYjg4ODU5YTgyNzQ5YmQ5YTAxZDk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTMyLDEwICszMiwxMSBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1WaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
IGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxh
eWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVj
dGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZp
ZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiAgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAg
ICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZp
ZXIoaWRlbmRpZmllcikKQEAgLTU0LDcgKzU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZTo6c2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQordm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmln
dXJhdGlvbihWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQogewogICAgIGlmIChjb25maWd1cmF0aW9uLnRyYWNrSWQgIT0gbV9pZCkgewogICAgICAg
ICBhdXRvIGNoYW5nZWQgPSAhbV9pZC5pc0VtcHR5KCk7CkBAIC03OSwxNCArODAsOCBAQCB2b2lk
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpbwogCiAgICAgbV90cmFja0luZGV4ID0gY29uZmlndXJhdGlvbi50
cmFja0luZGV4OwogICAgIG1fc3RhcnRUaW1lVmFyaWFuY2UgPSBjb25maWd1cmF0aW9uLnN0YXJ0
VGltZVZhcmlhbmNlOwotICAgIG1fa2luZCA9IGNvbmZpZ3VyYXRpb24udmlkZW9LaW5kOwotICAg
IG1fY29kZWMgPSBjb25maWd1cmF0aW9uLmNvZGVjOwotICAgIG1fd2lkdGggPSBjb25maWd1cmF0
aW9uLndpZHRoOwotICAgIG1faGVpZ2h0ID0gY29uZmlndXJhdGlvbi5oZWlnaHQ7Ci0gICAgbV9j
b2xvclNwYWNlID0gY29uZmlndXJhdGlvbi5jb2xvclNwYWNlOwotICAgIG1fZnJhbWVyYXRlID0g
Y29uZmlndXJhdGlvbi5mcmFtZXJhdGU7Ci0gICAgbV9iaXRyYXRlID0gY29uZmlndXJhdGlvbi5i
aXRyYXRlOwotCisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5raW5kOworICAgIHNldENvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpOwogICAg
IFZpZGVvVHJhY2tQcml2YXRlOjpzZXRTZWxlY3RlZChjb25maWd1cmF0aW9uLnNlbGVjdGVkKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDY5ZmNkODZjNjRkYzIwZmZiNmQ5OTUx
NjJmYjA4Zjg4NWUxMTU1MWMuLmM4MTYxZjIxMTc2NTVkYjU2YmYxMWZiMTMxMDc3NTNlODVmMTJl
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZGVvVHJhY2tQcml2YXRlLmg+CkBAIC0zNywxOCArMzYsMTggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1
Y3QgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZQogICAgIDogcHVibGljIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSkKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUoZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIHBsYXllcklkZW50aWZp
ZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsKICAgICB9CiAKLSAgICB2
b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcgVmlkZW9UcmFja0tpbmQgPSBXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAgICBWaWRlb1RyYWNrS2luZCBraW5kKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CkBAIC01NywxNSArNTYsOSBAQCBwdWJsaWM6CiAgICAg
QXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0K
ICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhY2tJbmRleDsg
fQogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc3RhcnRUaW1lVmFyaWFuY2U7IH0KLSAgICBTdHJpbmcgY29kZWMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3dpZHRoOyB9Ci0gICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9oZWlnaHQ7IH0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2xvclNwYWNlOyB9Ci0gICAgZG91Ymxl
IGZyYW1lcmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVyYXRlOyB9Ci0gICAgdWlu
dDY0X3QgYml0cmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYml0cmF0ZTsgfQogCiBwcml2
YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIGZp
bmFsOwogCkBAIC03NiwxMiArNjksNiBAQCBwcml2YXRlOgogICAgIEF0b21TdHJpbmcgbV9sYWJl
bDsKICAgICBBdG9tU3RyaW5nIG1fbGFuZ3VhZ2U7CiAgICAgaW50IG1fdHJhY2tJbmRleCB7IC0x
IH07Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV93aWR0aCB7IDAgfTsKLSAg
ICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZSBtX2NvbG9yU3BhY2U7Ci0gICAgZG91YmxlIG1fZnJhbWVyYXRlIHsgMCB9OwotICAg
IHVpbnQ2NF90IG1fYml0cmF0ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWVWYXJp
YW5jZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgbV9pZGVuZGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOWVlZDM5Y2M1Njg5Njk0MjA5YmM2
MWFlOGUxODVkODUyMWJjZjNmLi5kZGExMWUzMTg5NWM0MmY1MjQzMDM2MjIzMTdhZDhkZDMwNzc5
YzkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMzEgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBIYW5nIGluIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw6OmJpdHJhdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NzUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlc2UgcHJvcGVydGllcyBhcmUgZHluYW1pYywgdGVz
dCB0aGVtIHdpdGggYHRlc3RFeHBlY3RlZEV2ZW50dWFsbHlgLgorCisgICAgICAgICogbWVkaWEv
dHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sOgorICAgICAgICAqIG1lZGlhL3Ry
YWNrL3ZpZGVvLXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbDoKKwogMjAyMS0xMi0z
MSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI4NzAyOCk6IEluY29ycmVjdCByb290IGlubGluZSBib3ggaG9yaXpvbnRhbCBwb3NpdGlvbiB3
aGVuIHRleHQtYWxpZ24gb2Zmc2V0IGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAppbmRleCBhNTdlMjYz
MDJmMzYxMDA3NTU2YjM0MmJmMzYzYjY3MjZmNmYzMjg5Li5lNzM0NjA4YzZlYTdmNTYyMmM5MzI3
Nzk2NzViZmFlZTc1NTJlMDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9h
dWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCkBAIC05LDEyICs5LDEyIEBACiAJCQlm
aW5kTWVkaWFFbGVtZW50KCk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50L2F1ZGlv
LXRyYWNrcy5tcDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheScpOwotCQkJ
dGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGgnLCAwLCAnPicpOwotCQkJdGVz
dEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9
Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24u
Y29kZWMnLCAnbXA0YS40MC4yJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZScsIDQ0MTAwKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5udW1iZXJPZkNoYW5uZWxzJywgMik7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0
cmF0ZScsIDEwMDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby5hdWRpb1RyYWNrcy5sZW5ndGgnLCAwLCAnPicpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICch
PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdtcDRhLjQwLjInKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uc2FtcGxl
UmF0ZScsIDQ0MTAwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1
ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscycsIDIpOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbi5iaXRyYXRlJywgMTAwMDAwLCAnPj0nKTsKIAkJCWVuZFRlc3QoKTsKIAkJfSk7CiAJPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1h
bHRlcm5hdGUtZ3JvdXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Zp
ZGVvLXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0CmluZGV4IGQ3N2ZmM2E2YzNl
MjcwMWViZTAzMDFmMzU3ZGU4MGUzNDkyZDBkYzQuLmZkMDhlN2M4OTk4YWMyZWYzYTEwMjU5ODkz
MDU5ZjU4YzliZDkzYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVv
LXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0CkBAIC0x
NCwxNSArMTQsMTUgQEAgVGVzdCB0aGF0IG1lZGlhIGNvbnRhaW5pbmcgdHdvIGF1ZGlvIHRyYWNr
cyBpbiBvbmUgYWx0ZXJuYXRlIGdyb3VwIGFuZCBvbmUgdHJhY2sKIFJVTih2aWRlby5zcmMgPSBm
aW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L2F1ZGlvLXRyYWNrcy1zb21lLWluLWFs
dGVybmF0ZS1ncm91cCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RFRCAodmlkZW8u
YXVkaW9UcmFja3MubGVuZ3RoID09ICcyJykgT0sKLVRSQUNLIGlkOjIga2luZDptYWluIGxhbmd1
YWdlOmVuCi1UUkFDSyBpZDozIGtpbmQ6bWFpbiBsYW5ndWFnZTpmcgorVFJBQ0sgaWQ6MiBraW5k
Om1haW4gbGFuZ3VhZ2U6ZW5nCitUUkFDSyBpZDozIGtpbmQ6bWFpbiBsYW5ndWFnZTpmcmEKIAog
VGVzdCB0aGF0IG1lZGlhIGNvbnRhaW5pbmcgc2l4IGF1ZGlvIHRyYWNrcywgd2l0aCB0aHJlZSBh
dWRpbyB0cmFja3MgZWFjaCByZWZlcnJpbmcgdG8gYSBzZXBhcmF0ZSB0cmFjayBhcyBhIGZhbGxi
YWNrIHRyYWNrLCBhbGwgaW4gb25lIGFsdGVybmF0ZSBncm91cCwgcmVzdWx0cyBpbiB0aHJlZSBB
dWRpb1RyYWNrcwogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2Nv
bnRlbnQvYXVkaW8tdHJhY2tzLWFsdGVybmF0ZS1ncm91cC13aXRoLWZhbGxiYWNrIikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVEICh2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggPT0g
JzMnKSBPSwotVFJBQ0sgaWQ6MiBraW5kOm1haW4gbGFuZ3VhZ2U6ZW4KLVRSQUNLIGlkOjQga2lu
ZDptYWluIGxhbmd1YWdlOmZyCi1UUkFDSyBpZDo2IGtpbmQ6bWFpbiBsYW5ndWFnZTplcworVFJB
Q0sgaWQ6MyBraW5kOm1haW4gbGFuZ3VhZ2U6ZW5nCitUUkFDSyBpZDo1IGtpbmQ6bWFpbiBsYW5n
dWFnZTpmcmEKK1RSQUNLIGlkOjcga2luZDptYWluIGxhbmd1YWdlOnNwYQogRU5EIE9GIFRFU1QK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmln
dXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmln
dXJhdGlvbi5odG1sCmluZGV4IDEyMDM5OTk4MjA0NWY5MzFlODlmMzM2NTYzOGY1MzdiMTMyNjYw
NDQuLmI1ZGQ2ZjI3YWEwYjZhYjJmMjFjOTM3YjIxNTRlMDhjNjAzMzdjNjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0
bWwKQEAgLTksMzAgKzksMzAgQEAKIAkJCWZpbmRNZWRpYUVsZW1lbnQoKTsKIAkJCXJ1bigndmlk
ZW8uc3JjID0gIi4uL2NvbnRlbnQvdGVzdC5tcDQiJyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVv
LCAnY2FucGxheScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgn
LCAxKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmNvZGVjJywgJ2F2YzEuNEQ0MDBEJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ud2lkdGgnLCAzMjApOwotCQkJdGVzdEV4
cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0
cmF0ZScsIDI0MDAwMCwgJz49Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlJywgMzAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAn
IT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDQ3MGJnJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnc21w
dGUxNzBtJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgMSk7CisJCQlhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
JywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ2F2YzEuNEQ0MDBEJyk7CisJCQlh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKKwkJCWF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24uYml0cmF0ZScsIDI0MDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAn
Pj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2xvclNwYWNlLm1hdHJpeCcsICdidDQ3MGJnJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJp
bWFyaWVzJywgJ3NtcHRlMTcwbScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywg
J2J0NzA5Jyk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50L3Rlc3QtaGV2Yy5tcDQi
Jyk7CiAJCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheScpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVj
dGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ2h2YzEuMS42
Lkw5My5CMCcpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxNTAwMDAsICc+PScpOwotCQkJ
dGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0
ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ3
MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlLnByaW1hcmllcycsICdidDcwOScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRl
by52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3
MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tz
Lmxlbmd0aCcsIDEpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2Rl
YycsICdodmMxLjEuNi5MOTMuQjAnKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ud2lkdGgnLCAzMjApOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbi5oZWlnaHQnLCAyNDApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRyYXRlJywgMTUwMDAwLCAnPj0nKTsK
KwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNv
bmZpZ3VyYXRpb24uZnJhbWVyYXRlJywgMzAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNl
JywgbnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52
aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NzA5Jyk7
CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3MDknKTsKIAkJCWVuZFRlc3QoKTsKIAkJfSk7CiAJ
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448141</attachid>
            <date>2021-12-31 21:29:08 -0800</date>
            <delta_ts>2022-01-04 09:17:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234753-20211231212907.patch</filename>
            <type>text/plain</type>
            <size>103493</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzYmI3NjQyMGQzNzY0
ZDZkN2Y1NTE5MjgxMDJmMmFhYzVlYzRmZC4uNzFhMWQxYzFmMjllY2QzYzAxYTFlNjJhNTdmOTBh
NDkzY2NiMjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODY5MDgsIFdlYkNvcmUgYWRkZWQgbmV3
IHF1ZXJpZXMgb250byBleGlzdGluZyBBVkFzc2V0VHJhY2sgb2JqZWN0czsgaG93ZXZlciwgcXVl
cnlpbmcKKyAgICAgICAgdGhvc2UgcHJvcGVydGllcyB3aWxsIGJsb2NrIGlmIGRhdGEgZm9yIHRo
b3NlIHByb3BlcnRpZXMgaXMgbm90IHlldCBhdmFpbGFibGUuIFRoZSBtZWRpYSBlbGVtZW50Cisg
ICAgICAgIGNvdWxkIGJsb2NrIG1vdmluZyB0byB0aGUgSEFWRV9NRVRBREFUQSBzdGF0ZSB1bnRp
bCB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBmdWxseSBsb2FkZWQsIGhvd2V2ZXIKKyAgICAgICAgdGhp
cyBtaWdodCByZWdyZXNzIFBMVCwgc28gaW5zdGVhZCwgd2Ugd2lsbCBjaGVjayB0aGUgbG9hZCBz
dGF0ZSBvZiB0aG9zZSBwcm9wZXJ0aWVzIGJlZm9yZSByZXR1cm5pbmcKKyAgICAgICAgdmFsdWVz
LgorCisgICAgICAgIEhvd2V2ZXIsIHRvIG1ha2UgdGhlIHByb3BlcnRpZXMgZXhwb3NlZCB0aHJv
dWdoIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmlkbC9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5p
ZGwKKyAgICAgICAgZHluYW1pYywgY2hhbmdlcyBuZWVkIHRvIGJlIHNpZ25hbGVkIGFuZCBwcm9w
YWdhdGVkIHVwd2FyZCB0aHJvdWdoIHRoZSBsYXllcnMgYmV0d2VlbiBBVkFzc2V0VHJhY2sgYW5k
CisgICAgICAgIHRoZSBET00uIFJhdGhlciB0aGFuIG1ha2UgaW5kaXZpZHVhbCBub3RpZmljYXRp
b25zIGZvciBlYWNoIHByb3BlcnR5IGluIGEgQ29uZmlndXJhdGlvbiBzdHJ1Y3QsIG1ha2Ugb25l
CisgICAgICAgIG5vdGlmaWNhdGlvbiB0aGF0IGhhbmRsZXMgYW55IGNoYW5nZSB0byB0aGUgQ29u
ZmlndXJhdGlvbiBzdHJ1Y3QgYXQgYWxsIGFuZCBwdXNoIHRoYXQgdXB3YXJkIHRvIGNsaWVudHMu
CisKKyAgICAgICAgU2luY2UgdGhlc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgZ3JvdXBlZCB0b2dl
dGhlciBhdCBhIGxvd2VyLWxldmVsLCB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIHRyYWNrZWQKKyAg
ICAgICAgaW5kaXZpZHVhbGx5LCBhbmQgVmlkZW8vQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
IGNhbiBqdXN0IGJlIGFsaWFzZWQgdG8gYSBwbGF0Zm9ybS1kZWZpbmVkIHN0cnVjdC4KKworICAg
ICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFjay5oOgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRT
dGF0ZSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9u
RnJvbVByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDb25maWd1cmF0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6Y29sb3JTcGFjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0Q29sb3JTcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24pOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6c2FtcGxlUmF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZTo6c2V0U2FtcGxlUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6bnVtYmVyT2ZDaGFubmVscyBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0TnVtYmVyT2ZDaGFubmVs
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Yml0cmF0
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6
c2V0Qml0cmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bVZpZGVvQ29sb3JTcGFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OmNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGU6OmNvZGVjIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRDb2RlYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
UHJpdmF0ZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OnNldFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tQcml2YXRlOjpoZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OnNldEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y29sb3JTcGFjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0Q29sb3JTcGFjZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6ZnJhbWVyYXRlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRGcmFtZXJhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW06CisgICAgICAgIChXZWJD
b3JlOjphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5pdGlhbGl6ZUFz
c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjayk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6VmlkZW9UcmFj
a1ByaXZhdGVXZWJNKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmg6CisKIDIwMjEtMTItMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiBjbGFzcyBhbmQgYWNjZXNzb3Igb24gVmlkZW9UcmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4OThiODY2ODYyNWI2ZWMwZWU5ZmNjMDM0YjUzNDNjMjI5NzFjOTVhLi5iN2FkNmNiNTU0ODU0
OWM3YTQ2NzQyMTNhMjVkM2NkNTVmYjhhYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFu
Z2VzIHRvIFRyYWNrQ29uZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAt
PiBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJl
bW90ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6
CisKIDIwMjEtMTItMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1JlZmFjdG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTGVnYWN5IEVNRSBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBmOGI4OWYwZWVmZmZkOWUwMzA3YjY0OTk1NzRkZjI0MTUxZWNj
ZTlkLi5hNjlmYjY5NTU5Y2IzMzdiMmE5NzM1NjhlNTk0ZTZmOWIzOWQ0MmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTE1MjUsNiArMTUyNSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlci5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUGl4ZWxCdWZmZXJGb3JtYXQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L1BpeGVsRm9ybWF0LmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUNvbG9yU3BhY2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1JbWFnZS5oCkBAIC0xNTM0LDkgKzE1MzUsMTEgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
ZXh0VHJhY2suaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUmVnaW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmNvZGVjcy9WaWRlb0NvbG9yU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29k
ZWNzL1ZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IGFlOGJmMmIzMDU3MTM1NDg5N2JkNmFiMWJhZDJk
ZDU3MTdmMjNkMDQuLmU5MGU1MDYyMGQzNDA0MGMwNGM1YTQ2N2VjNzVkZmQwNGJmNzIxZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29kZWNzL1ZpZGVvQ29sb3JTcGFj
ZS5oCkBAIC00MCw4ICs0MCwxMSBAQCBjbGFzcyBWaWRlb0NvbG9yU3BhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb0NvbG9yU3BhY2U+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBWaWRlb0NvbG9yU3BhY2UoKSk7IH07CisgICAgc3RhdGljIFJlZjxW
aWRlb0NvbG9yU3BhY2U+IGNyZWF0ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBpbml0KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShpbml0KSk7IH0KICAgICBzdGF0
aWMgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY3JlYXRlKFZpZGVvQ29sb3JTcGFjZUluaXQmJiBpbml0
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZShXVEZNb3ZlKGluaXQpKSk7
IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlkZW9Db2xvclNwYWNlSW5pdCYgc3RhdGUp
IHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZpZGVvQ29s
b3JQcmltYXJpZXM+JiBwcmltYXJpZXMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnByaW1hcmll
czsgfQogICAgIHZvaWQgc2V0UHJpbWFyaWVzKHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xvclByaW1h
cmllcz4mJiBwcmltYXJpZXMpIHsgbV9zdGF0ZS5wcmltYXJpZXMgPSBXVEZNb3ZlKHByaW1hcmll
cyk7IH0KIApAQCAtNTYsNiArNTksMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFZpZGVv
Q29sb3JTcGFjZSgpID0gZGVmYXVsdDsKKyAgICBWaWRlb0NvbG9yU3BhY2UoY29uc3QgVmlkZW9D
b2xvclNwYWNlSW5pdCYgaW5pdCkKKyAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgeworICAg
IH0KICAgICBWaWRlb0NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQpCiAgICAg
ICAgIDogbV9zdGF0ZShXVEZNb3ZlKGluaXQpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYzllYzI1YzBhOTI0NjA2
YWUyZWIzMjc2NGExNzhkZGNjOTQ0M2Y4Li5hOTUyZjY0Yjg3YzQ3ZGZhNmYzNmE2YzU1MWFkYWYw
ZTVjYWQ0MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NTc2LDYgKzQ1NzYsOSBAQAogCQlDRENDOUJEMTIyMzg3RUFBMDBG
RkI1MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0M5QkQwMjIzODdFQUEwMEZGQjUxQyAv
KiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQ0Q0MUU4MUMzRERCMEEwMDk2NUQ5OSAvKiBQ
YXJzZWRDb250ZW50UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQ0Q0MUU2MUMzRERCMDkwMDk2NUQ5OSAvKiBQYXJzZWRDb250ZW50UmFuZ2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRENG
QUJCRDE4QzBBRjc4MDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8q
IEhpZ2hsaWdodERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUgLyogUGxhdGZvcm1UcmFja0NvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4
QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFCRjI3
N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERDA4QUMyMjc3
RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQwOEFDMTI3N0U1NTRF
MDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERDcwODk3MTgzNTlGNkYw
MDJCM0RDNiAvKiBTYW1wbGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERDcwODk1MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRERDMUU3QTE4
QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRERDMUU3OTE4QTk1MkYzMDAyN0E5
RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RFM0E4NTQxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1
ZGlvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREUzQTg1MjE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCAqLzsgfTsKQEAgLTE2MTQ5LDYgKzE2MTUyLDkgQEAKIAkJQ0RDRTVDRDAxNDYzM0JDOTAw
RDQ3Q0NBIC8qIEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
dmVudFRhcmdldEZhY3RvcnkuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0ZB
QkJCMThDMEFFMzEwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDRkFCQkMxOEMwQUYxOTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0
Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFCRjI3N0U1
NEYwMDBFQTM3NTUgLyogUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0REMUU1MjUxNjdC
QTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8q
IFNhbXBsZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4OTAwLDYgKzI4OTA2LDcgQEAKIAkJ
CQlCQzYzNUU4QjI2NEMyQ0FFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuaCAqLywKIAkJ
CQlCQzYzNUU5MDI2NEM0NjlGMDAwRUYzM0EgLyogUGl4ZWxGb3JtYXQuY3BwICovLAogCQkJCUJD
QTU1OTEyMjYzREJENzkwMDdGMTlCMyAvKiBQaXhlbEZvcm1hdC5oICovLAorCQkJCUNERDA4QUJG
Mjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8s
CiAJCQkJQkMzRTYyNDIyNjU5NzkxNzAwNTQ4QUNEIC8qIFBsYXRmb3JtQ29sb3JTcGFjZS5oICov
LAogCQkJCTcyNkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi8sCiAJ
CQkJNzJCQUMzQTYyM0UxNzMyODAwOEQ3NDFDIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXIuaCAqLywK
QEAgLTI4OTA5LDkgKzI4OTE2LDExIEBACiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8q
IFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8q
IFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRD
IC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLAorCQkJCUNERDA4QUJDMjc3RTU0MjYwMEVBMzc1
NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oICovLAogCQkJCUNEMUY5QUZCMjZGRDM4
QzkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCAqLywKIAkJCQlDRDFG
OUFGQTI2RkQzODU5MDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaCAqLywKIAkJ
CQlDRDFGOUFGRDI2RkQzOENCMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNp
ZW50cy5oICovLAorCQkJCUNERDA4QUMxMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0QxRjlBRkMyNkZEMzhDQTAwNjE3RUI2IC8q
IFBsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oICovLAogCQkJCUJDQUI0MTdG
MTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uY3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgw
MEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKQEAgLTM2NDE5LDYgKzM2NDI4LDcgQEAKIAkJCQlCQzYz
NUU4QzI2NEMyQ0FFMDAwRUYzM0EgLyogUGl4ZWxCdWZmZXJGb3JtYXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQTU1OTE0MjYzREJENzkwMDdGMTlCMyAvKiBQaXhlbEZvcm1hdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RFRkEyMjgxRTc2NjlFODAwMEFFOTlDIC8qIFBsYXRmb3JtQXVkaW9EYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREQwOEFDMDI3N0U1NEYwMDBFQTM3NTUgLyogUGxhdGZv
cm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5QjNFREQx
MjhEQjUwMjAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNUUyMDA2MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2Eu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTMxNjNFMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9y
bUNBRmlsdGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjQ1MCw5ICszNjQ2MCwxMSBAQAogCQkJ
CTFBRDhGODFCMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGN0QwNzMzMTg4NEM1NkMwMEI0QUY4NiAvKiBQbGF0Zm9ybVRleHRUcmFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRm
b3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0REMDhBQkQyNzdFNTQyNjAwRUEz
NzU1IC8qIFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDFGOUIwMjI3MDAzMjNEMDA2MTdFQjYgLyogUGxhdGZvcm1WaWRlb0NvbG9yUHJpbWFyaWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDFGOUIwMTI3MDAyMEI3MDA2MTdFQjYgLyogUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMUY5QjAzMjcwMDMyM0QwMDYx
N0VCNiAvKiBQbGF0Zm9ybVZpZGVvTWF0cml4Q29lZmZpY2llbnRzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDREQwOEFDMjI3N0U1NTRFMDBFQTM3NTUgLyogUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDQyNzAwMzIzRDAwNjE3RUI2IC8q
IFBsYXRmb3JtVmlkZW9UcmFuc2ZlckNoYXJhY3RlcmlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTJCMEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTVCQTRGQUQyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHAKaW5kZXggYTI3MTA2NzVlOGE3NDA5NDRlNjlmOWFlZjcxZTk3ODkzMWVhODVjZi4uNjk5NGIx
MTMxZTIzNDhlNGVlOWQyNWMwOWFjZDRkZjY1ODdjMTAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0xNzEsNiArMTcxLDExIEBAIHZvaWQgQXVkaW9UcmFj
azo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQogICAgIH0pOwogfQogCit2b2lkIEF1ZGlv
VHJhY2s6OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCit7CisgICAgbV9jb25maWd1cmF0aW9uLT5zZXRTdGF0
ZShjb25maWd1cmF0aW9uKTsKK30KKwogdm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3Qg
QXRvbVN0cmluZyYgaWQpCiB7CiAgICAgc2V0SWQoaWQpOwpAQCAtMjMxLDEwICsyMzYsNyBAQCB2
b2lkIEF1ZGlvVHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAKIHZvaWQgQXVkaW9UcmFj
azo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21Qcml2YXRlKCkKIHsKLSAgICBtX2NvbmZpZ3VyYXRp
b24tPnNldENvZGVjKG1fcHJpdmF0ZS0+Y29kZWMoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5z
ZXRTYW1wbGVSYXRlKG1fcHJpdmF0ZS0+c2FtcGxlUmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRp
b24tPnNldE51bWJlck9mQ2hhbm5lbHMobV9wcml2YXRlLT5udW1iZXJPZkNoYW5uZWxzKCkpOwot
ICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Qml0cmF0ZShtX3ByaXZhdGUtPmJpdHJhdGUoKSk7Cisg
ICAgbV9jb25maWd1cmF0aW9uLT5zZXRTdGF0ZShtX3ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSk7
CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmgKaW5kZXggNGYwMDcwODE3MmU4ZDVmODI3OGMwM2E1NDhjZGU1YjZhNmNhY2Fj
NS4uNGUxODZjMTY2MjA3YjA3YTc4ZDBlNzZlYzRkM2RkMDkwOTk2MTcyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBlbmFibGVkQ2hhbmdlZChi
b29sKSBmaW5hbDsKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJh
c2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9u
LmgKaW5kZXggNmQ3MGJjYjhkMGRhMWJiZjI5MmEzNTU4Y2EwZDkwMWJlZWUxMThkNi4uZTg0NzRi
YjZjYTk5ZDVlYjUzNWYwNTMxYmZmMjUwYTJjMjk5ZDcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMjcsMTYgKzI3
LDEyIEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCB7
Ci0gICAgU3RyaW5nIGNvZGVjOwotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUgeyAwIH07Ci0gICAg
dWludDMyX3QgbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBiaXRyYXRlIHsg
MCB9OwotfTsKK3VzaW5nIEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCA9IFBsYXRmb3JtQXVk
aW9UcmFja0NvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24+IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ0LDYgKzQwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8QXVkaW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uKFdURk1vdmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb24oKSk7IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgQXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb25Jbml0JiBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKwogICAgIFN0cmluZyBjb2Rl
YygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuY29kZWM7IH0KICAgICB2b2lkIHNldENvZGVjKFN0
cmluZyBjb2RlYykgeyBtX3N0YXRlLmNvZGVjID0gY29kZWM7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggNzk1NzczMzM3OTVjZDkwMzEzZjRhM2UyNzc4
YWEwYWZmZDczZGRjMS4uNzNlOWQwZjE3YWY1NjViN2EyZDFkOTkzYzkyYzczN2Q3OTRmNDRhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0xNjQsNiArMTY0
LDExIEBAIHZvaWQgVmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKGJvb2wgc2VsZWN0ZWQpCiAg
ICAgfSk7CiB9CiAKK3ZvaWQgVmlkZW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3Qg
UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lkIFZpZGVv
VHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJZChpZCk7
CkBAIC0yNjIsMTIgKzI2Nyw3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2
YXRlKCkKIAogdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUo
KQogewotICAgIG1fY29uZmlndXJhdGlvbi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2RlYygpKTsK
LSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFdpZHRoKG1fcHJpdmF0ZS0+d2lkdGgoKSk7Ci0gICAg
bV9jb25maWd1cmF0aW9uLT5zZXRIZWlnaHQobV9wcml2YXRlLT5oZWlnaHQoKSk7Ci0gICAgbV9j
b25maWd1cmF0aW9uLT5zZXRDb2xvclNwYWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKG1fcHJp
dmF0ZS0+Y29sb3JTcGFjZSgpKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRGcmFtZXJhdGUo
bV9wcml2YXRlLT5mcmFtZXJhdGUoKSk7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRyYXRl
KG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKG1f
cHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsKIH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCA3YTk3OGM3MzIzNjBi
Nzc3NzY0N2Y0MmVkYmYyMTA2ODZkMTQwZDE4Li5lMWUwZTliMDI1OGQ1MTI3NjI5NzA2ZDBlYzQy
MmEzY2JkMDNmNjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAt
ODMsNyArODMsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQK
ICAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSBmaW5hbDsKLSAgICB2b2lkIGNvbmZpZ3Vy
YXRpb25DaGFuZ2VkKCkgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKTsg
fQorICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNr
Q29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAog
ICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAppbmRleCBk
MjBkMjQzY2E2MTA2ZWVjZjM0ZjkxZTRkMzViM2NiZGI3ZDk3YjJmLi5jNTk2MWY0OTFkODAwZmNk
MzRlMzQwNjljN2Q3OGQ0ZWYzYmNlMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0yNywxOSArMjcsMTMgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJWaWRlb0NvbG9yU3BhY2UuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb25Jbml0IHsKLSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgd2lk
dGggeyAwIH07Ci0gICAgdWludDMyX3QgaGVpZ2h0IHsgMCB9OwotICAgIFJlZlB0cjxWaWRlb0Nv
bG9yU3BhY2U+IGNvbG9yU3BhY2U7Ci0gICAgZG91YmxlIGZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1
aW50NjRfdCBiaXRyYXRlIHsgMCB9OwotfTsKK3VzaW5nIFZpZGVvVHJhY2tDb25maWd1cmF0aW9u
SW5pdCA9IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ3LDYgKzQxLDEyIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tDb25maWd1cmF0aW9uPiBjcmVhdGUoVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0JiYgaW5pdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
aWRlb1RyYWNrQ29uZmlndXJhdGlvbihXVEZNb3ZlKGluaXQpKSk7IH0KICAgICBzdGF0aWMgUmVm
PFZpZGVvVHJhY2tDb25maWd1cmF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkpOyB9CiAKKyAgICB2b2lkIHNldFN0YXRlKGNvbnN0
IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uSW5pdCYgc3RhdGUpCisgICAgeworICAgICAgICBtX3N0
YXRlID0gc3RhdGU7CisgICAgICAgIG1fY29sb3JTcGFjZS0+c2V0U3RhdGUobV9zdGF0ZS5jb2xv
clNwYWNlKTsKKyAgICB9CisKICAgICBTdHJpbmcgY29kZWMoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlLmNvZGVjOyB9CiAgICAgdm9pZCBzZXRDb2RlYyhTdHJpbmcgY29kZWMpIHsgbV9zdGF0ZS5j
b2RlYyA9IGNvZGVjOyB9CiAKQEAgLTU2LDggKzU2LDggQEAgcHVibGljOgogICAgIHVpbnQzMl90
IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuaGVpZ2h0OyB9CiAgICAgdm9pZCBzZXRI
ZWlnaHQodWludDMyX3QgaGVpZ2h0KSB7IG1fc3RhdGUuaGVpZ2h0ID0gaGVpZ2h0OyB9CiAKLSAg
ICBSZWZQdHI8VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0ZS5jb2xvclNwYWNlOyB9Ci0gICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZlB0cjxWaWRlb0Nv
bG9yU3BhY2U+JiYgY29sb3JTcGFjZSkgeyBtX3N0YXRlLmNvbG9yU3BhY2UgPSBXVEZNb3ZlKGNv
bG9yU3BhY2UpOyB9CisgICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gY29sb3JTcGFjZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29sb3JTcGFjZTsgfQorICAgIHZvaWQgc2V0Q29sb3JTcGFjZShSZWY8Vmlk
ZW9Db2xvclNwYWNlPiYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNwYWNlID0gV1RGTW92ZShjb2xv
clNwYWNlKTsgfQogCiAgICAgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUuZnJhbWVyYXRlOyB9CiAgICAgdm9pZCBzZXRGcmFtZXJhdGUoZG91YmxlIGZyYW1lcmF0ZSkg
eyBtX3N0YXRlLmZyYW1lcmF0ZSA9IGZyYW1lcmF0ZTsgfQpAQCAtNjgsMTEgKzY4LDE2IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25Jbml0JiYgaW5pdCkKICAgICAgICAgOiBtX3N0YXRlKGluaXQpCisgICAgICAg
ICwgbV9jb2xvclNwYWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKGluaXQuY29sb3JTcGFjZSkp
CisgICAgeworICAgIH0KKyAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbigpCisgICAgICAgIDog
bV9jb2xvclNwYWNlKFZpZGVvQ29sb3JTcGFjZTo6Y3JlYXRlKCkpCiAgICAgewogICAgIH0KLSAg
ICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbigpID0gZGVmYXVsdDsKIAogICAgIFZpZGVvVHJhY2tD
b25maWd1cmF0aW9uSW5pdCBtX3N0YXRlOworICAgIFJlZjxWaWRlb0NvbG9yU3BhY2U+IG1fY29s
b3JTcGFjZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDMyZWM1OGRlNDJmZmU5ZGNiZjQzOGJjN2M2
ZDdhNmMyNzkwZTIxMTUuLmY5YzAwMzI0NzQ1NmUzODgwOWZkZjE4N2IwNzcyNzE5MjE1MDNjZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFj
a1ByaXZhdGUuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTY0LDE4ICs2NSwxNiBAQCBwdWJsaWM6CiAKICAgICB1c2lu
ZyBFbmFibGVkQ2hhbmdlZENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChBdWRpb1RyYWNrUHJpdmF0
ZSYsIGJvb2wgZW5hYmxlZCk+OwogICAgIHZvaWQgc2V0RW5hYmxlZENoYW5nZWRDYWxsYmFjayhF
bmFibGVkQ2hhbmdlZENhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9lbmFibGVkQ2hhbmdlZENhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KLSAgICAKLSAgICBTdHJpbmcgY29kZWMoKSBjb25z
dCB7IHJldHVybiBtX2NvZGVjOyB9Ci0gICAgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykg
eyBtX2NvZGVjID0gV1RGTW92ZShjb2RlYyk7IH0KLSAgICAKLSAgICB1aW50MzJfdCBzYW1wbGVS
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9Ci0gICAgdm9pZCBzZXRTYW1wbGVS
YXRlKHVpbnQzMl90IHNhbXBsZVJhdGUpIHsgbV9zYW1wbGVSYXRlID0gc2FtcGxlUmF0ZTsgfQot
ICAgIAotICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMoKSBjb25zdCB7IHJldHVybiBtX251
bWJlck9mQ2hhbm5lbHM7IH0KLSAgICB2b2lkIHNldE51bWJlck9mQ2hhbm5lbHModWludDMyX3Qg
bnVtYmVyT2ZDaGFubmVscykgeyBtX251bWJlck9mQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxz
OyB9Ci0gICAgCi0gICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cmF0
ZTsgfQotICAgIHZvaWQgc2V0Qml0cmF0ZSh1aW50NjRfdCBiaXRyYXRlKSB7IG1fYml0cmF0ZSA9
IGJpdHJhdGU7IH0KKworICAgIGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb247IH0KKyAgICB2
b2lkIHNldENvbmZpZ3VyYXRpb24oUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBpZiAoY29uZmlndXJhdGlvbiA9PSBtX2NvbmZp
Z3VyYXRpb24pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9
IFdURk1vdmUoY29uZmlndXJhdGlvbik7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
ICAgIG1fY2xpZW50LT5jb25maWd1cmF0aW9uQ2hhbmdlZChtX2NvbmZpZ3VyYXRpb24pOworICAg
IH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBdWRpb1RyYWNrUHJpdmF0ZSI7IH0KQEAg
LTg3LDEwICs4Niw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxBdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQ7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9
OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAgIHVpbnQzMl90IG1fc2FtcGxlUmF0ZSB7IDAgfTsK
LSAgICB1aW50MzJfdCBtX251bWJlck9mQ2hhbm5lbHMgeyAwIH07Ci0gICAgdWludDY0X3QgbV9i
aXRyYXRlIHsgMCB9OworICAgIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25m
aWd1cmF0aW9uOwogICAgIEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgbV9lbmFibGVkQ2hhbmdlZENh
bGxiYWNrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKaW5kZXggMGFlMjA0NTE3OWUxNzljOTM3
ZGJmNjYzZTA3NWE5NDRlODM2ZGNkOC4uNjFlZTg2NDQxNzg0Mjk4OTUyNWI1ZjRlODc2NDcwMGRj
ZGIyOTRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMCArMzIsMTIgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CitzdHJ1Y3QgUGxhdGZv
cm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpID0g
MDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMjg3YjdiMzc2NmE2YzRiMjUyY2Q0NGI1OTNjODk1YWQ0NTI5NjE2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIlBsYXRmb3JtVHJhY2tDb25maWd1
cmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBsYXRmb3JtQXVkaW9U
cmFja0NvbmZpZ3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgdWlu
dDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKKyAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsg
MCB9OworICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJik7Cit9OworCitpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mIGEsIGNvbnN0
IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mIGIpCit7CisgICAgcmV0dXJuIGEuY29k
ZWMgPT0gYi5jb2RlYworICAgICAgICAmJiBhLnNhbXBsZVJhdGUgPT0gYi5zYW1wbGVSYXRlCisg
ICAgICAgICYmIGEubnVtYmVyT2ZDaGFubmVscyA9PSBiLm51bWJlck9mQ2hhbm5lbHMKKyAgICAg
ICAgJiYgYS5iaXRyYXRlID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5jb2RlciA8
PCBzYW1wbGVSYXRlOworICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKKyAgICBlbmNv
ZGVyIDw8IGJpdHJhdGU7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorYm9vbCBQbGF0
Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uY29kZWMpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNhbXBsZVJhdGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0
aW9uLm51bWJlck9mQ2hhbm5lbHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UcmFja0NvbmZpZ3Vy
YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMGY5N2E2MDBmODRlNDMwNzc1YjU4OTAxNjBmNGEwNjdmNDhk
MjI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGxhdGZvcm1U
cmFja0NvbmZpZ3VyYXRpb24geworICAgIFN0cmluZyBjb2RlYzsKK307CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZp
ZGVvQ29sb3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1WaWRlb0NvbG9yU3BhY2UuaAppbmRleCAyODg3NDNkZTVmNzEzMmU2MGEwYzBjY2M0NzE5ZWQx
MjVhYTBmN2ExLi41MGU0YWI5Mjc2NDUwMGE1YWNhM2YxZTc0YTliODg4ZmExYjU0YzhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlLmgKQEAgLTQzLDYgKzQzLDE5IEBAIHN0cnVjdCBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZSB7CiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNl
Jik7CiB9OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYgYikKK3sKKyAgICByZXR1
cm4gYS5wcmltYXJpZXMgPT0gYi5wcmltYXJpZXMKKyAgICAgICAgJiYgYS50cmFuc2ZlciA9PSBi
LnRyYW5zZmVyCisgICAgICAgICYmIGEubWF0cml4ID09IGIubWF0cml4CisgICAgICAgICYmIGEu
ZnVsbFJhbmdlID09IGIuZnVsbFJhbmdlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBhLCBjb25zdCBQbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZSYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCiB0ZW1wbGF0ZSA8Y2xhc3Mg
RW5jb2Rlcj4KIHZvaWQgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2U6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJiNWFmY2U2NzRkNDkyNWNlOGMxOWYzM2RmMzY4M2EzMjQ2ZTA1ZGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiUGxhdGZvcm1UcmFja0Nv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uIDogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24geworICAgIHVpbnQzMl90IHdpZHRoIHsg
MCB9OworICAgIHVpbnQzMl90IGhlaWdodCB7IDAgfTsKKyAgICBQbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZSBjb2xvclNwYWNlOworICAgIGRvdWJsZSBmcmFtZXJhdGUgeyAwIH07CisgICAgdWludDY0
X3QgYml0cmF0ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3QgUGxhdGZvcm1WaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2RlYyA9PSBiLmNvZGVjCisg
ICAgICAgICYmIGEud2lkdGggPT0gYi53aWR0aAorICAgICAgICAmJiBhLmhlaWdodCA9PSBiLmhl
aWdodAorICAgICAgICAmJiBhLmNvbG9yU3BhY2UgPT0gYi5jb2xvclNwYWNlCisgICAgICAgICYm
IGEuZnJhbWVyYXRlID09IGIuZnJhbWVyYXRlCisgICAgICAgICYmIGEuYml0cmF0ZSA9PSBiLmJp
dHJhdGU7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPgordm9pZCBQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGNvZGVjOworICAgIGVuY29kZXIgPDwgd2lkdGg7CisgICAgZW5jb2RlciA8
PCBoZWlnaHQ7CisgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOworICAgIGVuY29kZXIgPDwgZnJh
bWVyYXRlOworICAgIGVuY29kZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+Citib29sIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5jb2RlYykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24ud2lkdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmhlaWdodCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmln
dXJhdGlvbi5iaXRyYXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVl
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggNTJjOWZlMjIwZjMwYTNmMzE5NTcyOTMy
ZDM2YWM2ZDk5MzEwYjM1Ni4uNjIzZjk0MWE2N2U4NmE1MTAyMzAxMjBmN2FiMDA4OWIxYzNlMjc2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1Ry
YWNrUHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNp
bmNsdWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAj
aW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KQEAgLTYyLDM2ICs2MiwyMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU2VsZWN0ZWRDaGFu
Z2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFZpZGVvVHJhY2tQcml2YXRlJiwgYm9vbCBzZWxl
Y3RlZCk+OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2soU2VsZWN0ZWRDaGFu
Z2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb2RlYzsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2Rl
YykgeyBtX2NvZGVjID0gV1RGTW92ZShjb2RlYyk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQz
Ml90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaWR0aCh1aW50MzJfdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7IH0KLSAgICAKLSAgICB2
aXJ0dWFsIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWln
aHQ7IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29sb3JTcGFjZShQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZSYmIGNvbG9yU3BhY2UpIHsgbV9jb2xv
clNwYWNlID0gV1RGTW92ZShjb2xvclNwYWNlKTsgfQotICAgIAotICAgIHZpcnR1YWwgZG91Ymxl
IGZyYW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVyYXRlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1fZnJhbWVyYXRlID0gZnJhbWVy
YXRlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0
cmF0ZSkgeyBtX2JpdHJhdGUgPSBiaXRyYXRlOyB9Ci0gICAgCisgICAgY29uc3QgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybVZpZGVv
VHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChj
b25maWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmln
dXJhdGlvbik7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9
IGRlZmF1bHQ7CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dD4gbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsK
LSAgICBTdHJpbmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVp
bnQzMl90IG1faGVpZ2h0IHsgMCB9OwotICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29s
b3JTcGFjZTsKLSAgICBkb3VibGUgbV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9i
aXRyYXRlIHsgMCB9OworICAgIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25m
aWd1cmF0aW9uOwogCiAgICAgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5n
ZWRDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCBkNTFiMzcyMTIzYWU0MDQw
YmQwZTY1NzhiNGEwODk3NTk5NDFlZTBkLi42NWI3YmY2Njc3MTg3ZDlkMmMxMDEzODVmZTM3M2M1
OTQ3MWVhNjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uOworCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2Vk
KGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24mKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaAppbmRleCBkMmJjNWYyNjZmMjUwMDNmMGI3NjZl
YTA5MzgzNzY0YjNkOTdlM2FjLi41NjNkMDFhMzA4NzRiOTlkN2YxYTY0YWVmZjJiOGI4ZjZhMWE5
MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkBAIC00NSw4ICs0NiwxMCBAQCB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVNlbGVjdGlvbk9wdGlvbkFW
Rk9iakM7CitzdHJ1Y3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBQ
bGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOwogCi1jbGFzcyBBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsIHsKK2NsYXNzIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwoQVZQbGF5ZXJJdGVtVHJhY2sqKTsKQEAgLTcxLDYgKzc0LDIwIEBAIHB1YmxpYzoKIAog
ICAgIGludCB0cmFja0lEKCkgY29uc3Q7CiAKKyAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9y
QVZBc3NldFRyYWNrKEFWQXNzZXRUcmFjayopOworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VG
b3JBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKik7CisKKyAg
ICBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uIHZpZGVvVHJhY2tDb25maWd1cmF0aW9u
KCkgY29uc3Q7CisgICAgdXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9i
c2VydmVyPHZvaWQoKT47CisgICAgdm9pZCBzZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2Vy
dmVyKFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fdmlkZW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IG9ic2VydmVyOyB9CisKKyAgICBQbGF0Zm9ybUF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uIGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3Q7Cisg
ICAgdXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQo
KT47CisgICAgdm9pZCBzZXRBdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKEF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fYXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb25PYnNlcnZlciA9IG9ic2VydmVyOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFs
aXplQXNzZXRUcmFjaygpOworCiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7CiAgICAgdWludDMy
X3Qgd2lkdGgoKSBjb25zdDsKICAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsKQEAgLTc5LDE0
ICs5NiwxMyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0OwogICAgIHVp
bnQzMl90IHNhbXBsZVJhdGUoKSBjb25zdDsKICAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxz
KCkgY29uc3Q7Ci0gICAgc3RhdGljIFN0cmluZyBsYW5ndWFnZUZvckFWQXNzZXRUcmFjayhBVkFz
c2V0VHJhY2sqKTsKLSAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbihBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICopOwogCi1wcml2YXRlOgogICAgIFJldGFp
blB0cjxBVlBsYXllckl0ZW1UcmFjaz4gbV9wbGF5ZXJJdGVtVHJhY2s7Ci0gICAgUmV0YWluUHRy
PEFWQXNzZXRUcmFjaz4gbV9hc3NldFRyYWNrOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+
IG1fcGxheWVySXRlbTsKICAgICBSZWZQdHI8TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPiBt
X21lZGlhU2VsZWN0aW9uT3B0aW9uOworICAgIFJldGFpblB0cjxBVkFzc2V0VHJhY2s+IG1fYXNz
ZXRUcmFjazsKKyAgICBXZWFrUHRyPFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI+IG1f
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKKyAgICBXZWFrUHRyPEF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXI+IG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwu
bW0KaW5kZXggNGI3MjU5MDdiNGI0YjI1NWQwNzJkNTE2YTU2M2I4NDY1NDgwNmY5Mi4uZTczNWZh
OWVmNDczNzM2YzhiMTEyNzc5MDk4NDQzNjM3MzI0YjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KQEAgLTMwLDYgKzMwLDggQEAKIAogI2lt
cG9ydCAiRm9ybWF0RGVzY3JpcHRpb25VdGlsaXRpZXMuaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgiCiAjaW1w
b3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2su
aD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3JvdXAuaD4KQEAgLTM3
LDYgKzM5LDcgQEAKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW1UcmFjay5oPgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
PgpAQCAtNDgsMjUgKzUxLDUwIEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0
aWMgTlNBcnJheSogYXNzZXRUcmFja0NvbmZpZ3VyYXRpb25LZXlOYW1lcygpCit7CisgICAgc3Rh
dGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAImZv
cm1hdERlc2NyaXB0aW9ucyIsIEAiZXN0aW1hdGVkRGF0YVJhdGUiLCBAIm5vbWluYWxGcmFtZVJh
dGUiLCBuaWxdOworICAgIHJldHVybiBrZXlzOworfQorCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykK
ICAgICA6IG1fcGxheWVySXRlbVRyYWNrKHRyYWNrKQogICAgICwgbV9hc3NldFRyYWNrKFt0cmFj
ayBhc3NldFRyYWNrXSkKIHsKKyAgICBpbml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKEFWQXNzZXRU
cmFjayogdHJhY2spCiAgICAgOiBtX2Fzc2V0VHJhY2sodHJhY2spCiB7CisgICAgaW5pdGlhbGl6
ZUFzc2V0VHJhY2soKTsKIH0KIAogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6QVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbChNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKICAg
ICA6IG1fbWVkaWFTZWxlY3Rpb25PcHRpb24oJm9wdGlvbikKKyAgICAsIG1fYXNzZXRUcmFjayhv
cHRpb24uYXNzZXRUcmFjaygpKQogeworICAgIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CiB9CiAK
IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6On5BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKCkK
IHsKIH0KKwordm9pZCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjppbml0aWFsaXplQXNzZXRU
cmFjaygpCit7CisgICAgaWYgKCFtX2Fzc2V0VHJhY2spCisgICAgICAgIHJldHVybjsKKworICAg
IFttX2Fzc2V0VHJhY2sgIGxvYWRWYWx1ZXNBc3luY2hyb25vdXNseUZvcktleXM6YXNzZXRUcmFj
a0NvbmZpZ3VyYXRpb25LZXlOYW1lcygpIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IFdl
YWtQdHIodGhpcyldICgpIG11dGFibGUgeworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldIHsKKyAgICAgICAgICAgIGlmICh3ZWFr
VGhpcyAmJiB3ZWFrVGhpcy0+bV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKQorICAg
ICAgICAgICAgICAgICgqd2Vha1RoaXMtPm1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZl
cikoKTsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiB3ZWFrVGhpcy0+bV92aWRlb1RyYWNr
Q29uZmlndXJhdGlvbk9ic2VydmVyKQorICAgICAgICAgICAgICAgICgqd2Vha1RoaXMtPm1fdmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcikoKTsKKyAgICAgICAgfSk7CisgICAgfV07Cit9
CiAgICAgCiBib29sIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmVuYWJsZWQoKSBjb25zdAog
ewpAQCAtMjMyLDYgKzI2MCwyOCBAQCBTdHJpbmcgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6
bGFuZ3VhZ2VGb3JBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKEFWTWVkaWFTZWxlYwogICAgIHJldHVy
biBsYW5ndWFnZTsKIH0KIAorUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjp2aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHsKKyAgICAgICAgeyBjb2RlYygpIH0sCisgICAgICAgIHdpZHRoKCksCisgICAg
ICAgIGhlaWdodCgpLAorICAgICAgICBjb2xvclNwYWNlKCksCisgICAgICAgIGZyYW1lcmF0ZSgp
LAorICAgICAgICBiaXRyYXRlKCksCisgICAgfTsKK30KKworUGxhdGZvcm1BdWRpb1RyYWNrQ29u
ZmlndXJhdGlvbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjphdWRpb1RyYWNrQ29uZmlndXJh
dGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgeyBjb2RlYygpIH0sCisgICAg
ICAgIHNhbXBsZVJhdGUoKSwKKyAgICAgICAgbnVtYmVyT2ZDaGFubmVscygpLAorICAgICAgICBi
aXRyYXRlKCksCisgICAgfTsKK30KKwogaW50IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnRy
YWNrSUQoKSBjb25zdAogewogICAgIGlmIChtX2Fzc2V0VHJhY2spCkBAIC0yNTYsNyArMzA2LDcg
QEAgc3RhdGljIEFWQXNzZXRUcmFjayogYXNzZXRUcmFja0Zvcihjb25zdCBBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsJiBpbXBsKQogc3RhdGljIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
RGVzY3JpcHRpb25Gb3IoY29uc3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHsK
ICAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKGltcGwpOwotICAgIGlmICghYXNz
ZXRUcmFjayB8fCAhYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnMuY291bnQpCisgICAgaWYg
KCFhc3NldFRyYWNrIHx8IFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJmb3JtYXRE
ZXNjcmlwdGlvbnMiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCB8fCAhYXNz
ZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnMuY291bnQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPihhc3NldFRy
YWNrLmZvcm1hdERlc2NyaXB0aW9uc1swXSk7CiB9CkBAIC0yOTEsMTAgKzM0MSwxMiBAQCBQbGF0
Zm9ybVZpZGVvQ29sb3JTcGFjZSBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpjb2xvclNwYWNl
KCkgY29uc3QKIAogZG91YmxlIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmZyYW1lcmF0ZSgp
IGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJhY2tGb3IoKnRoaXMp
KQotICAgICAgICByZXR1cm4gYXNzZXRUcmFjay5ub21pbmFsRnJhbWVSYXRlOwotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIGF1dG8gYXNzZXRUcmFjayA9IGFz
c2V0VHJhY2tGb3IoKnRoaXMpOworICAgIGlmICghYXNzZXRUcmFjaykKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgaWYgKFthc3NldFRyYWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJub21pbmFsRnJh
bWVSYXRlIiBlcnJvcjpuaWxdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCisgICAgICAgIHJl
dHVybiAwOworICAgIHJldHVybiBhc3NldFRyYWNrLm5vbWluYWxGcmFtZVJhdGU7CiB9CiAKIHVp
bnQzMl90IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNhbXBsZVJhdGUoKSBjb25zdApAQCAt
MzI4LDYgKzM4MCw4IEBAIHVpbnQ2NF90IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmJpdHJh
dGUoKSBjb25zdAogICAgIGF1dG8gYXNzZXRUcmFjayA9IGFzc2V0VHJhY2tGb3IoKnRoaXMpOwog
ICAgIGlmICghYXNzZXRUcmFjaykKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKFthc3NldFRy
YWNrIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJlc3RpbWF0ZWREYXRhUmF0ZSIgZXJyb3I6bmlsXSAh
PSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIXN0
ZDo6aXNmaW5pdGUoYXNzZXRUcmFjay5lc3RpbWF0ZWREYXRhUmF0ZSkpCiAgICAgICAgIHJldHVy
biAwOwogICAgIHJldHVybiBhc3NldFRyYWNrLmVzdGltYXRlZERhdGFSYXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAppbmRleCA4OTAw
NTEwMWVlNmQ0Nzc3ODkwNjFkNzI3N2FmYzVhNGE2ODZhOGQwLi5hMjc3ZjZmNmExZmRjNzMzNmEx
YmNhYjM4NDU4ZmI3NDBlM2Y3ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
dWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShW
SURFTykKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQVZGLmgiCisjaW5jbHVkZSA8d3Rm
L09ic2VydmVyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3NldFRyYWNrOwogT0JKQ19DTEFTUyBBVlBs
YXllckl0ZW07CkBAIC03NSw5ICs3NiwxNCBAQCBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayopOwogICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZG
T2JqQyhBVkFzc2V0VHJhY2sqKTsKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFT
ZWxlY3Rpb25PcHRpb25BVkZPYmpDJik7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKHN0
ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmKTsKIAogICAgIHZvaWQg
cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CisgICAgdm9pZCBhdWRpb1RyYWNrQ29uZmlndXJh
dGlvbkNoYW5nZWQoKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbD4gbV9pbXBsOworCisgICAgdXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZl
ciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZl
ciBtX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggMWNi
OTU4OWQ4NWU5MDA5MTAxMmJlOWE3MDQ5NTlhZjExZGExODMzYi4uOGU1ZWZlZWJiZTY0OWEyNGU4
MmMxMTQ0MDZmNTYyODFmN2RhMDQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQpAQCAtMzMsMTcgKzMzLDI5IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6IEF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNr
KSkKK3sKK30KKworQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFW
Rk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKKyAgICA6IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2Jq
QyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKIHsKLSAgICBy
ZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
OjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDJiBv
cHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
PihvcHRpb24pKQorICAgIDogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30KKworQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVfcHRyPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1faW1wbChXVEZNb3ZlKGltcGwp
KQorICAgICwgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFt0aGlzXSB7IGF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAgIG1faW1wbC0+c2V0QXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2
ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCisKIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQogewogICAgIC8v
IERvbid0IGNhbGwgdGhpcy0+c2V0RW5hYmxlZCgpIGJlY2F1c2UgaXQgYWxzbyBzZXRzIHRoZSBl
bmFibGVkIHN0YXRlIG9mIHRoZQpAQCAtNTUsMTEgKzY3LDEyIEBAIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKQogICAgIHNldElkKG1faW1w
bC0+aWQoKSk7CiAgICAgc2V0TGFiZWwobV9pbXBsLT5sYWJlbCgpKTsKICAgICBzZXRMYW5ndWFn
ZShtX2ltcGwtPmxhbmd1YWdlKCkpOwotICAgIHNldENvZGVjKG1faW1wbC0+Y29kZWMoKSk7Ci0g
ICAgc2V0U2FtcGxlUmF0ZShtX2ltcGwtPnNhbXBsZVJhdGUoKSk7Ci0gICAgc2V0TnVtYmVyT2ZD
aGFubmVscyhtX2ltcGwtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2lt
cGwtPmJpdHJhdGUoKSk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPmF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uKCkpOworfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6YXVk
aW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKK3sKKyAgICBzZXRDb25maWd1cmF0aW9uKG1f
aW1wbC0+YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDOjpzZXRQbGF5ZXJJdGVtVHJhY2soQVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNr
KQpAQCAtNzMsMTIgKzg2LDYgQEAgQVZQbGF5ZXJJdGVtVHJhY2sqIEF1ZGlvVHJhY2tQcml2YXRl
QVZGT2JqQzo6cGxheWVySXRlbVRyYWNrKCkKICAgICByZXR1cm4gbV9pbXBsLT5wbGF5ZXJJdGVt
VHJhY2soKTsKIH0KIAotQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKLXsKLSAgICByZXNldFByb3BlcnRpZXNG
cm9tVHJhY2soKTsKLX0KLQogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnNldEFzc2V0
VHJhY2soQVZBc3NldFRyYWNrICp0cmFjaykKIHsKICAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCmluZGV4IDlkOWQ2NGFhMjZhZjcy
M2I0NmJhODcyNDhhMzkxZDI5ZThjYThiMWMuLmVhZjNmMTE4YjI1YTQzODg5OTIyZjU2YzZiZGVj
ZmQ5YzU4Y2Y4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcApAQCAtMzAsMjQgKzMwLDMwIEBACiAKICNpbXBvcnQgIkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZP
YmpDLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQotICAgIDogbV9pbXBsKG1h
a2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQorICAgIDogVmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4o
dHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCiBWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhBVkFzc2V0VHJhY2sq
IHRyYWNrKQotICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4odHJhY2spKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1ha2VVbmlxdWU8QVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQogewotICAgIHJlc2V0UHJvcGVydGllc0Zy
b21UcmFjaygpOwogfQogCiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKLSAgICA6IG1f
aW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlvbikpCisgICAg
OiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsPihvcHRpb24pKQoreworfQorCitWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OlZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbD4mJiBpbXBsKQorICAgIDogbV9pbXBsKFdURk1vdmUoaW1wbCkpCisgICAgLCBtX3ZpZGVv
VHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIoW3RoaXNdIHsgdmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25DaGFuZ2VkKCk7IH0pCiB7CisgICAgbV9pbXBsLT5zZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyKG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcik7CiAgICAgcmVzZXRQ
cm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CiAKQEAgLTYyLDE1ICs2OCwxMiBAQCB2b2lkIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCkKICAgICBzZXRJ
ZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1wbC0+bGFiZWwoKSk7CiAgICAgc2V0
TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBzZXRDb2RlYyhtX2ltcGwtPmNvZGVj
KCkpOwotICAgIHNldFdpZHRoKG1faW1wbC0+d2lkdGgoKSk7Ci0gICAgc2V0SGVpZ2h0KG1faW1w
bC0+aGVpZ2h0KCkpOwotICAgIHNldENvbG9yU3BhY2UobV9pbXBsLT5jb2xvclNwYWNlKCkpOwot
ICAgIHNldEZyYW1lcmF0ZShtX2ltcGwtPmZyYW1lcmF0ZSgpKTsKLSAgICBzZXRCaXRyYXRlKG1f
aW1wbC0+Yml0cmF0ZSgpKTsKLQotICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQo
KSkKLSAgICAgICAgY2xpZW50LT5jb25maWd1cmF0aW9uQ2hhbmdlZCgpOworICAgIHNldENvbmZp
Z3VyYXRpb24obV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKK30KKwordm9pZCBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgp
Cit7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tDb25maWd1cmF0aW9u
KCkpOwogfQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0UGxheWVySXRlbVRy
YWNrKEFWUGxheWVySXRlbVRyYWNrICp0cmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKaW5kZXggZjQ1YWZlNGY2OWFkMTM4MmJiMGYx
OGZjYzQyZmY1YmE5NjlkOTFiMy4uZmYwY2RmYjM2ZTUxOTIyMjliOGU2NTUxZTNmMWRlODM2ZGM3
MTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgogCiBP
QkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOwpAQCAtNzUs
OSArNzYsMTQgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akMoQVZQbGF5ZXJJdGVtVHJhY2sqKTsKICAgICBleHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAgZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOworICAgIGV4cGxpY2l0IFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOworICAgIHZvaWQg
dmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAgIHVzaW5nIFZpZGVvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+OworICAgIFZpZGVvVHJhY2tD
b25maWd1cmF0aW9uT2JzZXJ2ZXIgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA2ODYxOGM3MjdhMmU3NTM4MTJl
YjdkYjU4M2JhMGJlZTdmMDJlOTgxLi43NmEwYWJjOGU5OWE3ZWJmNjZmMTk3MzU0OGVlNjU2MGY2
NjRlNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNTAsMTIgKzUwLDcgQEAgdm9p
ZCBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVzRnJv
bVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1wbC0+
bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBzZXRD
b2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFdpZHRoKG1faW1wbC0+d2lkdGgoKSk7Ci0g
ICAgc2V0SGVpZ2h0KG1faW1wbC0+aGVpZ2h0KCkpOwotICAgIHNldENvbG9yU3BhY2UobV9pbXBs
LT5jb2xvclNwYWNlKCkpOwotICAgIHNldEZyYW1lcmF0ZShtX2ltcGwtPmZyYW1lcmF0ZSgpKTsK
LSAgICBzZXRCaXRyYXRlKG1faW1wbC0+Yml0cmF0ZSgpKTsKKyAgICBzZXRDb25maWd1cmF0aW9u
KG1faW1wbC0+dmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7CiB9CiAKIHZvaWQgVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNrICp0
cmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCmluZGV4IDExY2FjODAwMjMxZTA4
YzUzZWI2ZTM4ZDg0ZjZiMzM3M2M5MWJjZmIuLjU3N2IxMTAwMGJlMTM1N2YyMzVhOTE3YWY0NzU1
YWJhN2RkYWQ4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcApAQCAtNDAsNiAr
NDAsOCBAQCBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJt
OjpUcmFja0VudHJ5JiYgdHJhY2tFbnRyeSkKIHsKICAgICBpZiAobV90cmFjay5pc19lbmFibGVk
LmlzX3ByZXNlbnQoKSkKICAgICAgICAgc2V0U2VsZWN0ZWQobV90cmFjay5pc19lbmFibGVkLnZh
bHVlKCkpOworCisgICAgdXBkYXRlQ29uZmlndXJhdGlvbigpOwogfQogCiBBdG9tU3RyaW5nIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTTo6aWQoKSBjb25zdApAQCAtMTQ1LDYgKzE0NywxNyBAQCBkb3Vi
bGUgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpmcmFtZXJhdGUoKSBjb25zdAogICAgIHJldHVybiAw
OwogfQogCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6dXBkYXRlQ29uZmlndXJhdGlvbigp
Cit7CisgICAgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uIHsK
KyAgICAgICAgeyAuY29kZWMgPSBjb2RlYygpIH0sCisgICAgICAgIC53aWR0aCA9IHdpZHRoKCks
CisgICAgICAgIC5oZWlnaHQgPSBoZWlnaHQoKSwKKyAgICAgICAgLmZyYW1lcmF0ZSA9IGZyYW1l
cmF0ZSgpLAorICAgIH07CisgICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2
YXRlV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9U
cmFja1ByaXZhdGVXZWJNLmgKaW5kZXggOTlmZDA3ZmUyZDcxZDkyZGMyZTFjOTNlOTc2MWNlZTFj
NjZhNGI0MC4uN2JkMTllOWJkNzM2MDExODA4YzBmMGU0MzRjNDQ4ZjJkNGEwMjJkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VmlkZW9UcmFja1ByaXZhdGVXZWJNLmgKQEAgLTQzLDEzICs0MywxNiBAQCBwdWJsaWM6CiAgICAg
aW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiB0cmFja1VJRCgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZGVmYXVs
dEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKLSAgICBTdHJpbmcgY29kZWMoKSBjb25zdCBmaW5hbDsK
LSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IGhlaWdodCgp
IGNvbnN0IGZpbmFsOwotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCBmaW5hbDsKIAogcHJp
dmF0ZToKICAgICBWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmKTsKKwor
ICAgIFN0cmluZyBjb2RlYygpIGNvbnN0OworICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3Q7Cisg
ICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3Q7CisgICAgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0
OworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOworCiAgICAgd2VibTo6VHJhY2tFbnRy
eSBtX3RyYWNrOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX3RyYWNrSUQ7CiAgICAgbXV0YWJs
ZSBBdG9tU3RyaW5nIG1fbGFiZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTllOWQ2YWVkODlmMTFiOTIxY2UxMGY5NjE1YTllZjgzNTY1YmMx
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9BdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiA6IFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24geworICAgIGJvb2wgZW5hYmxlZDsKKyAgICBXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6S2luZCBraW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5v
bmUgfTsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIHRyYWNr
Q29uZmlndXJhdGlvbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgZW5jb2RlciA8
PCBlbmFibGVkOworICAgICAgICBlbmNvZGVyIDw8IGtpbmQ7CisgICAgICAgIGVuY29kZXIgPDwg
dHJhY2tDb25maWd1cmF0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVy
PgorICAgIHN0YXRpYyBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9u
KQorICAgIHsKKyAgICAgICAgaWYgKCFUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpk
ZWNvZGUoZGVjb2RlciwgY29uZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5lbmFibGVkKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25m
aWd1cmF0aW9uLmtpbmQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0aW9uKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCA4NTM1
MDAyYjFiMGY1MTU2OTE4NmIzOWM1NDE2YzI2NGQxZmE4YTUzLi44MTA0MDAyOGUxNzE3ZTIyODJj
YTRkNDBlNzU5YmU2NTczOWVmMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtMjksMTEgKzI5LDEx
IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIgotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU0LDI2ICs1NCwxOSBAQCBSZW1vdGVBdWRpb1RyYWNrUHJv
eHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKQogICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNs
aWVudCgpOwogfQogCi1UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCitBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKIHsKICAgICBy
ZXR1cm4gewotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKLSAgICAgICAgbV90cmFja1By
aXZhdGUtPmxhYmVsKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAotICAg
ICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKLSAgICAgICAgbV90cmFj
a1ByaXZhdGUtPnRyYWNrSW5kZXgoKSwKKyAgICAgICAgeworICAgICAgICAgICAgbV90cmFja1By
aXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKKyAgICAg
ICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAgICAgICAgbV90cmFja1By
aXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+
dHJhY2tJbmRleCgpLAorICAgICAgICB9LAogICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+ZW5hYmxl
ZCgpLAogICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpLAotICAgICAgICBmYWxzZSwKLSAg
ICAgICAgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6Ok5vbmUsCi0gICAgICAgIG1f
dHJhY2tQcml2YXRlLT5jb2RlYygpLAotICAgICAgICAwLAotICAgICAgICAwLAotICAgICAgICB7
IH0sCi0gICAgICAgIDAsCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5iaXRyYXRlKCksCi0gICAg
ICAgIG1fdHJhY2tQcml2YXRlLT5zYW1wbGVSYXRlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRl
LT5udW1iZXJPZkNoYW5uZWxzKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5jb25maWd1cmF0
aW9uKCksCiAgICAgfTsKIH0KIApAQCAtOTgsNiArOTEsMTEgQEAgdm9pZCBSZW1vdGVBdWRpb1Ry
YWNrUHJveHk6OmVuYWJsZWRDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKICAgICBjb25maWd1cmF0aW9u
Q2hhbmdlZCgpOwogfQogCit2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlv
bkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKK3sKKyAgICBjb25maWd1cmF0aW9uQ2hhbmdlZCgpOworfQorCiB2b2lkIFJlbW90ZUF1
ZGlvVHJhY2tQcm94eTo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKQogewogICAgIGNvbmZp
Z3VyYXRpb25DaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKaW5kZXggZDJkZWM0NWE2ZGIzZmRmNzI2Yjc5
OGJlYWFkZGQ1ZjI1OGQ5ZTNiZC4uMDEzNTY3OTE1YjRlOTAwZmQzNmJlNDc5YmQ4ZjJlYzQ5Mjdi
ODQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1RyYWNrUHJveHkuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBEZWNvZGVyOwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci1zdHJ1
Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZUF1ZGlvVHJhY2tQcm94eSBm
aW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KQEAgLTY5LDYgKzY5LDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50CiAgICAgdm9pZCBlbmFibGVk
Q2hhbmdlZChib29sKSBmaW5hbDsKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKSBmaW5hbDsKIAogICAg
IC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CkBAIC03Niw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5n
dWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92
ZSgpIGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKCk7CisgICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24oKTsKICAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAKICAgICBXZWFr
UHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1Ry
YWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
VHJhY2tQcm94eS5jcHAKaW5kZXggMmVkZWUxOTg3MWM3ZDM3YTQ1NDVlM2VjNTA1NmI2MTYzMzAx
YTNlZC4uYjIxNGFlYTEzYThkNWY3Yjc2ZjY1MmM3ZGM2ZTVjNDY4OGQ1NDUzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjMgKzU0
LDIwIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCiAg
ICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24gUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKK1Zp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6
OmNvbmZpZ3VyYXRpb24oKQogewotICAgIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbiB7IH07Ci0gICAgY29uZmlndXJhdGlvbi50cmFja0lkID0gbV90cmFja1By
aXZhdGUtPmlkKCk7Ci0gICAgY29uZmlndXJhdGlvbi5sYWJlbCA9IG1fdHJhY2tQcml2YXRlLT5s
YWJlbCgpOwotICAgIGNvbmZpZ3VyYXRpb24ubGFuZ3VhZ2UgPSBtX3RyYWNrUHJpdmF0ZS0+bGFu
Z3VhZ2UoKTsKLSAgICBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXggPSBtX3RyYWNrUHJpdmF0ZS0+
dHJhY2tJbmRleCgpOwotICAgIGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFuY2UgPSBtX3Ry
YWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKLSAgICBjb25maWd1cmF0aW9uLnNlbGVj
dGVkID0gbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCk7Ci0gICAgY29uZmlndXJhdGlvbi52aWRl
b0tpbmQgPSBtX3RyYWNrUHJpdmF0ZS0+a2luZCgpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMg
PSBtX3RyYWNrUHJpdmF0ZS0+Y29kZWMoKTsKLSAgICBjb25maWd1cmF0aW9uLndpZHRoID0gbV90
cmFja1ByaXZhdGUtPndpZHRoKCk7Ci0gICAgY29uZmlndXJhdGlvbi5oZWlnaHQgPSBtX3RyYWNr
UHJpdmF0ZS0+aGVpZ2h0KCk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2xvclNwYWNlID0gbV90cmFj
a1ByaXZhdGUtPmNvbG9yU3BhY2UoKTsKLSAgICBjb25maWd1cmF0aW9uLmZyYW1lcmF0ZSA9IG1f
dHJhY2tQcml2YXRlLT5mcmFtZXJhdGUoKTsKLSAgICBjb25maWd1cmF0aW9uLmJpdHJhdGUgPSBt
X3RyYWNrUHJpdmF0ZS0+Yml0cmF0ZSgpOwotICAgIHJldHVybiBjb25maWd1cmF0aW9uOworICAg
IHJldHVybiB7CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5pZCgpLAor
ICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhYmVsKCksCisgICAgICAgICAgICBtX3RyYWNr
UHJpdmF0ZS0+bGFuZ3VhZ2UoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRp
bWVWYXJpYW5jZSgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPnRyYWNrSW5kZXgoKSwK
KyAgICAgICAgfSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPnNlbGVjdGVkKCksCisgICAgICAg
IG1fdHJhY2tQcml2YXRlLT5raW5kKCksCisgICAgICAgIG1fdHJhY2tQcml2YXRlLT5jb25maWd1
cmF0aW9uKCksCisgICAgfTsKIH0KIAogdm9pZCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OnVwZGF0
ZUNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCmluZGV4IDkzNzI3MDcwMGQ0MzRiMTFmMDA4ZjNl
YzlmMjRlODViOTQyNDhiODcuLjg5NTA3NGM2ZjA2MzU4Y2U1ZDZhMWNhMjk5MTMzYzA3ZWMwYjg4
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgRGVjb2RlcjsKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwotc3RydWN0
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHkgZmlu
YWwKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVWaWRlb1RyYWNrUHJv
eHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CkBAIC02OSw3ICs2OSw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgc2VsZWN0ZWRD
aGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSBmaW5h
bCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsgfQorICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpIGZpbmFs
IHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xp
ZW50CiAgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpAQCAtNzcs
NyArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAotICAgIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOworICAgIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CiAgICAgdm9pZCB1
cGRhdGVDb25maWd1cmF0aW9uKCk7CiAKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oCmluZGV4IDk0ODQzNDE2NjIzYjM5NDE3ZTMyNzQyNTIxM2U1Y2YwYmIzZWIxMWYuLmU0
OGUwNzg5ODMyZmE2Y2I4YjNhYWIyZjI2YTRkZDVmY2U4NmY5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaApAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1RyYWNrUHJpdmF0ZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDAsMjEgKzM4LDYgQEAgc3RydWN0IFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5j
ZSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIGludCB0cmFja0luZGV4OwogCi0gICAg
Ym9vbCBlbmFibGVkOwotICAgIFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kIGF1ZGlv
S2luZCB7IFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07Ci0KLSAgICBi
b29sIHNlbGVjdGVkOwotICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kIHZpZGVv
S2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07Ci0KLSAgICBT
dHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgd2lkdGg7Ci0gICAgdWludDMyX3QgaGVpZ2h0Owot
ICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7Ci0gICAgZG91
YmxlIGZyYW1lcmF0ZTsKLSAgICB1aW50NjRfdCBiaXRyYXRlOwotICAgIHVpbnQzMl90IHNhbXBs
ZVJhdGU7Ci0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVsczsKLQogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICB7CkBAIC02MywxMjcgKzQ2LDIyIEBAIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBsYW5ndWFnZTsKICAgICAgICAgZW5jb2RlciA8
PCBzdGFydFRpbWVWYXJpYW5jZTsKICAgICAgICAgZW5jb2RlciA8PCB0cmFja0luZGV4OwotICAg
ICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7Ci0gICAgICAgIGVuY29kZXIgPDwgYXVkaW9LaW5kOwot
ICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOwotICAgICAgICBlbmNvZGVyIDw8IHZpZGVvS2lu
ZDsKLSAgICAgICAgZW5jb2RlciA8PCBjb2RlYzsKLSAgICAgICAgZW5jb2RlciA8PCB3aWR0aDsK
LSAgICAgICAgZW5jb2RlciA8PCBoZWlnaHQ7Ci0gICAgICAgIGVuY29kZXIgPDwgY29sb3JTcGFj
ZTsKLSAgICAgICAgZW5jb2RlciA8PCBmcmFtZXJhdGU7Ci0gICAgICAgIGVuY29kZXIgPDwgYml0
cmF0ZTsKLSAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVSYXRlOwotICAgICAgICBlbmNvZGVyIDw8
IG51bWJlck9mQ2hhbm5lbHM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+
Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRp
b24pCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPEF0b21TdHJpbmc+IHRyYWNrSWQ7Ci0g
ICAgICAgIGRlY29kZXIgPj4gdHJhY2tJZDsKLSAgICAgICAgaWYgKCF0cmFja0lkKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPEF0b21T
dHJpbmc+IGxhYmVsOwotICAgICAgICBkZWNvZGVyID4+IGxhYmVsOwotICAgICAgICBpZiAoIWxh
YmVsKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPEF0b21TdHJpbmc+IGxhbmd1YWdlOwotICAgICAgICBkZWNvZGVyID4+IGxhbmd1YWdl
OwotICAgICAgICBpZiAoIWxhbmd1YWdlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gc3RhcnRUaW1lVmFyaWFuY2U7
Ci0gICAgICAgIGRlY29kZXIgPj4gc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgICAgIGlmICghc3Rh
cnRUaW1lVmFyaWFuY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAg
ICAgIHN0ZDo6b3B0aW9uYWw8aW50PiB0cmFja0luZGV4OwotICAgICAgICBkZWNvZGVyID4+IHRy
YWNrSW5kZXg7Ci0gICAgICAgIGlmICghdHJhY2tJbmRleCkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBlbmFibGVkOwotICAg
ICAgICBkZWNvZGVyID4+IGVuYWJsZWQ7Ci0gICAgICAgIGlmICghZW5hYmxlZCkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZD4gYXVkaW9LaW5kOwotICAgICAgICBkZWNvZGVyID4+
IGF1ZGlvS2luZDsKLSAgICAgICAgaWYgKCFhdWRpb0tpbmQpCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2VsZWN0ZWQ7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc2VsZWN0ZWQ7Ci0gICAgICAgIGlmICghc2VsZWN0ZWQpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ+IHZpZGVvS2luZDsKLSAgICAgICAgZGVjb2Rl
ciA+PiB2aWRlb0tpbmQ7Ci0gICAgICAgIGlmICghdmlkZW9LaW5kKQotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29kZWM7
Ci0gICAgICAgIGRlY29kZXIgPj4gY29kZWM7Ci0gICAgICAgIGlmICghY29kZWMpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMy
X3Q+IHdpZHRoOwotICAgICAgICBkZWNvZGVyID4+IHdpZHRoOwotICAgICAgICBpZiAoIXdpZHRo
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQzMl90PiBoZWlnaHQ7Ci0gICAgICAgIGRlY29kZXIgPj4gaGVpZ2h0OwotICAgICAg
ICBpZiAoIWhlaWdodCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZT4gY29sb3JT
cGFjZTsKLSAgICAgICAgZGVjb2RlciA+PiBjb2xvclNwYWNlOwotICAgICAgICBpZiAoIWNvbG9y
U3BhY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBmcmFtZXJhdGU7Ci0gICAgICAgIGRlY29kZXIgPj4gZnJhbWVyYXRl
OwotICAgICAgICBpZiAoIWZyYW1lcmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gYml0cmF0ZTsKLSAgICAgICAg
ZGVjb2RlciA+PiBiaXRyYXRlOwotICAgICAgICBpZiAoIWJpdHJhdGUpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICAKLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
MzJfdD4gc2FtcGxlUmF0ZTsKLSAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVSYXRlOwotICAgICAg
ICBpZiAoIXNhbXBsZVJhdGUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG51bWJlck9mQ2hhbm5lbHM7Ci0gICAgICAg
IGRlY29kZXIgPj4gbnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgaWYgKCFudW1iZXJPZkNoYW5u
ZWxzKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICByZXR1cm4g
e3sKLSAgICAgICAgICAgIFdURk1vdmUoKnRyYWNrSWQpLAotICAgICAgICAgICAgV1RGTW92ZSgq
bGFiZWwpLAotICAgICAgICAgICAgV1RGTW92ZSgqbGFuZ3VhZ2UpLAotICAgICAgICAgICAgV1RG
TW92ZSgqc3RhcnRUaW1lVmFyaWFuY2UpLAotICAgICAgICAgICAgKnRyYWNrSW5kZXgsCi0gICAg
ICAgICAgICAqZW5hYmxlZCwKLSAgICAgICAgICAgICphdWRpb0tpbmQsCi0gICAgICAgICAgICAq
c2VsZWN0ZWQsCi0gICAgICAgICAgICAqdmlkZW9LaW5kLAotICAgICAgICAgICAgV1RGTW92ZSgq
Y29kZWMpLAotICAgICAgICAgICAgKndpZHRoLAotICAgICAgICAgICAgKmhlaWdodCwKLSAgICAg
ICAgICAgIFdURk1vdmUoKmNvbG9yU3BhY2UpLAotICAgICAgICAgICAgKmZyYW1lcmF0ZSwKLSAg
ICAgICAgICAgICpiaXRyYXRlLAotICAgICAgICAgICAgKnNhbXBsZVJhdGUsCi0gICAgICAgICAg
ICAqbnVtYmVyT2ZDaGFubmVscywKLSAgICAgICAgfX07CisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi50cmFja0lkKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxhYmVsKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1
cmF0aW9uLmxhbmd1YWdlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnN0YXJ0VGltZVZhcmlhbmNlKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1
cmF0aW9uLnRyYWNrSW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMxNGY2YTAzNzBjMDYxMWU4NGQ3YWQ5MTc3MWQ4ZjQ2NWU1
YTM3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9W
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiA6IFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24geworICAgIGJvb2wgc2VsZWN0ZWQ7CisgICAgV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGU6OktpbmQga2luZCB7IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5k
OjpOb25lIH07CisgICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiB0
cmFja0NvbmZpZ3VyYXRpb247CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGVuY29k
ZXIgPDwgc2VsZWN0ZWQ7CisgICAgICAgIGVuY29kZXIgPDwga2luZDsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0cmFja0NvbmZpZ3VyYXRpb247CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCisgICAgeworICAgICAgICBpZiAoIVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b246OmRlY29kZShkZWNvZGVyLCBjb25maWd1cmF0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNlbGVjdGVk
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmtpbmQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0aW9uKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmVmNmY3NGMwMzM2YmU5MTVm
ZDNhNDAzNGU0Y2MxYTI1MGY2NmViYy4uZDI5ZmQ5MWNmNDQ2ZWM3OTU2NTI4NTQzY2ZhMzBhMzI0
MjEzZGUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC02MTg4LDYgKzYxODgsOCBAQAogCQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYg
LyogSU9LaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBh
dGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUNEQ0RDOTlCMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRv
d21lbnRTdGF0ZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5kb3dtZW50U3RhdGVUcmFja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0RDOTlDMjQ4RkU4REEwMEE2OTUy
MiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFbmRv
d21lbnRTdGF0ZVRyYWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4
QUMzMjc3RUJDRTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUM0Mjc3RUQ3RTAwMEVBMzc1
NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02Njg5
LDYgKzY2OTEsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQwRUNFQTkyM0ZDODRCQjAwRDE3
MkY2IC8qIGNvY29hICovLAogCQkJCUNEQTk1OTQ0MjQxMkM0REEwMDkxMEVFRiAvKiBpb3MgKi8s
CisJCQkJQ0REMDhBQzMyNzdFQkNFNTAwRUEzNzU1IC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTFENEZCNDBCMjU2NUM4OUEwMDFBQzJBRCAvKiBJbml0
aWFsaXphdGlvblNlZ21lbnRJbmZvLmggKi8sCiAJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKQEAg
LTY3NjQsNiArNjc2Nyw3IEBACiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0IyM0NBNTMy
NDAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkw
NzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
ICovLAorCQkJCUNERDA4QUM0Mjc3RUQ3RTAwMEVBMzc1NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAppbmRleCAzZWQ3
NmMzMmM4MTY2ZjE5YzI3MTY3YTc2NTMxYzgyYzFlZDY1MjQ1Li5mOWU0YjFjMzI5NWNlMTNiMjAy
ZTM3OGIwZDI3NTQxYjRmNDA2ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAt
MjksMTQgKzI5LDE0IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LUF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQorQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQ
VVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWRlbmRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAg
ICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBBdWRpb1Ry
YWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVw
ZGF0ZUNvbmZpZ3VyYXRpb24oQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29uZmlndXJhdGlvbi50cmFja0lkICE9IG1faWQp
IHsKICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0eSgpOwpAQCAtODAsMTEgKzgw
LDggQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1fdHJhY2tJbmRleCA9IGNvbmZp
Z3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZhcmlhbmNlID0gY29uZmlndXJh
dGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmF1ZGlv
S2luZDsKLSAgICBzZXRDb2RlYyhXVEZNb3ZlKGNvbmZpZ3VyYXRpb24uY29kZWMpKTsKLSAgICBz
ZXRTYW1wbGVSYXRlKGNvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZSk7Ci0gICAgc2V0TnVtYmVyT2ZD
aGFubmVscyhjb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMpOwotICAgIHNldEJpdHJhdGUo
Y29uZmlndXJhdGlvbi5iaXRyYXRlKTsKKyAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7
CisgICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1
cmF0aW9uKSk7CiAgICAgCiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJsZWQoY29uZmln
dXJhdGlvbi5lbmFibGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaAppbmRleCBmMWY5ZjBm
M2Q2NWFjNjQ4NTViMDY1ZjAyNjQ0YTM2NWRlNDNlYmQ0Li4yZmMwODQ1MTVkNjIwZDBjNjVhM2Rj
ZWJmNzA3NTgxNmMxNmZkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNiwyMSAr
MzYsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9u
OwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwotc3RydWN0IFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29u
bmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgQXVkaW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKGdwdVByb2Nlc3ND
b25uZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKSk7CiAgICAgfQogCiAgICAgQXRvbVN0cmluZyBpZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faWQ7IH0KLSAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiBwcml2YXRlOgotICAgIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQ
VVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mJik7CiAKICAgICB1c2luZyBBdWRpb1RyYWNrS2luZCA9IFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlOjpLaW5kOwogICAgIEF1ZGlvVHJhY2tLaW5kIGtpbmQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2tpbmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBmMzY0
ZTVjMTY0NmI1MjRiNjUyZmQ2MGQ1NDg4NGY5ZjRhMmI1ZjhiLi45YjdjY2VjY2U4ODY4MzMzZDIz
OThmOWEwMWU5MzQxYzNjNDhkZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBA
IC01NzUsNyArNTc1LDcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0
dXJhbFNpemUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm5hdHVyYWxTaXplOwog
fQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hdWRpb1RyYWNrcy5lbnN1cmUoaWRl
bnRpZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpj
cmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQsIGlkZW50aWZpZXIs
IFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlQXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKIHsKICAgICBBU1NFUlQobV9hdWRpb1RyYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7
CiAKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVt
b3ZlR2VuZXJpY0N1ZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZQogICAgICAgICB0
cmFjay0+cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRHZW5lcmljQ3VlOjpjcmVhdGUoV1RGTW92ZShj
dWVEYXRhKSkpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3Rl
VmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV92aWRlb1RyYWNr
cy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKICAgICAgICAgcmV0dXJuIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlOjpjcmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQs
IGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwpAQCAtNzYzLDcgKzc2Myw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpCiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKIHsKICAgICBBU1NFUlQobV92aWRlb1RyYWNrcy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGIwYWZlMjFlZTAz
ZWUyNjM3ODQwOTcyYmYyZjMwNDQ3MjNkNjcxYmQuLmUwMWZjZWM2Yzg2MWIxZjlhMjJkMDQ4Y2Uz
Yjk4YjQ0ZjhlYjVjN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtNjcsOCArNjcs
OSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
cjsKIGNsYXNzIFVzZXJEYXRhOworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbjsKIHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKLXN0
cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlIGZpbmFsCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCkBAIC0xMTcsMTMgKzExOCwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGN1cnJlbnRUaW1l
Q2hhbmdlZChjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNb25vdG9uaWNUaW1lJiwgYm9vbCk7CiAK
LSAgICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGFkZFJlbW90
ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFj
ayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW90ZUF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgcmVtb3RlQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAotICAgIHZvaWQgYWRkUmVtb3Rl
VmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYWRkUmVtb3RlVmlkZW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFu
Z2VkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24mJik7CisgICAgdm9pZCByZW1vdGVWaWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogCiAgICAgdm9pZCBhZGRSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVUZXh0VHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmlu
ZGV4IGE2MDYwMzkwZTkwNTkwODZkZjQ1M2Y3NTYxZDlmNTE3ZTZiNGFlMGEuLjVlZGY3NTM4ZjVh
ZjY2M2JhNzhmZTljNjdlN2E2NDJhZGI2ZGRlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC00MSwxMyArNDEsMTMgQEAgbWVzc2FnZXMgLT4gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogCiAgICAgQ3VycmVudFRpbWVD
aGFuZ2VkKE1lZGlhVGltZSBtZWRpYVRpbWUsIE1vbm90b25pY1RpbWUgd2FsbFRpbWUsIGJvb2wg
dGltZUlzUHJvZ3Jlc3NpbmcpCiAKLSAgICBBZGRSZW1vdGVBdWRpb1RyYWNrKFdlYktpdDo6VHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQWRkUmVtb3RlQXVk
aW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3Ry
dWN0IFdlYktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24pCiAgICAgUmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCkKLSAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkNoYW5nZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0
cnVjdCBXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlv
bikKKyAgICBSZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogCi0gICAgQWRkUmVt
b3RlVmlkZW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJ
RCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQorICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJlbW90ZVZpZGVvVHJh
Y2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCi0gICAgUmVt
b3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlVmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
LCBzdHJ1Y3QgV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKIAogICAgIEFkZFJlbW90ZVRleHRUcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVUZXh0
VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhiYTkyNTllNTBlM2VjZGIwYjgyY2U2MjkzMTMy
ZTEzYWViNGM4YjIuLjBmOGQ1ZjgzMTEzODlhZGNjY2I4ODg1OWE4Mjc0OWJkOWEwMWQ5NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0zMiwxMCArMzIsMTEgQEAKICNpbmNsdWRl
ICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCitWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6VmlkZW9UcmFja1By
aXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bihncHVQcm9jZXNzQ29ubmVjdGlvbikKICAgICAsIG1fcGxheWVySWRlbnRpZmllcihwbGF5ZXJJ
ZGVudGlmaWVyKQogICAgICwgbV9pZGVuZGlmaWVyKGlkZW5kaWZpZXIpCkBAIC01NCw3ICs1NSw3
IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnNldFNlbGVjdGVkKGJvb2wgc2VsZWN0
ZWQpCiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIH0KIAot
dm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoY29uZmlndXJhdGlv
bi50cmFja0lkICE9IG1faWQpIHsKICAgICAgICAgYXV0byBjaGFuZ2VkID0gIW1faWQuaXNFbXB0
eSgpOwpAQCAtNzksMTQgKzgwLDggQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBk
YXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW8KIAogICAgIG1f
dHJhY2tJbmRleCA9IGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleDsKICAgICBtX3N0YXJ0VGltZVZh
cmlhbmNlID0gY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZTsKLSAgICBtX2tpbmQgPSBj
b25maWd1cmF0aW9uLnZpZGVvS2luZDsKLSAgICBtX2NvZGVjID0gY29uZmlndXJhdGlvbi5jb2Rl
YzsKLSAgICBtX3dpZHRoID0gY29uZmlndXJhdGlvbi53aWR0aDsKLSAgICBtX2hlaWdodCA9IGNv
bmZpZ3VyYXRpb24uaGVpZ2h0OwotICAgIG1fY29sb3JTcGFjZSA9IGNvbmZpZ3VyYXRpb24uY29s
b3JTcGFjZTsKLSAgICBtX2ZyYW1lcmF0ZSA9IGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlOwotICAg
IG1fYml0cmF0ZSA9IGNvbmZpZ3VyYXRpb24uYml0cmF0ZTsKLQorICAgIG1fa2luZCA9IGNvbmZp
Z3VyYXRpb24ua2luZDsKKyAgICBzZXRDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlv
bi50cmFja0NvbmZpZ3VyYXRpb24pKTsKICAgICBWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0U2VsZWN0
ZWQoY29uZmlndXJhdGlvbi5zZWxlY3RlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaApp
bmRleCA2OWZjZDg2YzY0ZGMyMGZmYjZkOTk1MTYyZmIwOGY4ODVlMTE1NTFjLi5jODE2MWYyMTE3
NjU1ZGI1NmJmMTFmYjEzMTA3NzUzZTg1ZjEyZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
CkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRl
ICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgpAQCAtMzcs
MTggKzM2LDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uOworc3RydWN0IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUKICAgICA6IHB1Ymxp
YyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIFJlZjxWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9j
ZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBwbGF5ZXJJZGVudGlmaWVyLCBpZGVuZGlmaWVyLCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKSk7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0
aW9uKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5n
IFZpZGVvVHJhY2tLaW5kID0gV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ7CiAgICAg
VmlkZW9UcmFja0tpbmQga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fa2luZDsgfQpAQCAt
NTcsMTUgKzU2LDkgQEAgcHVibGljOgogICAgIEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2xhbmd1YWdlOyB9CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3RyYWNrSW5kZXg7IH0KICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lVmFy
aWFuY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0YXJ0VGltZVZhcmlhbmNlOyB9Ci0gICAg
U3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb2RlYzsgfQotICAgIHVpbnQz
Ml90IHdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93aWR0aDsgfQotICAgIHVpbnQzMl90
IGhlaWdodCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgV2ViQ29yZTo6
UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29sb3JTcGFjZTsgfQotICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2ZyYW1lcmF0ZTsgfQotICAgIHVpbnQ2NF90IGJpdHJhdGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2JpdHJhdGU7IH0KIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmKTsKKyAgICBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVj
dGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAg
ICAgdm9pZCBzZXRTZWxlY3RlZChib29sKSBmaW5hbDsKIApAQCAtNzYsMTIgKzY5LDYgQEAgcHJp
dmF0ZToKICAgICBBdG9tU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbVN0cmluZyBtX2xhbmd1YWdl
OwogICAgIGludCBtX3RyYWNrSW5kZXggeyAtMSB9OwotICAgIFN0cmluZyBtX2NvZGVjOwotICAg
IHVpbnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07Ci0g
ICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgbV9jb2xvclNwYWNlOwotICAgIGRv
dWJsZSBtX2ZyYW1lcmF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJhdGUgeyAwIH07CiAg
ICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lVmFyaWFuY2UgeyBNZWRpYVRpbWU6Onplcm9UaW1lKCkg
fTsKICAgICBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWRlbmRpZmllcjsKIH07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjllZWQzOWNjNTY4OTY5NDIwOWJjNjFhZThlMTg1ZDg1MjFiY2YzZi4uZGRhMTFlMzE4
OTVjNDJmNTI0MzAzNjIyMzE3YWQ4ZGQzMDc3OWM5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIxLTEyLTMxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gSGFuZyBpbiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZXNl
IHByb3BlcnRpZXMgYXJlIGR5bmFtaWMsIHRlc3QgdGhlbSB3aXRoIGB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5YC4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRp
b24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay92aWRlby10cmFjay1hbHRlcm5hdGUtZ3Jv
dXBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay92aWRlby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWw6CisKIDIwMjEtMTItMzEgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODcwMjgpOiBJbmNvcnJlY3Qgcm9vdCBpbmxp
bmUgYm94IGhvcml6b250YWwgcG9zaXRpb24gd2hlbiB0ZXh0LWFsaWduIG9mZnNldCBpcyBwcmVz
ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25m
aWd1cmF0aW9uLmh0bWwKaW5kZXggYTU3ZTI2MzAyZjM2MTAwNzU1NmIzNDJiZjM2M2I2NzI2ZjZm
MzI4OS4uZTczNDYwOGM2ZWE3ZjU2MjJjOTMyNzc5Njc1YmZhZWU3NTUyZTA3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24u
aHRtbApAQCAtOSwxMiArOSwxMiBAQAogCQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJcnVuKCd2
aWRlby5zcmMgPSAiLi4vY29udGVudC9hdWRpby10cmFja3MubXA0IicpOwogCQkJYXdhaXQgd2Fp
dEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFj
a3MubGVuZ3RoJywgMCwgJz4nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5h
dWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ21wNGEuNDAuMicpOwotCQkJdGVz
dEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUn
LCA0NDEwMCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24ubnVtYmVyT2ZDaGFubmVscycsIDIpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRp
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAwMDAsICc+PScpOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgMCwg
Jz4nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnbXA0
YS40MC4yJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUnLCA0NDEwMCk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLm51
bWJlck9mQ2hhbm5lbHMnLCAyKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDEwMDAwMCwgJz49Jyk7
CiAJCQllbmRUZXN0KCk7CiAJCX0pOwogCTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1hbHRlcm5hdGUtZ3JvdXBzLWV4
cGVjdGVkLnR4dAppbmRleCBkNzdmZjNhNmMzZTI3MDFlYmUwMzAxZjM1N2RlODBlMzQ5MmQwZGM0
Li5mZDA4ZTdjODk5OGFjMmVmM2ExMDI1OTg5MzA1OWY1OGM5YmQ5M2I5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1hbHRlcm5hdGUtZ3JvdXBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1hbHRlcm5h
dGUtZ3JvdXBzLWV4cGVjdGVkLnR4dApAQCAtMTQsMTUgKzE0LDE1IEBAIFRlc3QgdGhhdCBtZWRp
YSBjb250YWluaW5nIHR3byBhdWRpbyB0cmFja3MgaW4gb25lIGFsdGVybmF0ZSBncm91cCBhbmQg
b25lIHRyYWNrCiBSVU4odmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29u
dGVudC9hdWRpby10cmFja3Mtc29tZS1pbi1hbHRlcm5hdGUtZ3JvdXAiKSkKIEVWRU5UKGNhbnBs
YXl0aHJvdWdoKQogRVhQRUNURUQgKHZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCA9PSAnMicpIE9L
Ci1UUkFDSyBpZDoyIGtpbmQ6bWFpbiBsYW5ndWFnZTplbgotVFJBQ0sgaWQ6MyBraW5kOm1haW4g
bGFuZ3VhZ2U6ZnIKK1RSQUNLIGlkOjIga2luZDptYWluIGxhbmd1YWdlOmVuZworVFJBQ0sgaWQ6
MyBraW5kOm1haW4gbGFuZ3VhZ2U6ZnJhCiAKIFRlc3QgdGhhdCBtZWRpYSBjb250YWluaW5nIHNp
eCBhdWRpbyB0cmFja3MsIHdpdGggdGhyZWUgYXVkaW8gdHJhY2tzIGVhY2ggcmVmZXJyaW5nIHRv
IGEgc2VwYXJhdGUgdHJhY2sgYXMgYSBmYWxsYmFjayB0cmFjaywgYWxsIGluIG9uZSBhbHRlcm5h
dGUgZ3JvdXAsIHJlc3VsdHMgaW4gdGhyZWUgQXVkaW9UcmFja3MKIFJVTih2aWRlby5zcmMgPSBm
aW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L2F1ZGlvLXRyYWNrcy1hbHRlcm5hdGUt
Z3JvdXAtd2l0aC1mYWxsYmFjayIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RFRCAo
dmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoID09ICczJykgT0sKLVRSQUNLIGlkOjIga2luZDptYWlu
IGxhbmd1YWdlOmVuCi1UUkFDSyBpZDo0IGtpbmQ6bWFpbiBsYW5ndWFnZTpmcgotVFJBQ0sgaWQ6
NiBraW5kOm1haW4gbGFuZ3VhZ2U6ZXMKK1RSQUNLIGlkOjMga2luZDptYWluIGxhbmd1YWdlOmVu
ZworVFJBQ0sgaWQ6NSBraW5kOm1haW4gbGFuZ3VhZ2U6ZnJhCitUUkFDSyBpZDo3IGtpbmQ6bWFp
biBsYW5ndWFnZTpzcGEKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAppbmRleCAxMjAzOTk5ODIw
NDVmOTMxZTg5ZjMzNjU2MzhmNTM3YjEzMjY2MDQ0Li5iNWRkNmYyN2FhMGI2YWIyZjIxYzkzN2Iy
MTU0ZTA4YzYwMzM3YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRl
by10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCkBAIC05LDMwICs5LDMwIEBACiAJCQlmaW5k
TWVkaWFFbGVtZW50KCk7CiAJCQlydW4oJ3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50L3Rlc3QubXA0
IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3Rl
ZCgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBl
Y3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdhdmMxLjRE
NDAwRCcpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLndpZHRoJywgMzIwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRl
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAsICc+PScpOwotCQkJdGVz
dEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScs
IDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ0NzBi
ZycpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ3NtcHRlMTcwbScpOwotCQkJdGVzdEV4cGVjdGVkKCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAn
YnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJh
Y2tzLmxlbmd0aCcsIDEpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2RlYycsICdhdmMxLjRENDAwRCcpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmhlaWdodCcsIDI0MCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRl
by52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAsICc+PScpOwor
CQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2Un
LCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZp
ZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ0NzBiZycp
OworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdzbXB0ZTE3MG0nKTsKKwkJCWF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOwogCQkJcnVuKCd2aWRlby5zcmMg
PSAiLi4vY29udGVudC90ZXN0LWhldmMubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywg
J2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywg
MSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24n
LCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5jb2RlYycsICdodmMxLjEuNi5MOTMuQjAnKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQw
KTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5i
aXRyYXRlJywgMTUwMDAwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFj
a3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGws
ICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NzA5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnYnQ3
MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKKwkJCWF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBu
dWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVv
VHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnaHZjMS4xLjYuTDkzLkIwJyk7CisJCQlh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKKwkJCWF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24uYml0cmF0ZScsIDE1MDAwMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAn
Pj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tz
WzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5j
b2xvclNwYWNlLm1hdHJpeCcsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1h
cmllcycsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5
Jyk7CiAJCQllbmRUZXN0KCk7CiAJCX0pOwogCTwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="473944"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448305</attachid>
            <date>2022-01-04 09:55:15 -0800</date>
            <delta_ts>2022-01-04 10:06:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234753-20220104095514.patch</filename>
            <type>text/plain</type>
            <size>102960</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzYmI3NjQyMGQzNzY0
ZDZkN2Y1NTE5MjgxMDJmMmFhYzVlYzRmZC4uY2MwZDY2Y2MyNDgyYjBhMzhkNWZjZjRkODAyMGRh
YTM5YjY5Nzc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiByMjg2OTA4LCBXZWJDb3JlIGFkZGVkIG5ldyBx
dWVyaWVzIG9udG8gZXhpc3RpbmcgQVZBc3NldFRyYWNrIG9iamVjdHM7IGhvd2V2ZXIsIHF1ZXJ5
aW5nCisgICAgICAgIHRob3NlIHByb3BlcnRpZXMgd2lsbCBibG9jayBpZiBkYXRhIGZvciB0aG9z
ZSBwcm9wZXJ0aWVzIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiBUaGUgbWVkaWEgZWxlbWVudAorICAg
ICAgICBjb3VsZCBibG9jayBtb3ZpbmcgdG8gdGhlIEhBVkVfTUVUQURBVEEgc3RhdGUgdW50aWwg
dGhvc2UgcHJvcGVydGllcyBhcmUgZnVsbHkgbG9hZGVkLCBob3dldmVyCisgICAgICAgIHRoaXMg
bWlnaHQgcmVncmVzcyBQTFQsIHNvIGluc3RlYWQsIHdlIHdpbGwgY2hlY2sgdGhlIGxvYWQgc3Rh
dGUgb2YgdGhvc2UgcHJvcGVydGllcyBiZWZvcmUgcmV0dXJuaW5nCisgICAgICAgIHZhbHVlcy4K
KworICAgICAgICBIb3dldmVyLCB0byBtYWtlIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgdGhyb3Vn
aCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5pZGwvQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaWRs
CisgICAgICAgIGR5bmFtaWMsIGNoYW5nZXMgbmVlZCB0byBiZSBzaWduYWxlZCBhbmQgcHJvcGFn
YXRlZCB1cHdhcmQgdGhyb3VnaCB0aGUgbGF5ZXJzIGJldHdlZW4gQVZBc3NldFRyYWNrIGFuZAor
ICAgICAgICB0aGUgRE9NLiBSYXRoZXIgdGhhbiBtYWtlIGluZGl2aWR1YWwgbm90aWZpY2F0aW9u
cyBmb3IgZWFjaCBwcm9wZXJ0eSBpbiBhIENvbmZpZ3VyYXRpb24gc3RydWN0LCBtYWtlIG9uZQor
ICAgICAgICBub3RpZmljYXRpb24gdGhhdCBoYW5kbGVzIGFueSBjaGFuZ2UgdG8gdGhlIENvbmZp
Z3VyYXRpb24gc3RydWN0IGF0IGFsbCBhbmQgcHVzaCB0aGF0IHVwd2FyZCB0byBjbGllbnRzLgor
CisgICAgICAgIFNpbmNlIHRoZXNlIHByb3BlcnRpZXMgYXJlIGJlaW5nIGdyb3VwZWQgdG9nZXRo
ZXIgYXQgYSBsb3dlci1sZXZlbCwgdGhleSBkbyBub3QgbmVlZCB0byBiZSB0cmFja2VkCisgICAg
ICAgIGluZGl2aWR1YWxseSwgYW5kIFZpZGVvL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCBj
YW4ganVzdCBiZSBhbGlhc2VkIHRvIGEgcGxhdGZvcm0tZGVmaW5lZCBzdHJ1Y3QuCisKKyAgICAg
ICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9U
cmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
azo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21Qcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0F1ZGlvVHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0U3Rh
dGUpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6dXBkYXRlQ29uZmlndXJhdGlvbkZy
b21Qcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaDoKKyAgICAgICAg
KiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmNvbG9yU3BhY2UgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OnNldENvbG9yU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OlZpZGVvVHJhY2tDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpj
b25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
Ojpjb2RlYyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJp
dmF0ZTo6c2V0Q29kZWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OnNhbXBsZVJhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGU6OnNldFNhbXBsZVJhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9UcmFja1ByaXZhdGU6Om51bWJlck9mQ2hhbm5lbHMgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldE51bWJlck9mQ2hhbm5lbHMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpj
b25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
Ojpjb2RlYyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJp
dmF0ZTo6c2V0Q29kZWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGU6OndpZHRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2tQcml2YXRlOjpzZXRXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZTo6aGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlOjpzZXRIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OmNvbG9yU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENvbG9yU3BhY2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmZyYW1lcmF0ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0RnJhbWVyYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpiaXRyYXRlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRC
aXRyYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjpzZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldEF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6YXNzZXRUcmFja0NvbmZpZ3VyYXRpb25LZXlOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmluaXRpYWxpemVBc3Nl
dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OmF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQzo6dmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQ
cml2YXRlV2ViTSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OnVw
ZGF0ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Zp
ZGVvVHJhY2tQcml2YXRlV2ViTS5oOgorCiAyMDIxLTEyLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gY2xhc3MgYW5kIGFjY2Vzc29yIG9uIFZpZGVvVHJhY2sKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ODk4Yjg2Njg2MjViNmVjMGVlOWZjYzAzNGI1MzQzYzIyOTcxYzk1YS4uZGVhZjQ0YTYzYjQ1ZWY5
ZDE4YjE1ZjllZGEyN2RiNGUyZjcxMDYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAy
MS0xMi0zMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIEhhbmcgaW4gQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3NTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUHJvcGFnYXRlIGNoYW5nZXMg
dG8gVHJhY2tDb25maWd1cmF0aW9ucyB1cHdhcmRzIGZyb20gdGhlIEdQVSBwcm9jZXNzIC0+IFdl
YkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpkZWNvZGUpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6
ZGVjb2RlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3Rl
QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdGVWaWRlb1RyYWNrQ29uZmln
dXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKToKKwog
MjAyMS0xMi0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
UmVmYWN0b3JdIEFkb3B0IExvZ2dlckhlbHBlciBpbiBMZWdhY3kgRU1FIGNsYXNzZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGY4Yjg5ZjBlZWZmZmQ5ZTAzMDdiNjQ5OTU3NGRmMjQxNTFlY2NlOWQu
LmE2OWZiNjk1NTljYjMzN2IyYTk3MzU2OGU1OTRlNmY5YjM5ZDQyYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTUyNSw2ICsxNTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGl4
ZWxGb3JtYXQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtQXVkaW9UcmFja0NvbmZp
Z3VyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtQ29sb3JTcGFjZS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybUltYWdlLmgKQEAgLTE1MzQsOSArMTUzNSwxMSBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRleHRU
cmFjay5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yUHJpbWFyaWVzLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNpZW50cy5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9SZWdpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlCYXNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViY29k
ZWNzL1ZpZGVvQ29sb3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2RlY3Mv
VmlkZW9Db2xvclNwYWNlLmgKaW5kZXggYWU4YmYyYjMwNTcxMzU0ODk3YmQ2YWIxYmFkMmRkNTcx
N2YyM2QwNC4uZTkwZTUwNjIwZDM0MDQwYzA0YzVhNDY3ZWM3NWRmZDA0YmY3MjFkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNlLmgK
QEAgLTQwLDggKzQwLDExIEBAIGNsYXNzIFZpZGVvQ29sb3JTcGFjZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFZpZGVvQ29sb3JTcGFjZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9Db2xvclNwYWNlPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZSgpKTsgfTsKKyAgICBzdGF0aWMgUmVmPFZpZGVv
Q29sb3JTcGFjZT4gY3JlYXRlKGNvbnN0IFZpZGVvQ29sb3JTcGFjZUluaXQmIGluaXQpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9Db2xvclNwYWNlKGluaXQpKTsgfQogICAgIHN0YXRpYyBS
ZWY8VmlkZW9Db2xvclNwYWNlPiBjcmVhdGUoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9Db2xvclNwYWNlKFdURk1vdmUoaW5pdCkpKTsgfQog
CisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBzdGF0ZSkgeyBt
X3N0YXRlID0gc3RhdGU7IH0KKwogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xvclBy
aW1hcmllcz4mIHByaW1hcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUucHJpbWFyaWVzOyB9
CiAgICAgdm9pZCBzZXRQcmltYXJpZXMoc3RkOjpvcHRpb25hbDxWaWRlb0NvbG9yUHJpbWFyaWVz
PiYmIHByaW1hcmllcykgeyBtX3N0YXRlLnByaW1hcmllcyA9IFdURk1vdmUocHJpbWFyaWVzKTsg
fQogCkBAIC01Niw2ICs1OSwxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVmlkZW9Db2xv
clNwYWNlKCkgPSBkZWZhdWx0OworICAgIFZpZGVvQ29sb3JTcGFjZShjb25zdCBWaWRlb0NvbG9y
U3BhY2VJbml0JiBpbml0KQorICAgICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICB7CisgICAgfQog
ICAgIFZpZGVvQ29sb3JTcGFjZShWaWRlb0NvbG9yU3BhY2VJbml0JiYgaW5pdCkKICAgICAgICAg
OiBtX3N0YXRlKFdURk1vdmUoaW5pdCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjOWVjMjVjMGE5MjQ2MDZhZTJl
YjMyNzY0YTE3OGRkY2M5NDQzZjguLmE5NTJmNjRiODdjNDdkZmE2ZjM2YTZjNTUxYWRhZjBlNWNh
ZDQzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ1NzYsNiArNDU3Niw5IEBACiAJCUNEQ0M5QkQxMjIzODdFQUEwMEZGQjUx
QyAvKiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQzlCRDAyMjM4N0VBQTAwRkZCNTFDIC8qIE1l
ZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RDRDQxRTgxQzNEREIwQTAwOTY1RDk5IC8qIFBhcnNl
ZENvbnRlbnRSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RDRDQxRTYxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRlbnRSYW5nZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQ0ZBQkJE
MThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogSGln
aGxpZ2h0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUNERDA4QUJEMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RE
MDhBQkMyNzdFNTQyNjAwRUEzNzU1IC8qIFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQzAy
NzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDA4QUJGMjc3RTU0
RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQzIyNzdFNTU0
RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDA4QUMxMjc3RTU1NEUwMEVB
Mzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RENzA4OTcxODM1OUY2RjAwMkIz
REM2IC8qIFNhbXBsZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEREMxRTdBMThBOTUy
RjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEREMxRTc5MThBOTUyRjMwMDI3QTlENCAv
KiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDREUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9U
cmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENERTNBODUyMTdGNUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
ICovOyB9OwpAQCAtMTYxNDksNiArMTYxNTIsOSBAQAogCQlDRENFNUNEMDE0NjMzQkM5MDBENDdD
Q0EgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50
VGFyZ2V0RmFjdG9yeS5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkFCQkIx
OEMwQUUzMTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGlnaHREYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQkMyNzdFNTQyNjAwRUEzNzU1IC8qIFBsYXRmb3Jt
VHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVHJhY2tDb25maWd1
cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUJGMjc3RTU0RjAw
MEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmln
dXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQxRTUyNTE2N0JBNTY0
MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTQxODM1OUY2RTAwMkIzREM2IC8qIFNhbXBsZU1hcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYgLyogU2Ft
cGxlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZU1hcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg5MDAsNiArMjg5MDYsNyBAQAogCQkJCUJD
NjM1RThCMjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhlbEJ1ZmZlckZvcm1hdC5oICovLAogCQkJCUJD
NjM1RTkwMjY0QzQ2OUYwMDBFRjMzQSAvKiBQaXhlbEZvcm1hdC5jcHAgKi8sCiAJCQkJQkNBNTU5
MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8sCisJCQkJQ0REMDhBQkYyNzdF
NTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCAqLywKIAkJ
CQlCQzNFNjI0MjI2NTk3OTE3MDA1NDhBQ0QgLyogUGxhdGZvcm1Db2xvclNwYWNlLmggKi8sCiAJ
CQkJNzI2RDU2RTEyNTNBRTA0MzAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCAqLywKIAkJCQk3
MkJBQzNBNjIzRTE3MzI4MDA4RDc0MUMgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oICovLApAQCAt
Mjg5MDksOSArMjg5MTYsMTEgQEAKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyogUGxh
dGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyogUGxh
dGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyog
UGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCisJCQkJQ0REMDhBQkMyNzdFNTQyNjAwRUEzNzU1IC8q
IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0QxRjlBRkIyNkZEMzhDOTAw
NjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oICovLAogCQkJCUNEMUY5QUZB
MjZGRDM4NTkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oICovLAogCQkJCUNE
MUY5QUZEMjZGRDM4Q0IwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvTWF0cml4Q29lZmZpY2llbnRz
LmggKi8sCisJCQkJQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlDRDFGOUFGQzI2RkQzOENBMDA2MTdFQjYgLyogUGxh
dGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmggKi8sCiAJCQkJQkNBQjQxN0YxM0Uz
NTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0UzNTZFODAwRDhB
QUYzIC8qIFJlZ2lvbi5oICovLApAQCAtMzY0MTksNiArMzY0MjgsNyBAQAogCQkJCUJDNjM1RThD
MjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhlbEJ1ZmZlckZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNBNTU5MTQyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREVGQTIyODFFNzY2OUU4MDAwQUU5OUMgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCBp
biBIZWFkZXJzICovLAorCQkJCUNERDA4QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTlCM0VERDEyOERC
NTAyMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1RTIwMDYxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FG
aWx0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NDUwLDkgKzM2NDYwLDExIEBACiAJCQkJMUFE
OEY4MUIxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3RDA3MzMxODg0QzU2QzAwQjRBRjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1U
aW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3NTUg
LyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMUY5
QjAyMjcwMDMyM0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEMUY5QjAxMjcwMDIwQjcwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVv
Q29sb3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDMyNzAwMzIzRDAwNjE3RUI2
IC8qIFBsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNERDA4QUMyMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDFGOUIwNDI3MDAzMjNEMDA2MTdFQjYgLyogUGxh
dGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApp
bmRleCBhMjcxMDY3NWU4YTc0MDk0NGU2OWY5YWVmNzFlOTc4OTMxZWE4NWNmLi42OTk0YjExMzFl
MjM0OGU0ZWU5ZDI1YzA5YWNkNGRmNjU4N2MxMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svQXVkaW9UcmFjay5jcHAKQEAgLTE3MSw2ICsxNzEsMTEgQEAgdm9pZCBBdWRpb1RyYWNrOjpl
bmFibGVkQ2hhbmdlZChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFj
azo6Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKGNv
bmZpZ3VyYXRpb24pOworfQorCiB2b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9t
U3RyaW5nJiBpZCkKIHsKICAgICBzZXRJZChpZCk7CkBAIC0yMzEsMTAgKzIzNiw3IEBAIHZvaWQg
QXVkaW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKIAogdm9pZCBBdWRpb1RyYWNrOjp1
cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKQogewotICAgIG1fY29uZmlndXJhdGlvbi0+
c2V0Q29kZWMobV9wcml2YXRlLT5jb2RlYygpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFNh
bXBsZVJhdGUobV9wcml2YXRlLT5zYW1wbGVSYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlvbi0+
c2V0TnVtYmVyT2ZDaGFubmVscyhtX3ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0gICAg
bV9jb25maWd1cmF0aW9uLT5zZXRCaXRyYXRlKG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKG1fcHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsKIH0K
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaAppbmRleCA0ZjAwNzA4MTcyZThkNWY4Mjc4YzAzYTU0OGNkZTViNmE2Y2FjYWM1Li40
ZTE4NmMxNjYyMDdiMDdhNzhkMGU3NmVjNGQzZGQwOTA5OTYxNzI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogCiAgICAg
Ly8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wp
IGZpbmFsOworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNs
aWVudAogICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaApp
bmRleCA2ZDcwYmNiOGQwZGExYmJmMjkyYTM1NThjYTBkOTAxYmVlZTExOGQ2Li5lODQ3NGJiNmNh
OTlkNWViNTM1ZjA1MzFiZmYyNTBhMmMyOTlkNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0yNywxNiArMjcsMTIg
QEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IHsKLSAg
ICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1aW50
MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAwIH07
Ci19OwordXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwpAQCAtNDQsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5p
dCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24o
V1RGTW92ZShpbml0KSkpOyB9CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bigpKTsgfQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdWRpb1RyYWNrQ29uZmlndXJhdGlv
bkluaXQmIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQorCiAgICAgU3RyaW5nIGNvZGVjKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZS5jb2RlYzsgfQogICAgIHZvaWQgc2V0Q29kZWMoU3RyaW5n
IGNvZGVjKSB7IG1fc3RhdGUuY29kZWMgPSBjb2RlYzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA3OTU3NzMzMzc5NWNkOTAzMTNmNGEzZTI3NzhhYTBh
ZmZkNzNkZGMxLi43M2U5ZDBmMTdhZjU2NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5NGY0NGE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTE2NCw2ICsxNjQsMTEg
QEAgdm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKICAgICB9
KTsKIH0KIAordm9pZCBWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIG1fY29u
ZmlndXJhdGlvbi0+c2V0U3RhdGUoY29uZmlndXJhdGlvbik7Cit9CisKIHZvaWQgVmlkZW9UcmFj
azo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmIGlkKQogewogICAgIHNldElkKGlkKTsKQEAg
LTI2MiwxMiArMjY3LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUo
KQogCiB2b2lkIFZpZGVvVHJhY2s6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpCiB7
Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRDb2RlYyhtX3ByaXZhdGUtPmNvZGVjKCkpOwotICAg
IG1fY29uZmlndXJhdGlvbi0+c2V0V2lkdGgobV9wcml2YXRlLT53aWR0aCgpKTsKLSAgICBtX2Nv
bmZpZ3VyYXRpb24tPnNldEhlaWdodChtX3ByaXZhdGUtPmhlaWdodCgpKTsKLSAgICBtX2NvbmZp
Z3VyYXRpb24tPnNldENvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUobV9wcml2YXRl
LT5jb2xvclNwYWNlKCkpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEZyYW1lcmF0ZShtX3By
aXZhdGUtPmZyYW1lcmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEJpdHJhdGUobV9w
cml2YXRlLT5iaXRyYXRlKCkpOworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUobV9wcml2
YXRlLT5jb25maWd1cmF0aW9uKCkpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IDdhOTc4YzczMjM2MGI3Nzc3
NjQ3ZjQyZWRiZjIxMDY4NmQxNDBkMTguLmUxZTBlOWIwMjU4ZDUxMjc2Mjk3MDZkMGVjNDIyYTNj
YmQwM2Y2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC04Myw3
ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAogICAg
IHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJhdGlv
bkNoYW5nZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpOyB9Cisg
ICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uJikgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAgICAg
dm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IGQyMGQy
NDNjYTYxMDZlZWNmMzRmOTFlNGQzNWIzY2JkYjdkOTdiMmYuLmM1OTYxZjQ5MWQ4MDBmY2QzNGUz
NDA2OWM3ZDc4ZDRlZjNiY2UyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTI3LDE5ICsyNywxMyBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlZpZGVvQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBWaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbkluaXQgewotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aCB7
IDAgfTsKLSAgICB1aW50MzJfdCBoZWlnaHQgeyAwIH07Ci0gICAgUmVmUHRyPFZpZGVvQ29sb3JT
cGFjZT4gY29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlIHsgMCB9OwotICAgIHVpbnQ2
NF90IGJpdHJhdGUgeyAwIH07Ci19OwordXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0
ID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb1RyYWNrQ29uZmlndXJhdGlvbj4g
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDcsNiArNDEsMTIgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShWaWRlb1Ry
YWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVv
VHJhY2tDb25maWd1cmF0aW9uKFdURk1vdmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8Vmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fc3RhdGUg
PSBzdGF0ZTsKKyAgICAgICAgbV9jb2xvclNwYWNlLT5zZXRTdGF0ZShtX3N0YXRlLmNvbG9yU3Bh
Y2UpOworICAgIH0KKwogICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUu
Y29kZWM7IH0KICAgICB2b2lkIHNldENvZGVjKFN0cmluZyBjb2RlYykgeyBtX3N0YXRlLmNvZGVj
ID0gY29kZWM7IH0KIApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3QgaGVp
Z2h0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhlaWdo
dCh1aW50MzJfdCBoZWlnaHQpIHsgbV9zdGF0ZS5oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIFJl
ZlB0cjxWaWRlb0NvbG9yU3BhY2U+IGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YXRl
LmNvbG9yU3BhY2U7IH0KLSAgICB2b2lkIHNldENvbG9yU3BhY2UoUmVmUHRyPFZpZGVvQ29sb3JT
cGFjZT4mJiBjb2xvclNwYWNlKSB7IG1fc3RhdGUuY29sb3JTcGFjZSA9IFdURk1vdmUoY29sb3JT
cGFjZSk7IH0KKyAgICBSZWY8VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZjxWaWRlb0Nv
bG9yU3BhY2U+JiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9yU3Bh
Y2UpOyB9CiAKICAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5m
cmFtZXJhdGU7IH0KICAgICB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7IG1f
c3RhdGUuZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9CkBAIC02OCwxMSArNjgsMTYgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrQ29uZmln
dXJhdGlvbkluaXQmJiBpbml0KQogICAgICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICAgICAgLCBt
X2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoaW5pdC5jb2xvclNwYWNlKSkKKyAg
ICB7CisgICAgfQorICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBtX2Nv
bG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoKSkKICAgICB7CiAgICAgfQotICAgIFZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb25Jbml0IG1fc3RhdGU7CisgICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gbV9jb2xvclNw
YWNlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQXVkaW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5kZXggMzJlYzU4ZGU0MmZmZTlkY2JmNDM4YmM3YzZkN2E2
YzI3OTBlMjExNS4uZjljMDAzMjQ3NDU2ZTM4ODA5ZmRmMTg3YjA3NzI3MTkyMTUwM2NmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KIApAQCAtNjQsMTggKzY1LDE2IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEVu
YWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEF1ZGlvVHJhY2tQcml2YXRlJiwg
Ym9vbCBlbmFibGVkKT47CiAgICAgdm9pZCBzZXRFbmFibGVkQ2hhbmdlZENhbGxiYWNrKEVuYWJs
ZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQotICAgIAotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsg
cmV0dXJuIG1fY29kZWM7IH0KLSAgICB2b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7IG1f
Y29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsgfQotICAgIAotICAgIHVpbnQzMl90IHNhbXBsZVJhdGUo
KSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVJhdGUo
dWludDMyX3Qgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9Ci0gICAg
Ci0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVy
T2ZDaGFubmVsczsgfQotICAgIHZvaWQgc2V0TnVtYmVyT2ZDaGFubmVscyh1aW50MzJfdCBudW1i
ZXJPZkNoYW5uZWxzKSB7IG1fbnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7IH0K
LSAgICAKLSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9
Ci0gICAgdm9pZCBzZXRCaXRyYXRlKHVpbnQ2NF90IGJpdHJhdGUpIHsgbV9iaXRyYXRlID0gYml0
cmF0ZTsgfQorCisgICAgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQg
c2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJh
dGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RG
TW92ZShjb25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAg
bV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQog
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkF1ZGlvVHJhY2tQcml2YXRlIjsgfQpAQCAtODcs
MTAgKzg2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQ
cml2YXRlQ2xpZW50PiBtX2NsaWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07Ci0g
ICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9OwotICAg
IHVpbnQzMl90IG1fbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2JpdHJh
dGUgeyAwIH07CisgICAgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3Vy
YXRpb247CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJh
Y2s7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCAwYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2
NjNlMDc1YTk0NGU4MzZkY2Q4Li42MWVlODY0NDE3ODQyOTg5NTI1YjVmNGU4NzY0NzAwZGNkYjI5
NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMyLDEwICszMiwxMiBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKK3N0cnVjdCBQbGF0Zm9ybUF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25maWd1cmF0
aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgPSAwOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2
YmYxNzcyYWZhYzZmZTMzNzlmN2FmMDk1Y2I0MmQ0N2ZjMDQwZDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRp
b24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGxhdGZvcm1BdWRpb1RyYWNr
Q29uZmlndXJhdGlvbiA6IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uIHsKKyAgICB1aW50MzJf
dCBzYW1wbGVSYXRlIHsgMCB9OworICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMgeyAwIH07
CisgICAgdWludDY0X3QgYml0cmF0ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFBs
YXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3QgUGxh
dGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2RlYyA9
PSBiLmNvZGVjCisgICAgICAgICYmIGEuc2FtcGxlUmF0ZSA9PSBiLnNhbXBsZVJhdGUKKyAgICAg
ICAgJiYgYS5udW1iZXJPZkNoYW5uZWxzID09IGIubnVtYmVyT2ZDaGFubmVscworICAgICAgICAm
JiBhLmJpdHJhdGUgPT0gYi5iaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4K
K3ZvaWQgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjb2RlYzsKKyAgICBlbmNvZGVyIDw8IHNh
bXBsZVJhdGU7CisgICAgZW5jb2RlciA8PCBudW1iZXJPZkNoYW5uZWxzOworICAgIGVuY29kZXIg
PDwgYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Citib29sIFBsYXRmb3Jt
QXVkaW9UcmFja0NvbmZpZ3VyYXRpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmNvZGVjKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLnNhbXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KGNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi5iaXRyYXRlKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVHJhY2tDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29u
ZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjk3YTYwMGY4NGU0MzA3NzViNTg5MDE2MGY0YTA2
N2Y0OGQyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQbGF0
Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgU3RyaW5nIGNvZGVjOworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVmlkZW9Db2xvclNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IDI4ODc0M2RlNWY3MTMyZTYwYTBjMGNjYzQ3
MTllZDEyNWFhMGY3YTEuLjUwZTRhYjkyNzY0NTAwYTVhY2EzZjFlNzRhOWI4ODhmYTFiNTRjOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1WaWRlb0NvbG9yU3BhY2UuaApAQCAtNDMsNiArNDMsMTkgQEAgc3RydWN0IFBsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZvcm1WaWRlb0NvbG9y
U3BhY2UmKTsKIH07CiAKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1WaWRl
b0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBiKQoreworICAg
IHJldHVybiBhLnByaW1hcmllcyA9PSBiLnByaW1hcmllcworICAgICAgICAmJiBhLnRyYW5zZmVy
ID09IGIudHJhbnNmZXIKKyAgICAgICAgJiYgYS5tYXRyaXggPT0gYi5tYXRyaXgKKyAgICAgICAg
JiYgYS5mdWxsUmFuZ2UgPT0gYi5mdWxsUmFuZ2U7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9D
b2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIHRlbXBsYXRlIDxj
bGFzcyBFbmNvZGVyPgogdm9pZCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjUzYjE5MGJjZjZmMGFlN2Y4ZjdhMjRkZDYyMWFmNTcyOTZhZWZjYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVRy
YWNrQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNwYWNlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZp
Z3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgdWludDMyX3Qgd2lk
dGggeyAwIH07CisgICAgdWludDMyX3QgaGVpZ2h0IHsgMCB9OworICAgIFBsYXRmb3JtVmlkZW9D
b2xvclNwYWNlIGNvbG9yU3BhY2U7CisgICAgZG91YmxlIGZyYW1lcmF0ZSB7IDAgfTsKKyAgICB1
aW50NjRfdCBiaXRyYXRlIHsgMCB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBhLCBjb25zdCBQbGF0Zm9ybVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uJiBiKQoreworICAgIHJldHVybiBhLmNvZGVjID09IGIuY29k
ZWMKKyAgICAgICAgJiYgYS53aWR0aCA9PSBiLndpZHRoCisgICAgICAgICYmIGEuaGVpZ2h0ID09
IGIuaGVpZ2h0CisgICAgICAgICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3BhY2UKKyAgICAg
ICAgJiYgYS5mcmFtZXJhdGUgPT0gYi5mcmFtZXJhdGUKKyAgICAgICAgJiYgYS5iaXRyYXRlID09
IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+Cit2b2lkIFBsYXRmb3Jt
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5jb2RlciA8PCB3aWR0aDsKKyAgICBlbmNv
ZGVyIDw8IGhlaWdodDsKKyAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CisgICAgZW5jb2RlciA8
PCBmcmFtZXJhdGU7CisgICAgZW5jb2RlciA8PCBiaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8Y2xh
c3MgRGVjb2Rlcj4KK2Jvb2wgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mIGNvbmZp
Z3VyYXRpb24pCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uY29k
ZWMpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ud2lkdGgpCisgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaGVpZ2h0KQorICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmNvbG9yU3BhY2UpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5k
ZXggNTJjOWZlMjIwZjMwYTNmMzE5NTcyOTMyZDM2YWM2ZDk5MzEwYjM1Ni4uZTMwZTkwMDkzMGI2
NjM0MGZjZTA4ZmQyYmMxYWE2YTE0ZmIzYjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw3IEBA
CiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JTcGFj
ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KQEAgLTYyLDM2ICs2MiwyMyBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFZp
ZGVvVHJhY2tQcml2YXRlJiwgYm9vbCBzZWxlY3RlZCk+OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRD
aGFuZ2VkQ2FsbGJhY2soU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX3Nl
bGVjdGVkQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KIAotICAgIHZpcnR1
YWwgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlYzsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykgeyBtX2NvZGVjID0gV1RGTW92ZShjb2RlYyk7
IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93
aWR0aDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaWR0aCh1aW50MzJfdCB3aWR0aCkgeyBtX3dp
ZHRoID0gd2lkdGg7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0
IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEhlaWdodCh1aW50MzJf
dCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBsYXRm
b3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3Bh
Y2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFjZShQbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZSYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNwYWNlID0gV1RGTW92ZShjb2xvclNwYWNlKTsg
fQotICAgIAotICAgIHZpcnR1YWwgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVy
YXRlKSB7IG1fZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB1aW50
NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0cmF0ZSkgeyBtX2JpdHJhdGUgPSBiaXRyYXRlOyB9
Ci0gICAgCisgICAgY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQgc2V0
Q29uZmlndXJhdGlvbihQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJhdGlv
bikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92
ZShjb25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgbV9j
bGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6
CiAgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxscHRy
IH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsKLSAgICBTdHJpbmcgbV9jb2RlYzsK
LSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9
OwotICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JTcGFjZTsKLSAgICBkb3VibGUg
bV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsgMCB9OworICAgIFBs
YXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOwogCiAgICAgU2Vs
ZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFjazsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1By
aXZhdGVDbGllbnQuaAppbmRleCBkNTFiMzcyMTIzYWU0MDQwYmQwZTY1NzhiNGEwODk3NTk5NDFl
ZTBkLi42NWI3YmY2Njc3MTg3ZDlkMmMxMDEzODVmZTM3M2M1OTQ3MWVhNjQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50LmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uOworCiBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNv
bmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24m
KSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwuaAppbmRleCBkMmJjNWYyNjZmMjUwMDNmMGI3NjZlYTA5MzgzNzY0YjNkOTdlM2FjLi41
NjNkMDFhMzA4NzRiOTlkN2YxYTY0YWVmZjJiOGI4ZjZhMWE5MzYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYv
T2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogCkBAIC00NSw4ICs0NiwxMCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZv
cm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM7CitzdHJ1Y3QgUGxhdGZv
cm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uOwogCi1jbGFzcyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsIHsKK2NsYXNzIEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIGV4cGxpY2l0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwoQVZQbGF5ZXJJdGVtVHJh
Y2sqKTsKQEAgLTcxLDYgKzc0LDIwIEBAIHB1YmxpYzoKIAogICAgIGludCB0cmFja0lEKCkgY29u
c3Q7CiAKKyAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZBc3NldFRyYWNrKEFWQXNzZXRU
cmFjayopOworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VGb3JBVk1lZGlhU2VsZWN0aW9uT3B0
aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKik7CisKKyAgICBQbGF0Zm9ybVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uIHZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3Q7CisgICAgdXNpbmcg
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAg
dm9pZCBzZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFZpZGVvVHJhY2tDb25maWd1
cmF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNl
cnZlciA9IG9ic2VydmVyOyB9CisKKyAgICBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
IGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3Q7CisgICAgdXNpbmcgQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgdm9pZCBzZXRBdWRp
b1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKSB7IG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IG9ic2Vy
dmVyOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplQXNzZXRUcmFjaygpOworCiAg
ICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7CiAgICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdDsKICAg
ICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsKQEAgLTc5LDE0ICs5NiwxMyBAQCBwdWJsaWM6CiAg
ICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0OwogICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBj
b25zdDsKICAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3Q7Ci0gICAgc3RhdGlj
IFN0cmluZyBsYW5ndWFnZUZvckFWQXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKLSAgICBzdGF0
aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZNZWRpYVNlbGVjdGlvbk9wdGlvbihBVk1lZGlhU2VsZWN0
aW9uT3B0aW9uICopOwogCi1wcml2YXRlOgogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1UcmFj
az4gbV9wbGF5ZXJJdGVtVHJhY2s7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXRUcmFjaz4gbV9hc3Nl
dFRyYWNrOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fcGxheWVySXRlbTsKICAgICBS
ZWZQdHI8TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPiBtX21lZGlhU2VsZWN0aW9uT3B0aW9u
OworICAgIFJldGFpblB0cjxBVkFzc2V0VHJhY2s+IG1fYXNzZXRUcmFjazsKKyAgICBXZWFrUHRy
PFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI+IG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRp
b25PYnNlcnZlcjsKKyAgICBXZWFrUHRyPEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI+
IG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KaW5kZXggNGI3MjU5MDdiNGI0
YjI1NWQwNzJkNTE2YTU2M2I4NDY1NDgwNmY5Mi4uMjI5MGE5ZDBkZWI2Nzk0MjY5ZmNiYTBhY2Uz
YzdjZjY0NjQzYmIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwubW0KQEAgLTMwLDYgKzMwLDggQEAKIAogI2ltcG9ydCAiRm9ybWF0RGVzY3JpcHRp
b25VdGlsaXRpZXMuaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgiCisj
aW1wb3J0ICJQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgiCisjaW1wb3J0ICJQbGF0
Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIK
ICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2suaD4KICNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVk1lZGlhU2VsZWN0aW9uR3JvdXAuaD4KQEAgLTM3LDYgKzM5LDcgQEAKICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBs
YXllckl0ZW1UcmFjay5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBv
cnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgpAQCAtNDgsMjUgKzUxLDUwIEBA
IEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNBcnJheSogYXNzZXRUcmFj
a0NvbmZpZ3VyYXRpb25LZXlOYW1lcygpCit7CisgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAImZvcm1hdERlc2NyaXB0aW9ucyIsIEAi
ZXN0aW1hdGVkRGF0YVJhdGUiLCBAIm5vbWluYWxGcmFtZVJhdGUiLCBuaWxdOworICAgIHJldHVy
biBrZXlzOworfQorCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKICAgICA6IG1fcGxheWVySXRlbVRy
YWNrKHRyYWNrKQogICAgICwgbV9hc3NldFRyYWNrKFt0cmFjayBhc3NldFRyYWNrXSkKIHsKKyAg
ICBpbml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
OjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKEFWQXNzZXRUcmFjayogdHJhY2spCiAgICAgOiBt
X2Fzc2V0VHJhY2sodHJhY2spCiB7CisgICAgaW5pdGlhbGl6ZUFzc2V0VHJhY2soKTsKIH0KIAog
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbChNZWRp
YVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKICAgICA6IG1fbWVkaWFTZWxlY3Rpb25P
cHRpb24oJm9wdGlvbikKKyAgICAsIG1fYXNzZXRUcmFjayhvcHRpb24uYXNzZXRUcmFjaygpKQog
eworICAgIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CiB9CiAKIEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw6On5BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKCkKIHsKIH0KKwordm9pZCBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjppbml0aWFsaXplQXNzZXRUcmFjaygpCit7CisgICAgaWYgKCFt
X2Fzc2V0VHJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIFttX2Fzc2V0VHJhY2sgbG9hZFZh
bHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5hbWVz
KCkgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gV2Vha1B0cih0aGlzKV0gKCkgbXV0YWJs
ZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpXSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMgJiYgd2Vha1RoaXMtPm1fYXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb25PYnNlcnZlcikKKyAgICAgICAgICAgICAgICAoKndlYWtUaGlzLT5tX2F1
ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpKCk7CisgICAgICAgICAgICBpZiAod2Vha1Ro
aXMgJiYgd2Vha1RoaXMtPm1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcikKKyAgICAg
ICAgICAgICAgICAoKndlYWtUaGlzLT5tX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIp
KCk7CisgICAgICAgIH0pOworICAgIH1dOworfQogICAgIAogYm9vbCBBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsOjplbmFibGVkKCkgY29uc3QKIHsKQEAgLTIzMiw2ICsyNjAsMjggQEAgU3RyaW5n
IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6Omxhbmd1YWdlRm9yQVZNZWRpYVNlbGVjdGlvbk9w
dGlvbihBVk1lZGlhU2VsZWMKICAgICByZXR1cm4gbGFuZ3VhZ2U7CiB9CiAKK1BsYXRmb3JtVmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb24gQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6dmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiB7CisgICAgICAgIHsgY29kZWMo
KSB9LAorICAgICAgICB3aWR0aCgpLAorICAgICAgICBoZWlnaHQoKSwKKyAgICAgICAgY29sb3JT
cGFjZSgpLAorICAgICAgICBmcmFtZXJhdGUoKSwKKyAgICAgICAgYml0cmF0ZSgpLAorICAgIH07
Cit9CisKK1BsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiB7
CisgICAgICAgIHsgY29kZWMoKSB9LAorICAgICAgICBzYW1wbGVSYXRlKCksCisgICAgICAgIG51
bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgYml0cmF0ZSgpLAorICAgIH07Cit9CisKIGludCBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjp0cmFja0lEKCkgY29uc3QKIHsKICAgICBpZiAobV9h
c3NldFRyYWNrKQpAQCAtMjU2LDcgKzMwNiw3IEBAIHN0YXRpYyBBVkFzc2V0VHJhY2sqIGFzc2V0
VHJhY2tGb3IoY29uc3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHN0YXRpYyBD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uRm9yKGNvbnN0IEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGwmIGltcGwpCiB7CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNzZXRU
cmFja0ZvcihpbXBsKTsKLSAgICBpZiAoIWFzc2V0VHJhY2sgfHwgIWFzc2V0VHJhY2suZm9ybWF0
RGVzY3JpcHRpb25zLmNvdW50KQorICAgIGlmICghYXNzZXRUcmFjayB8fCBbYXNzZXRUcmFjayBz
dGF0dXNPZlZhbHVlRm9yS2V5OkAiZm9ybWF0RGVzY3JpcHRpb25zIiBlcnJvcjpuaWxdICE9IEFW
S2V5VmFsdWVTdGF0dXNMb2FkZWQgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNv
dW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4oYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnNbMF0pOwog
fQpAQCAtMjkxLDEwICszNDEsMTIgQEAgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgQVZUcmFja1By
aXZhdGVBVkZPYmpDSW1wbDo6Y29sb3JTcGFjZSgpIGNvbnN0CiAKIGRvdWJsZSBBVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsOjpmcmFtZXJhdGUoKSBjb25zdAogewotICAgIGlmIChhdXRvIGFzc2V0
VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGFzc2V0VHJhY2su
bm9taW5hbEZyYW1lUmF0ZTsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
MDsKKyAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKKyAgICBpZiAo
IWFzc2V0VHJhY2spCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0
dXNPZlZhbHVlRm9yS2V5OkAibm9taW5hbEZyYW1lUmF0ZSIgZXJyb3I6bmlsXSAhPSBBVktleVZh
bHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXNzZXRUcmFj
ay5ub21pbmFsRnJhbWVSYXRlOwogfQogCiB1aW50MzJfdCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpzYW1wbGVSYXRlKCkgY29uc3QKQEAgLTMyOCw2ICszODAsOCBAQCB1aW50NjRfdCBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkgY29uc3QKICAgICBhdXRvIGFzc2V0VHJh
Y2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKICAgICBpZiAoIWFzc2V0VHJhY2spCiAgICAgICAg
IHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiZXN0
aW1hdGVkRGF0YVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAg
ICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFzc2V0VHJhY2suZXN0aW1h
dGVkRGF0YVJhdGUpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gYXNzZXRUcmFjay5l
c3RpbWF0ZWREYXRhUmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmgKaW5kZXggODkwMDUxMDFlZTZkNDc3Nzg5MDYxZDcyNzdhZmM1YTRh
Njg2YThkMC4uYTI3N2Y2ZjZhMWZkYzczMzZhMWJjYWIzODQ1OGZiNzQwZTNmN2UxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJBdWRpb1RyYWNr
UHJpdmF0ZUFWRi5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgogCiBPQkpDX0NMQVNTIEFW
QXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOwpAQCAtNzUsOSArNzYsMTQgQEAg
cHJpdmF0ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sq
KTsKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAgQXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOworICAg
IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwor
ICAgIHZvaWQgYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAgIHVzaW5nIEF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+OworICAgIEF1
ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9i
c2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDFjYjk1ODlkODVlOTAwOTEwMTJiZTlhNzA0OTU5YWYx
MWRhMTgzM2IuLjhlNWVmZWViYmU2NDlhMjRlODJjMTE0NDA2ZjU2MjgxZjdkYTA0NTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTMzLDE3ICszMywyOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFjayog
dHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Pih0cmFjaykpCisgICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCit7Cit9CisKK0F1ZGlvVHJhY2tQcml2YXRl
QVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2spCisg
ICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9
CiAKIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKE1l
ZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQotICAgIDogbV9pbXBsKG1ha2VVbmlx
dWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKKyAgICA6IEF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9wdGlv
bikpCit7Cit9CisKK0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVB
VkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmIGltcGwp
CisgICAgOiBtX2ltcGwoV1RGTW92ZShpbXBsKSkKKyAgICAsIG1fYXVkaW9UcmFja0NvbmZpZ3Vy
YXRpb25PYnNlcnZlcihbdGhpc10geyBhdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKTsg
fSkKIHsKKyAgICBtX2ltcGwtPnNldEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIobV9h
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKTsKICAgICByZXNldFByb3BlcnRpZXNGcm9t
VHJhY2soKTsKIH0KIAorCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKCkKIHsKICAgICAvLyBEb24ndCBjYWxsIHRoaXMtPnNldEVuYWJsZWQo
KSBiZWNhdXNlIGl0IGFsc28gc2V0cyB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUKQEAgLTU1LDEx
ICs2NywxMiBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0aWVz
RnJvbVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1faW1w
bC0+bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAgICBz
ZXRDb2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFNhbXBsZVJhdGUobV9pbXBsLT5zYW1w
bGVSYXRlKCkpOwotICAgIHNldE51bWJlck9mQ2hhbm5lbHMobV9pbXBsLT5udW1iZXJPZkNoYW5u
ZWxzKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOworICAgIHNldENvbmZp
Z3VyYXRpb24obV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKK30KIAordm9pZCBB
dWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgp
Cit7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPmF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
KCkpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0UGxheWVySXRlbVRy
YWNrKEFWUGxheWVySXRlbVRyYWNrICp0cmFjaykKQEAgLTczLDEyICs4Niw2IEBAIEFWUGxheWVy
SXRlbVRyYWNrKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnBsYXllckl0ZW1UcmFjaygpCiAg
ICAgcmV0dXJuIG1faW1wbC0+cGxheWVySXRlbVRyYWNrKCk7CiB9CiAKLUF1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2sp
Ci0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFj
aykpCi17Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7Ci19Ci0KIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDOjpzZXRBc3NldFRyYWNrKEFWQXNzZXRUcmFjayAqdHJhY2spCiB7
CiAgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFj
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDLmNwcAppbmRleCA5ZDlkNjRhYTI2YWY3MjNiNDZiYTg3MjQ4YTM5MWQyOWU4Y2E4YjFjLi5l
YWYzZjExOGIyNWE0Mzg4OTkyMmY1NmM2YmRlY2ZkOWM1OGNmOGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKQEAgLTMwLDI0
ICszMCwzMCBAQAogCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCiAjaW1w
b3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorI2ltcG9ydCAiUGxhdGZvcm1WaWRl
b1RyYWNrQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRy
YWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw+KHRyYWNrKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVl
PEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKIHsKLSAgICByZXNldFByb3BlcnRp
ZXNGcm9tVHJhY2soKTsKIH0KIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6IFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNr
KSkKIHsKLSAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25PcHRp
b25BVkZPYmpDJiBvcHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPihvcHRpb24pKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKG1h
a2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30KKworVmlk
ZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlx
dWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFt0
aGlzXSB7IHZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAgIG1faW1w
bC0+c2V0VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX3ZpZGVvVHJhY2tDb25maWd1
cmF0aW9uT2JzZXJ2ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQogCkBA
IC02MiwxNSArNjgsMTIgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJv
cGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRMYWJl
bChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2UoKSk7
Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRXaWR0aChtX2ltcGwtPndp
ZHRoKCkpOwotICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdodCgpKTsKLSAgICBzZXRDb2xvclNw
YWNlKG1faW1wbC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRGcmFtZXJhdGUobV9pbXBsLT5mcmFt
ZXJhdGUoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7Ci0KLSAgICBpZiAo
YXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+Y29uZmlndXJh
dGlvbkNoYW5nZWQoKTsKKyAgICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24oKSk7Cit9CisKK3ZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjp2aWRl
b1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKQoreworICAgIHNldENvbmZpZ3VyYXRpb24obV9p
bXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakM6OnNldFBsYXllckl0ZW1UcmFjayhBVlBsYXllckl0ZW1UcmFjayAqdHJhY2sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5o
CmluZGV4IGY0NWFmZTRmNjlhZDEzODJiYjBmMThmY2M0MmZmNWJhOTY5ZDkxYjMuLmZmMGNkZmIz
NmU1MTkyMjI5YjhlNjU1MWUzZjFkZTgzNmRjNzE2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBAIC0yOSw2ICsyOSw3IEBACiAj
aWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVBVkYuaCIKKyNp
bmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBPQkpD
X0NMQVNTIEFWUGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBAIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKik7CiAgICAg
ZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAgIGV4
cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9i
akMmKTsKKyAgICBleHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlxdWVf
cHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYpOwogCiAgICAgdm9pZCByZXNldFByb3Bl
cnRpZXNGcm9tVHJhY2soKTsKKyAgICB2b2lkIHZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdl
ZCgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2lt
cGw7CisKKyAgICB1c2luZyBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2JzZXJ2
ZXI8dm9pZCgpPjsKKyAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyIG1fdmlkZW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KaW5kZXggNjg2MThjNzI3YTJlNzUzODEyZWI3ZGI1ODNiYTBiZWU3ZjAyZTk4MS4uNzZhMGFi
YzhlOTlhN2ViZjY2ZjE5NzM1NDhlZTY1NjBmNjY0ZTY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KQEAgLTUwLDEyICs1MCw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5p
ZCgpKTsKICAgICBzZXRMYWJlbChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1f
aW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBz
ZXRXaWR0aChtX2ltcGwtPndpZHRoKCkpOwotICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdodCgp
KTsKLSAgICBzZXRDb2xvclNwYWNlKG1faW1wbC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRGcmFt
ZXJhdGUobV9pbXBsLT5mcmFtZXJhdGUoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJh
dGUoKSk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tDb25maWd1cmF0
aW9uKCkpOwogfQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZXRBc3NldFRyYWNrKEFWQXNzZXRUcmFjayAqdHJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVX
ZWJNLmNwcAppbmRleCAxMWNhYzgwMDIzMWUwOGM1M2ViNmUzOGQ4NGY2YjMzNzNjOTFiY2ZiLi41
NzdiMTEwMDBiZTEzNTdmMjM1YTkxN2FmNDc1NWFiYTdkZGFkOGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJh
Y2tQcml2YXRlV2ViTS5jcHAKQEAgLTQwLDYgKzQwLDggQEAgVmlkZW9UcmFja1ByaXZhdGVXZWJN
OjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmIHRyYWNrRW50cnkpCiB7
CiAgICAgaWYgKG1fdHJhY2suaXNfZW5hYmxlZC5pc19wcmVzZW50KCkpCiAgICAgICAgIHNldFNl
bGVjdGVkKG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpKTsKKworICAgIHVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKTsKIH0KIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkKCkgY29u
c3QKQEAgLTE0NSw2ICsxNDcsMTcgQEAgZG91YmxlIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6ZnJh
bWVyYXRlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBWaWRlb1RyYWNrUHJpdmF0
ZVdlYk06OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQoreworICAgIFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiB7CisgICAgICAgIHsgLmNvZGVjID0gY29kZWMoKSB9
LAorICAgICAgICAud2lkdGggPSB3aWR0aCgpLAorICAgICAgICAuaGVpZ2h0ID0gaGVpZ2h0KCks
CisgICAgICAgIC5mcmFtZXJhdGUgPSBmcmFtZXJhdGUoKSwKKyAgICB9OworICAgIHNldENvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDk5ZmQw
N2ZlMmQ3MWQ5MmRjMmUxYzkzZTk3NjFjZWUxYzY2YTRiNDAuLjdiZDE5ZTliZDczNjAxMTgwOGMw
ZjBlNDM0YzQ0OGYyZDRhMDIyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00
MywxMyArNDMsMTYgQEAgcHVibGljOgogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWw7
CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRlZmF1bHRFbmFibGVkKCkgY29uc3QgZmluYWw7Ci0gICAg
U3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdCBm
aW5hbDsKLSAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBmaW5hbDsKLSAgICBkb3VibGUgZnJh
bWVyYXRlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgVmlkZW9UcmFja1ByaXZhdGVX
ZWJNKHdlYm06OlRyYWNrRW50cnkmJik7CisKKyAgICBTdHJpbmcgY29kZWMoKSBjb25zdDsKKyAg
ICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0OworICAgIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0Owor
ICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRp
b24oKTsKKwogICAgIHdlYm06OlRyYWNrRW50cnkgbV90cmFjazsKICAgICBtdXRhYmxlIEF0b21T
dHJpbmcgbV90cmFja0lEOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX2xhYmVsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NjY2NzQyZTNj
OTQ0NjQzNDQwOGM2NTJhYjUyYTEyZTJiMDFkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24gOiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKKyAgICBib29sIGVuYWJs
ZWQ7CisgICAgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQga2luZCB7IFdlYkNvcmU6
OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07CisgICAgV2ViQ29yZTo6UGxhdGZvcm1B
dWRpb1RyYWNrQ29uZmlndXJhdGlvbiB0cmFja0NvbmZpZ3VyYXRpb247CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CisgICAgeworICAgICAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNvZGUo
ZW5jb2Rlcik7CisgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKKyAgICAgICAgZW5jb2RlciA8
PCBraW5kOworICAgICAgICBlbmNvZGVyIDw8IHRyYWNrQ29uZmlndXJhdGlvbjsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBXQVJOX1VOVVNF
RF9SRVRVUk4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpkZWNvZGUoZGVjb2RlciwgY29uZmlndXJhdGlv
bikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZW5hYmxlZCkK
KyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkKKyAgICAg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0aW9u
KTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwCmluZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0ZDFmYThhNTMuLjgx
MDQwMDI4ZTE3MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3Bw
CkBAIC0yOSwxMSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYgKzU0LDE5IEBAIFJl
bW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiAgICAgbV90cmFj
a1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKK0F1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3Vy
YXRpb24oKQogewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5pZCgpLAot
ICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUt
Pmxhbmd1YWdlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgp
LAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB7CisgICAg
ICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRl
LT5sYWJlbCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisgICAg
ICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAgICAg
IG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAgICAgICAgIG1fdHJh
Y2tQcml2YXRlLT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCksCi0g
ICAgICAgIGZhbHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6
Tm9uZSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAgICAgIDAsCi0gICAg
ICAgIDAsCi0gICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90cmFja1ByaXZhdGUt
PmJpdHJhdGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJhdGUoKSwKLSAgICAg
ICAgbV90cmFja1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgbV90cmFja1By
aXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2ICs5MSwxMSBAQCB2
b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQog
ICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9UcmFja1By
b3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1
cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7Cit9
CisKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0cmlu
ZyYpCiB7CiAgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaAppbmRleCBkMmRl
YzQ1YTZkYjNmZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4wMTM1Njc5MTViNGU5MDBmZDM2
YmU0NzliZDhmMmVjNDkyN2I4NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBAIGNs
YXNzIERlY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzczsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOworc3Ry
dWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3Rl
QXVkaW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UmVtb3RlQXVkaW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgpAQCAt
NjksNiArNjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQK
ICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlv
biYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKQEAgLTc2LDcgKzc3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAg
ICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKIAogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAppbmRleCAyZWRlZTE5ODcxYzdkMzdhNDU0
NWUzZWM1MDU2YjYxNjMzMDFhM2VkLi5iMjE0YWVhMTNhOGQ1ZjdiNzZmNjUyYzdkYzZlNWM0Njg4
ZDU0NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKLSNp
bmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCkBAIC01NCwyMyArNTQsMjAgQEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlk
ZW9UcmFja1Byb3h5KCkKICAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAot
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNv
bmZpZ3VyYXRpb24oKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJlbW90
ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCiB7Ci0gICAgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uIHsgfTsKLSAgICBjb25maWd1cmF0aW9uLnRy
YWNrSWQgPSBtX3RyYWNrUHJpdmF0ZS0+aWQoKTsKLSAgICBjb25maWd1cmF0aW9uLmxhYmVsID0g
bV90cmFja1ByaXZhdGUtPmxhYmVsKCk7Ci0gICAgY29uZmlndXJhdGlvbi5sYW5ndWFnZSA9IG1f
dHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpOwotICAgIGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleCA9
IG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCk7Ci0gICAgY29uZmlndXJhdGlvbi5zdGFydFRp
bWVWYXJpYW5jZSA9IG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwotICAgIGNv
bmZpZ3VyYXRpb24uc2VsZWN0ZWQgPSBtX3RyYWNrUHJpdmF0ZS0+c2VsZWN0ZWQoKTsKLSAgICBj
b25maWd1cmF0aW9uLnZpZGVvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5kKCk7Ci0gICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IG1fdHJhY2tQcml2YXRlLT5jb2RlYygpOwotICAgIGNvbmZpZ3Vy
YXRpb24ud2lkdGggPSBtX3RyYWNrUHJpdmF0ZS0+d2lkdGgoKTsKLSAgICBjb25maWd1cmF0aW9u
LmhlaWdodCA9IG1fdHJhY2tQcml2YXRlLT5oZWlnaHQoKTsKLSAgICBjb25maWd1cmF0aW9uLmNv
bG9yU3BhY2UgPSBtX3RyYWNrUHJpdmF0ZS0+Y29sb3JTcGFjZSgpOwotICAgIGNvbmZpZ3VyYXRp
b24uZnJhbWVyYXRlID0gbV90cmFja1ByaXZhdGUtPmZyYW1lcmF0ZSgpOwotICAgIGNvbmZpZ3Vy
YXRpb24uYml0cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5iaXRyYXRlKCk7Ci0gICAgcmV0dXJuIGNv
bmZpZ3VyYXRpb247CisgICAgcmV0dXJuIHsKKyAgICAgICAgeworICAgICAgICAgICAgbV90cmFj
a1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKKyAg
ICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAgICAgICAgbV90cmFj
a1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0
ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAorICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c2Vs
ZWN0ZWQoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmtpbmQoKSwKKyAgICAgICAgbV90cmFj
a1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKKyAgICB9OwogfQogCiB2b2lkIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6dXBkYXRlQ29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKaW5kZXggOTM3Mjcw
NzAwZDQzNGIxMWYwMDhmM2VjOWYyNGU4NWI5NDI0OGI4Ny4uODk1MDc0YzZmMDYzNThjZTVkNmEx
Y2EyOTkxMzNjMDdlYzBiODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBEZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVj
dCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZVZp
ZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJl
bW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KQEAgLTY5
LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50CiAg
ICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBjb25maWd1cmF0
aW9uQ2hhbmdlZCgpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9CisgICAgdm9pZCBj
b25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uJikgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0KIAogICAgIC8vIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5ndWFnZUNo
YW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZp
bmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9u
KCk7CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24oKTsKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKIAogICAgIFdlYWtQdHI8R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uLmgKaW5kZXggOTQ4NDM0MTY2MjNiMzk0MTdlMzI3NDI1MjEz
ZTVjZjBiYjNlYjExZi4uNzA3ZDY4Njg5Y2M1MmZkMDAzYjM2MjUzOTRkNWIzNmY2ODIzY2IzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCkBAIC0yNyw4ICsyNyw2IEBACiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvVHJhY2tQcml2
YXRlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUg
PHd0Zi9NZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCwyMSArMzgsNiBA
QCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CiAgICAgTWVkaWFUaW1l
IHN0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07CiAgICAgaW50IHRy
YWNrSW5kZXg7CiAKLSAgICBib29sIGVuYWJsZWQ7Ci0gICAgV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OktpbmQgYXVkaW9LaW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQ6
Ok5vbmUgfTsKLQotICAgIGJvb2wgc2VsZWN0ZWQ7Ci0gICAgV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGU6OktpbmQgdmlkZW9LaW5kIHsgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OktpbmQ6
Ok5vbmUgfTsKLQotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aDsKLSAgICB1
aW50MzJfdCBoZWlnaHQ7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgY29s
b3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlOwotICAgIHVpbnQ2NF90IGJpdHJhdGU7Ci0g
ICAgdWludDMyX3Qgc2FtcGxlUmF0ZTsKLSAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzOwot
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIHsKQEAgLTYzLDEyNyArNDYsMTYgQEAgc3RydWN0IFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8IGxhbmd1YWdlOwog
ICAgICAgICBlbmNvZGVyIDw8IHN0YXJ0VGltZVZhcmlhbmNlOwogICAgICAgICBlbmNvZGVyIDw8
IHRyYWNrSW5kZXg7Ci0gICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKLSAgICAgICAgZW5jb2Rl
ciA8PCBhdWRpb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7Ci0gICAgICAgIGVu
Y29kZXIgPDwgdmlkZW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IGNvZGVjOwotICAgICAgICBl
bmNvZGVyIDw8IHdpZHRoOwotICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKLSAgICAgICAgZW5j
b2RlciA8PCBjb2xvclNwYWNlOwotICAgICAgICBlbmNvZGVyIDw8IGZyYW1lcmF0ZTsKLSAgICAg
ICAgZW5jb2RlciA8PCBiaXRyYXRlOwotICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7Ci0g
ICAgICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKICAgICB9CiAKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0
cmluZz4gdHJhY2tJZDsKLSAgICAgICAgZGVjb2RlciA+PiB0cmFja0lkOwotICAgICAgICBpZiAo
IXRyYWNrSWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0
ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFiZWw7Ci0gICAgICAgIGRlY29kZXIgPj4gbGFiZWw7
Ci0gICAgICAgIGlmICghbGFiZWwpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFuZ3VhZ2U7Ci0gICAgICAgIGRl
Y29kZXIgPj4gbGFuZ3VhZ2U7Ci0gICAgICAgIGlmICghbGFuZ3VhZ2UpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFUaW1lPiBz
dGFydFRpbWVWYXJpYW5jZTsKLSAgICAgICAgZGVjb2RlciA+PiBzdGFydFRpbWVWYXJpYW5jZTsK
LSAgICAgICAgaWYgKCFzdGFydFRpbWVWYXJpYW5jZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHRyYWNrSW5kZXg7Ci0gICAg
ICAgIGRlY29kZXIgPj4gdHJhY2tJbmRleDsKLSAgICAgICAgaWYgKCF0cmFja0luZGV4KQotICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGVuYWJsZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKLSAgICAgICAgaWYgKCFl
bmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kPiBhdWRpb0tpbmQ7Ci0g
ICAgICAgIGRlY29kZXIgPj4gYXVkaW9LaW5kOwotICAgICAgICBpZiAoIWF1ZGlvS2luZCkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBzZWxlY3RlZDsKLSAgICAgICAgZGVjb2RlciA+PiBzZWxlY3RlZDsKLSAgICAgICAgaWYg
KCFzZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZD4gdmlkZW9LaW5k
OwotICAgICAgICBkZWNvZGVyID4+IHZpZGVvS2luZDsKLSAgICAgICAgaWYgKCF2aWRlb0tpbmQp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBjb2RlYzsKLSAgICAgICAgZGVjb2RlciA+PiBjb2RlYzsKLSAgICAgICAgaWYg
KCFjb2RlYykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDx1aW50MzJfdD4gd2lkdGg7Ci0gICAgICAgIGRlY29kZXIgPj4gd2lkdGg7Ci0g
ICAgICAgIGlmICghd2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGhlaWdodDsKLSAgICAgICAgZGVjb2RlciA+
PiBoZWlnaHQ7Ci0gICAgICAgIGlmICghaGVpZ2h0KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9D
b2xvclNwYWNlPiBjb2xvclNwYWNlOwotICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7Ci0g
ICAgICAgIGlmICghY29sb3JTcGFjZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZyYW1lcmF0ZTsKLSAgICAgICAgZGVj
b2RlciA+PiBmcmFtZXJhdGU7Ci0gICAgICAgIGlmICghZnJhbWVyYXRlKQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBi
aXRyYXRlOwotICAgICAgICBkZWNvZGVyID4+IGJpdHJhdGU7Ci0gICAgICAgIGlmICghYml0cmF0
ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIAotICAgICAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBzYW1wbGVSYXRlOwotICAgICAgICBkZWNvZGVyID4+IHNh
bXBsZVJhdGU7Ci0gICAgICAgIGlmICghc2FtcGxlUmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbnVtYmVyT2ZD
aGFubmVsczsKLSAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZkNoYW5uZWxzOwotICAgICAgICBp
ZiAoIW51bWJlck9mQ2hhbm5lbHMpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgV1RGTW92ZSgqdHJhY2tJZCksCi0gICAg
ICAgICAgICBXVEZNb3ZlKCpsYWJlbCksCi0gICAgICAgICAgICBXVEZNb3ZlKCpsYW5ndWFnZSks
Ci0gICAgICAgICAgICBXVEZNb3ZlKCpzdGFydFRpbWVWYXJpYW5jZSksCi0gICAgICAgICAgICAq
dHJhY2tJbmRleCwKLSAgICAgICAgICAgICplbmFibGVkLAotICAgICAgICAgICAgKmF1ZGlvS2lu
ZCwKLSAgICAgICAgICAgICpzZWxlY3RlZCwKLSAgICAgICAgICAgICp2aWRlb0tpbmQsCi0gICAg
ICAgICAgICBXVEZNb3ZlKCpjb2RlYyksCi0gICAgICAgICAgICAqd2lkdGgsCi0gICAgICAgICAg
ICAqaGVpZ2h0LAotICAgICAgICAgICAgV1RGTW92ZSgqY29sb3JTcGFjZSksCi0gICAgICAgICAg
ICAqZnJhbWVyYXRlLAotICAgICAgICAgICAgKmJpdHJhdGUsCi0gICAgICAgICAgICAqc2FtcGxl
UmF0ZSwKLSAgICAgICAgICAgICpudW1iZXJPZkNoYW5uZWxzLAotICAgICAgICB9fTsKKyAgICAg
ICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJZCkKKyAgICAgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubGFiZWwpCisgICAgICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxhbmd1YWdlKQorICAgICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZSkKKyAgICAgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleCk7CiAgICAgfQog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRjMTRmNmEwMzcwYzA2MTFlODRkN2FkOTE3NzFkOGY0NjVlNWEzNzYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZh
dGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24gOiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKKyAg
ICBib29sIHNlbGVjdGVkOworICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kIGtp
bmQgeyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdlYkNv
cmU6OlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gdHJhY2tDb25maWd1cmF0aW9uOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjo6ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOworICAg
ICAgICBlbmNvZGVyIDw8IGtpbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdHJhY2tDb25maWd1cmF0
aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBi
b29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAgICAg
ICAgaWYgKCFUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpkZWNvZGUoZGVjb2Rlciwg
Y29uZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zZWxlY3RlZCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5raW5k
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDZlZjZmNzRjMDMzNmJlOTE1ZmQzYTQwMzRlNGNjMWEyNTBmNjZl
YmMuLmQyOWZkOTFjZjQ0NmVjNzk1NjUyODU0M2NmYTMwYTMyNDIxM2RlM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE4OCw2ICs2
MTg4LDggQEAKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIu
ZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwogCQlDRENEQzk5QjI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEVuZG93bWVudFN0YXRlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENEQzk5QzI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVU
cmFja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRW5kb3dtZW50U3RhdGVUcmFja2VyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3NTUg
LyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREQwOEFDNDI3N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ1
MzU2RjI0MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RENTM1NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjY4OSw2ICs2NjkxLDcgQEAKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJ
CQlDREE5NTk0NDI0MTJDNERBMDA5MTBFRUYgLyogaW9zICovLAorCQkJCUNERDA4QUMzMjc3RUJD
RTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywK
IAkJCQkxRDRGQjQwQjI1NjVDODlBMDAxQUMyQUQgLyogSW5pdGlhbGl6YXRpb25TZWdtZW50SW5m
by5oICovLAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCkBAIC02NzY0LDYgKzY3NjcsNyBAQAog
CQkJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJDNTdCMjNDQTUzMjQwMDY4MEQ3QyAvKiBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0QyM0NBNTZEMjAwNjgw
RDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLywKKwkJCQlDREQwOEFDNDI3
N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9B
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggM2VkNzZjMzJjODE2NmYxOWMyNzE2N2E3
NjUzMWM4MmMxZWQ2NTI0NS4uZjllNGIxYzMyOTVjZTEzYjIwMmUzNzhiMGQyNzU0MWI0ZjQwNmZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDE0ICsyOSwxNCBAQAogCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllclByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1BdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVBy
b2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRl
bnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK0F1ZGlvVHJhY2tQcml2
YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAg
OiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwgbV9w
bGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRl
bmRpZmllcikKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6
c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNv
bmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9uKEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAg
ICAgaWYgKGNvbmZpZ3VyYXRpb24udHJhY2tJZCAhPSBtX2lkKSB7CiAgICAgICAgIGF1dG8gY2hh
bmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsKQEAgLTgwLDExICs4MCw4IEBAIHZvaWQgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvCiAKICAgICBtX3RyYWNrSW5kZXggPSBjb25maWd1cmF0aW9uLnRyYWNrSW5kZXg7
CiAgICAgbV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFyaWFu
Y2U7Ci0gICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5hdWRpb0tpbmQ7Ci0gICAgc2V0Q29kZWMo
V1RGTW92ZShjb25maWd1cmF0aW9uLmNvZGVjKSk7Ci0gICAgc2V0U2FtcGxlUmF0ZShjb25maWd1
cmF0aW9uLnNhbXBsZVJhdGUpOwotICAgIHNldE51bWJlck9mQ2hhbm5lbHMoY29uZmlndXJhdGlv
bi5udW1iZXJPZkNoYW5uZWxzKTsKLSAgICBzZXRCaXRyYXRlKGNvbmZpZ3VyYXRpb24uYml0cmF0
ZSk7CisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5raW5kOworICAgIHNldENvbmZpZ3VyYXRp
b24oV1RGTW92ZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpOwogICAgIAogICAg
IEF1ZGlvVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGNvbmZpZ3VyYXRpb24uZW5hYmxlZCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggZjFmOWYwZjNkNjVhYzY0ODU1YjA2NWYwMjY0
NGEzNjVkZTQzZWJkNC4uMmZjMDg0NTE1ZDYyMGQwYzY1YTNkY2ViZjcwNzU4MTZjMTZmZDI1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMzYsMjEgKzM2LDIxIEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwor
c3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
KQogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0
ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNy
ZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVySWRl
bnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAog
ICAgIEF0b21TdHJpbmcgaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkOyB9Ci0gICAgdm9p
ZCB1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7
CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmKTsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShH
UFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmKTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYs
IFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNp
bmcgQXVkaW9UcmFja0tpbmQgPSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAg
ICBBdWRpb1RyYWNrS2luZCBraW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggZjM2NGU1YzE2NDZiNTI0YjY1MmZkNjBk
NTQ4ODRmOWY0YTJiNWY4Yi4uOWI3Y2NlY2NlODg2ODMzM2QyMzk4ZjlhMDFlOTM0MWMzYzQ4ZGRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNTc1LDcgKzU3NSw3IEBAIEZs
b2F0U2l6ZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdHVyYWxTaXplKCkgY29uc3QKICAg
ICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5uYXR1cmFsU2l6ZTsKIH0KIAotdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVBdWRp
b1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CiAgICAg
ICAgIHJldHVybiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQ
cm9jZXNzQ29ubmVjdGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pKTsKQEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaQogICAgIH0K
IH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgQVNTRVJU
KG1fYXVkaW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCkBAIC03MzMsNyArNzMzLDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGUKICAgICAgICAgdHJhY2stPnJlbW92ZUdlbmVyaWND
dWUoSW5iYW5kR2VuZXJpY0N1ZTo6Y3JlYXRlKFdURk1vdmUoY3VlRGF0YSkpKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjph
ZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
IHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIs
IFsmXSB7CiAgICAgICAgIHJldHVybiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1f
bWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKQEAgLTc2Myw3ICs3NjMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZVZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0
aW9uKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7
CiAgICAgQVNTRVJUKG1fdmlkZW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAppbmRleCBiMGFmZTIxZWUwM2VlMjYzNzg0MDk3MmJmMmYzMDQ0
NzIzZDY3MWJkLi5lMDFmY2VjNmM4NjFiMWY5YTIyZDA0OGNlM2I5OGI0NGY4ZWI1YzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTY3LDggKzY3LDkgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyRGF0YTsK
K3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb247CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBmaW5hbAogICAgIDogcHVi
bGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQpAQCAtMTE3LDEzICsxMTgs
MTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgTW9ub3RvbmljVGltZSYsIGJvb2wpOwogCi0gICAgdm9pZCBhZGRSZW1vdGVB
dWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5n
ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2b2lkIHJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdl
ZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mJik7CiAKLSAgICB2b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsK
KyAgICB2b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVt
b3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAgICB2
b2lkIHJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIHZv
aWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAog
ICAgIHZvaWQgYWRkUmVtb3RlVGV4dFRyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3Zl
UmVtb3RlVGV4dFRyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBhNjA2MDM5MGU5MDU5MDg2
ZGY0NTNmNzU2MWQ5ZjUxN2U2YjRhZTBhLi41ZWRmNzUzOGY1YWY2NjNiYTc4ZmU5YzY3ZTdhNjQy
YWRiNmRkZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bgpAQCAtNDEsMTMgKzQxLDEzIEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEN1cnJlbnRUaW1lQ2hhbmdlZChNZWRpYVRpbWUgbWVk
aWFUaW1lLCBNb25vdG9uaWNUaW1lIHdhbGxUaW1lLCBib29sIHRpbWVJc1Byb2dyZXNzaW5nKQog
Ci0gICAgQWRkUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQorICAgIEFkZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OkF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92ZVJl
bW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNr
SUQpCi0gICAgUmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlQXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbikKIAotICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2ViS2l0
OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBBZGRSZW1v
dGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
LCBzdHJ1Y3QgV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQotICAgIFJlbW90ZVZpZGVvVHJhY2tDb25maWd1
cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJ
RCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQorICAgIFJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6
OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6Vmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKICAgICBB
ZGRSZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAgICAgUmVtb3ZlUmVtb3RlVGV4dFRyYWNrKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cAppbmRleCA4YmE5MjU5ZTUwZTNlY2RiMGI4MmNlNjI5MzEzMmUxM2FlYjRjOGIyLi4wZjhkNWY4
MzExMzg5YWRjY2NiODg4NTlhODI3NDliZDlhMDFkOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcApAQCAtMzIsMTAgKzMyLDExIEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRp
ZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5k
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQor
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nl
c3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWRlbmRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAsIG1f
aWRlbmRpZmllcihpZGVuZGlmaWVyKQpAQCAtNTQsNyArNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQ
cml2YXRlUmVtb3RlOjpzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKQogICAgIFZpZGVvVHJhY2tQ
cml2YXRlOjpzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRh
dGVDb25maWd1cmF0aW9uKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCiB7CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24udHJhY2tJZCAhPSBtX2lkKSB7
CiAgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsKQEAgLTc5LDE0ICs4MCw4
IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvCiAKICAgICBtX3RyYWNrSW5kZXggPSBjb25maWd1
cmF0aW9uLnRyYWNrSW5kZXg7CiAgICAgbV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3VyYXRp
b24uc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgbV9raW5kID0gY29uZmlndXJhdGlvbi52aWRlb0tp
bmQ7Ci0gICAgbV9jb2RlYyA9IGNvbmZpZ3VyYXRpb24uY29kZWM7Ci0gICAgbV93aWR0aCA9IGNv
bmZpZ3VyYXRpb24ud2lkdGg7Ci0gICAgbV9oZWlnaHQgPSBjb25maWd1cmF0aW9uLmhlaWdodDsK
LSAgICBtX2NvbG9yU3BhY2UgPSBjb25maWd1cmF0aW9uLmNvbG9yU3BhY2U7Ci0gICAgbV9mcmFt
ZXJhdGUgPSBjb25maWd1cmF0aW9uLmZyYW1lcmF0ZTsKLSAgICBtX2JpdHJhdGUgPSBjb25maWd1
cmF0aW9uLmJpdHJhdGU7Ci0KKyAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7CisgICAg
c2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0aW9u
KSk7CiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKGNvbmZpZ3VyYXRpb24uc2Vs
ZWN0ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNjlmY2Q4NmM2NGRjMjBm
ZmI2ZDk5NTE2MmZiMDhmODg1ZTExNTUxYy4uYzgxNjFmMjExNzY1NWRiNTZiZjExZmIxMzEwNzc1
M2U4NWYxMmU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMjgsNyArMjgsNiBAQAog
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KQEAgLTM3LDE4ICszNiwxOCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNz
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9UcmFj
a1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlKQogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNy
ZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+
IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVy
SWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0K
IAotICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uJiYpOworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB1c2luZyBWaWRlb1RyYWNrS2luZCA9IFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOwogICAgIFZpZGVvVHJhY2tLaW5kIGtpbmQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2tpbmQ7IH0KQEAgLTU3LDE1ICs1Niw5IEBAIHB1Ymxp
YzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYW5n
dWFnZTsgfQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFj
a0luZGV4OyB9CiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9zdGFydFRpbWVWYXJpYW5jZTsgfQotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fd2lkdGg7IH0KLSAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2hlaWdodDsgfQotICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xvclNw
YWNlIGNvbG9yU3BhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KLSAg
ICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZXJhdGU7IH0K
LSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9iaXRyYXRlOyB9
CiAKIHByaXZhdGU6Ci0gICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHZvaWQgc2V0U2VsZWN0ZWQo
Ym9vbCkgZmluYWw7CiAKQEAgLTc2LDEyICs2OSw2IEBAIHByaXZhdGU6CiAgICAgQXRvbVN0cmlu
ZyBtX2xhYmVsOwogICAgIEF0b21TdHJpbmcgbV9sYW5ndWFnZTsKICAgICBpbnQgbV90cmFja0lu
ZGV4IHsgLTEgfTsKLSAgICBTdHJpbmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsg
MCB9OwotICAgIHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlIG1fY29sb3JTcGFjZTsKLSAgICBkb3VibGUgbV9mcmFtZXJhdGUgeyAw
IH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0
VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07CiAgICAgVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBtX2lkZW5kaWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI5ZWVkMzljYzU2ODk2
OTQyMDliYzYxYWU4ZTE4NWQ4NTIxYmNmM2YuLmRkYTExZTMxODk1YzQyZjUyNDMwMzYyMjMxN2Fk
OGRkMzA3NzljOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0zMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEhhbmcgaW4gQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBkeW5h
bWljLCB0ZXN0IHRoZW0gd2l0aCBgdGVzdEV4cGVjdGVkRXZlbnR1YWxseWAuCisKKyAgICAgICAg
KiBtZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0bWw6CisgICAgICAgICog
bWVkaWEvdHJhY2svdmlkZW8tdHJhY2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sOgorCiAy
MDIxLTEyLTMxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjg3MDI4KTogSW5jb3JyZWN0IHJvb3QgaW5saW5lIGJveCBob3Jpem9udGFsIHBv
c2l0aW9uIHdoZW4gdGV4dC1hbGlnbiBvZmZzZXQgaXMgcHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCmluZGV4
IGE1N2UyNjMwMmYzNjEwMDc1NTZiMzQyYmYzNjNiNjcyNmY2ZjMyODkuLmU3MzQ2MDhjNmVhN2Y1
NjIyYzkzMjc3OTY3NWJmYWVlNzU1MmUwNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKQEAgLTksMTIgKzksMTIg
QEAKIAkJCWZpbmRNZWRpYUVsZW1lbnQoKTsKIAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRl
bnQvYXVkaW8tdHJhY2tzLm1wNCInKTsKIAkJCWF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5
Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCcsIDAsICc+Jyk7
Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBu
dWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmln
dXJhdGlvbi5jb2RlYycsICdtcDRhLjQwLjInKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVk
aW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlJywgNDQxMDApOwotCQkJdGVzdEV4
cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5l
bHMnLCAyKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbi5iaXRyYXRlJywgMTAwMDAwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCcsIDAsICc+Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywg
bnVsbCwgJyE9Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRp
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvZGVjJywgJ21wNGEuNDAuMicpOworCQkJYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlv
bi5zYW1wbGVSYXRlJywgNDQxMDApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgn
dmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5udW1iZXJPZkNoYW5uZWxzJywgMik7
CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmJpdHJhdGUnLCAxMDAwMDAsICc+PScpOwogCQkJZW5kVGVzdCgpOwogCQl9
KTsKIAk8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVv
LXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdmlkZW8tdHJhY2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50eHQKaW5kZXggZDc3
ZmYzYTZjM2UyNzAxZWJlMDMwMWYzNTdkZTgwZTM0OTJkMGRjNC4uZmQwOGU3Yzg5OThhYzJlZjNh
MTAyNTk4OTMwNTlmNThjOWJkOTNiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdmlkZW8tdHJhY2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50
eHQKQEAgLTE0LDE1ICsxNCwxNSBAQCBUZXN0IHRoYXQgbWVkaWEgY29udGFpbmluZyB0d28gYXVk
aW8gdHJhY2tzIGluIG9uZSBhbHRlcm5hdGUgZ3JvdXAgYW5kIG9uZSB0cmFjawogUlVOKHZpZGVv
LnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvYXVkaW8tdHJhY2tzLXNv
bWUtaW4tYWx0ZXJuYXRlLWdyb3VwIikpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVE
ICh2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggPT0gJzInKSBPSwotVFJBQ0sgaWQ6MiBraW5kOm1h
aW4gbGFuZ3VhZ2U6ZW4KLVRSQUNLIGlkOjMga2luZDptYWluIGxhbmd1YWdlOmZyCitUUkFDSyBp
ZDoyIGtpbmQ6bWFpbiBsYW5ndWFnZTplbmcKK1RSQUNLIGlkOjMga2luZDptYWluIGxhbmd1YWdl
OmZyYQogCiBUZXN0IHRoYXQgbWVkaWEgY29udGFpbmluZyBzaXggYXVkaW8gdHJhY2tzLCB3aXRo
IHRocmVlIGF1ZGlvIHRyYWNrcyBlYWNoIHJlZmVycmluZyB0byBhIHNlcGFyYXRlIHRyYWNrIGFz
IGEgZmFsbGJhY2sgdHJhY2ssIGFsbCBpbiBvbmUgYWx0ZXJuYXRlIGdyb3VwLCByZXN1bHRzIGlu
IHRocmVlIEF1ZGlvVHJhY2tzCiBSVU4odmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8i
LCAiLi4vY29udGVudC9hdWRpby10cmFja3MtYWx0ZXJuYXRlLWdyb3VwLXdpdGgtZmFsbGJhY2si
KSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVhQRUNURUQgKHZpZGVvLmF1ZGlvVHJhY2tzLmxl
bmd0aCA9PSAnMycpIE9LCi1UUkFDSyBpZDoyIGtpbmQ6bWFpbiBsYW5ndWFnZTplbgotVFJBQ0sg
aWQ6NCBraW5kOm1haW4gbGFuZ3VhZ2U6ZnIKLVRSQUNLIGlkOjYga2luZDptYWluIGxhbmd1YWdl
OmVzCitUUkFDSyBpZDozIGtpbmQ6bWFpbiBsYW5ndWFnZTplbmcKK1RSQUNLIGlkOjUga2luZDpt
YWluIGxhbmd1YWdlOmZyYQorVFJBQ0sgaWQ6NyBraW5kOm1haW4gbGFuZ3VhZ2U6c3BhCiBFTkQg
T0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFj
ay1jb25maWd1cmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFj
ay1jb25maWd1cmF0aW9uLmh0bWwKaW5kZXggMTIwMzk5OTgyMDQ1ZjkzMWU4OWYzMzY1NjM4ZjUz
N2IxMzI2NjA0NC4uYjVkZDZmMjdhYTBiNmFiMmYyMWM5MzdiMjE1NGUwOGM2MDMzN2M2MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3Vy
YXRpb24uaHRtbApAQCAtOSwzMCArOSwzMCBAQAogCQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJ
cnVuKCd2aWRlby5zcmMgPSAiLi4vY29udGVudC90ZXN0Lm1wNCInKTsKIAkJCWF3YWl0IHdhaXRG
b3IodmlkZW8sICdjYW5wbGF5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tz
Lmxlbmd0aCcsIDEpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnYXZjMS40RDQwMEQnKTsKLQkJCXRlc3RFeHBl
Y3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7Ci0J
CQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0
JywgMjQwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbi5iaXRyYXRlJywgMjQwMDAwLCAnPj0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScs
IG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NDcwYmcnKTsKLQkJCXRlc3RFeHBlY3Rl
ZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmll
cycsICdzbXB0ZTE3MG0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0u
Y29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CisJCQlhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAxKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnYXZjMS40RDQwMEQn
KTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBd
LmNvbmZpZ3VyYXRpb24ud2lkdGgnLCAzMjApOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAyNDApOwor
CQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi5iaXRyYXRlJywgMjQwMDAwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3Rl
ZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uZnJhbWVyYXRl
JywgMzAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVsbCwgJyE9Jyk7CisJCQlh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4JywgJ2J0NDcwYmcnKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZS5wcmltYXJpZXMnLCAnc21wdGUxNzBtJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UudHJh
bnNmZXInLCAnYnQ3MDknKTsKIAkJCXJ1bigndmlkZW8uc3JjID0gIi4uL2NvbnRlbnQvdGVzdC1o
ZXZjLm1wNCInKTsKIAkJCWF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5Jyk7Ci0JCQl0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7Ci0JCQl0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAn
aHZjMS4xLjYuTDkzLkIwJyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBd
LmNvbmZpZ3VyYXRpb24ud2lkdGgnLCAzMjApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRl
b1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7Ci0JCQl0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDE1MDAwMCwgJz49
Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24u
ZnJhbWVyYXRlJywgMzAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNr
c1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBl
Y3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJp
eCcsICdidDcwOScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywgJ2J0NzA5Jyk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2Zl
cicsICdidDcwOScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlk
ZW9UcmFja3MubGVuZ3RoJywgMSk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uJywgbnVsbCwgJyE9Jyk7CisJCQlhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvZGVjJywgJ2h2YzEuMS42Lkw5My5CMCcpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7
CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5j
b25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmJpdHJhdGUnLCAxNTAwMDAs
ICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFj
a3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAzMCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNv
bG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAn
YnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnYnQ3MDknKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2ZlcicsICdidDcwOScpOwogCQkJZW5kVGVzdCgpOwog
CQl9KTsKIAk8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448306</attachid>
            <date>2022-01-04 10:06:23 -0800</date>
            <delta_ts>2022-01-04 10:10:08 -0800</delta_ts>
            <desc>[fast-cq] Patch for landing</desc>
            <filename>bug-234753-20220104100622.patch</filename>
            <type>text/plain</type>
            <size>102956</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJlOTEwYmUyMzA5YmNi
YjE2YTA0MTU2MzkzODMwZmU0NGQ5ZTcyZC4uZGY2Nzg5M2NiMTU1NDNiMWMxNjViOWY3NWNhMTIx
YTJiNzNjN2EwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gSGFuZyBpbiBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDc1MworCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbiByMjg2OTA4LCBXZWJDb3JlIGFkZGVkIG5ldyBx
dWVyaWVzIG9udG8gZXhpc3RpbmcgQVZBc3NldFRyYWNrIG9iamVjdHM7IGhvd2V2ZXIsIHF1ZXJ5
aW5nCisgICAgICAgIHRob3NlIHByb3BlcnRpZXMgd2lsbCBibG9jayBpZiBkYXRhIGZvciB0aG9z
ZSBwcm9wZXJ0aWVzIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiBUaGUgbWVkaWEgZWxlbWVudAorICAg
ICAgICBjb3VsZCBibG9jayBtb3ZpbmcgdG8gdGhlIEhBVkVfTUVUQURBVEEgc3RhdGUgdW50aWwg
dGhvc2UgcHJvcGVydGllcyBhcmUgZnVsbHkgbG9hZGVkLCBob3dldmVyCisgICAgICAgIHRoaXMg
bWlnaHQgcmVncmVzcyBQTFQsIHNvIGluc3RlYWQsIHdlIHdpbGwgY2hlY2sgdGhlIGxvYWQgc3Rh
dGUgb2YgdGhvc2UgcHJvcGVydGllcyBiZWZvcmUgcmV0dXJuaW5nCisgICAgICAgIHZhbHVlcy4K
KworICAgICAgICBIb3dldmVyLCB0byBtYWtlIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgdGhyb3Vn
aCBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5pZGwvQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaWRs
CisgICAgICAgIGR5bmFtaWMsIGNoYW5nZXMgbmVlZCB0byBiZSBzaWduYWxlZCBhbmQgcHJvcGFn
YXRlZCB1cHdhcmQgdGhyb3VnaCB0aGUgbGF5ZXJzIGJldHdlZW4gQVZBc3NldFRyYWNrIGFuZAor
ICAgICAgICB0aGUgRE9NLiBSYXRoZXIgdGhhbiBtYWtlIGluZGl2aWR1YWwgbm90aWZpY2F0aW9u
cyBmb3IgZWFjaCBwcm9wZXJ0eSBpbiBhIENvbmZpZ3VyYXRpb24gc3RydWN0LCBtYWtlIG9uZQor
ICAgICAgICBub3RpZmljYXRpb24gdGhhdCBoYW5kbGVzIGFueSBjaGFuZ2UgdG8gdGhlIENvbmZp
Z3VyYXRpb24gc3RydWN0IGF0IGFsbCBhbmQgcHVzaCB0aGF0IHVwd2FyZCB0byBjbGllbnRzLgor
CisgICAgICAgIFNpbmNlIHRoZXNlIHByb3BlcnRpZXMgYXJlIGJlaW5nIGdyb3VwZWQgdG9nZXRo
ZXIgYXQgYSBsb3dlci1sZXZlbCwgdGhleSBkbyBub3QgbmVlZCB0byBiZSB0cmFja2VkCisgICAg
ICAgIGluZGl2aWR1YWxseSwgYW5kIFZpZGVvL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uSW5pdCBj
YW4ganVzdCBiZSBhbGlhc2VkIHRvIGEgcGxhdGZvcm0tZGVmaW5lZCBzdHJ1Y3QuCisKKyAgICAg
ICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9U
cmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
azo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21Qcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0F1ZGlvVHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0U3Rh
dGUpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6Y29uZmlndXJhdGlvbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6dXBkYXRlQ29uZmlndXJhdGlvbkZy
b21Qcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaDoKKyAgICAgICAg
KiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6c2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmNvbG9yU3BhY2UgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OnNldENvbG9yU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OlZpZGVvVHJhY2tDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpj
b25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
Ojpjb2RlYyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJp
dmF0ZTo6c2V0Q29kZWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGU6OnNhbXBsZVJhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGU6OnNldFNhbXBsZVJhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9UcmFja1ByaXZhdGU6Om51bWJlck9mQ2hhbm5lbHMgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldE51bWJlck9mQ2hhbm5lbHMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OmJpdHJhdGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNl
dEJpdHJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpj
b25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
Ojpjb2RlYyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJp
dmF0ZTo6c2V0Q29kZWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGU6OndpZHRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2tQcml2YXRlOjpzZXRXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZTo6aGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlOjpzZXRIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGU6OmNvbG9yU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENvbG9yU3BhY2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmZyYW1lcmF0ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6c2V0RnJhbWVyYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpiaXRyYXRlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRC
aXRyYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjpzZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnNldEF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6YXNzZXRUcmFja0NvbmZpZ3VyYXRpb25LZXlOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmluaXRpYWxpemVBc3Nl
dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OnZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrUHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OmF1ZGlvVHJh
Y2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9w
ZXJ0aWVzRnJvbVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQzo6dmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXNldFByb3BlcnRpZXNGcm9tVHJhY2spOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OlZpZGVvVHJhY2tQ
cml2YXRlV2ViTSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OnVw
ZGF0ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1Zp
ZGVvVHJhY2tQcml2YXRlV2ViTS5oOgorCiAyMDIyLTAxLTA0ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gY2hhbmdpbmcgdGhl
IHRpbWluZyBvZiBhIHRyYW5zaXRpb24gc3VjaCB0aGF0IGl0J3MgZmluaXNoZWQgc2hvdWxkIG5v
IGxvbmdlciBoYXZlIGl0IG1hcmtlZCBhcyBydW5uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMjlkMjY0YTBi
NmY0ZWVhMDc4OGZkMmJhZWViNWY0ZTM4OTY3NDMuLjA4NjBkNmVmYjMxZDk5NTQ3MWI3M2I5YTll
MTcwZDdlZTRhNTdhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMTItMzEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBIYW5nIGlu
IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmJpdHJhdGUoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NzUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFByb3BhZ2F0ZSBjaGFuZ2VzIHRvIFRyYWNrQ29u
ZmlndXJhdGlvbnMgdXB3YXJkcyBmcm9tIHRoZSBHUFUgcHJvY2VzcyAtPiBXZWJDb250ZW50IHBy
b2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2sp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlv
VHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFu
Z2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZTo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZSk6CisKIDIwMjItMDEtMDMg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10g
SW5pdGlhbGl6ZSBzYW5kYm94IGJlZm9yZSBpbml0aWFsaXppbmcgV2ViS2l0IHByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IGY4Yjg5ZjBlZWZmZmQ5ZTAzMDdiNjQ5OTU3NGRmMjQxNTFlY2Nl
OWQuLmE2OWZiNjk1NTljYjMzN2IyYTk3MzU2OGU1OTRlNmY5YjM5ZDQyYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTUyNSw2ICsxNTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BpeGVsQnVmZmVyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9QaXhlbEJ1ZmZlckZvcm1hdC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGl4ZWxGb3JtYXQuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtQXVkaW9UcmFja0Nv
bmZpZ3VyYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtQ29sb3JTcGFjZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybUltYWdlLmgKQEAgLTE1MzQsOSArMTUzNSwxMSBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRl
eHRUcmFjay5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1WaWRlb0NvbG9yUHJpbWFyaWVzLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1WaWRlb01hdHJpeENvZWZmaWNpZW50cy5oCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9SZWdpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Y29kZWNzL1ZpZGVvQ29sb3JTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2Rl
Y3MvVmlkZW9Db2xvclNwYWNlLmgKaW5kZXggYWU4YmYyYjMwNTcxMzU0ODk3YmQ2YWIxYmFkMmRk
NTcxN2YyM2QwNC4uZTkwZTUwNjIwZDM0MDQwYzA0YzVhNDY3ZWM3NWRmZDA0YmY3MjFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJjb2RlY3MvVmlkZW9Db2xvclNwYWNl
LmgKQEAgLTQwLDggKzQwLDExIEBAIGNsYXNzIFZpZGVvQ29sb3JTcGFjZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFZpZGVvQ29sb3JTcGFjZT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9Db2xvclNwYWNlPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFZpZGVvQ29sb3JTcGFjZSgpKTsgfTsKKyAgICBzdGF0aWMgUmVmPFZp
ZGVvQ29sb3JTcGFjZT4gY3JlYXRlKGNvbnN0IFZpZGVvQ29sb3JTcGFjZUluaXQmIGluaXQpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9Db2xvclNwYWNlKGluaXQpKTsgfQogICAgIHN0YXRp
YyBSZWY8VmlkZW9Db2xvclNwYWNlPiBjcmVhdGUoVmlkZW9Db2xvclNwYWNlSW5pdCYmIGluaXQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9Db2xvclNwYWNlKFdURk1vdmUoaW5pdCkpKTsg
fQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBWaWRlb0NvbG9yU3BhY2VJbml0JiBzdGF0ZSkg
eyBtX3N0YXRlID0gc3RhdGU7IH0KKwogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmlkZW9Db2xv
clByaW1hcmllcz4mIHByaW1hcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUucHJpbWFyaWVz
OyB9CiAgICAgdm9pZCBzZXRQcmltYXJpZXMoc3RkOjpvcHRpb25hbDxWaWRlb0NvbG9yUHJpbWFy
aWVzPiYmIHByaW1hcmllcykgeyBtX3N0YXRlLnByaW1hcmllcyA9IFdURk1vdmUocHJpbWFyaWVz
KTsgfQogCkBAIC01Niw2ICs1OSwxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVmlkZW9D
b2xvclNwYWNlKCkgPSBkZWZhdWx0OworICAgIFZpZGVvQ29sb3JTcGFjZShjb25zdCBWaWRlb0Nv
bG9yU3BhY2VJbml0JiBpbml0KQorICAgICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICB7CisgICAg
fQogICAgIFZpZGVvQ29sb3JTcGFjZShWaWRlb0NvbG9yU3BhY2VJbml0JiYgaW5pdCkKICAgICAg
ICAgOiBtX3N0YXRlKFdURk1vdmUoaW5pdCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdmMmRmMDQ1MTE3NDg5YThl
MGRmMzIyZDM4YTcxNDc3MWJhOTE3ZGQuLmZmMzgzMTRjOTkyMTNiNGI3ZmIzMzQzZTQzZDEwODUw
NzQ4ZDhhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ1NzcsNiArNDU3Nyw5IEBACiAJCUNEQ0M5QkQxMjIzODdFQUEwMEZG
QjUxQyAvKiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQzlCRDAyMjM4N0VBQTAwRkZCNTFDIC8q
IE1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RDRDQxRTgxQzNEREIwQTAwOTY1RDk5IC8qIFBh
cnNlZENvbnRlbnRSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RDRDQxRTYxQzNEREIwOTAwOTY1RDk5IC8qIFBhcnNlZENvbnRlbnRSYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQ0ZB
QkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyog
SGlnaGxpZ2h0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUNERDA4QUJEMjc3RTU0MjYwMEVBMzc1NSAvKiBQbGF0Zm9ybVRyYWNrQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0REMDhBQkMyNzdFNTQyNjAwRUEzNzU1IC8qIFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhB
QzAyNzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDA4QUJGMjc3
RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0REMDhBQzIyNzdF
NTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDA4QUMxMjc3RTU1NEUw
MEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RENzA4OTcxODM1OUY2RjAw
MkIzREM2IC8qIFNhbXBsZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEREMxRTdBMThB
OTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEREMxRTc5MThBOTUyRjMwMDI3QTlE
NCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVk
aW9UcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERTNBODUyMTdGNUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFW
Ri5oICovOyB9OwpAQCAtMTYxNTIsNiArMTYxNTUsOSBAQAogCQlDRENFNUNEMDE0NjMzQkM5MDBE
NDdDQ0EgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2
ZW50VGFyZ2V0RmFjdG9yeS5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRkFC
QkIxOEMwQUUzMTAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogSGlnaGxpZ2h0RGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGlnaHREYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQkMyNzdFNTQyNjAwRUEzNzU1IC8qIFBsYXRm
b3JtVHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVHJhY2tDb25m
aWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDA4QUJGMjc3RTU0
RjAwMEVBMzc1NSAvKiBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQxRTUyNTE2N0JB
NTY0MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTQxODM1OUY2RTAwMkIzREM2IC8qIFNhbXBsZU1hcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYgLyog
U2FtcGxlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZU1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg5MDUsNiArMjg5MTEsNyBAQAogCQkJ
CUJDNjM1RThCMjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhlbEJ1ZmZlckZvcm1hdC5oICovLAogCQkJ
CUJDNjM1RTkwMjY0QzQ2OUYwMDBFRjMzQSAvKiBQaXhlbEZvcm1hdC5jcHAgKi8sCiAJCQkJQkNB
NTU5MTIyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggKi8sCisJCQkJQ0REMDhBQkYy
NzdFNTRGMDAwRUEzNzU1IC8qIFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24uaCAqLywK
IAkJCQlCQzNFNjI0MjI2NTk3OTE3MDA1NDhBQ0QgLyogUGxhdGZvcm1Db2xvclNwYWNlLmggKi8s
CiAJCQkJNzI2RDU2RTEyNTNBRTA0MzAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCAqLywKIAkJ
CQk3MkJBQzNBNjIzRTE3MzI4MDA4RDc0MUMgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oICovLApA
QCAtMjg5MTQsOSArMjg5MjEsMTEgQEAKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyog
UGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyog
UGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMg
LyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCisJCQkJQ0REMDhBQkMyNzdFNTQyNjAwRUEzNzU1
IC8qIFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJQ0QxRjlBRkIyNkZEMzhD
OTAwNjE3RUI2IC8qIFBsYXRmb3JtVmlkZW9Db2xvclByaW1hcmllcy5oICovLAogCQkJCUNEMUY5
QUZBMjZGRDM4NTkwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oICovLAogCQkJ
CUNEMUY5QUZEMjZGRDM4Q0IwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvTWF0cml4Q29lZmZpY2ll
bnRzLmggKi8sCisJCQkJQ0REMDhBQzEyNzdFNTU0RTAwRUEzNzU1IC8qIFBsYXRmb3JtVmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQlDRDFGOUFGQzI2RkQzOENBMDA2MTdFQjYgLyog
UGxhdGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmggKi8sCiAJCQkJQkNBQjQxN0Yx
M0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgKi8sCiAJCQkJQkNBQjQxODAxM0UzNTZFODAw
RDhBQUYzIC8qIFJlZ2lvbi5oICovLApAQCAtMzY0MjQsNiArMzY0MzMsNyBAQAogCQkJCUJDNjM1
RThDMjY0QzJDQUUwMDBFRjMzQSAvKiBQaXhlbEJ1ZmZlckZvcm1hdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNBNTU5MTQyNjNEQkQ3OTAwN0YxOUIzIC8qIFBpeGVsRm9ybWF0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREVGQTIyODFFNzY2OUU4MDAwQUU5OUMgLyogUGxhdGZvcm1BdWRpb0RhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNERDA4QUMwMjc3RTU0RjAwMEVBMzc1NSAvKiBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTlCM0VERDEy
OERCNTAyMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1RTIwMDYxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3Jt
Q0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NDU1LDkgKzM2NDY1LDExIEBACiAJCQkJ
MUFEOEY4MUIxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3RDA3MzMxODg0QzU2QzAwQjRBRjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZv
cm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREQwOEFCRDI3N0U1NDI2MDBFQTM3
NTUgLyogUGxhdGZvcm1UcmFja0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MUY5QjAyMjcwMDMyM0QwMDYxN0VCNiAvKiBQbGF0Zm9ybVZpZGVvQ29sb3JQcmltYXJpZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMUY5QjAxMjcwMDIwQjcwMDYxN0VCNiAvKiBQbGF0Zm9ybVZp
ZGVvQ29sb3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxRjlCMDMyNzAwMzIzRDAwNjE3
RUI2IC8qIFBsYXRmb3JtVmlkZW9NYXRyaXhDb2VmZmljaWVudHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNERDA4QUMyMjc3RTU1NEUwMEVBMzc1NSAvKiBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDFGOUIwNDI3MDAzMjNEMDA2MTdFQjYgLyog
UGxhdGZvcm1WaWRlb1RyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNw
cAppbmRleCBhMjcxMDY3NWU4YTc0MDk0NGU2OWY5YWVmNzFlOTc4OTMxZWE4NWNmLi42OTk0YjEx
MzFlMjM0OGU0ZWU5ZDI1YzA5YWNkNGRmNjU4N2MxMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTE3MSw2ICsxNzEsMTEgQEAgdm9pZCBBdWRpb1RyYWNr
OjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKK3ZvaWQgQXVkaW9U
cmFjazo6Y29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRl
KGNvbmZpZ3VyYXRpb24pOworfQorCiB2b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBB
dG9tU3RyaW5nJiBpZCkKIHsKICAgICBzZXRJZChpZCk7CkBAIC0yMzEsMTAgKzIzNiw3IEBAIHZv
aWQgQXVkaW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKIAogdm9pZCBBdWRpb1RyYWNr
Ojp1cGRhdGVDb25maWd1cmF0aW9uRnJvbVByaXZhdGUoKQogewotICAgIG1fY29uZmlndXJhdGlv
bi0+c2V0Q29kZWMobV9wcml2YXRlLT5jb2RlYygpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNl
dFNhbXBsZVJhdGUobV9wcml2YXRlLT5zYW1wbGVSYXRlKCkpOwotICAgIG1fY29uZmlndXJhdGlv
bi0+c2V0TnVtYmVyT2ZDaGFubmVscyhtX3ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSk7Ci0g
ICAgbV9jb25maWd1cmF0aW9uLT5zZXRCaXRyYXRlKG1fcHJpdmF0ZS0+Yml0cmF0ZSgpKTsKKyAg
ICBtX2NvbmZpZ3VyYXRpb24tPnNldFN0YXRlKG1fcHJpdmF0ZS0+Y29uZmlndXJhdGlvbigpKTsK
IH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaAppbmRleCA0ZjAwNzA4MTcyZThkNWY4Mjc4YzAzYTU0OGNkZTViNmE2Y2FjYWM1
Li40ZTE4NmMxNjYyMDdiMDdhNzhkMGU3NmVjNGQzZGQwOTA5OTYxNzI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJv
b2wpIGZpbmFsOworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoY29uc3QgUGxhdGZvcm1B
dWRpb1RyYWNrQ29uZmlndXJhdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFz
ZUNsaWVudAogICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24u
aAppbmRleCA2ZDcwYmNiOGQwZGExYmJmMjkyYTM1NThjYTBkOTAxYmVlZTExOGQ2Li5lODQ3NGJi
NmNhOTlkNWViNTM1ZjA1MzFiZmYyNTBhMmMyOTlkNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0yNywxNiArMjcs
MTIgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlBsYXRmb3JtQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0IHsK
LSAgICBTdHJpbmcgY29kZWM7Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1
aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVpbnQ2NF90IGJpdHJhdGUgeyAw
IH07Ci19OwordXNpbmcgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0ID0gUGxhdGZvcm1BdWRp
b1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDQsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrQ29uZmlndXJhdGlvbj4gY3JlYXRlKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
SW5pdCYmIGluaXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0NvbmZpZ3VyYXRp
b24oV1RGTW92ZShpbml0KSkpOyB9CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbigpKTsgfQogCisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdWRpb1RyYWNrQ29uZmlndXJh
dGlvbkluaXQmIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQorCiAgICAgU3RyaW5nIGNvZGVj
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5jb2RlYzsgfQogICAgIHZvaWQgc2V0Q29kZWMoU3Ry
aW5nIGNvZGVjKSB7IG1fc3RhdGUuY29kZWMgPSBjb2RlYzsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA3OTU3NzMzMzc5NWNkOTAzMTNmNGEzZTI3Nzhh
YTBhZmZkNzNkZGMxLi43M2U5ZDBmMTdhZjU2NWI3YTJkMWQ5OTNjOTJjNzM3ZDc5NGY0NGE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTE2NCw2ICsxNjQs
MTEgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKICAg
ICB9KTsKIH0KIAordm9pZCBWaWRlb1RyYWNrOjpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIG1f
Y29uZmlndXJhdGlvbi0+c2V0U3RhdGUoY29uZmlndXJhdGlvbik7Cit9CisKIHZvaWQgVmlkZW9U
cmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmIGlkKQogewogICAgIHNldElkKGlkKTsK
QEAgLTI2MiwxMiArMjY3LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZh
dGUoKQogCiB2b2lkIFZpZGVvVHJhY2s6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgp
CiB7Ci0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRDb2RlYyhtX3ByaXZhdGUtPmNvZGVjKCkpOwot
ICAgIG1fY29uZmlndXJhdGlvbi0+c2V0V2lkdGgobV9wcml2YXRlLT53aWR0aCgpKTsKLSAgICBt
X2NvbmZpZ3VyYXRpb24tPnNldEhlaWdodChtX3ByaXZhdGUtPmhlaWdodCgpKTsKLSAgICBtX2Nv
bmZpZ3VyYXRpb24tPnNldENvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUobV9wcml2
YXRlLT5jb2xvclNwYWNlKCkpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEZyYW1lcmF0ZSht
X3ByaXZhdGUtPmZyYW1lcmF0ZSgpKTsKLSAgICBtX2NvbmZpZ3VyYXRpb24tPnNldEJpdHJhdGUo
bV9wcml2YXRlLT5iaXRyYXRlKCkpOworICAgIG1fY29uZmlndXJhdGlvbi0+c2V0U3RhdGUobV9w
cml2YXRlLT5jb25maWd1cmF0aW9uKCkpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IDdhOTc4YzczMjM2MGI3
Nzc3NjQ3ZjQyZWRiZjIxMDY4NmQxNDBkMTguLmUxZTBlOWIwMjU4ZDUxMjc2Mjk3MDZkMGVjNDIy
YTNjYmQwM2Y2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC04
Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAog
ICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgY29uZmlndXJh
dGlvbkNoYW5nZWQoKSBmaW5hbCB7IHVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tUHJpdmF0ZSgpOyB9
CisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uJikgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50CiAg
ICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oCmluZGV4IGQy
MGQyNDNjYTYxMDZlZWNmMzRmOTFlNGQzNWIzY2JkYjdkOTdiMmYuLmM1OTYxZjQ5MWQ4MDBmY2Qz
NGUzNDA2OWM3ZDc4ZDRlZjNiY2UyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgKQEAgLTI3LDE5ICsyNywxMyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgIlZpZGVvQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBWaWRlb1RyYWNr
Q29uZmlndXJhdGlvbkluaXQgewotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0
aCB7IDAgfTsKLSAgICB1aW50MzJfdCBoZWlnaHQgeyAwIH07Ci0gICAgUmVmUHRyPFZpZGVvQ29s
b3JTcGFjZT4gY29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlIHsgMCB9OwotICAgIHVp
bnQ2NF90IGJpdHJhdGUgeyAwIH07Ci19OwordXNpbmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25J
bml0ID0gUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb1RyYWNrQ29uZmlndXJhdGlv
bj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDcsNiArNDEsMTIgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZShWaWRl
b1RyYWNrQ29uZmlndXJhdGlvbkluaXQmJiBpbml0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFZp
ZGVvVHJhY2tDb25maWd1cmF0aW9uKFdURk1vdmUoaW5pdCkpKTsgfQogICAgIHN0YXRpYyBSZWY8
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24oKSk7IH0KIAorICAgIHZvaWQgc2V0U3RhdGUoY29uc3Qg
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25Jbml0JiBzdGF0ZSkKKyAgICB7CisgICAgICAgIG1fc3Rh
dGUgPSBzdGF0ZTsKKyAgICAgICAgbV9jb2xvclNwYWNlLT5zZXRTdGF0ZShtX3N0YXRlLmNvbG9y
U3BhY2UpOworICAgIH0KKwogICAgIFN0cmluZyBjb2RlYygpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUuY29kZWM7IH0KICAgICB2b2lkIHNldENvZGVjKFN0cmluZyBjb2RlYykgeyBtX3N0YXRlLmNv
ZGVjID0gY29kZWM7IH0KIApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAgICAgdWludDMyX3Qg
aGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhl
aWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9zdGF0ZS5oZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAg
IFJlZlB0cjxWaWRlb0NvbG9yU3BhY2U+IGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlLmNvbG9yU3BhY2U7IH0KLSAgICB2b2lkIHNldENvbG9yU3BhY2UoUmVmUHRyPFZpZGVvQ29s
b3JTcGFjZT4mJiBjb2xvclNwYWNlKSB7IG1fc3RhdGUuY29sb3JTcGFjZSA9IFdURk1vdmUoY29s
b3JTcGFjZSk7IH0KKyAgICBSZWY8VmlkZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2xvclNwYWNlOyB9CisgICAgdm9pZCBzZXRDb2xvclNwYWNlKFJlZjxWaWRl
b0NvbG9yU3BhY2U+JiYgY29sb3JTcGFjZSkgeyBtX2NvbG9yU3BhY2UgPSBXVEZNb3ZlKGNvbG9y
U3BhY2UpOyB9CiAKICAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZS5mcmFtZXJhdGU7IH0KICAgICB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJhbWVyYXRlKSB7
IG1fc3RhdGUuZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9CkBAIC02OCwxMSArNjgsMTYgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrQ29u
ZmlndXJhdGlvbkluaXQmJiBpbml0KQogICAgICAgICA6IG1fc3RhdGUoaW5pdCkKKyAgICAgICAg
LCBtX2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoaW5pdC5jb2xvclNwYWNlKSkK
KyAgICB7CisgICAgfQorICAgIFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiBt
X2NvbG9yU3BhY2UoVmlkZW9Db2xvclNwYWNlOjpjcmVhdGUoKSkKICAgICB7CiAgICAgfQotICAg
IFZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb25Jbml0IG1fc3RhdGU7CisgICAgUmVmPFZpZGVvQ29sb3JTcGFjZT4gbV9jb2xv
clNwYWNlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5kZXggMzJlYzU4ZGU0MmZmZTlkY2JmNDM4YmM3YzZk
N2E2YzI3OTBlMjExNS4uZjljMDAzMjQ3NDU2ZTM4ODA5ZmRmMTg3YjA3NzI3MTkyMTUwM2NmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNr
UHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1BdWRpb1RyYWNrQ29u
ZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KIApAQCAtNjQsMTggKzY1LDE2IEBAIHB1YmxpYzoKIAogICAgIHVzaW5n
IEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEF1ZGlvVHJhY2tQcml2YXRl
JiwgYm9vbCBlbmFibGVkKT47CiAgICAgdm9pZCBzZXRFbmFibGVkQ2hhbmdlZENhbGxiYWNrKEVu
YWJsZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQotICAgIAotICAgIFN0cmluZyBjb2RlYygpIGNvbnN0
IHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB2b2lkIHNldENvZGVjKFN0cmluZyYmIGNvZGVjKSB7
IG1fY29kZWMgPSBXVEZNb3ZlKGNvZGVjKTsgfQotICAgIAotICAgIHVpbnQzMl90IHNhbXBsZVJh
dGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVJh
dGUodWludDMyX3Qgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9Ci0g
ICAgCi0gICAgdWludDMyX3QgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fbnVt
YmVyT2ZDaGFubmVsczsgfQotICAgIHZvaWQgc2V0TnVtYmVyT2ZDaGFubmVscyh1aW50MzJfdCBu
dW1iZXJPZkNoYW5uZWxzKSB7IG1fbnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7
IH0KLSAgICAKLSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRl
OyB9Ci0gICAgdm9pZCBzZXRCaXRyYXRlKHVpbnQ2NF90IGJpdHJhdGUpIHsgbV9iaXRyYXRlID0g
Yml0cmF0ZTsgfQorCisgICAgY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYg
Y29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZv
aWQgc2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmln
dXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0g
V1RGTW92ZShjb25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAg
ICAgbV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAg
fQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkF1ZGlvVHJhY2tQcml2YXRlIjsgfQpAQCAt
ODcsMTAgKzg2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07
Ci0gICAgU3RyaW5nIG1fY29kZWM7Ci0gICAgdWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9Owot
ICAgIHVpbnQzMl90IG1fbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2Jp
dHJhdGUgeyAwIH07CisgICAgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiBtX2NvbmZp
Z3VyYXRpb247CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2Fs
bGJhY2s7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCAwYWUyMDQ1MTc5ZTE3OWM5Mzdk
YmY2NjNlMDc1YTk0NGU4MzZkY2Q4Li42MWVlODY0NDE3ODQyOTg5NTI1YjVmNGU4NzY0NzAwZGNk
YjI5NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTMyLDEwICszMiwxMiBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKK3N0cnVjdCBQbGF0Zm9y
bUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25maWd1
cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJikgPSAw
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2YmYxNzcyYWZhYzZmZTMzNzlmN2FmMDk1Y2I0MmQ0N2ZjMDQwZDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiUGxhdGZvcm1UcmFja0NvbmZpZ3Vy
YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGxhdGZvcm1BdWRpb1Ry
YWNrQ29uZmlndXJhdGlvbiA6IFBsYXRmb3JtVHJhY2tDb25maWd1cmF0aW9uIHsKKyAgICB1aW50
MzJfdCBzYW1wbGVSYXRlIHsgMCB9OworICAgIHVpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMgeyAw
IH07CisgICAgdWludDY0X3QgYml0cmF0ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlIDxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFBsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24mKTsKK307CisKK2lubGluZSBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgYSwgY29uc3Qg
UGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5jb2Rl
YyA9PSBiLmNvZGVjCisgICAgICAgICYmIGEuc2FtcGxlUmF0ZSA9PSBiLnNhbXBsZVJhdGUKKyAg
ICAgICAgJiYgYS5udW1iZXJPZkNoYW5uZWxzID09IGIubnVtYmVyT2ZDaGFubmVscworICAgICAg
ICAmJiBhLmJpdHJhdGUgPT0gYi5iaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgUGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjb2RlYzsKKyAgICBlbmNvZGVyIDw8
IHNhbXBsZVJhdGU7CisgICAgZW5jb2RlciA8PCBudW1iZXJPZkNoYW5uZWxzOworICAgIGVuY29k
ZXIgPDwgYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Citib29sIFBsYXRm
b3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQbGF0
Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIHJldHVy
biBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmNvZGVjKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLnNhbXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlKGNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscykKKyAgICAgICAgJiYgZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5iaXRyYXRlKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVHJhY2tDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRyYWNr
Q29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZjk3YTYwMGY4NGU0MzA3NzViNTg5MDE2MGY0
YTA2N2Y0OGQyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQ
bGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgU3RyaW5nIGNvZGVjOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVmlkZW9Db2xvclNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZS5oCmluZGV4IDI4ODc0M2RlNWY3MTMyZTYwYTBjMGNj
YzQ3MTllZDEyNWFhMGY3YTEuLjUwZTRhYjkyNzY0NTAwYTVhY2EzZjFlNzRhOWI4ODhmYTFiNTRj
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VmlkZW9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UuaApAQCAtNDMsNiArNDMsMTkgQEAgc3RydWN0IFBsYXRm
b3JtVmlkZW9Db2xvclNwYWNlIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZvcm1WaWRlb0Nv
bG9yU3BhY2UmKTsKIH07CiAKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGxhdGZvcm1W
aWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlJiBiKQorewor
ICAgIHJldHVybiBhLnByaW1hcmllcyA9PSBiLnByaW1hcmllcworICAgICAgICAmJiBhLnRyYW5z
ZmVyID09IGIudHJhbnNmZXIKKyAgICAgICAgJiYgYS5tYXRyaXggPT0gYi5tYXRyaXgKKyAgICAg
ICAgJiYgYS5mdWxsUmFuZ2UgPT0gYi5mdWxsUmFuZ2U7Cit9CisKK2lubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UmIGEsIGNvbnN0IFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlJiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIHRlbXBsYXRl
IDxjbGFzcyBFbmNvZGVyPgogdm9pZCBQbGF0Zm9ybVZpZGVvQ29sb3JTcGFjZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjUzYjE5MGJjZjZmMGFlN2Y4ZjdhMjRkZDYyMWFmNTcyOTZhZWZjYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJQbGF0Zm9y
bVRyYWNrQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9Db2xvclNwYWNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFBsYXRmb3JtVmlkZW9UcmFja0Nv
bmZpZ3VyYXRpb24gOiBQbGF0Zm9ybVRyYWNrQ29uZmlndXJhdGlvbiB7CisgICAgdWludDMyX3Qg
d2lkdGggeyAwIH07CisgICAgdWludDMyX3QgaGVpZ2h0IHsgMCB9OworICAgIFBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlIGNvbG9yU3BhY2U7CisgICAgZG91YmxlIGZyYW1lcmF0ZSB7IDAgfTsKKyAg
ICB1aW50NjRfdCBiaXRyYXRlIHsgMCB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgUGxhdGZv
cm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYpOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBhLCBjb25zdCBQbGF0Zm9y
bVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiBiKQoreworICAgIHJldHVybiBhLmNvZGVjID09IGIu
Y29kZWMKKyAgICAgICAgJiYgYS53aWR0aCA9PSBiLndpZHRoCisgICAgICAgICYmIGEuaGVpZ2h0
ID09IGIuaGVpZ2h0CisgICAgICAgICYmIGEuY29sb3JTcGFjZSA9PSBiLmNvbG9yU3BhY2UKKyAg
ICAgICAgJiYgYS5mcmFtZXJhdGUgPT0gYi5mcmFtZXJhdGUKKyAgICAgICAgJiYgYS5iaXRyYXRl
ID09IGIuYml0cmF0ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+Cit2b2lkIFBsYXRm
b3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgY29kZWM7CisgICAgZW5jb2RlciA8PCB3aWR0aDsKKyAgICBl
bmNvZGVyIDw8IGhlaWdodDsKKyAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CisgICAgZW5jb2Rl
ciA8PCBmcmFtZXJhdGU7CisgICAgZW5jb2RlciA8PCBiaXRyYXRlOworfQorCit0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24u
Y29kZWMpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ud2lkdGgpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaGVpZ2h0KQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmNvbG9yU3BhY2UpCisgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZnJhbWVyYXRlKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLmJpdHJhdGUpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgK
aW5kZXggNTJjOWZlMjIwZjMwYTNmMzE5NTcyOTMyZDM2YWM2ZDk5MzEwYjM1Ni4uZTMwZTkwMDkz
MGI2NjM0MGZjZTA4ZmQyYmMxYWE2YTE0ZmIzYjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNyw3ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVZpZGVvQ29sb3JT
cGFjZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24uaCIKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVD
bGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KQEAgLTYyLDM2ICs2MiwyMyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KFZpZGVvVHJhY2tQcml2YXRlJiwgYm9vbCBzZWxlY3RlZCk+OwogICAgIHZvaWQgc2V0U2VsZWN0
ZWRDaGFuZ2VkQ2FsbGJhY2soU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBt
X3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KIAotICAgIHZp
cnR1YWwgU3RyaW5nIGNvZGVjKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlYzsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXRDb2RlYyhTdHJpbmcmJiBjb2RlYykgeyBtX2NvZGVjID0gV1RGTW92ZShjb2Rl
Yyk7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4g
bV93aWR0aDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaWR0aCh1aW50MzJfdCB3aWR0aCkgeyBt
X3dpZHRoID0gd2lkdGg7IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVpbnQzMl90IGhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEhlaWdodCh1aW50
MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KLSAgICAKLSAgICB2aXJ0dWFsIFBs
YXRmb3JtVmlkZW9Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9y
U3BhY2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFjZShQbGF0Zm9ybVZpZGVvQ29s
b3JTcGFjZSYmIGNvbG9yU3BhY2UpIHsgbV9jb2xvclNwYWNlID0gV1RGTW92ZShjb2xvclNwYWNl
KTsgfQotICAgIAotICAgIHZpcnR1YWwgZG91YmxlIGZyYW1lcmF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVyYXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEZyYW1lcmF0ZShkb3VibGUgZnJh
bWVyYXRlKSB7IG1fZnJhbWVyYXRlID0gZnJhbWVyYXRlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB1
aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iaXRyYXRlOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldEJpdHJhdGUodWludDY0X3QgYml0cmF0ZSkgeyBtX2JpdHJhdGUgPSBiaXRyYXRl
OyB9Ci0gICAgCisgICAgY29uc3QgUGxhdGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbjsgfQorICAgIHZvaWQg
c2V0Q29uZmlndXJhdGlvbihQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChjb25maWd1cmF0aW9uID09IG1fY29uZmlndXJh
dGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gV1RG
TW92ZShjb25maWd1cmF0aW9uKTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAg
bV9jbGllbnQtPmNvbmZpZ3VyYXRpb25DaGFuZ2VkKG1fY29uZmlndXJhdGlvbik7CisgICAgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZh
dGU6CiAgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxs
cHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsKLSAgICBTdHJpbmcgbV9jb2Rl
YzsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQzMl90IG1faGVpZ2h0IHsg
MCB9OwotICAgIFBsYXRmb3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JTcGFjZTsKLSAgICBkb3Vi
bGUgbV9mcmFtZXJhdGUgeyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsgMCB9OworICAg
IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOwogCiAgICAg
U2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFjazsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQuaAppbmRleCBkNTFiMzcyMTIzYWU0MDQwYmQwZTY1NzhiNGEwODk3NTk5
NDFlZTBkLi42NWI3YmY2Njc3MTg3ZDlkMmMxMDEzODVmZTM3M2M1OTQ3MWVhNjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50LmgKQEAgLTMxLDEwICszMSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0cnVjdCBQbGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uOworCiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNvbmZpZ3VyYXRpb25DaGFuZ2VkKGNvbnN0IFBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRp
b24mKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwuaAppbmRleCBkMmJjNWYyNjZmMjUwMDNmMGI3NjZlYTA5MzgzNzY0YjNkOTdlM2Fj
Li41NjNkMDFhMzA4NzRiOTlkN2YxYTY0YWVmZjJiOGI4ZjZhMWE5MzYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVmlkZW9D
b2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3
dGYvT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgogCkBAIC00NSw4ICs0NiwxMCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVD
TUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakM7CitzdHJ1Y3QgUGxh
dGZvcm1WaWRlb1RyYWNrQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBQbGF0Zm9ybUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uOwogCi1jbGFzcyBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsIHsKK2NsYXNz
IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIGV4cGxpY2l0IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwoQVZQbGF5ZXJJdGVt
VHJhY2sqKTsKQEAgLTcxLDYgKzc0LDIwIEBAIHB1YmxpYzoKIAogICAgIGludCB0cmFja0lEKCkg
Y29uc3Q7CiAKKyAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZBc3NldFRyYWNrKEFWQXNz
ZXRUcmFjayopOworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VGb3JBVk1lZGlhU2VsZWN0aW9u
T3B0aW9uKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKik7CisKKyAgICBQbGF0Zm9ybVZpZGVvVHJh
Y2tDb25maWd1cmF0aW9uIHZpZGVvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3Q7CisgICAgdXNp
bmcgVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47Cisg
ICAgdm9pZCBzZXRWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKFZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25P
YnNlcnZlciA9IG9ic2VydmVyOyB9CisKKyAgICBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uIGF1ZGlvVHJhY2tDb25maWd1cmF0aW9uKCkgY29uc3Q7CisgICAgdXNpbmcgQXVkaW9UcmFj
a0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47CisgICAgdm9pZCBzZXRB
dWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2Jz
ZXJ2ZXImIG9ic2VydmVyKSB7IG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlciA9IG9i
c2VydmVyOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplQXNzZXRUcmFjaygpOwor
CiAgICAgU3RyaW5nIGNvZGVjKCkgY29uc3Q7CiAgICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdDsK
ICAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdDsKQEAgLTc5LDE0ICs5NiwxMyBAQCBwdWJsaWM6
CiAgICAgdWludDY0X3QgYml0cmF0ZSgpIGNvbnN0OwogICAgIHVpbnQzMl90IHNhbXBsZVJhdGUo
KSBjb25zdDsKICAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3Q7Ci0gICAgc3Rh
dGljIFN0cmluZyBsYW5ndWFnZUZvckFWQXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKLSAgICBz
dGF0aWMgU3RyaW5nIGxhbmd1YWdlRm9yQVZNZWRpYVNlbGVjdGlvbk9wdGlvbihBVk1lZGlhU2Vs
ZWN0aW9uT3B0aW9uICopOwogCi1wcml2YXRlOgogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1U
cmFjaz4gbV9wbGF5ZXJJdGVtVHJhY2s7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXRUcmFjaz4gbV9h
c3NldFRyYWNrOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fcGxheWVySXRlbTsKICAg
ICBSZWZQdHI8TWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDPiBtX21lZGlhU2VsZWN0aW9uT3B0
aW9uOworICAgIFJldGFpblB0cjxBVkFzc2V0VHJhY2s+IG1fYXNzZXRUcmFjazsKKyAgICBXZWFr
UHRyPFZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXI+IG1fdmlkZW9UcmFja0NvbmZpZ3Vy
YXRpb25PYnNlcnZlcjsKKyAgICBXZWFrUHRyPEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2
ZXI+IG1fYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KaW5kZXggNGI3MjU5MDdi
NGI0YjI1NWQwNzJkNTE2YTU2M2I4NDY1NDgwNmY5Mi4uMjI5MGE5ZDBkZWI2Nzk0MjY5ZmNiYTBh
Y2UzYzdjZjY0NjQzYmIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGwubW0KQEAgLTMwLDYgKzMwLDggQEAKIAogI2ltcG9ydCAiRm9ybWF0RGVzY3Jp
cHRpb25VdGlsaXRpZXMuaCIKICNpbXBvcnQgIk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgi
CisjaW1wb3J0ICJQbGF0Zm9ybUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uLmgiCisjaW1wb3J0ICJQ
bGF0Zm9ybVZpZGVvVHJhY2tDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIu
aCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0VHJhY2suaD4KICNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVk1lZGlhU2VsZWN0aW9uR3JvdXAuaD4KQEAgLTM3LDYgKzM5LDcgQEAKICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVlBsYXllckl0ZW0uaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VlBsYXllckl0ZW1UcmFjay5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNp
bXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgpAQCAtNDgsMjUgKzUxLDUw
IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNBcnJheSogYXNzZXRU
cmFja0NvbmZpZ3VyYXRpb25LZXlOYW1lcygpCit7CisgICAgc3RhdGljIE5TQXJyYXkqIGtleXMg
PSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAImZvcm1hdERlc2NyaXB0aW9ucyIs
IEAiZXN0aW1hdGVkRGF0YVJhdGUiLCBAIm5vbWluYWxGcmFtZVJhdGUiLCBuaWxdOworICAgIHJl
dHVybiBrZXlzOworfQorCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKICAgICA6IG1fcGxheWVySXRl
bVRyYWNrKHRyYWNrKQogICAgICwgbV9hc3NldFRyYWNrKFt0cmFjayBhc3NldFRyYWNrXSkKIHsK
KyAgICBpbml0aWFsaXplQXNzZXRUcmFjaygpOwogfQogCiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKEFWQXNzZXRUcmFjayogdHJhY2spCiAgICAg
OiBtX2Fzc2V0VHJhY2sodHJhY2spCiB7CisgICAgaW5pdGlhbGl6ZUFzc2V0VHJhY2soKTsKIH0K
IAogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbChN
ZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMmIG9wdGlvbikKICAgICA6IG1fbWVkaWFTZWxlY3Rp
b25PcHRpb24oJm9wdGlvbikKKyAgICAsIG1fYXNzZXRUcmFjayhvcHRpb24uYXNzZXRUcmFjaygp
KQogeworICAgIGluaXRpYWxpemVBc3NldFRyYWNrKCk7CiB9CiAKIEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGw6On5BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsKCkKIHsKIH0KKwordm9pZCBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsOjppbml0aWFsaXplQXNzZXRUcmFjaygpCit7CisgICAgaWYg
KCFtX2Fzc2V0VHJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIFttX2Fzc2V0VHJhY2sgbG9h
ZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czphc3NldFRyYWNrQ29uZmlndXJhdGlvbktleU5h
bWVzKCkgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gV2Vha1B0cih0aGlzKV0gKCkgbXV0
YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vh
a1RoaXMpXSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMgJiYgd2Vha1RoaXMtPm1fYXVkaW9U
cmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcikKKyAgICAgICAgICAgICAgICAoKndlYWtUaGlzLT5t
X2F1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIpKCk7CisgICAgICAgICAgICBpZiAod2Vh
a1RoaXMgJiYgd2Vha1RoaXMtPm1fdmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcikKKyAg
ICAgICAgICAgICAgICAoKndlYWtUaGlzLT5tX3ZpZGVvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2
ZXIpKCk7CisgICAgICAgIH0pOworICAgIH1dOworfQogICAgIAogYm9vbCBBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsOjplbmFibGVkKCkgY29uc3QKIHsKQEAgLTIzMiw2ICsyNjAsMjggQEAgU3Ry
aW5nIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6Omxhbmd1YWdlRm9yQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbihBVk1lZGlhU2VsZWMKICAgICByZXR1cm4gbGFuZ3VhZ2U7CiB9CiAKK1BsYXRmb3Jt
VmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6dmlkZW9U
cmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiB7CisgICAgICAgIHsgY29k
ZWMoKSB9LAorICAgICAgICB3aWR0aCgpLAorICAgICAgICBoZWlnaHQoKSwKKyAgICAgICAgY29s
b3JTcGFjZSgpLAorICAgICAgICBmcmFtZXJhdGUoKSwKKyAgICAgICAgYml0cmF0ZSgpLAorICAg
IH07Cit9CisKK1BsYXRmb3JtQXVkaW9UcmFja0NvbmZpZ3VyYXRpb24gQVZUcmFja1ByaXZhdGVB
VkZPYmpDSW1wbDo6YXVkaW9UcmFja0NvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biB7CisgICAgICAgIHsgY29kZWMoKSB9LAorICAgICAgICBzYW1wbGVSYXRlKCksCisgICAgICAg
IG51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgYml0cmF0ZSgpLAorICAgIH07Cit9CisKIGlu
dCBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjp0cmFja0lEKCkgY29uc3QKIHsKICAgICBpZiAo
bV9hc3NldFRyYWNrKQpAQCAtMjU2LDcgKzMwNiw3IEBAIHN0YXRpYyBBVkFzc2V0VHJhY2sqIGFz
c2V0VHJhY2tGb3IoY29uc3QgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbCYgaW1wbCkKIHN0YXRp
YyBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uRm9yKGNvbnN0IEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwmIGltcGwpCiB7CiAgICAgYXV0byBhc3NldFRyYWNrID0gYXNz
ZXRUcmFja0ZvcihpbXBsKTsKLSAgICBpZiAoIWFzc2V0VHJhY2sgfHwgIWFzc2V0VHJhY2suZm9y
bWF0RGVzY3JpcHRpb25zLmNvdW50KQorICAgIGlmICghYXNzZXRUcmFjayB8fCBbYXNzZXRUcmFj
ayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiZm9ybWF0RGVzY3JpcHRpb25zIiBlcnJvcjpuaWxdICE9
IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQgfHwgIWFzc2V0VHJhY2suZm9ybWF0RGVzY3JpcHRpb25z
LmNvdW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4oYXNzZXRUcmFjay5mb3JtYXREZXNjcmlwdGlvbnNbMF0p
OwogfQpAQCAtMjkxLDEwICszNDEsMTIgQEAgUGxhdGZvcm1WaWRlb0NvbG9yU3BhY2UgQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6Y29sb3JTcGFjZSgpIGNvbnN0CiAKIGRvdWJsZSBBVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsOjpmcmFtZXJhdGUoKSBjb25zdAogewotICAgIGlmIChhdXRvIGFz
c2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGFzc2V0VHJh
Y2subm9taW5hbEZyYW1lUmF0ZTsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gMDsKKyAgICBhdXRvIGFzc2V0VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKKyAgICBp
ZiAoIWFzc2V0VHJhY2spCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBz
dGF0dXNPZlZhbHVlRm9yS2V5OkAibm9taW5hbEZyYW1lUmF0ZSIgZXJyb3I6bmlsXSAhPSBBVktl
eVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYXNzZXRU
cmFjay5ub21pbmFsRnJhbWVSYXRlOwogfQogCiB1aW50MzJfdCBBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsOjpzYW1wbGVSYXRlKCkgY29uc3QKQEAgLTMyOCw2ICszODAsOCBAQCB1aW50NjRfdCBB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjpiaXRyYXRlKCkgY29uc3QKICAgICBhdXRvIGFzc2V0
VHJhY2sgPSBhc3NldFRyYWNrRm9yKCp0aGlzKTsKICAgICBpZiAoIWFzc2V0VHJhY2spCiAgICAg
ICAgIHJldHVybiAwOworICAgIGlmIChbYXNzZXRUcmFjayBzdGF0dXNPZlZhbHVlRm9yS2V5OkAi
ZXN0aW1hdGVkRGF0YVJhdGUiIGVycm9yOm5pbF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkK
KyAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGFzc2V0VHJhY2suZXN0
aW1hdGVkRGF0YVJhdGUpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gYXNzZXRUcmFj
ay5lc3RpbWF0ZWREYXRhUmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDLmgKaW5kZXggODkwMDUxMDFlZTZkNDc3Nzg5MDYxZDcyNzdhZmM1
YTRhNjg2YThkMC4uYTI3N2Y2ZjZhMWZkYzczMzZhMWJjYWIzODQ1OGZiNzQwZTNmN2UxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJBdWRpb1Ry
YWNrUHJpdmF0ZUFWRi5oIgorI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgogCiBPQkpDX0NMQVNT
IEFWQXNzZXRUcmFjazsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOwpAQCAtNzUsOSArNzYsMTQg
QEAgcHJpdmF0ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJh
Y2sqKTsKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKik7CiAgICAg
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYpOwor
ICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhzdGQ6OnVuaXF1ZV9wdHI8QVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbD4mJik7CiAKICAgICB2b2lkIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygp
OworICAgIHZvaWQgYXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKKworICAgIHVzaW5n
IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgPSBPYnNlcnZlcjx2b2lkKCk+OworICAg
IEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIgbV9hdWRpb1RyYWNrQ29uZmlndXJhdGlv
bk9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9U
cmFja1ByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDFjYjk1ODlkODVlOTAwOTEwMTJiZTlhNzA0OTU5
YWYxMWRhMTgzM2IuLjhlNWVmZWViYmU2NDlhMjRlODJjMTE0NDA2ZjU2MjgxZjdkYTA0NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTMzLDE3ICszMywyOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb1RyYWNr
UHJpdmF0ZUFWRk9iakM6OkF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQyhBVlBsYXllckl0ZW1UcmFj
ayogdHJhY2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsPih0cmFjaykpCisgICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxB
VlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCit7Cit9CisKK0F1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2sp
CisgICAgOiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPih0cmFjaykpCiB7Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7
CiB9CiAKIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
KE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyYgb3B0aW9uKQotICAgIDogbV9pbXBsKG1ha2VV
bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKKyAgICA6IEF1ZGlvVHJh
Y2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KG9w
dGlvbikpCit7Cit9CisKK0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDKHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiYmIGlt
cGwpCisgICAgOiBtX2ltcGwoV1RGTW92ZShpbXBsKSkKKyAgICAsIG1fYXVkaW9UcmFja0NvbmZp
Z3VyYXRpb25PYnNlcnZlcihbdGhpc10geyBhdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQo
KTsgfSkKIHsKKyAgICBtX2ltcGwtPnNldEF1ZGlvVHJhY2tDb25maWd1cmF0aW9uT2JzZXJ2ZXIo
bV9hdWRpb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyKTsKICAgICByZXNldFByb3BlcnRpZXNG
cm9tVHJhY2soKTsKIH0KIAorCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQ
cm9wZXJ0aWVzRnJvbVRyYWNrKCkKIHsKICAgICAvLyBEb24ndCBjYWxsIHRoaXMtPnNldEVuYWJs
ZWQoKSBiZWNhdXNlIGl0IGFsc28gc2V0cyB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUKQEAgLTU1
LDExICs2NywxMiBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6cmVzZXRQcm9wZXJ0
aWVzRnJvbVRyYWNrKCkKICAgICBzZXRJZChtX2ltcGwtPmlkKCkpOwogICAgIHNldExhYmVsKG1f
aW1wbC0+bGFiZWwoKSk7CiAgICAgc2V0TGFuZ3VhZ2UobV9pbXBsLT5sYW5ndWFnZSgpKTsKLSAg
ICBzZXRDb2RlYyhtX2ltcGwtPmNvZGVjKCkpOwotICAgIHNldFNhbXBsZVJhdGUobV9pbXBsLT5z
YW1wbGVSYXRlKCkpOwotICAgIHNldE51bWJlck9mQ2hhbm5lbHMobV9pbXBsLT5udW1iZXJPZkNo
YW5uZWxzKCkpOwotICAgIHNldEJpdHJhdGUobV9pbXBsLT5iaXRyYXRlKCkpOworICAgIHNldENv
bmZpZ3VyYXRpb24obV9pbXBsLT5hdWRpb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKK30KIAordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OmF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdl
ZCgpCit7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPmF1ZGlvVHJhY2tDb25maWd1cmF0
aW9uKCkpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0UGxheWVySXRl
bVRyYWNrKEFWUGxheWVySXRlbVRyYWNrICp0cmFjaykKQEAgLTczLDEyICs4Niw2IEBAIEFWUGxh
eWVySXRlbVRyYWNrKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnBsYXllckl0ZW1UcmFjaygp
CiAgICAgcmV0dXJuIG1faW1wbC0+cGxheWVySXRlbVRyYWNrKCk7CiB9CiAKLUF1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJh
Y2spCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0
cmFjaykpCi17Ci0gICAgcmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7Ci19Ci0KIHZvaWQgQXVk
aW9UcmFja1ByaXZhdGVBVkZPYmpDOjpzZXRBc3NldFRyYWNrKEFWQXNzZXRUcmFjayAqdHJhY2sp
CiB7CiAgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0
cmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDLmNwcAppbmRleCA5ZDlkNjRhYTI2YWY3MjNiNDZiYTg3MjQ4YTM5MWQyOWU4Y2E4YjFj
Li5lYWYzZjExOGIyNWE0Mzg4OTkyMmY1NmM2YmRlY2ZkOWM1OGNmOGE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKQEAgLTMw
LDI0ICszMCwzMCBAQAogCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCiAj
aW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorI2ltcG9ydCAiUGxhdGZvcm1W
aWRlb1RyYWNrQ29uZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRl
bVRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhtYWtlVW5p
cXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKIHsKLSAgICByZXNldFByb3Bl
cnRpZXNGcm9tVHJhY2soKTsKIH0KIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaykKLSAgICA6IG1faW1wbChtYWtl
VW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKKyAgICA6IFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQyhtYWtlVW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRy
YWNrKSkKIHsKLSAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KIAogVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoTWVkaWFTZWxlY3Rpb25P
cHRpb25BVkZPYmpDJiBvcHRpb24pCi0gICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxBVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsPihvcHRpb24pKQorICAgIDogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
KG1ha2VVbmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4ob3B0aW9uKSkKK3sKK30KKwor
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1
bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYgaW1wbCkKKyAgICA6IG1faW1w
bChXVEZNb3ZlKGltcGwpKQorICAgICwgbV92aWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVy
KFt0aGlzXSB7IHZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZCgpOyB9KQogeworICAgIG1f
aW1wbC0+c2V0VmlkZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcihtX3ZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uT2JzZXJ2ZXIpOwogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQog
CkBAIC02MiwxNSArNjgsMTIgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM6OnJlc2V0
UHJvcGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBsLT5pZCgpKTsKICAgICBzZXRM
YWJlbChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdlKG1faW1wbC0+bGFuZ3VhZ2Uo
KSk7Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAgICBzZXRXaWR0aChtX2ltcGwt
PndpZHRoKCkpOwotICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdodCgpKTsKLSAgICBzZXRDb2xv
clNwYWNlKG1faW1wbC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRGcmFtZXJhdGUobV9pbXBsLT5m
cmFtZXJhdGUoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJpdHJhdGUoKSk7Ci0KLSAgICBp
ZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCi0gICAgICAgIGNsaWVudC0+Y29uZmln
dXJhdGlvbkNoYW5nZWQoKTsKKyAgICBzZXRDb25maWd1cmF0aW9uKG1faW1wbC0+dmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24oKSk7Cit9CisKK3ZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjp2
aWRlb1RyYWNrQ29uZmlndXJhdGlvbkNoYW5nZWQoKQoreworICAgIHNldENvbmZpZ3VyYXRpb24o
bV9pbXBsLT52aWRlb1RyYWNrQ29uZmlndXJhdGlvbigpKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakM6OnNldFBsYXllckl0ZW1UcmFjayhBVlBsYXllckl0ZW1UcmFjayAqdHJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IGY0NWFmZTRmNjlhZDEzODJiYjBmMThmY2M0MmZmNWJhOTY5ZDkxYjMuLmZmMGNk
ZmIzNmU1MTkyMjI5YjhlNjU1MWUzZjFkZTgzNmRjNzE2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVBVkYuaCIK
KyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CiBP
QkpDX0NMQVNTIEFWUGxheWVySXRlbTsKQEAgLTc1LDkgKzc2LDE0IEBAIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKik7CiAg
ICAgZXhwbGljaXQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWQXNzZXRUcmFjayopOwogICAg
IGV4cGxpY2l0IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQyhNZWRpYVNlbGVjdGlvbk9wdGlvbkFW
Rk9iakMmKTsKKyAgICBleHBsaWNpdCBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoc3RkOjp1bmlx
dWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+JiYpOwogCiAgICAgdm9pZCByZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2soKTsKKyAgICB2b2lkIHZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZCgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBt
X2ltcGw7CisKKyAgICB1c2luZyBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyID0gT2Jz
ZXJ2ZXI8dm9pZCgpPjsKKyAgICBWaWRlb1RyYWNrQ29uZmlndXJhdGlvbk9ic2VydmVyIG1fdmlk
ZW9UcmFja0NvbmZpZ3VyYXRpb25PYnNlcnZlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KaW5kZXggNjg2MThjNzI3YTJlNzUzODEyZWI3ZGI1ODNiYTBiZWU3ZjAyZTk4MS4uNzZh
MGFiYzhlOTlhN2ViZjY2ZjE5NzM1NDhlZTY1NjBmNjY0ZTY5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KQEAgLTUwLDEyICs1MCw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpCiAgICAgc2V0SWQobV9pbXBs
LT5pZCgpKTsKICAgICBzZXRMYWJlbChtX2ltcGwtPmxhYmVsKCkpOwogICAgIHNldExhbmd1YWdl
KG1faW1wbC0+bGFuZ3VhZ2UoKSk7Ci0gICAgc2V0Q29kZWMobV9pbXBsLT5jb2RlYygpKTsKLSAg
ICBzZXRXaWR0aChtX2ltcGwtPndpZHRoKCkpOwotICAgIHNldEhlaWdodChtX2ltcGwtPmhlaWdo
dCgpKTsKLSAgICBzZXRDb2xvclNwYWNlKG1faW1wbC0+Y29sb3JTcGFjZSgpKTsKLSAgICBzZXRG
cmFtZXJhdGUobV9pbXBsLT5mcmFtZXJhdGUoKSk7Ci0gICAgc2V0Qml0cmF0ZShtX2ltcGwtPmJp
dHJhdGUoKSk7CisgICAgc2V0Q29uZmlndXJhdGlvbihtX2ltcGwtPnZpZGVvVHJhY2tDb25maWd1
cmF0aW9uKCkpOwogfQogCiB2b2lkIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXRBc3NldFRyYWNrKEFWQXNzZXRUcmFjayAqdHJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZh
dGVXZWJNLmNwcAppbmRleCAxMWNhYzgwMDIzMWUwOGM1M2ViNmUzOGQ4NGY2YjMzNzNjOTFiY2Zi
Li41NzdiMTEwMDBiZTEzNTdmMjM1YTkxN2FmNDc1NWFiYTdkZGFkOGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdl
Yk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVv
VHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTQwLDYgKzQwLDggQEAgVmlkZW9UcmFja1ByaXZhdGVX
ZWJNOjpWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmIHRyYWNrRW50cnkp
CiB7CiAgICAgaWYgKG1fdHJhY2suaXNfZW5hYmxlZC5pc19wcmVzZW50KCkpCiAgICAgICAgIHNl
dFNlbGVjdGVkKG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpKTsKKworICAgIHVwZGF0ZUNvbmZp
Z3VyYXRpb24oKTsKIH0KIAogQXRvbVN0cmluZyBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmlkKCkg
Y29uc3QKQEAgLTE0NSw2ICsxNDcsMTcgQEAgZG91YmxlIFZpZGVvVHJhY2tQcml2YXRlV2ViTTo6
ZnJhbWVyYXRlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBWaWRlb1RyYWNrUHJp
dmF0ZVdlYk06OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQoreworICAgIFBsYXRmb3JtVmlkZW9UcmFj
a0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiB7CisgICAgICAgIHsgLmNvZGVjID0gY29kZWMo
KSB9LAorICAgICAgICAud2lkdGggPSB3aWR0aCgpLAorICAgICAgICAuaGVpZ2h0ID0gaGVpZ2h0
KCksCisgICAgICAgIC5mcmFtZXJhdGUgPSBmcmFtZXJhdGUoKSwKKyAgICB9OworICAgIHNldENv
bmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDk5
ZmQwN2ZlMmQ3MWQ5MmRjMmUxYzkzZTk3NjFjZWUxYzY2YTRiNDAuLjdiZDE5ZTliZDczNjAxMTgw
OGMwZjBlNDM0YzQ0OGYyZDRhMDIyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCkBA
IC00MywxMyArNDMsMTYgQEAgcHVibGljOgogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmlu
YWw7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsK
ICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRlZmF1bHRFbmFibGVkKCkgY29uc3QgZmluYWw7Ci0g
ICAgU3RyaW5nIGNvZGVjKCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3Qgd2lkdGgoKSBjb25z
dCBmaW5hbDsKLSAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBmaW5hbDsKLSAgICBkb3VibGUg
ZnJhbWVyYXRlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgVmlkZW9UcmFja1ByaXZh
dGVXZWJNKHdlYm06OlRyYWNrRW50cnkmJik7CisKKyAgICBTdHJpbmcgY29kZWMoKSBjb25zdDsK
KyAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0OworICAgIHVpbnQzMl90IGhlaWdodCgpIGNvbnN0
OworICAgIGRvdWJsZSBmcmFtZXJhdGUoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbmZpZ3Vy
YXRpb24oKTsKKwogICAgIHdlYm06OlRyYWNrRW50cnkgbV90cmFjazsKICAgICBtdXRhYmxlIEF0
b21TdHJpbmcgbV90cmFja0lEOwogICAgIG11dGFibGUgQXRvbVN0cmluZyBtX2xhYmVsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL0F1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NjY2NzQy
ZTNjOTQ0NjQzNDQwOGM2NTJhYjUyYTEyZTJiMDFkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1
cmF0aW9uLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9UcmFja1ByaXZhdGUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gOiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsKKyAgICBib29sIGVu
YWJsZWQ7CisgICAgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OktpbmQga2luZCB7IFdlYkNv
cmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kOjpOb25lIH07CisgICAgV2ViQ29yZTo6UGxhdGZv
cm1BdWRpb1RyYWNrQ29uZmlndXJhdGlvbiB0cmFja0NvbmZpZ3VyYXRpb247CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CisgICAgeworICAgICAgICBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjplbmNv
ZGUoZW5jb2Rlcik7CisgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKKyAgICAgICAgZW5jb2Rl
ciA8PCBraW5kOworICAgICAgICBlbmNvZGVyIDw8IHRyYWNrQ29uZmlndXJhdGlvbjsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgYm9vbCBXQVJOX1VO
VVNFRF9SRVRVUk4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpkZWNvZGUoZGVjb2RlciwgY29uZmlndXJh
dGlvbikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZW5hYmxl
ZCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ua2luZCkKKyAg
ICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0
aW9uKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNr
UHJveHkuY3BwCmluZGV4IDg1MzUwMDJiMWIwZjUxNTY5MTg2YjM5YzU0MTZjMjY0ZDFmYThhNTMu
LjgxMDQwMDI4ZTE3MTdlMjI4MmNhNGQ0MGU3NTliZTY1NzM5ZWYyMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
Y3BwCkBAIC0yOSwxMSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTQsMjYgKzU0LDE5IEBA
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiAgICAgbV90
cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24gUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKK0F1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZp
Z3VyYXRpb24oKQogewogICAgIHJldHVybiB7Ci0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5pZCgp
LAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwKLSAgICAgICAgbV90cmFja1ByaXZh
dGUtPmxhbmd1YWdlKCksCi0gICAgICAgIG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5j
ZSgpLAotICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB7Cisg
ICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+aWQoKSwKKyAgICAgICAgICAgIG1fdHJhY2tQcml2
YXRlLT5sYWJlbCgpLAorICAgICAgICAgICAgbV90cmFja1ByaXZhdGUtPmxhbmd1YWdlKCksCisg
ICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKSwKKyAgICAgICAg
ICAgIG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCksCisgICAgICAgIH0sCiAgICAgICAgIG1f
dHJhY2tQcml2YXRlLT5lbmFibGVkKCksCiAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5raW5kKCks
Ci0gICAgICAgIGZhbHNlLAotICAgICAgICBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2lu
ZDo6Tm9uZSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPmNvZGVjKCksCi0gICAgICAgIDAsCi0g
ICAgICAgIDAsCi0gICAgICAgIHsgfSwKLSAgICAgICAgMCwKLSAgICAgICAgbV90cmFja1ByaXZh
dGUtPmJpdHJhdGUoKSwKLSAgICAgICAgbV90cmFja1ByaXZhdGUtPnNhbXBsZVJhdGUoKSwKLSAg
ICAgICAgbV90cmFja1ByaXZhdGUtPm51bWJlck9mQ2hhbm5lbHMoKSwKKyAgICAgICAgbV90cmFj
a1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKICAgICB9OwogfQogCkBAIC05OCw2ICs5MSwxMSBA
QCB2b2lkIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVk
KQogICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVtb3RlQXVkaW9UcmFj
a1Byb3h5Ojpjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBQbGF0Zm9ybUF1ZGlvVHJhY2tDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQoreworICAgIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7
Cit9CisKIHZvaWQgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjppZENoYW5nZWQoY29uc3QgQXRvbVN0
cmluZyYpCiB7CiAgICAgY29uZmlndXJhdGlvbkNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuaAppbmRleCBk
MmRlYzQ1YTZkYjNmZGY3MjZiNzk4YmVhYWRkZDVmMjU4ZDllM2JkLi4wMTM1Njc5MTViNGU5MDBm
ZDM2YmU0NzliZDhmMmVjNDkyN2I4NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5oCkBAIC00NCw3ICs0NCw3IEBA
IGNsYXNzIERlY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwor
c3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVt
b3RlQXVkaW9UcmFja1Byb3h5IGZpbmFsCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8UmVtb3RlQXVkaW9UcmFja1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgpA
QCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQKICAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgY29uZmln
dXJhdGlvbkNoYW5nZWQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb1RyYWNrQ29uZmlndXJh
dGlvbiYpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAogICAgIHZvaWQg
aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKQEAgLTc2LDcgKzc3LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7
CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNo
YW5nZWQoKTsKIAogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAppbmRleCAyZWRlZTE5ODcxYzdkMzdh
NDU0NWUzZWM1MDU2YjYxNjMzMDFhM2VkLi5iMjE0YWVhMTNhOGQ1ZjdiNzZmNjUyYzdkYzZlNWM0
Njg4ZDU0NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
LSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCkBAIC01NCwyMyArNTQsMjAgQEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3Rl
VmlkZW9UcmFja1Byb3h5KCkKICAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0K
IAotVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6
OmNvbmZpZ3VyYXRpb24oKQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIFJl
bW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCiB7Ci0gICAgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uIHsgfTsKLSAgICBjb25maWd1cmF0aW9u
LnRyYWNrSWQgPSBtX3RyYWNrUHJpdmF0ZS0+aWQoKTsKLSAgICBjb25maWd1cmF0aW9uLmxhYmVs
ID0gbV90cmFja1ByaXZhdGUtPmxhYmVsKCk7Ci0gICAgY29uZmlndXJhdGlvbi5sYW5ndWFnZSA9
IG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpOwotICAgIGNvbmZpZ3VyYXRpb24udHJhY2tJbmRl
eCA9IG1fdHJhY2tQcml2YXRlLT50cmFja0luZGV4KCk7Ci0gICAgY29uZmlndXJhdGlvbi5zdGFy
dFRpbWVWYXJpYW5jZSA9IG1fdHJhY2tQcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwotICAg
IGNvbmZpZ3VyYXRpb24uc2VsZWN0ZWQgPSBtX3RyYWNrUHJpdmF0ZS0+c2VsZWN0ZWQoKTsKLSAg
ICBjb25maWd1cmF0aW9uLnZpZGVvS2luZCA9IG1fdHJhY2tQcml2YXRlLT5raW5kKCk7Ci0gICAg
Y29uZmlndXJhdGlvbi5jb2RlYyA9IG1fdHJhY2tQcml2YXRlLT5jb2RlYygpOwotICAgIGNvbmZp
Z3VyYXRpb24ud2lkdGggPSBtX3RyYWNrUHJpdmF0ZS0+d2lkdGgoKTsKLSAgICBjb25maWd1cmF0
aW9uLmhlaWdodCA9IG1fdHJhY2tQcml2YXRlLT5oZWlnaHQoKTsKLSAgICBjb25maWd1cmF0aW9u
LmNvbG9yU3BhY2UgPSBtX3RyYWNrUHJpdmF0ZS0+Y29sb3JTcGFjZSgpOwotICAgIGNvbmZpZ3Vy
YXRpb24uZnJhbWVyYXRlID0gbV90cmFja1ByaXZhdGUtPmZyYW1lcmF0ZSgpOwotICAgIGNvbmZp
Z3VyYXRpb24uYml0cmF0ZSA9IG1fdHJhY2tQcml2YXRlLT5iaXRyYXRlKCk7Ci0gICAgcmV0dXJu
IGNvbmZpZ3VyYXRpb247CisgICAgcmV0dXJuIHsKKyAgICAgICAgeworICAgICAgICAgICAgbV90
cmFja1ByaXZhdGUtPmlkKCksCisgICAgICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+bGFiZWwoKSwK
KyAgICAgICAgICAgIG1fdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLAorICAgICAgICAgICAgbV90
cmFja1ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCksCisgICAgICAgICAgICBtX3RyYWNrUHJp
dmF0ZS0+dHJhY2tJbmRleCgpLAorICAgICAgICB9LAorICAgICAgICBtX3RyYWNrUHJpdmF0ZS0+
c2VsZWN0ZWQoKSwKKyAgICAgICAgbV90cmFja1ByaXZhdGUtPmtpbmQoKSwKKyAgICAgICAgbV90
cmFja1ByaXZhdGUtPmNvbmZpZ3VyYXRpb24oKSwKKyAgICB9OwogfQogCiB2b2lkIFJlbW90ZVZp
ZGVvVHJhY2tQcm94eTo6dXBkYXRlQ29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgKaW5kZXggOTM3
MjcwNzAwZDQzNGIxMWYwMDhmM2VjOWYyNGU4NWI5NDI0OGI4Ny4uODk1MDc0YzZmMDYzNThjZTVk
NmExY2EyOTkxMzNjMDdlYzBiODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuaApAQCAtNDQsNyArNDQsNyBAQCBj
bGFzcyBEZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0
cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90
ZVZpZGVvVHJhY2tQcm94eSBmaW5hbAogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFJlbW90ZVZpZGVvVHJhY2tQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KQEAg
LTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
CiAgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBjb25maWd1
cmF0aW9uQ2hhbmdlZCgpIGZpbmFsIHsgdXBkYXRlQ29uZmlndXJhdGlvbigpOyB9CisgICAgdm9p
ZCBjb25maWd1cmF0aW9uQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uJikgZmluYWwgeyB1cGRhdGVDb25maWd1cmF0aW9uKCk7IH0KIAogICAgIC8v
IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKICAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3Ry
aW5nJikgZmluYWw7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYW5ndWFn
ZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFJlbW92ZSgp
IGZpbmFsOwogCi0gICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKCk7CisgICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24oKTsKICAgICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKIAogICAgIFdlYWtQdHI8
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgKaW5kZXggOTQ4NDM0MTY2MjNiMzk0MTdlMzI3NDI1
MjEzZTVjZjBiYjNlYjExZi4uNzA3ZDY4Njg5Y2M1MmZkMDAzYjM2MjUzOTRkNWIzNmY2ODIzY2Iz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCkBAIC0yNyw4ICsyNyw2IEBACiAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvVHJhY2tQ
cml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MCwyMSArMzgs
NiBAQCBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiB7CiAgICAgTWVkaWFU
aW1lIHN0YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07CiAgICAgaW50
IHRyYWNrSW5kZXg7CiAKLSAgICBib29sIGVuYWJsZWQ7Ci0gICAgV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGU6OktpbmQgYXVkaW9LaW5kIHsgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6Oktp
bmQ6Ok5vbmUgfTsKLQotICAgIGJvb2wgc2VsZWN0ZWQ7Ci0gICAgV2ViQ29yZTo6VmlkZW9UcmFj
a1ByaXZhdGU6OktpbmQgdmlkZW9LaW5kIHsgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6Oktp
bmQ6Ok5vbmUgfTsKLQotICAgIFN0cmluZyBjb2RlYzsKLSAgICB1aW50MzJfdCB3aWR0aDsKLSAg
ICB1aW50MzJfdCBoZWlnaHQ7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1WaWRlb0NvbG9yU3BhY2Ug
Y29sb3JTcGFjZTsKLSAgICBkb3VibGUgZnJhbWVyYXRlOwotICAgIHVpbnQ2NF90IGJpdHJhdGU7
Ci0gICAgdWludDMyX3Qgc2FtcGxlUmF0ZTsKLSAgICB1aW50MzJfdCBudW1iZXJPZkNoYW5uZWxz
OwotCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIHsKQEAgLTYzLDEyNyArNDYsMTYgQEAgc3RydWN0IFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8IGxhbmd1YWdl
OwogICAgICAgICBlbmNvZGVyIDw8IHN0YXJ0VGltZVZhcmlhbmNlOwogICAgICAgICBlbmNvZGVy
IDw8IHRyYWNrSW5kZXg7Ci0gICAgICAgIGVuY29kZXIgPDwgZW5hYmxlZDsKLSAgICAgICAgZW5j
b2RlciA8PCBhdWRpb0tpbmQ7Ci0gICAgICAgIGVuY29kZXIgPDwgc2VsZWN0ZWQ7Ci0gICAgICAg
IGVuY29kZXIgPDwgdmlkZW9LaW5kOwotICAgICAgICBlbmNvZGVyIDw8IGNvZGVjOwotICAgICAg
ICBlbmNvZGVyIDw8IHdpZHRoOwotICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKLSAgICAgICAg
ZW5jb2RlciA8PCBjb2xvclNwYWNlOwotICAgICAgICBlbmNvZGVyIDw8IGZyYW1lcmF0ZTsKLSAg
ICAgICAgZW5jb2RlciA8PCBiaXRyYXRlOwotICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7
Ci0gICAgICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZDaGFubmVsczsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRv
bVN0cmluZz4gdHJhY2tJZDsKLSAgICAgICAgZGVjb2RlciA+PiB0cmFja0lkOwotICAgICAgICBp
ZiAoIXRyYWNrSWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFiZWw7Ci0gICAgICAgIGRlY29kZXIgPj4gbGFi
ZWw7Ci0gICAgICAgIGlmICghbGFiZWwpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8QXRvbVN0cmluZz4gbGFuZ3VhZ2U7Ci0gICAgICAg
IGRlY29kZXIgPj4gbGFuZ3VhZ2U7Ci0gICAgICAgIGlmICghbGFuZ3VhZ2UpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFUaW1l
PiBzdGFydFRpbWVWYXJpYW5jZTsKLSAgICAgICAgZGVjb2RlciA+PiBzdGFydFRpbWVWYXJpYW5j
ZTsKLSAgICAgICAgaWYgKCFzdGFydFRpbWVWYXJpYW5jZSkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHRyYWNrSW5kZXg7Ci0g
ICAgICAgIGRlY29kZXIgPj4gdHJhY2tJbmRleDsKLSAgICAgICAgaWYgKCF0cmFja0luZGV4KQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFs
PGJvb2w+IGVuYWJsZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKLSAgICAgICAgaWYg
KCFlbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlOjpLaW5kPiBhdWRpb0tpbmQ7
Ci0gICAgICAgIGRlY29kZXIgPj4gYXVkaW9LaW5kOwotICAgICAgICBpZiAoIWF1ZGlvS2luZCkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25h
bDxib29sPiBzZWxlY3RlZDsKLSAgICAgICAgZGVjb2RlciA+PiBzZWxlY3RlZDsKLSAgICAgICAg
aWYgKCFzZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZD4gdmlkZW9L
aW5kOwotICAgICAgICBkZWNvZGVyID4+IHZpZGVvS2luZDsKLSAgICAgICAgaWYgKCF2aWRlb0tp
bmQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBjb2RlYzsKLSAgICAgICAgZGVjb2RlciA+PiBjb2RlYzsKLSAgICAgICAg
aWYgKCFjb2RlYykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gd2lkdGg7Ci0gICAgICAgIGRlY29kZXIgPj4gd2lkdGg7
Ci0gICAgICAgIGlmICghd2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGhlaWdodDsKLSAgICAgICAgZGVjb2Rl
ciA+PiBoZWlnaHQ7Ci0gICAgICAgIGlmICghaGVpZ2h0KQotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBsYXRmb3JtVmlk
ZW9Db2xvclNwYWNlPiBjb2xvclNwYWNlOwotICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7
Ci0gICAgICAgIGlmICghY29sb3JTcGFjZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZyYW1lcmF0ZTsKLSAgICAgICAg
ZGVjb2RlciA+PiBmcmFtZXJhdGU7Ci0gICAgICAgIGlmICghZnJhbWVyYXRlKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBiaXRyYXRlOwotICAgICAgICBkZWNvZGVyID4+IGJpdHJhdGU7Ci0gICAgICAgIGlmICghYml0
cmF0ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIAotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBzYW1wbGVSYXRlOwotICAgICAgICBkZWNvZGVyID4+
IHNhbXBsZVJhdGU7Ci0gICAgICAgIGlmICghc2FtcGxlUmF0ZSkKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbnVtYmVy
T2ZDaGFubmVsczsKLSAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZkNoYW5uZWxzOwotICAgICAg
ICBpZiAoIW51bWJlck9mQ2hhbm5lbHMpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHJldHVybiB7ewotICAgICAgICAgICAgV1RGTW92ZSgqdHJhY2tJZCksCi0g
ICAgICAgICAgICBXVEZNb3ZlKCpsYWJlbCksCi0gICAgICAgICAgICBXVEZNb3ZlKCpsYW5ndWFn
ZSksCi0gICAgICAgICAgICBXVEZNb3ZlKCpzdGFydFRpbWVWYXJpYW5jZSksCi0gICAgICAgICAg
ICAqdHJhY2tJbmRleCwKLSAgICAgICAgICAgICplbmFibGVkLAotICAgICAgICAgICAgKmF1ZGlv
S2luZCwKLSAgICAgICAgICAgICpzZWxlY3RlZCwKLSAgICAgICAgICAgICp2aWRlb0tpbmQsCi0g
ICAgICAgICAgICBXVEZNb3ZlKCpjb2RlYyksCi0gICAgICAgICAgICAqd2lkdGgsCi0gICAgICAg
ICAgICAqaGVpZ2h0LAotICAgICAgICAgICAgV1RGTW92ZSgqY29sb3JTcGFjZSksCi0gICAgICAg
ICAgICAqZnJhbWVyYXRlLAotICAgICAgICAgICAgKmJpdHJhdGUsCi0gICAgICAgICAgICAqc2Ft
cGxlUmF0ZSwKLSAgICAgICAgICAgICpudW1iZXJPZkNoYW5uZWxzLAotICAgICAgICB9fTsKKyAg
ICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJZCkKKyAgICAg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubGFiZWwpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxhbmd1YWdlKQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zdGFydFRpbWVWYXJpYW5jZSkKKyAgICAg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udHJhY2tJbmRleCk7CiAgICAg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1ZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRjMTRmNmEwMzcwYzA2MTFlODRkN2FkOTE3NzFkOGY0NjVlNWEzNzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1By
aXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24gOiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIHsK
KyAgICBib29sIHNlbGVjdGVkOworICAgIFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5k
IGtpbmQgeyBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6S2luZDo6Tm9uZSB9OworICAgIFdl
YkNvcmU6OlBsYXRmb3JtVmlkZW9UcmFja0NvbmZpZ3VyYXRpb24gdHJhY2tDb25maWd1cmF0aW9u
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbjo6ZW5jb2RlKGVuY29kZXIpOworICAgICAgICBlbmNvZGVyIDw8IHNlbGVjdGVkOwor
ICAgICAgICBlbmNvZGVyIDw8IGtpbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdHJhY2tDb25maWd1
cmF0aW9uOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRp
YyBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAg
ICAgICAgaWYgKCFUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOjpkZWNvZGUoZGVjb2Rl
ciwgY29uZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zZWxlY3RlZCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5r
aW5kKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDZlZjZmNzRjMDMzNmJlOTE1ZmQzYTQwMzRlNGNjMWEyNTBm
NjZlYmMuLmQyOWZkOTFjZjQ0NmVjNzk1NjUyODU0M2NmYTMwYTMyNDIxM2RlM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE4OCw2
ICs2MTg4LDggQEAKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OwogCQlDRENEQzk5QjI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEVuZG93bWVudFN0YXRlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRENEQzk5QzI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3Rh
dGVUcmFja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRW5kb3dtZW50U3RhdGVUcmFja2Vy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQwOEFDMzI3N0VCQ0U1MDBFQTM3
NTUgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREQwOEFDNDI3N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9UcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RENTM1NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjY4OSw2ICs2NjkxLDcgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywK
IAkJCQlDREE5NTk0NDI0MTJDNERBMDA5MTBFRUYgLyogaW9zICovLAorCQkJCUNERDA4QUMzMjc3
RUJDRTUwMEVBMzc1NSAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAq
LywKIAkJCQkxRDRGQjQwQjI1NjVDODlBMDAxQUMyQUQgLyogSW5pdGlhbGl6YXRpb25TZWdtZW50
SW5mby5oICovLAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCkBAIC02NzY0LDYgKzY3NjcsNyBA
QAogCQkJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MUJDNTdCMjNDQTUzMjQwMDY4MEQ3QyAvKiBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcxQkM1N0QyM0NBNTZEMjAw
NjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLywKKwkJCQlDREQwOEFD
NDI3N0VEN0UwMDBFQTM3NTUgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggM2VkNzZjMzJjODE2NmYxOWMyNzE2
N2E3NjUzMWM4MmMxZWQ2NTI0NS4uZjllNGIxYzMyOTVjZTEzYjIwMmUzNzhiMGQyNzU0MWI0ZjQw
NmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI5LDE0ICsyOSwxNCBAQAog
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVS
ZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1BdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVy
SWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK0F1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBw
bGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIs
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAg
ICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICwg
bV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIo
aWRlbmRpZmllcikKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZTo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgQXVkaW9UcmFja1ByaXZhdGU6OnNldEVu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0
ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3Vy
YXRpb24pCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjp1cGRhdGVDb25maWd1cmF0aW9u
KEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7
CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24udHJhY2tJZCAhPSBtX2lkKSB7CiAgICAgICAgIGF1dG8g
Y2hhbmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsKQEAgLTgwLDExICs4MCw4IEBAIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvCiAKICAgICBtX3RyYWNrSW5kZXggPSBjb25maWd1cmF0aW9uLnRyYWNrSW5k
ZXg7CiAgICAgbV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3VyYXRpb24uc3RhcnRUaW1lVmFy
aWFuY2U7Ci0gICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5hdWRpb0tpbmQ7Ci0gICAgc2V0Q29k
ZWMoV1RGTW92ZShjb25maWd1cmF0aW9uLmNvZGVjKSk7Ci0gICAgc2V0U2FtcGxlUmF0ZShjb25m
aWd1cmF0aW9uLnNhbXBsZVJhdGUpOwotICAgIHNldE51bWJlck9mQ2hhbm5lbHMoY29uZmlndXJh
dGlvbi5udW1iZXJPZkNoYW5uZWxzKTsKLSAgICBzZXRCaXRyYXRlKGNvbmZpZ3VyYXRpb24uYml0
cmF0ZSk7CisgICAgbV9raW5kID0gY29uZmlndXJhdGlvbi5raW5kOworICAgIHNldENvbmZpZ3Vy
YXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uLnRyYWNrQ29uZmlndXJhdGlvbikpOwogICAgIAog
ICAgIEF1ZGlvVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGNvbmZpZ3VyYXRpb24uZW5hYmxlZCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggZjFmOWYwZjNkNjVhYzY0ODU1YjA2NWYw
MjY0NGEzNjVkZTQzZWJkNC4uMmZjMDg0NTE1ZDYyMGQwYzY1YTNkY2ViZjcwNzU4MTZjMTZmZDI1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMzYsMjEgKzM2LDIxIEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTsKLXN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9u
Oworc3RydWN0IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIAogY2xhc3Mg
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlKQogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+IGNy
ZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+
IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVy
SWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0K
IAogICAgIEF0b21TdHJpbmcgaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkOyB9Ci0gICAg
dm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CisgICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbiYmKTsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAg
dXNpbmcgQXVkaW9UcmFja0tpbmQgPSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDsK
ICAgICBBdWRpb1RyYWNrS2luZCBraW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggZDBkZTMzMzNkOGJkOTZhOWNkZjgw
YWVmMTNjNzhlYjYyNTcwOTYzMC4uOWE2NDI5NDM3ODQyZjQzZGI2ZGExYzI1MDExZWQ0YTU0NGNi
ZjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNTc1LDcgKzU3NSw3IEBA
IEZsb2F0U2l6ZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdHVyYWxTaXplKCkgY29uc3QK
ICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5uYXR1cmFsU2l6ZTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVB
dWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fYXVkaW9UcmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CiAg
ICAgICAgIHJldHVybiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5n
cHVQcm9jZXNzQ29ubmVjdGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pKTsKQEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaQogICAg
IH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tD
b25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9u
Q2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgQVNT
RVJUKG1fYXVkaW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCkBAIC03MzMsNyArNzMz
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGUKICAgICAgICAgdHJhY2stPnJlbW92ZUdlbmVy
aWNDdWUoSW5iYW5kR2VuZXJpY0N1ZTo6Y3JlYXRlKFdURk1vdmUoY3VlRGF0YSkpKTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjphZGRSZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlv
bikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdmlkZW9UcmFja3MuZW5zdXJlKGlkZW50aWZp
ZXIsIFsmXSB7CiAgICAgICAgIHJldHVybiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRl
KG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKTsKQEAgLTc2Myw3ICs3NjMsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90
ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW90ZVZpZGVvVHJhY2tD
b25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiB7CiAgICAgQVNTRVJUKG1fdmlkZW9UcmFja3MuY29udGFpbnMoaWRlbnRpZmllcikpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBhNTU5OWQ2MjUyMGRiMmM4N2QwMTFlYTJkMmFk
NDgxNjNlNjkwMDEzLi5lYjMyNjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTY3LDggKzY3LDkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyRGF0
YTsKK3N0cnVjdCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3Qg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247Ci1zdHJ1Y3QgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBmaW5hbAogICAgIDog
cHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQpAQCAtMTE3LDEzICsx
MTgsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTW9ub3RvbmljVGltZSYsIGJvb2wpOwogCi0gICAgdm9pZCBhZGRSZW1v
dGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdGVBdWRpb1RyYWNrQ29uZmlndXJhdGlvbkNo
YW5nZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIHJlbW90ZUF1ZGlvVHJhY2tDb25maWd1cmF0aW9uQ2hh
bmdlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJik7CiAKLSAgICB2b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
KTsKKyAgICB2b2lkIGFkZFJlbW90ZVZpZGVvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQg
cmVtb3ZlUmVtb3RlVmlkZW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAg
IHZvaWQgcmVtb3RlVmlkZW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsK
IAogICAgIHZvaWQgYWRkUmVtb3RlVGV4dFRyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIsIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVt
b3ZlUmVtb3RlVGV4dFRyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCBhNjA2MDM5MGU5MDU5
MDg2ZGY0NTNmNzU2MWQ5ZjUxN2U2YjRhZTBhLi41ZWRmNzUzOGY1YWY2NjNiYTc4ZmU5YzY3ZTdh
NjQyYWRiNmRkZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbgpAQCAtNDEsMTMgKzQxLDEzIEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEN1cnJlbnRUaW1lQ2hhbmdlZChNZWRpYVRpbWUg
bWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lIHdhbGxUaW1lLCBib29sIHRpbWVJc1Byb2dyZXNzaW5n
KQogCi0gICAgQWRkUmVtb3RlQXVkaW9UcmFjayhXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKQorICAgIEFkZFJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OkF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgIFJlbW92
ZVJlbW90ZUF1ZGlvVHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRy
YWNrSUQpCi0gICAgUmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgUmVtb3RlQXVk
aW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciB0cmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKIAotICAgIEFkZFJlbW90ZVZpZGVvVHJhY2soV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6
OlRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBBZGRS
ZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFj
a0lELCBzdHJ1Y3QgV2ViS2l0OjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24g
Y29uZmlndXJhdGlvbikKICAgICBSZW1vdmVSZW1vdGVWaWRlb1RyYWNrKFdlYktpdDo6VHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQotICAgIFJlbW90ZVZpZGVvVHJhY2tDb25m
aWd1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgc3RydWN0IFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uKQorICAgIFJlbW90ZVZpZGVvVHJhY2tDb25maWd1cmF0aW9uQ2hhbmdlZChXZWJL
aXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgc3RydWN0IFdlYktpdDo6
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAKICAg
ICBBZGRSZW1vdGVUZXh0VHJhY2soV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IHRyYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgUmVtb3ZlUmVtb3RlVGV4dFRyYWNrKFdlYktpdDo6VHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCA4YmE5MjU5ZTUwZTNlY2RiMGI4MmNlNjI5MzEzMmUxM2FlYjRjOGIyLi4wZjhk
NWY4MzExMzg5YWRjY2NiODg4NTlhODI3NDliZDlhMDFkOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcApAQCAtMzIsMTAgKzMyLDExIEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQorVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWRlbmRpZmllciwgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKICAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAs
IG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQpAQCAtNTQsNyArNTUsNyBAQCB2b2lkIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOjpzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKQogICAgIFZpZGVvVHJh
Y2tQcml2YXRlOjpzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFja1By
aXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit2b2lkIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjp1
cGRhdGVDb25maWd1cmF0aW9uKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgaWYgKGNvbmZpZ3VyYXRpb24udHJhY2tJZCAhPSBtX2lk
KSB7CiAgICAgICAgIGF1dG8gY2hhbmdlZCA9ICFtX2lkLmlzRW1wdHkoKTsKQEAgLTc5LDE0ICs4
MCw4IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OnVwZGF0ZUNvbmZpZ3VyYXRpb24o
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvCiAKICAgICBtX3RyYWNrSW5kZXggPSBjb25m
aWd1cmF0aW9uLnRyYWNrSW5kZXg7CiAgICAgbV9zdGFydFRpbWVWYXJpYW5jZSA9IGNvbmZpZ3Vy
YXRpb24uc3RhcnRUaW1lVmFyaWFuY2U7Ci0gICAgbV9raW5kID0gY29uZmlndXJhdGlvbi52aWRl
b0tpbmQ7Ci0gICAgbV9jb2RlYyA9IGNvbmZpZ3VyYXRpb24uY29kZWM7Ci0gICAgbV93aWR0aCA9
IGNvbmZpZ3VyYXRpb24ud2lkdGg7Ci0gICAgbV9oZWlnaHQgPSBjb25maWd1cmF0aW9uLmhlaWdo
dDsKLSAgICBtX2NvbG9yU3BhY2UgPSBjb25maWd1cmF0aW9uLmNvbG9yU3BhY2U7Ci0gICAgbV9m
cmFtZXJhdGUgPSBjb25maWd1cmF0aW9uLmZyYW1lcmF0ZTsKLSAgICBtX2JpdHJhdGUgPSBjb25m
aWd1cmF0aW9uLmJpdHJhdGU7Ci0KKyAgICBtX2tpbmQgPSBjb25maWd1cmF0aW9uLmtpbmQ7Cisg
ICAgc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24udHJhY2tDb25maWd1cmF0
aW9uKSk7CiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKGNvbmZpZ3VyYXRpb24u
c2VsZWN0ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgKaW5kZXggNjlmY2Q4NmM2NGRj
MjBmZmI2ZDk5NTE2MmZiMDhmODg1ZTExNTUxYy4uYzgxNjFmMjExNzY1NWRiNTZiZjExZmIxMzEw
Nzc1M2U4NWYxMmU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaApAQCAtMjgsNyArMjgsNiBA
QAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVySWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KQEAgLTM3LDE4ICszNiwxOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU7Ci1zdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKK3N0cnVjdCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKIGNs
YXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlCiAgICAgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9U
cmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlKQogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+
IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1v
dGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxh
eWVySWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAg
IH0KIAotICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uJiYpOworICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAKICAgICB1c2luZyBWaWRlb1RyYWNrS2luZCA9
IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOwogICAgIFZpZGVvVHJhY2tLaW5kIGtp
bmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2tpbmQ7IH0KQEAgLTU3LDE1ICs1Niw5IEBAIHB1
YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9s
YW5ndWFnZTsgfQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
cmFja0luZGV4OyB9CiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9zdGFydFRpbWVWYXJpYW5jZTsgfQotICAgIFN0cmluZyBjb2RlYygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29kZWM7IH0KLSAgICB1aW50MzJfdCB3aWR0aCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fd2lkdGg7IH0KLSAgICB1aW50MzJfdCBoZWlnaHQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2hlaWdodDsgfQotICAgIFdlYkNvcmU6OlBsYXRmb3JtVmlkZW9Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0K
LSAgICBkb3VibGUgZnJhbWVyYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZXJhdGU7
IH0KLSAgICB1aW50NjRfdCBiaXRyYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9iaXRyYXRl
OyB9CiAKIHByaXZhdGU6Ci0gICAgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CisgICAg
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHZvaWQgc2V0U2VsZWN0
ZWQoYm9vbCkgZmluYWw7CiAKQEAgLTc2LDEyICs2OSw2IEBAIHByaXZhdGU6CiAgICAgQXRvbVN0
cmluZyBtX2xhYmVsOwogICAgIEF0b21TdHJpbmcgbV9sYW5ndWFnZTsKICAgICBpbnQgbV90cmFj
a0luZGV4IHsgLTEgfTsKLSAgICBTdHJpbmcgbV9jb2RlYzsKLSAgICB1aW50MzJfdCBtX3dpZHRo
IHsgMCB9OwotICAgIHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwotICAgIFdlYkNvcmU6OlBsYXRm
b3JtVmlkZW9Db2xvclNwYWNlIG1fY29sb3JTcGFjZTsKLSAgICBkb3VibGUgbV9mcmFtZXJhdGUg
eyAwIH07Ci0gICAgdWludDY0X3QgbV9iaXRyYXRlIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0
YXJ0VGltZVZhcmlhbmNlIHsgTWVkaWFUaW1lOjp6ZXJvVGltZSgpIH07CiAgICAgVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkZW5kaWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkMTlkNTRhOWYw
YzAwNmFmMTAzMDNiMjZmNGFlY2Y2MjI5ZDMwNzAuLjI2NWI2MDQ3ODBjZjRmMzAxODgzOGQ4MmQ5
Nzk1MWI3MjA4MDdlNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0zMSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEhhbmcgaW4gQVZU
cmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6Yml0cmF0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgTm93IHRoYXQgdGhlc2UgcHJvcGVydGllcyBhcmUgZHlu
YW1pYywgdGVzdCB0aGVtIHdpdGggYHRlc3RFeHBlY3RlZEV2ZW50dWFsbHlgLgorCisgICAgICAg
ICogbWVkaWEvdHJhY2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sOgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWFsdGVybmF0ZS1ncm91cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIG1lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbDoKKwog
MjAyMi0wMS0wNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODM1NDYuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay9hdWRpby10cmFjay1jb25maWd1cmF0aW9uLmh0bWwKaW5kZXggYTU3
ZTI2MzAyZjM2MTAwNzU1NmIzNDJiZjM2M2I2NzI2ZjZmMzI4OS4uZTczNDYwOGM2ZWE3ZjU2MjJj
OTMyNzc5Njc1YmZhZWU3NTUyZTA3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svYXVkaW8tdHJhY2stY29uZmlndXJhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL2F1ZGlvLXRyYWNrLWNvbmZpZ3VyYXRpb24uaHRtbApAQCAtOSwxMiArOSwxMiBAQAog
CQkJZmluZE1lZGlhRWxlbWVudCgpOwogCQkJcnVuKCd2aWRlby5zcmMgPSAiLi4vY29udGVudC9h
dWRpby10cmFja3MubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsK
LQkJCXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgMCwgJz4nKTsKLQkJ
CXRlc3RFeHBlY3RlZCgndmlkZW8uYXVkaW9UcmFja3NbMF0uY29uZmlndXJhdGlvbicsIG51bGws
ICchPScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0
aW9uLmNvZGVjJywgJ21wNGEuNDAuMicpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLnNhbXBsZVJhdGUnLCA0NDEwMCk7Ci0JCQl0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24ubnVtYmVyT2ZDaGFubmVscycs
IDIpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmJpdHJhdGUnLCAxMDAwMDAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgMCwgJz4nKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxs
LCAnIT0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uY29kZWMnLCAnbXA0YS40MC4yJyk7CisJCQlhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLnNh
bXBsZVJhdGUnLCA0NDEwMCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRl
by5hdWRpb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLm51bWJlck9mQ2hhbm5lbHMnLCAyKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uYml0cmF0ZScsIDEwMDAwMCwgJz49Jyk7CiAJCQllbmRUZXN0KCk7CiAJCX0pOwog
CTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJh
Y2stYWx0ZXJuYXRlLWdyb3Vwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay92aWRlby10cmFjay1hbHRlcm5hdGUtZ3JvdXBzLWV4cGVjdGVkLnR4dAppbmRleCBkNzdmZjNh
NmMzZTI3MDFlYmUwMzAxZjM1N2RlODBlMzQ5MmQwZGM0Li5mZDA4ZTdjODk5OGFjMmVmM2ExMDI1
OTg5MzA1OWY1OGM5YmQ5M2I5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92
aWRlby10cmFjay1hbHRlcm5hdGUtZ3JvdXBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay92aWRlby10cmFjay1hbHRlcm5hdGUtZ3JvdXBzLWV4cGVjdGVkLnR4dApA
QCAtMTQsMTUgKzE0LDE1IEBAIFRlc3QgdGhhdCBtZWRpYSBjb250YWluaW5nIHR3byBhdWRpbyB0
cmFja3MgaW4gb25lIGFsdGVybmF0ZSBncm91cCBhbmQgb25lIHRyYWNrCiBSVU4odmlkZW8uc3Jj
ID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC9hdWRpby10cmFja3Mtc29tZS1p
bi1hbHRlcm5hdGUtZ3JvdXAiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVhQRUNURUQgKHZp
ZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCA9PSAnMicpIE9LCi1UUkFDSyBpZDoyIGtpbmQ6bWFpbiBs
YW5ndWFnZTplbgotVFJBQ0sgaWQ6MyBraW5kOm1haW4gbGFuZ3VhZ2U6ZnIKK1RSQUNLIGlkOjIg
a2luZDptYWluIGxhbmd1YWdlOmVuZworVFJBQ0sgaWQ6MyBraW5kOm1haW4gbGFuZ3VhZ2U6ZnJh
CiAKIFRlc3QgdGhhdCBtZWRpYSBjb250YWluaW5nIHNpeCBhdWRpbyB0cmFja3MsIHdpdGggdGhy
ZWUgYXVkaW8gdHJhY2tzIGVhY2ggcmVmZXJyaW5nIHRvIGEgc2VwYXJhdGUgdHJhY2sgYXMgYSBm
YWxsYmFjayB0cmFjaywgYWxsIGluIG9uZSBhbHRlcm5hdGUgZ3JvdXAsIHJlc3VsdHMgaW4gdGhy
ZWUgQXVkaW9UcmFja3MKIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIu
Li9jb250ZW50L2F1ZGlvLXRyYWNrcy1hbHRlcm5hdGUtZ3JvdXAtd2l0aC1mYWxsYmFjayIpKQog
RVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3MubGVuZ3Ro
ID09ICczJykgT0sKLVRSQUNLIGlkOjIga2luZDptYWluIGxhbmd1YWdlOmVuCi1UUkFDSyBpZDo0
IGtpbmQ6bWFpbiBsYW5ndWFnZTpmcgotVFJBQ0sgaWQ6NiBraW5kOm1haW4gbGFuZ3VhZ2U6ZXMK
K1RSQUNLIGlkOjMga2luZDptYWluIGxhbmd1YWdlOmVuZworVFJBQ0sgaWQ6NSBraW5kOm1haW4g
bGFuZ3VhZ2U6ZnJhCitUUkFDSyBpZDo3IGtpbmQ6bWFpbiBsYW5ndWFnZTpzcGEKIEVORCBPRiBU
RVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNv
bmZpZ3VyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3ZpZGVvLXRyYWNrLWNv
bmZpZ3VyYXRpb24uaHRtbAppbmRleCAxMjAzOTk5ODIwNDVmOTMxZTg5ZjMzNjU2MzhmNTM3YjEz
MjY2MDQ0Li5iNWRkNmYyN2FhMGI2YWIyZjIxYzkzN2IyMTU0ZTA4YzYwMzM3YzYwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay92aWRlby10cmFjay1jb25maWd1cmF0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdmlkZW8tdHJhY2stY29uZmlndXJhdGlv
bi5odG1sCkBAIC05LDMwICs5LDMwIEBACiAJCQlmaW5kTWVkaWFFbGVtZW50KCk7CiAJCQlydW4o
J3ZpZGVvLnNyYyA9ICIuLi9jb250ZW50L3Rlc3QubXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2
aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3MubGVu
Z3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdhdmMxLjRENDAwRCcpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKLQkJCXRl
c3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5oZWlnaHQnLCAy
NDApOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9u
LmJpdHJhdGUnLCAyNDAwMDAsICc+PScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKLQkJCXRlc3RFeHBl
Y3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlJywgbnVs
bCwgJyE9Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ0NzBiZycpOwotCQkJdGVzdEV4cGVjdGVkKCd2
aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UucHJpbWFyaWVzJywg
J3NtcHRlMTcwbScpOwotCQkJdGVzdEV4cGVjdGVkKCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25m
aWd1cmF0aW9uLmNvbG9yU3BhY2UudHJhbnNmZXInLCAnYnQ3MDknKTsKKwkJCWF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsIDEpOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbicsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdhdmMxLjRENDAwRCcpOwor
CQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5
KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmhlaWdodCcsIDI0MCk7CisJCQlh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1
cmF0aW9uLmJpdHJhdGUnLCAyNDAwMDAsICc+PScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFtZXJhdGUnLCAz
MCwgJz49Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UnLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRp
b24uY29sb3JTcGFjZS5tYXRyaXgnLCAnYnQ0NzBiZycpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNl
LnByaW1hcmllcycsICdzbXB0ZTE3MG0nKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZS50cmFuc2Zl
cicsICdidDcwOScpOwogCQkJcnVuKCd2aWRlby5zcmMgPSAiLi4vY29udGVudC90ZXN0LWhldmMu
bXA0IicpOwogCQkJYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXknKTsKLQkJCXRlc3RFeHBl
Y3RlZCgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgMSk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKLQkJCXRlc3RF
eHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2RlYycsICdodmMx
LjEuNi5MOTMuQjAnKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29u
ZmlndXJhdGlvbi53aWR0aCcsIDMyMCk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJh
Y2tzWzBdLmNvbmZpZ3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKLQkJCXRlc3RFeHBlY3RlZCgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5iaXRyYXRlJywgMTUwMDAwLCAnPj0nKTsK
LQkJCXRlc3RFeHBlY3RlZCgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5mcmFt
ZXJhdGUnLCAzMCwgJz49Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBd
LmNvbmZpZ3VyYXRpb24uY29sb3JTcGFjZScsIG51bGwsICchPScpOwotCQkJdGVzdEV4cGVjdGVk
KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLmNvbG9yU3BhY2UubWF0cml4Jywg
J2J0NzA5Jyk7Ci0JCQl0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3Vy
YXRpb24uY29sb3JTcGFjZS5wcmltYXJpZXMnLCAnYnQ3MDknKTsKLQkJCXRlc3RFeHBlY3RlZCgn
dmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywg
J2J0NzA5Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1Ry
YWNrcy5sZW5ndGgnLCAxKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVv
LnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24nLCBudWxsLCAnIT0nKTsKKwkJCWF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24u
Y29kZWMnLCAnaHZjMS4xLjYuTDkzLkIwJyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby52aWRlb1RyYWNrc1swXS5jb25maWd1cmF0aW9uLndpZHRoJywgMzIwKTsKKwkJ
CWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZp
Z3VyYXRpb24uaGVpZ2h0JywgMjQwKTsKKwkJCWF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uYml0cmF0ZScsIDE1MDAwMCwgJz49
Jyk7CisJCQlhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby52aWRlb1RyYWNrc1sw
XS5jb25maWd1cmF0aW9uLmZyYW1lcmF0ZScsIDMwLCAnPj0nKTsKKwkJCWF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmNvbmZpZ3VyYXRpb24uY29sb3JT
cGFjZScsIG51bGwsICchPScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLm1hdHJpeCcsICdidDcw
OScpOworCQkJYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3Nb
MF0uY29uZmlndXJhdGlvbi5jb2xvclNwYWNlLnByaW1hcmllcycsICdidDcwOScpOworCQkJYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8udmlkZW9UcmFja3NbMF0uY29uZmlndXJh
dGlvbi5jb2xvclNwYWNlLnRyYW5zZmVyJywgJ2J0NzA5Jyk7CiAJCQllbmRUZXN0KCk7CiAJCX0p
OwogCTwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>