<?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>222982</bug_id>
          
          <creation_ts>2021-03-09 09:20:11 -0800</creation_ts>
          <short_desc>Update RTCRtpScriptTransform to the latest version of the spec</short_desc>
          <delta_ts>2021-03-13 03:12:16 -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>WebRTC</component>
          <version>WebKit Local 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>
          <dependson>223142</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737610</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-09 09:20:11 -0800</bug_when>
    <thetext>Update RTCRtpScriptTransform to the latest version of the spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737617</commentid>
    <comment_count>1</comment_count>
      <attachid>422716</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-09 09:32:51 -0800</bug_when>
    <thetext>Created attachment 422716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738028</commentid>
    <comment_count>2</comment_count>
      <attachid>422821</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-10 05:32:14 -0800</bug_when>
    <thetext>Created attachment 422821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738105</commentid>
    <comment_count>3</comment_count>
      <attachid>422821</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-10 10:06:48 -0800</bug_when>
    <thetext>Comment on attachment 422821
Patch

Wincairo might be a unified build issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738468</commentid>
    <comment_count>4</comment_count>
      <attachid>422821</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-11 08:59:35 -0800</bug_when>
    <thetext>Comment on attachment 422821
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Add support for options parameter provided in RTCRtpScriptTrtansform constructor.

s/RTCRtpScriptTrtansform/RTCRtpScriptTransform/

&gt; Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.cpp:55
&gt; +    auto transformer = adoptRef(*new RTCRtpScriptTransformer(context, WTFMove(options), WTFMove(port), readable.releaseReturnValue(), WTFMove(readableSource)));

Is there any reason to not have the constructor get the SimpleReadableStreamSource from the ReadableStream?

&gt; Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.cpp:104
&gt; +            return writable;

I thought this was wrong at first because of the variable name, something like `writableOrException` might make it clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738818</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-12 02:19:39 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 422821 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422821&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        Add support for options parameter provided in RTCRtpScriptTrtansform constructor.
&gt; 
&gt; s/RTCRtpScriptTrtansform/RTCRtpScriptTransform/

OK

&gt; &gt; Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.cpp:55
&gt; &gt; +    auto transformer = adoptRef(*new RTCRtpScriptTransformer(context, WTFMove(options), WTFMove(port), readable.releaseReturnValue(), WTFMove(readableSource)));
&gt; 
&gt; Is there any reason to not have the constructor get the
&gt; SimpleReadableStreamSource from the ReadableStream?

ReadableStream can take any ReadableStreamSource but we want to keep the fact it is a SimpleReadableStreamSource.

&gt; &gt; Source/WebCore/Modules/mediastream/RTCRtpScriptTransformer.cpp:104
&gt; &gt; +            return writable;
&gt; 
&gt; I thought this was wrong at first because of the variable name, something
&gt; like `writableOrException` might make it clearer.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738877</commentid>
    <comment_count>6</comment_count>
      <attachid>423043</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-12 06:43:13 -0800</bug_when>
    <thetext>Created attachment 423043
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738900</commentid>
    <comment_count>7</comment_count>
      <attachid>423052</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-12 08:09:22 -0800</bug_when>
    <thetext>Created attachment 423052
Win fix try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738930</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-12 09:55:38 -0800</bug_when>
    <thetext>Don, Hironori-san, can you help me with wincairo failure?
Might be a unified build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738986</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-12 12:19:43 -0800</bug_when>
    <thetext>Thank you for letting me know that. It looks a simple problem. Will check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739018</commentid>
    <comment_count>10</comment_count>
      <attachid>423080</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-12 13:48:13 -0800</bug_when>
    <thetext>Created attachment 423080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739023</commentid>
    <comment_count>11</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-12 13:55:34 -0800</bug_when>
    <thetext>It turned out this isn&apos;t a simple problem. I&apos;ll look into into it again next week.
I added some header inclusions to WebGLRenderingContextBase.h, and fixed recursive inclusion of WebGLTransformFeedback.h.
This patch can compile for WinCairo.
Hmm, but, it can&apos;t compile for other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739129</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-13 02:29:01 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 423052 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739133</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-13 02:51:18 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 423052 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739136</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-13 03:11:32 -0800</bug_when>
    <thetext>Committed r274385: &lt;https://commits.webkit.org/r274385&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423052.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739137</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-13 03:12:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/75392479&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422716</attachid>
            <date>2021-03-09 09:32:51 -0800</date>
            <delta_ts>2021-03-10 05:32:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222982-20210309183248.patch</filename>
            <type>text/plain</type>
            <size>67419</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5YjVhMWU3YmNmMTYy
NjM1ZDYxNDJiNDQ4NTY4ZTI2NjI5MzkzZS4uMTFjMzZmMTA1M2JlNTc4OWI4YzQ3NjA0Y2E2OGNi
ZTJhZWI3YzllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTAzLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIEF1ZGlvV29y
a2xldCBtb2RlbCB0byBhbiBldmVudCBiYXNlZCBtb2RlbCBhcyBwZXIgbGF0ZXN0IHNwZWNpZmlj
YXRpb24uCisgICAgICAgIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGNvbmNlbnRyYXRlcyBhbGwg
dGhlIEFQSSBhbmQgaXMgZXhwb3NlZCB0byB3b3JrZXIgdXNpbmcgYSBuZXcgcnRjdHJhbnNmb3Jt
IGV2ZW50LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igb3B0aW9ucyBwYXJhbWV0ZXIgcHJvdmlk
ZWQgaW4gUlRDUnRwU2NyaXB0VHJ0YW5zZm9ybSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlk
ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI6OnJlYWRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjp3cml0YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJl
cXVlc3RLZXlGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cjo6b3B0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3Iu
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpw
cmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKToKKyAgICAgICAgKiB3
b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGVSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKwogMjAyMS0wMy0wOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFSZWNvcmRl
ci5yZXF1ZXN0RGF0YSgpIG5vdCByZXR1cm5pbmcgYWxsIGNhcHR1cmVkIG1lZGlhIGFmdGVyIGEg
cGF1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGRmMmI3MmVjNjFkZDViN2Q1ZDBhZWNhNDg2
YzJmNWZmMmJkZDg4MC4uYmRiOThjMzI2YTU5ZWJlMTg1Y2I3ODBlMTViYjg1ZWJmMjAwZDc3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQwNyw4ICs0MDcsNyBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJv
dmlkZXIuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5pZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
c3RydWN0b3IuaWRsCi0gICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lckNvbnRleHQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZFBhcmFt
ZXRlcnMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIrVHJhbnNmb3Jt
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjIwZmMwZGZk
MTk0NGViOTJmYmY5NTA2ZmRiYWQ0Zjk4MTViYTkxOS4uZmFhZTJjNjMxMjM4YjE1YjNiYmVkNjZh
NGM0M2FjZTg5N2JmNDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0yNDksOCArMjQ5LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIrVHJhbnNmb3Jt
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaWRs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGFjZjNkMDYyYzBhNjkzZDk5NDEzMDhjNTJiMzIzODhhNzg4NjE4NWMuLjZlZDdlZWEyZWVh
ZDM1ZWExMDBmNjRjZDcxNTAwMjg5MmM4ZmQ2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNzM0LDEwICsxNzM0LDggQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRU
cmFuc2Zvcm1Qcm92aWRlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmNwcAotJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnN0cnVjdG9yLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmNwcAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2
ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
UnRwU2VuZFBhcmFtZXRlcnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGY0N2E5YWI2MzgyODFjNTZkOGFhZWRjM2Jl
ZDYxMDA1MDk0OGNlNzcuLjY3MzVjODc1OWJkMjhmYjNhYjUyYWFmZjQzNzFiYzRhMDE0ZmYxYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjc2LDggKzI3Niw3IEBAIEpTX0JJ
TkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwgXAotICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVj
dG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyQ29udGV4dC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlckRpcmVj
dGlvbi5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwCmluZGV4IGYyNjlkMWViZDc3ZWQ5YTk2
ZmU1NDkzNGYxMzM4MDI3NWFiOWFhYTEuLjExN2U0ZjJhNTg5ZmM1ZWJlNWVjNjdjMjYwZmE2M2U5
ZmI2NzIyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAog
I2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVk
ZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJNZXNzYWdlQ2hhbm5lbC5oIgogI2lu
Y2x1ZGUgIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNm
b3JtQmFja2VuZC5oIgpAQCAtNDEsMjIgKzQyLDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSk7CiAKLUV4
Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm0+PiBSVENSdHBTY3JpcHRUcmFuc2Zv
cm06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrZXImIHdvcmtl
ciwgU3RyaW5nJiYgbmFtZSkKK0V4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm0+
PiBSVENSdHBTY3JpcHRUcmFuc2Zvcm06OmNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0
ZSwgV29ya2VyJiB3b3JrZXIsIEpTQzo6SlNWYWx1ZSBvcHRpb25zKQogewotICAgIGlmICghd29y
a2VyLmhhc1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKG5hbWUpKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB3
YXMgcmVnaXN0ZXJlZCB3aXRoIHRoaXMgbmFtZSJfcyB9OwotCiAgICAgaWYgKCF3b3JrZXIuc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJXb3JrZXIgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfTsKIAorICAgIGF1dG8q
IGNvbnRleHQgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZzdGF0ZSktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFsaWQgY29udGV4dCJfcyB9OworCisg
ICAgYXV0byBzZXJpYWxpemVkT3B0aW9ucyA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KHN0YXRlLCBvcHRpb25zKTsKKyAgICBpZiAoIXNlcmlhbGl6ZWRPcHRpb25zKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworCiAgICAgYXV0byBt
ZXNzYWdlQ2hhbm5lbCA9IE1lc3NhZ2VDaGFubmVsOjpjcmVhdGUoKndvcmtlci5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogICAgIGF1dG8gdHJhbnNmb3JtTWVzc2FnZVBvcnQgPSBtZXNzYWdl
Q2hhbm5lbC0+cG9ydDEoKTsKICAgICBhdXRvIHRyYW5zZm9ybWVyTWVzc2FnZVBvcnQgPSBtZXNz
YWdlQ2hhbm5lbC0+cG9ydDIoKTsKIAotICAgIGF1dG8gdHJhbnNmb3JtID0gYWRvcHRSZWYoKm5l
dyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0oY29udGV4dCwgbWFrZVJlZih3b3JrZXIpLCBtYWtlUmVm
KCp0cmFuc2Zvcm1NZXNzYWdlUG9ydCkpKTsKKyAgICBhdXRvIHRyYW5zZm9ybSA9IGFkb3B0UmVm
KCpuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKCpjb250ZXh0LCBtYWtlUmVmKHdvcmtlciksIG1h
a2VSZWYoKnRyYW5zZm9ybU1lc3NhZ2VQb3J0KSkpOwogICAgIHRyYW5zZm9ybS0+c3VzcGVuZElm
TmVlZGVkKCk7CiAKLSAgICB3b3JrZXIuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIobmFt
ZSwgdHJhbnNmb3JtZXJNZXNzYWdlUG9ydC0+ZGlzZW50YW5nbGUoKSwgdHJhbnNmb3JtKTsKKyAg
ICB3b3JrZXIuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIodHJhbnNmb3JtLCBzZXJpYWxp
emVkT3B0aW9ucy5yZWxlYXNlTm9uTnVsbCgpLCB0cmFuc2Zvcm1lck1lc3NhZ2VQb3J0LT5kaXNl
bnRhbmdsZSgpKTsKIAogICAgIHJldHVybiB0cmFuc2Zvcm07CiB9CkBAIC03MywyMyArNzksMTYg
QEAgUlRDUnRwU2NyaXB0VHJhbnNmb3JtOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtKCkKICAgICBj
bGVhcigpOwogfQogCi12b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIo
UmVmUHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYmIHRyYW5zZm9ybWVyKQordm9pZCBSVENS
dHBTY3JpcHRUcmFuc2Zvcm06OnNldFRyYW5zZm9ybWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
JiB0cmFuc2Zvcm1lcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAo
IXRyYW5zZm9ybWVyKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHF1ZXVlVGFz
a1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFcnJvckV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsICJBbiBlcnJvciB3YXMgdGhyb3du
IGZyb20gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgY29uc3RydWN0b3IiX3MsIHsgfSwgMCwgMCwg
eyB9KSk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgewogICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdHJhbnNmb3JtZXJMb2NrKTsKICAgICAgICAg
QVNTRVJUKCFtX2lzVHJhbnNmb3JtZXJJbml0aWFsaXplZCk7CiAgICAgICAgIG1faXNUcmFuc2Zv
cm1lckluaXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgICAgbV90cmFuc2Zvcm1lciA9IG1ha2VXZWFr
UHRyKHRyYW5zZm9ybWVyLmdldCgpKTsKKyAgICAgICAgbV90cmFuc2Zvcm1lciA9IG1ha2VXZWFr
UHRyKHRyYW5zZm9ybWVyKTsKICAgICB9Ci0gICAgdHJhbnNmb3JtZXItPnN0YXJ0UGVuZGluZ0Fj
dGl2aXR5KCk7CisgICAgdHJhbnNmb3JtZXIuc3RhcnRQZW5kaW5nQWN0aXZpdHkoKTsKICAgICBj
YWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQpCiAgICAgICAgICAgICBzZXR1cFRyYW5z
Zm9ybWVyKG1fYmFja2VuZC5yZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5oCmlu
ZGV4IGVjNTQ2OGFiZWEwYjAxNzkyMzAwZDE1MzU5NDQ2ZDVlMzlhMmFkOGIuLmViMjc1NzJlNjBh
MmRhZGEzMTkwODFkZWQyMWY0YThhMzk3YmFjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtNDUsMTIgKzQ2LDEyIEBAIGNsYXNzIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybSBmaW5hbAogICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUlRDUnRwU2NyaXB0VHJhbnNm
b3JtKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybT4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya2VyJiwgU3RyaW5n
JiYgbmFtZSk7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zv
cm0+PiBjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFdvcmtlciYsIEpTQzo6SlNWYWx1ZSk7
CiAgICAgflJUQ1J0cFNjcmlwdFRyYW5zZm9ybSgpOwogCiAgICAgTWVzc2FnZVBvcnQmIHBvcnQo
KSB7IHJldHVybiBtX3BvcnQuZ2V0KCk7IH0KIAotICAgIHZvaWQgc2V0VHJhbnNmb3JtZXIoUmVm
UHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYmKTsKKyAgICB2b2lkIHNldFRyYW5zZm9ybWVy
KFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyJik7CiAKICAgICBib29sIGlzQXR0YWNoZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzQXR0YWNoZWQ7IH0KICAgICB2b2lkIGluaXRpYWxpemVCYWNrZW5kRm9y
UmVjZWl2ZXIoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRs
CmluZGV4IGQ2NmE5Yjk1MzFjMTc4MjFjNjg5OWI2ZjYwMGZkNTczMGQ5ZmU5OWQuLmNmNDQ3MjJl
NzMyMWRiZTY2NDgzODExYTQ4ZTkxMWI1Y2ZjZjYyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5p
ZGwKQEAgLTMwLDcgKzMwLDcgQEAKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRl
VG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0gOiBFdmVu
dFRhcmdldCB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVj
dG9yKFdvcmtlciB3b3JrZXIsIERPTVN0cmluZyBuYW1lKTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFs
T2JqZWN0XSBjb25zdHJ1Y3RvcihXb3JrZXIgd29ya2VyLCBhbnkgb3B0aW9ucyk7CiAKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybVByb3Zp
ZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtUHJvdmlkZXIuaWRsCmluZGV4IGQ2M2JlOGFkYzMwMjdlNTc4ZjY2Y2Y0YzU5YzFi
NTc0ZDZmZTI2MzUuLjQ3NmEzMjQxYTdiODI3NTVmNjFiNjZmODkyODRkZjdkNTliMjRhZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtUHJvdmlkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaWRsCkBAIC0yNCw1ICsyNCw1IEBA
CiAgKi8KIAogaW50ZXJmYWNlIG1peGluIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyIHsK
LSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCByZWdpc3RlclJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyKERPTVN0cmluZyBuYW1lLCBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVj
dG9yIHByb2Nlc3NvckNvbnN0cnVjdG9yKTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
cnRjdHJhbnNmb3JtOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggNGYyMTE1
N2RkZDBiOThiNDU2ZGY0N2JlNDUxZTk4M2EyYjQxZmQzMy4uN2ZiNmM1MjNkYWMwM2IyMjdmNmE1
ZGZlYzRmOTVlYTIwNTgwMmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTMx
LDI5ICszMSwzOCBAQAogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSAiSlNSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgogI2luY2x1ZGUgIkpTUlRDRW5jb2Rl
ZFZpZGVvRnJhbWUuaCIKLSNpbmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dC5oIgogI2luY2x1ZGUgIlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIgogI2luY2x1ZGUgIlJl
YWRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKKyNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtU2luay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK0V4
Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBvcHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKIHsK
LSAgICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKTsKLSAgICBpZiAoIXBv
cnQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJObyBwZW5kaW5nIGNv
bnN0cnVjdGlvbiBkYXRhIGZvciB0aGlzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIl9zIH07Cisg
ICAgaWYgKCFjb250ZXh0Lmdsb2JhbE9iamVjdCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIGF1dG8gdHJhbnNmb3JtZXIgPSBhZG9wdFJl
ZigqbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKGNvbnRleHQsIHBvcnQucmVsZWFzZU5vbk51
bGwoKSkpOworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGNvbnRleHQuZ2xvYmFsT2JqZWN0KCkpOworICAgIEpTQzo6SlNMb2NrSG9sZGVy
IGxvY2soZ2xvYmFsT2JqZWN0LnZtKCkpOworICAgIGF1dG8gcmVhZGFibGVTb3VyY2UgPSBTaW1w
bGVSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFkYWJsZSA9IFJl
YWRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVNvdXJjZS5jb3B5UmVm
KCkpOworICAgIGlmIChyZWFkYWJsZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHJl
YWRhYmxlLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIGF1dG8gdHJhbnNmb3JtZXIgPSBhZG9w
dFJlZigqbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKGNvbnRleHQsIFdURk1vdmUob3B0aW9u
cyksIFdURk1vdmUocG9ydCksIHJlYWRhYmxlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3Zl
KHJlYWRhYmxlU291cmNlKSkpOwogICAgIHRyYW5zZm9ybWVyLT5zdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICByZXR1cm4gdHJhbnNmb3JtZXI7CiB9CiAKLVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBS
ZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKK1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG9wdGlvbnMsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0LCBS
ZWY8UmVhZGFibGVTdHJlYW0+JiYgcmVhZGFibGUsIFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4mJiByZWFkYWJsZVNvdXJjZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
KyAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9wb3J0KFdURk1vdmUo
cG9ydCkpCisgICAgLCBtX3JlYWRhYmxlU291cmNlKFdURk1vdmUocmVhZGFibGVTb3VyY2UpKQor
ICAgICwgbV9yZWFkYWJsZShXVEZNb3ZlKHJlYWRhYmxlKSkKIHsKIH0KIApAQCAtNjEsNjggKzcw
LDUxIEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIo
KQogewogfQogCi1SZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2Vu
ZCkKK1JlYWRhYmxlU3RyZWFtJiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6cmVhZGFibGUoKQog
ewotICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spOwotICAgIGlmICghY2Fs
bGJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byYgY29udGV4dCA9IGRv
d25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAg
ICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihj
b250ZXh0Lmdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gbV9yZWFkYWJsZS5nZXQoKTsKK30K
IAotICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9jayh2bSk7Ci0KLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZSgpOwotICAgIGF1dG8gcmVhZGFibGVTdHJlYW0gPSBS
ZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgcmVhZGFibGVTdHJlYW1Tb3VyY2Uu
Y29weVJlZigpKTsKLSAgICBpZiAocmVhZGFibGVTdHJlYW0uaGFzRXhjZXB0aW9uKCkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byB3cml0YWJsZVN0cmVhbSA9IFdyaXRhYmxl
U3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OmNy
ZWF0ZShbYmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCldKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFs
dWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0g
KmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0gY29u
dmVydDxJRExVbmlvbjxJRExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRl
cmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0KLSAg
ICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJ0Y0ZyYW1lID0g
V1RGOjpzd2l0Y2hPbihmcmFtZSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkQXVkaW9GcmFtZT4mIHZh
bHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7Ci0g
ICAgICAgIH0sIFsmXShSZWZQdHI8UlRDRW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgewotICAg
ICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOwotICAgICAgICB9KTsK
LSAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUocnRjRnJhbWUuZ2V0KCkp
OwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0pKTsKLSAgICBpZiAod3JpdGFibGVTdHJlYW0u
aGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgLy8gQ2FsbCBz
dGFydCBjYWxsYmFjay4KLSAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAg
YXJncy5hcHBlbmQodG9KU05ld2x5Q3JlYXRlZCgmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0
LCByZWFkYWJsZVN0cmVhbS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwotICAgIGFyZ3MuYXBwZW5k
KHRvSlNOZXdseUNyZWF0ZWQoJmdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgd3JpdGFibGVT
dHJlYW0ucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKLSAgICBhcmdzLmFwcGVuZCh0b0pTTmV3bHlD
cmVhdGVkKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyQ29udGV4dDo6Y3JlYXRlKG1ha2VSZWYoYmFja2VuZCkpKSk7Ci0KLSAgICBOYWtlZFB0cjxK
U0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247Ci0gICAgY2FsbGJhY2stPmludm9rZUNh
bGxiYWNrKEpTQzo6anNVbmRlZmluZWQoKSwgYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNr
VHlwZTo6T2JqZWN0LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzdGFydCIpLCBy
ZXR1cm5lZEV4Y2VwdGlvbik7Ci0gICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBpbiBjYXNlIG9m
IGV4Y2VwdGlvbj8gV2Ugc2hvdWxkIGF0IGxlYXN0IGxvZyBlcnJvcnMuCi0KLSAgICByZXR1cm4g
cmVhZGFibGVTdHJlYW1Tb3VyY2U7CitFeGNlcHRpb25PcjxSZWY8V3JpdGFibGVTdHJlYW0+PiBS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6d3JpdGFibGUoKQoreworICAgIGlmICghbV93cml0YWJs
ZSkgeworICAgICAgICBhdXRvKiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGlmICghY29udGV4dCB8fCAhY29u
dGV4dC0+Z2xvYmFsT2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKKworICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb250ZXh0LT5nbG9iYWxPYmplY3QoKSk7CisgICAg
ICAgIGF1dG8gd3JpdGFibGUgPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW3RyYW5zZm9ybWVyID0gbWFrZVJlZigq
dGhpcyldKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsK
KyAgICAgICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgp
OworCisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxP
YmplY3Qudm0oKSk7CisgICAgICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJ
RExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRlcmZhY2U8UlRDRW5jb2Rl
ZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CisKKyAgICAgICAgICAgIGlmIChz
Y29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhp
c3RpbmdFeGNlcHRpb25FcnJvciB9OworCisgICAgICAgICAgICBhdXRvIHJ0Y0ZyYW1lID0gV1RG
Ojpzd2l0Y2hPbihmcmFtZSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkQXVkaW9GcmFtZT4mIHZhbHVl
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOwor
ICAgICAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1lci0+bV9iYWNrZW5kLT5wcm9jZXNz
VHJhbnNmb3JtZWRGcmFtZShydGNGcmFtZS5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm4geyB9
OworICAgICAgICB9KSk7CisgICAgICAgIGlmICh3cml0YWJsZS5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybiB3cml0YWJsZTsKKyAgICAgICAgbV93cml0YWJsZSA9IHdyaXRhYmxl
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gbWFrZVJlZigqbV93cml0
YWJsZSk7CiB9CiAKIHZvaWQgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0KFJlZjxSVENS
dHBUcmFuc2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCiB7Ci0gICAgYXV0byByZWFkYWJsZVN0cmVh
bVNvdXJjZSA9IHN0YXJ0U3RyZWFtcyhiYWNrZW5kLmdldCgpKTsKLSAgICBpZiAoIXJlYWRhYmxl
U3RyZWFtU291cmNlKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2JhY2tlbmQgPSBXVEZNb3Zl
KGJhY2tlbmQpOwogCiAgICAgYXV0byYgY29udGV4dCA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2JhY2tlbmQtPnNldFRyYW5z
Zm9ybWFibGVGcmFtZUNhbGxiYWNrKFtyZWFkYWJsZVN0cmVhbVNvdXJjZSA9IG1ha2VXZWFrUHRy
KHJlYWRhYmxlU3RyZWFtU291cmNlLmdldCgpKSwgaXNBdWRpbyA9IG1fYmFja2VuZC0+bWVkaWFU
eXBlKCkgPT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbywgdGhyZWFk
ID0gbWFrZVJlZihjb250ZXh0LnRocmVhZCgpKV0oYXV0byYmIGZyYW1lKSBtdXRhYmxlIHsKLSAg
ICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZWFkYWJsZVN0cmVhbVNv
dXJjZSwgaXNBdWRpbywgZnJhbWUgPSBXVEZNb3ZlKGZyYW1lKV0oYXV0byYgY29udGV4dCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIXJlYWRhYmxlU3RyZWFtU291cmNlKQorICAgIG1fYmFj
a2VuZC0+c2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3JlYWRhYmxlU291cmNlID0gbWFr
ZVdlYWtQdHIobV9yZWFkYWJsZVNvdXJjZS5nZXQoKSksIGlzQXVkaW8gPSBtX2JhY2tlbmQtPm1l
ZGlhVHlwZSgpID09IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTo6QXVkaW8sIHRo
cmVhZCA9IG1ha2VSZWYoY29udGV4dC50aHJlYWQoKSldKGF1dG8mJiBmcmFtZSkgbXV0YWJsZSB7
CisgICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVhZGFibGVTb3Vy
Y2UsIGlzQXVkaW8sIGZyYW1lID0gV1RGTW92ZShmcmFtZSldKGF1dG8mIGNvbnRleHQpIG11dGFi
bGUgeworICAgICAgICAgICAgaWYgKCFyZWFkYWJsZVNvdXJjZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQuZ2xvYmFsT2JqZWN0KCkpOwpAQCAtMTMwLDcgKzEy
Miw3IEBAIHZvaWQgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0KFJlZjxSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCiAgICAgICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBs
b2NrKHZtKTsKIAogICAgICAgICAgICAgYXV0byB2YWx1ZSA9IGlzQXVkaW8gPyB0b0pTKCZnbG9i
YWxPYmplY3QsICZnbG9iYWxPYmplY3QsIFJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpjcmVhdGUoV1RG
TW92ZShmcmFtZSkpKSA6IHRvSlMoJmdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgUlRDRW5j
b2RlZFZpZGVvRnJhbWU6OmNyZWF0ZShXVEZNb3ZlKGZyYW1lKSkpOwotICAgICAgICAgICAgcmVh
ZGFibGVTdHJlYW1Tb3VyY2UtPmVucXVldWUodmFsdWUpOworICAgICAgICAgICAgcmVhZGFibGVT
b3VyY2UtPmVucXVldWUodmFsdWUpOwogICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKICAgICB9KTsKIH0KQEAgLTE0Myw2ICsxMzUsMjMgQEAgdm9pZCBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcjo6Y2xlYXIoKQogICAgIHN0b3BQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAor
RXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJlcXVlc3RLZXlGcmFt
ZSgpCit7CisgICAgaWYgKCFtX2JhY2tlbmQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vdCBhdHRhY2hlZCB0byBhIHJlY2VpdmVyIG9yIHNlbmRlciJf
cyB9OworCisgICAgaWYgKG1fYmFja2VuZC0+bWVkaWFUeXBlKCkgIT0gUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZDo6TWVkaWFUeXBlOjpWaWRlbykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IHJlcXVlc3Qga2V5IGZyYW1lIG9uIGF1ZGlvIHNlbmRl
ciJfcyB9OworCisgICAgbV9iYWNrZW5kLT5yZXF1ZXN0S2V5RnJhbWUoKTsKKyAgICByZXR1cm4g
eyB9OworfQorCitKU0M6OkpTVmFsdWUgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6Om9wdGlvbnMo
SlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBtX29wdGlv
bnMtPmRlc2VyaWFsaXplKGdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5oCmluZGV4IDRjMWJiZTBhYzcxYTEwM2VhYTMwMjYzMTFjZWFjNjc2YzRiMmQ0
MjAuLjc2YTRkZjE4ZmMwZjU0MDU0NDEwYWIzMjZmYzEzNDQ0ODVjOGY5M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmgKQEAgLTI5LDQ4ICsyOSw1NyBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9N
T2JqZWN0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJKU0NhbGxiYWNr
RGF0YS5oIgorI2luY2x1ZGUgIlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IE1lc3NhZ2VQb3J0OworY2xhc3MgUmVhZGFibGVTdHJlYW07CiBjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKK2NsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOworY2xhc3Mg
V3JpdGFibGVTdHJlYW07CiAKIGNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4KICAgICAsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4gewogcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXI+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFJl
ZjxNZXNzYWdlUG9ydD4mJik7CiAgICAgflJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCk7CiAKLSAg
ICB2b2lkIHNldENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4m
JiBjYWxsYmFjaykgeyBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAgICBSZWFk
YWJsZVN0cmVhbSYgcmVhZGFibGUoKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8V3JpdGFibGVTdHJl
YW0+PiB3cml0YWJsZSgpOworICAgIEpTQzo6SlNWYWx1ZSBvcHRpb25zKEpTQzo6SlNHbG9iYWxP
YmplY3QmKTsKKworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcXVlc3RLZXlGcmFtZSgpOwogICAg
IE1lc3NhZ2VQb3J0JiBwb3J0KCkgeyByZXR1cm4gbV9wb3J0LmdldCgpOyB9CiAKKyAgICB2b2lk
IHN0YXJ0UGVuZGluZ0FjdGl2aXR5KCkgeyBtX3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5n
QWN0aXZpdHkoKnRoaXMpOyB9CiAgICAgdm9pZCBzdGFydChSZWY8UlRDUnRwVHJhbnNmb3JtQmFj
a2VuZD4mJik7CiAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgdm9pZCBzdGFydFBlbmRpbmdBY3Rp
dml0eSgpIHsgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsg
fQotCiBwcml2YXRlOgotICAgIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZWY8TWVzc2FnZVBvcnQ+JiYpOwotCi0gICAgUmVmUHRyPFNpbXBsZVJlYWRh
YmxlU3RyZWFtU291cmNlPiBzdGFydFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwor
ICAgIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBSZWY8TWVzc2FnZVBvcnQ+JiYsIFJlZjxSZWFkYWJs
ZVN0cmVhbT4mJiwgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiYmKTsKIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCB7IHJldHVybiAiUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIiOyB9CiAgICAgdm9pZCBzdG9w
KCkgZmluYWwgeyBzdG9wUGVuZGluZ0FjdGl2aXR5KCk7IH0KICAgICB2b2lkIHN0b3BQZW5kaW5n
QWN0aXZpdHkoKSB7IGF1dG8gcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShtX3BlbmRpbmdBY3Rp
dml0eSk7IH0KIAorICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fb3B0aW9uczsKICAg
ICBSZWY8TWVzc2FnZVBvcnQ+IG1fcG9ydDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFj
a0RhdGFTdHJvbmc+IG1fY2FsbGJhY2s7CisKKyAgICBSZWY8U2ltcGxlUmVhZGFibGVTdHJlYW1T
b3VyY2U+IG1fcmVhZGFibGVTb3VyY2U7CisgICAgUmVmPFJlYWRhYmxlU3RyZWFtPiBtX3JlYWRh
YmxlOworICAgIFJlZlB0cjxXcml0YWJsZVN0cmVhbT4gbV93cml0YWJsZTsKKwogICAgIFJlZlB0
cjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiBtX2JhY2tlbmQ7CiAgICAgUmVmUHRyPFBlbmRpbmdB
Y3Rpdml0eTxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IG1fcGVuZGluZ0FjdGl2aXR5OwotCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCmlu
ZGV4IDBmOTQwY2NkZWIzMDI0Zjk0NGE5MTBmMDg1MzU2MjdhMzc5NTU2YzguLjM4NzFjNDM5ZWU5
YzRmNTE3Y2I0YjkyMDljZTY0ZTc1Nzk2NzhmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIu
aWRsCkBAIC0zMCw4ICszMCwxMCBAQAogICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2VyLAogICAg
IEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKIF0gaW50ZXJmYWNlIFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyIHsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0
b3IoLyogb3B0aW9uYWwgb2JqZWN0IHRyYW5zZm9ybU9wdGlvbnMgKi8pOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSZWFkYWJsZVN0cmVhbSByZWFkYWJsZTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgV3JpdGFibGVTdHJlYW0gd3JpdGFibGU7CisgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdCwg
Q2FjaGVkQXR0cmlidXRlXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IG9wdGlvbnM7CiAKLSAgICAv
LyBGSVhNRTogYWRkIGNvbnRyb2xsZXIgYXR0cmlidXRlLgogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBNZXNzYWdlUG9ydCBwb3J0OworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHJl
cXVlc3RLZXlGcmFtZSgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0
cnVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZDliZGI4YmUxMzczYmY3
ZmZjMGY3ZjFhZDkwYjgyZGY0ODQ0M2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0KLSNpbmNsdWRlICJBY3RpdmVET01DYWxs
YmFjay5oIgotI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcjsKLQotY2xhc3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3RvciA6IHB1
YmxpYyBSZWZDb3VudGVkPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+LCBwdWJs
aWMgQWN0aXZlRE9NQ2FsbGJhY2sgewotcHVibGljOgotICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxi
YWNrOjpBY3RpdmVET01DYWxsYmFjazsKLQotICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8UmVm
UHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gaGFuZGxlRXZlbnQoKSA9IDA7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlNzIxZTUzZjZiNjU1YjRmOGFhOWIxNzJlMjNiMjcwMzE0YzU3YmY2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1
Y3Rvci5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDb25kaXRpb25hbD1XRUJfUlRD
LAotXSBjYWxsYmFjayBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yID0gUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2MzOTNiYTAwNzAxZjZkMTljZjM1ZGE5
ZjYyNmMzZDMxOGRlYmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
ZiBFTkFCTEUoV0VCX1JUQykKLQotI2luY2x1ZGUgIlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUlRD
UnRwVHJhbnNmb3JtQmFja2VuZDsKLQotY2xhc3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250
ZXh0Ci0gICAgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRl
eHQ+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dD4gY3JlYXRlKFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYmKTsKLSAgICB+UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0KCkgPSBkZWZhdWx0OwotCi0gICAgdXNpbmcgU2lkZSA9
IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OlNpZGU7Ci0gICAgU2lkZSBzaWRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNrZW5kLT5zaWRlKCk7IH0KLQotICAgIHVzaW5nIE1lZGlhVHlwZSA9IFJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTsKLSAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9iYWNrZW5kLT5tZWRpYVR5cGUoKTsgfQotCi0gICAgRXhjZXB0aW9u
T3I8dm9pZD4gcmVxdWVzdEtleUZyYW1lKCk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0KFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYm
KTsKLQotICAgIFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiBtX2JhY2tlbmQ7Ci19OwotCi1p
bmxpbmUgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dD4gUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0OjpjcmVhdGUoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYgYmFj
a2VuZCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ckNvbnRleHQoV1RGTW92ZShiYWNrZW5kKSkpOwotfQotCi1pbmxpbmUgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0OjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQoUmVmPFJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQ+JiYgYmFja2VuZCkKLSAgICA6IG1fYmFja2VuZChXVEZNb3ZlKGJh
Y2tlbmQpKQotewotfQotCi1pbmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0OjpyZXF1ZXN0S2V5RnJhbWUoKQotewotICAgIHN3aXRjaCAobWVkaWFU
eXBlKCkpIHsKLSAgICBjYXNlIE1lZGlhVHlwZTo6QXVkaW86Ci0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCByZXF1ZXN0IGtleSBmcmFtZSBvbiBh
dWRpbyBzZW5kZXIiX3MgfTsKLSAgICBjYXNlIE1lZGlhVHlwZTo6VmlkZW86Ci0gICAgICAgIG1f
YmFja2VuZC0+cmVxdWVzdEtleUZyYW1lKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHQuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDgzMzBj
ODBkY2I0YjYxNWIyODdkZTAxOWU4MmM0NmQ3YzFiOGI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbAorKysgL2Rldi9udWxsCkBAIC0x
LDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1lbnVtIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dFNpZGUgeyAicmVjZWl2ZXIiLCAic2VuZGVyIiB9OwotZW51bSBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHRNZWRpYVR5cGUgeyAiYXVkaW8iLCAidmlkZW8iIH07Ci0KLVsKLSAgICBD
b25kaXRpb25hbD1XRUJfUlRDLAotICAgIEVuYWJsZWRCeVNldHRpbmc9V2ViUlRDSW5zZXJ0YWJs
ZVN0cmVhbXMsCi0gICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dFNpZGUgc2lkZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb250ZXh0TWVkaWFUeXBlIG1lZGlhVHlwZTsKLQotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dW5kZWZpbmVkIHJlcXVlc3RLZXlGcmFtZSgpOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAppbmRleCA1
Y2IyZTFkZTQ4MzFjOWVlZDE1NjVhYzkzZDUwYmE2NzhmYWRhZmU5Li5mMjJmMTNlMWNkNThhYjUz
YWIyYmZlMDdmZWVjNDExNDMzYmMyYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MTW9k
ZWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTW9kZWwuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
NDVmNzJkNGZmY2U2MDczMDZmMzFhMzIzNmRmNTM5MmUyYTMyZjNkMS4uMzcyMmYyZjQ2MTQ2NmIy
NzdhYWUxMWNmZTkzYzZmMDE3ZGM3ZGE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3Myw2ICsxNzMs
NyBAQCBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyRXZlbnQuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5j
cHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmNwcAogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5jcHAKQEAgLTMzODEsOCArMzM4Miw3IEBAIEpTUlRD
UnRwUnR4UGFyYW1ldGVycy5jcHAKIEpTUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAogSlNSVENS
dHBTY3JpcHRUcmFuc2Zvcm0uY3BwCiBKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAotSlNS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmNwcAotSlNSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHQuY3BwCitKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuY3BwCiBK
U1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmNwcAogSlNSVENSdHBTZW5kZXIuY3BwCiBKU1JUQ1J0cFN5
bmNocm9uaXphdGlvblNvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NjNiY2IxOTQ3NDg0OGZiODYyOTgxMTEwYTIy
NzMzMTg3YzkyN2E2Li5lNGIyNzE1NjY0NjM1ZTE4NzdkNWUyOWJhMzIxM2EwZjA1MWE3YTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03NzEyLDggKzc3MTIsNiBAQAogCQk0MTQxODlGMzI1NjJFMzJDMDAzNjM0MTcgLyogUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTQxODlGNDI1NjJFMzJDMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUY1MjU2MkUz
MkQwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0MTQxODlGNjI1NjJFNjdBMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQxNDE4OUY3MjU2MkU2N0EwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnN0cnVjdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE0MTg5RjkyNTY0MTY1MDAwMzYzNDE3IC8qIFJUQ0VuY29kZWRBdWRpb0ZyYW1lLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENFbmNvZGVkQXVkaW9GcmFtZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUZBMjU2NDE2NTEwMDM2MzQxNyAvKiBSVENFbmNv
ZGVkVmlkZW9GcmFtZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDRW5jb2RlZFZpZGVv
RnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTQxODlGQjI1NjQxNzU3
MDAzNjM0MTcgLyogUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTc4ODcsOCArNzg4NSw2IEBACiAJCTQxOUU2RUM0MjU2NkQyMTEwMDJCNTAxMCAv
KiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1BlZXJDb25uZWN0
aW9uSWNlRXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUU2
RUM2MjU2NkQyMTMwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RTZFQzcyNTY2RDIxNDAwMkI1MDEwIC8q
IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENQZWVy
Q29ubmVjdGlvbkljZUVycm9yRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDE5RTZFRDIyNTY3QkY2OTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250
ZXh0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5RTZFRDUyNTY3QkY2QTAw
MkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RkFGQUQxQUJBQkNENTAwNUIzNTcyIC8qIFJl
YWRhYmxlU3RyZWFtQllPQlJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFi
bGVTdHJlYW1CWU9CUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5
RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkNGIC8q
IFJlYWRhYmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTI4LDYgKzc5MjQsOSBAQAog
CQk0MUI4Nzc2MDIzREUxMDQyMDAzNjM4QjggLyogUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCOTEzNzYyMzU4
NEQwRTAwMjVCRkEzIC8qIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUI5MTM3ODIzNTg0RDBGMDAyNUJGQTMgLyogTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDFCQ0U4NzUyNUY3QTY3OTAwNDZDMkU1IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUJDRTg3NjI1RjdB
NjdBMDA0NkMyRTUgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFCQ0U4NzcyNUY3QTY3QTAwNDZD
MkU1IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MUJGMjA0MDIyQjk0NzE2MDAwNEY4MTIgLyogUmVhbHRpbWVW
aWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZVZpZGVvU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkYyMDQyMjJCOTQ3MTcwMDA0RjgxMiAvKiBSZWFs
dGltZVZpZGVvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3NjBCMDBFREUwM0QzMDBD
MTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MzYyLDEwICsx
NzM2MSw5IEBACiAJCQkJNDE0MTg5RjMyNTYyRTMyQzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyLmNwcCAqLywKIAkJCQk0MTQxODlGNTI1NjJFMzJEMDAzNjM0MTcgLyogUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuaCAqLywKIAkJCQk0MTQxODlGMTI1NjJERjU2MDAzNjM0MTcgLyog
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsICovLAotCQkJCTQxNDE4OUY2MjU2MkU2N0EwMDM2
MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmggKi8sCi0JCQkJNDE0
MTg5RjcyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0
b3IuaWRsICovLAotCQkJCTQxOUU2RUQ1MjU2N0JGNkEwMDJCNTAxMCAvKiBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaCAqLywKLQkJCQk0MTlFNkVEMjI1NjdCRjY5MDAyQjUwMTAgLyog
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbCAqLywKKwkJCQk0MUJDRTg3NjI1RjdB
NjdBMDA0NkMyRTUgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5jcHAgKi8sCisJCQkJ
NDFCQ0U4NzcyNUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQu
aCAqLywKKwkJCQk0MUJDRTg3NTI1RjdBNjc5MDA0NkMyRTUgLyogUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXJFdmVudC5pZGwgKi8sCiAJCQkJNDE0MTg5RUYyNTYyREYwQzAwMzYzNDE3IC8qIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbCAqLywKIAkJCQk0MTNDOEIyNjI1NTJFRUE5MDBF
NjUwNTUgLyogUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5pZGwgKi8sCiAJCQkJNUUyQzQzNTkxQkNF
RTMwRDAwMDFFMkJDIC8qIFJUQ1J0cFNlbmRlci5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAppbmRleCBmYjkyY2NhMTMzM2RiMTc4NTQzZGJmZWNl
MGYzN2M5ZWEzY2NhZmNkLi43Y2FjNzIzY2YwNmQ5Zjk0YTkxNmQwMGRkNzY4YjYxYjA5YTQyZTRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKQEAgLTg0
LDYgKzg0LDExIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlYWRhYmxlU3RyCiAgICAgcmV0dXJuIHN0cmVhbSA/
IHN0cmVhbS0+cmVhZGFibGVTdHJlYW0oKSA6IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIAoraW5s
aW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgUmVhZGFibGVTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICByZXR1cm4gc3RyZWFtLnJl
YWRhYmxlU3RyZWFtKCk7Cit9CisKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRl
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8UmVhZGFibGVT
dHJlYW0+JiYgc3RyZWFtKQogewogICAgIHJldHVybiBzdHJlYW0tPnJlYWRhYmxlU3RyZWFtKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
aW5kZXggZGFmMTc5ZjJjZjQwOTdhZTEyOGJiYmQxNDBiYTllMzI4MDRmNjBkYi4uMzdlZmZlYjJl
MDNiZmU1YTkyNzA3NWUyMTI0Mjc3MDk5ZTQ1NWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjI2LDYgKzIyNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhSVENSdHBTY3JpcHRUcmFuc2Zvcm0pIFwKICAg
ICBtYWNybyhSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcikgXAogICAgIG1hY3JvKFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyQ29udGV4dCkgXAorICAgIG1hY3JvKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
RXZlbnQpIFwKICAgICBtYWNybyhSVENSdHBTZW5kZXIpIFwKICAgICBtYWNybyhSVENSdHBUcmFu
c2NlaXZlcikgXAogICAgIG1hY3JvKFJUQ1J0cFRyYW5zZm9ybSkgXApAQCAtMzgxLDYgKzM4Miw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXRjaGluZ0VsZW1lbnRJbkZsYXRU
cmVlKSBcCiAgICAgbWFjcm8obWVkaWFTdHJlYW1UcmFja0NvbnN0cmFpbnRzKSBcCiAgICAgbWFj
cm8ob3BlbkRhdGFiYXNlKSBcCisgICAgbWFjcm8ob25ydGN0cmFuc2Zvcm0pIFwKICAgICBtYWNy
byhvbnRvdWNoY2FuY2VsKSBcCiAgICAgbWFjcm8ob250b3VjaGVuZCkgXAogICAgIG1hY3JvKG9u
dG91Y2htb3ZlKSBcCkBAIC00MTksNyArNDIxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKHJlYWRlcikgXAogICAgIG1hY3JvKHJlYWR5UHJvbWlzZSkgXAogICAgIG1hY3JvKHJl
YWR5UHJvbWlzZUNhcGFiaWxpdHkpIFwKLSAgICBtYWNybyhyZWdpc3RlclJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyKSBcCiAgICAgbWFjcm8ocmVxdWVzdEFuaW1hdGlvbkZyYW1lKSBcCiAgICAgbWFj
cm8ocmVxdWVzdElkbGVDYWxsYmFjaykgXAogICAgIG1hY3JvKHJlc3BvbnNlKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaAppbmRleCA0NmZmODlkNWNkZTA4
YjAwNmYyMTViMTNiMzBiYTI0ZDk4NTM3MjM4Li5jNTE4YTk0NTk3NzI0ZTFkNzAxMDFhNjdiY2Ri
OGVmMzk5NjFmYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0
YWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3Ry
ZWFtLmgKQEAgLTgxLDYgKzgxLDExIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFdyaXRhYmxlU3RyCiAgICAgcmV0
dXJuIHN0cmVhbSA/IHN0cmVhbS0+d3JpdGFibGVTdHJlYW0oKSA6IEpTQzo6anNVbmRlZmluZWQo
KTsKIH0KIAoraW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgV3JpdGFibGVTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICByZXR1
cm4gc3RyZWFtLndyaXRhYmxlU3RyZWFtKCk7Cit9CisKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBS
ZWY8V3JpdGFibGVTdHJlYW0+JiYgc3RyZWFtKQogewogICAgIHJldHVybiBzdHJlYW0tPndyaXRh
YmxlU3RyZWFtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA2MDA4YjA4MGYwZTg0Y2Nj
ZGMxNWM3Y2MzMmJhNWQzNDMzZmM2Y2ZhLi4xMzk0NDQzOTgxNDYwOTA5ZWYyYTBmZTViYzdkNzlh
OTliNzJlNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIzMiw2ICsyMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsKSBc
CiAgICAgbWFjcm8ocmVzdWx0KSBcCiAgICAgbWFjcm8ocmVzdW1lKSBcCisgICAgbWFjcm8ocnRj
dHJhbnNmb3JtKSBcCiAgICAgbWFjcm8oc2Nyb2xsKSBcCiAgICAgbWFjcm8oc2VhcmNoKSBcCiAg
ICAgbWFjcm8oc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggMmQwYmNlMGY5NWZlNDVkZDIwM2RlMDU3MTQ3YTM5MTliZDgzZTJkNS4uZGE4OGVh
M2U1MTVmZjAxNjA0OGRiMzYyYjIxM2JmZTM1ZTU5ZDMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTYxLDYgKzYxLDcgQEAgUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGNv
bmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9
V0VCX1JUQwogUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENEVE1G
VG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQKIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggNjFmZGQ1NWNiNDg4ZDE4NTUyY2U0NzMxOWE5YWExZGM4ZjFkMzJi
OC4uMGNiZDcwM2EzMGE2Y2M4ZTRiN2JkODBjM2MwNWE5NzFmNDRhZDE2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAK
QEAgLTM1LDEwICszNSwxMCBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRlZGljYXRl
ZFdvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJKU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgiCi0jaW5jbHVkZSAiSlNSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCi0jaW5jbHVkZSAi
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKKyNpbmNsdWRlICJSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lckV2ZW50LmgiCiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldvcmtlci5oIgpAQCAtNzYs
MTAgKzc2LDYgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKIHZvaWQgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiB7CiAgICAgV29ya2VyR2xvYmFsU2Nv
cGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwotCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAg
bV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwLmNsZWFyKCk7Ci0jZW5kaWYKIH0KIAog
RXhjZXB0aW9uT3I8dm9pZD4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RNZXNzYWdl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBQ
b3N0TWVzc2FnZU9wdGlvbnMmJiBvcHRpb25zKQpAQCAtMTI2LDcxICsxMjIsMTUgQEAgdm9pZCBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoQ2FsbGJhY2tJ
ZCBjYWxsYmFja0lkKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKLUV4Y2VwdGlvbk9y
PHZvaWQ+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpyZWdpc3RlclJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFJlZjxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
c3RydWN0b3I+JiYgdHJhbnNmb3JtZXJDb25zdHJ1Y3RvcikKLXsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKLQotICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTmFtZSBjYW5ub3QgYmUgdGhlIGVtcHR5IHN0
cmluZyJfcyB9OwotCi0gICAgaWYgKG1fcnRjUnRwVHJhbnNmb3JtZXJDb25zdHJ1Y3Rvck1hcC5j
b250YWlucyhuYW1lKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVy
cm9yLCAiQSB0cmFuc2Zvcm1lciB3YXMgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhpcyBuYW1l
Il9zIH07Ci0KLSAgICBKU0M6OkpTT2JqZWN0KiBqc0NvbnN0cnVjdG9yID0gdHJhbnNmb3JtZXJD
b25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0gICAgYXV0byogZ2xvYmFs
T2JqZWN0ID0ganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgYXV0byYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotCi0gICAgaWYgKCFqc0NvbnN0cnVjdG9yLT5pc0NvbnN0cnVjdG9yKHZtKSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNsYXNzIGRlZmluaXRpdGlvbiBwYXNz
ZWQgdG8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpIGlzIG5vdCBhIGNvbnN0cnVj
dG9yIl9zIH07Ci0KLSAgICBhdXRvIHByb3RvdHlwZSA9IGpzQ29uc3RydWN0b3ItPmdldFByb3Rv
dHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBF
eGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwotCi0gICAgaWYgKCFwcm90b3R5
cGUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNs
YXNzIGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cigpIGhhcyBpbnZhbGlkIHByb3RvdHlwZSJfcyB9OwotCi0gICAgbV9ydGNSdHBUcmFuc2Zvcm1l
ckNvbnN0cnVjdG9yTWFwLmFkZChuYW1lLCBXVEZNb3ZlKHRyYW5zZm9ybWVyQ29uc3RydWN0b3Ip
KTsKLQotICAgIHRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkucG9zdFRhc2tUb1dvcmtlck9i
amVjdChbbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCldKGF1dG8mIHdvcmtlcikgbXV0YWJsZSB7
Ci0gICAgICAgIHdvcmtlci5hZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihXVEZNb3ZlKG5hbWUp
KTsKLSAgICB9KTsKLQotICAgIHJldHVybiB7IH07Ci19Ci0KLVJlZlB0cjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQgcG9ydCkK
K1JlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgb3B0aW9ucywgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmIHBvcnQpCiB7Ci0gICAgYXV0
byBjb25zdHJ1Y3RvciA9IG1fcnRjUnRwVHJhbnNmb3JtZXJDb25zdHJ1Y3Rvck1hcC5nZXQobmFt
ZSk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yKTsKLSAgICBpZiAoIWNvbnN0cnVjdG9yKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8qIGpzQ29uc3RydWN0b3IgPSBjb25zdHJ1
Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0
ID0gY29uc3RydWN0b3ItPmNhbGxiYWNrRGF0YSgpLT5nbG9iYWxPYmplY3QoKTsKLSAgICBhdXRv
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRD
SF9TQ09QRSh2bSk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayB7IGdsb2JhbE9iamVjdCB9
OwotCi0gICAgbV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0ID0gTWVzc2FnZVBvcnQ6
OmVudGFuZ2xlKCp0aGlzLCBXVEZNb3ZlKHBvcnQpKTsKLQotICAgIEpTQzo6TWFya2VkQXJndW1l
bnRCdWZmZXIgYXJnczsKLSAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmNvbnN0cnVjdChnbG9iYWxP
YmplY3QsIGpzQ29uc3RydWN0b3IsIGFyZ3MsICJGYWlsZWQgdG8gY29uc3RydWN0IFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyIik7Ci0gICAgQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIW9i
amVjdCk7Ci0KLSAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpIHsKLSAgICAgICAgc2NvcGUuY2xl
YXJFeGNlcHRpb24oKTsKKyAgICBhdXRvIHRyYW5zZm9ybWVyT3JFeGNlcHRpb24gPSBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKG9wdGlvbnMpLCBNZXNzYWdl
UG9ydDo6ZW50YW5nbGUoKnRoaXMsIFdURk1vdmUocG9ydCkpKTsKKyAgICBpZiAodHJhbnNmb3Jt
ZXJPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotCi0gICAgYXV0
byYganNUcmFuc2Zvcm1lciA9ICpKU0M6OmpzQ2FzdDxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Kj4ob2JqZWN0KTsKLSAgICBhdXRvJiB0cmFuc2Zvcm1lciA9IGpzVHJhbnNmb3JtZXIud3JhcHBl
ZCgpOwotICAgIHRyYW5zZm9ybWVyLnNldENhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0Rh
dGFTdHJvbmc+KCZqc1RyYW5zZm9ybWVyLCBnbG9iYWxPYmplY3QpKTsKLQotICAgIHJldHVybiAm
dHJhbnNmb3JtZXI7CisgICAgYXV0byB0cmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyT3JFeGNlcHRp
b24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgZGlzcGF0Y2hFdmVudChSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJ0Y3RyYW5zZm9ybUV2ZW50LCB0
cmFuc2Zvcm1lci5jb3B5UmVmKCksIEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOworICAgIHJldHVy
biB0cmFuc2Zvcm1lcjsKIH0KLQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aAppbmRleCA1N2Y0NTJjNmVlYTllMDYzZmQ3NTg4ZGU5MTM0Mjc5MGNkODk5YzEzLi5lM2NjZDAw
MDRhNTM5MWQ1ZGQ2ZmJlYzM5MDQ2NWFmYmJjOWUxYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC03Niw5ICs3Niw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgUmVmUHRyPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJp
bmcmJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVn
aXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJiwgUmVmPEpTUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvcj4mJik7Ci0gICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiB0YWtl
UGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCgpIHsgcmV0dXJuIFdURk1vdmUobV9wZW5k
aW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0KTsgfQorICAgIFJlZlB0cjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4gY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmKTsKICNlbmRpZgogCiAgICAg
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsgfQpAQCAtOTksMTAgKzk3LDYg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKICAgICBSZWZQdHI8V29y
a2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV93b3JrZXJBbmltYXRpb25Db250cm9sbGVyOwogI2Vu
ZGlmCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+PiBtX3J0Y1J0cFRyYW5zZm9ybWVyQ29u
c3RydWN0b3JNYXA7Ci0gICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBtX3BlbmRpbmdSVENUcmFuc2Zv
bWVyTWVzc2FnZVBvcnQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwNGZkZjU4Mjc0M2ViOTczYjUyNWQ1NGM4YThk
OGYzN2Q4MjUyMGZjLi4yYTQxYTNlZTRiMDU0NGE4NjMxOWU4YTVlZDI5ZTA2ZWVmZDQ1M2M5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yNDksMTggKzI0OSwxNCBAQCB2b2lkIFdv
cmtlcjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB9CiAKICNpZiBFTkFCTEUoV0VCX1JU
QykKLXZvaWQgV29ya2VyOjphZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJiBuYW1l
KQotewotICAgIG1fdHJhbnNmb3JtZXJzLmFkZChXVEZNb3ZlKG5hbWUpKTsKLX0KLQotdm9pZCBX
b3JrZXI6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKGNvbnN0IFN0cmluZyYgbmFtZSwg
VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0LCBSVENSdHBTY3JpcHRUcmFuc2Zvcm0mIHRyYW5z
Zm9ybSkKK3ZvaWQgV29ya2VyOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihSVENSdHBT
Y3JpcHRUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBv
cHRpb25zLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYgcG9ydCkKIHsKICAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb250ZXh0UHJv
eHkucG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKFtuYW1lID0gbmFtZS5pc29sYXRlZENvcHko
KSwgcG9ydCwgdHJhbnNmb3JtID0gbWFrZVJlZih0cmFuc2Zvcm0pXShhdXRvJiBjb250ZXh0KSBt
dXRhYmxlIHsKLSAgICAgICAgdHJhbnNmb3JtLT5zZXRUcmFuc2Zvcm1lcihkb3duY2FzdDxEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoV1RGTW92ZShuYW1lKSwgcG9ydCkpOworICAgIG1fY29udGV4dFByb3h5LnBvc3RUYXNr
VG9Xb3JrZXJHbG9iYWxTY29wZShbdHJhbnNmb3JtID0gbWFrZVJlZih0cmFuc2Zvcm0pLCBvcHRp
b25zID0gV1RGTW92ZShvcHRpb25zKSwgcG9ydCA9IFdURk1vdmUocG9ydCldKGF1dG8mIGNvbnRl
eHQpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byB0cmFuc2Zvcm1lciA9IGRvd25jYXN0PERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5jcmVhdGVSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcihXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHBvcnQpKSkKKyAgICAgICAgICAgIHRy
YW5zZm9ybS0+c2V0VHJhbnNmb3JtZXIoKnRyYW5zZm9ybWVyKTsKICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pXSB7IH0pOwogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCAzOGE2MjNhOThkYmEzNWZmODAxM2NkNmZjOGM4
NWM4MTAyMDUwMjExLi5hY2I5NmVhYjZjMTlhMmJlZGRlNzk0NTkxYzJjMDQ1NzQ1NmJkYWViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTc3LDkgKzc3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0g
ICAgdm9pZCBhZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJik7Ci0gICAgYm9vbCBo
YXNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1f
dHJhbnNmb3JtZXJzLmNvbnRhaW5zKG5hbWUpOyB9Ci0gICAgdm9pZCBjcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0LCBSVENS
dHBTY3JpcHRUcmFuc2Zvcm0mKTsKKyAgICB2b2lkIGNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSYsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYs
IFRyYW5zZmVycmVkTWVzc2FnZVBvcnQmJik7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xv
YmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxOWY4Mzk1ZjZmZjc4YWFhOWY5ZDY1N2U1M2U2OWJiYTdlYTQ0NWNmLi40
YjU5OWE2YzQyZmJiMDAwZDA4MzExZDllZmYwZWI4ODZkMjMxMzViIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMDMtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIFVwZGF0ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0gdG8gdGhlIGxhdGVzdCB2ZXJzaW9u
IG9mIHRoZSBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjI5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQtdHJhbnNmb3JtLmh0bWw6CisgICAg
ICAgICogaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNmb3JtLmpzOgorICAgICAgICAoTW9j
a1JUQ1J0cFRyYW5zZm9ybWVyKToKKyAgICAgICAgKE1vY2tSVENSdHBUcmFuc2Zvcm1lci5wcm90
b3R5cGUuc3RhcnQpOgorICAgICAgICAoTW9ja1JUQ1J0cFRyYW5zZm9ybWVyLnByb3RvdHlwZS5w
cm9jZXNzKToKKyAgICAgICAgKG9ucnRjdHJhbnNmb3JtKToKKyAgICAgICAgKiBodHRwL3dwdC93
ZWJydGMvbm8tdHJhbnNmb3JtLmpzOgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9uby13ZWJy
dGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvbm8t
d2VicnRjLXRyYW5zZm9ybS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9zY3JpcHQt
dHJhbnNmb3JtLmpzOgorICAgICAgICAob25ydGN0cmFuc2Zvcm0ucHJvY2Vzcyk6CisgICAgICAg
IChvbnJ0Y3RyYW5zZm9ybSk6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFu
c2Zvcm0uanM6CisgICAgICAgIChvbnJ0Y3RyYW5zZm9ybSk6CisgICAgICAgICogaHR0cC93cHQv
d2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbDoKKwogMjAyMS0wMy0wOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldFVzZXJNZWRp
YSBkZW5pZWQgcmVxdWVzdHMgaWYgdXNlciBncmFudHMgYSBuZXcgZ2V0VXNlck1lZGlhIHJlcXVl
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQt
dHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVkaW8tc2NyaXB0
LXRyYW5zZm9ybS5odG1sCmluZGV4IGZiNmFhYjUwOTk0NmRmYWRkOGMyMWJjZDA1MmE0YzEwZWNj
NWY4MTcuLjU3MDZkMmZmNzQzZmQ0NmU4MTY4YmRkMjEzOTg2MDJlMDUwZmRkN2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQtdHJhbnNmb3JtLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2F1ZGlvLXNjcmlwdC10cmFuc2Zv
cm0uaHRtbApAQCAtMzMsOCArMzMsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
ICAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogCiAgICAgbGV0IHNlbmRlciwgcmVjZWl2ZXI7Ci0g
ICAgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsICdN
b2NrUlRDUnRwVHJhbnNmb3JtJyk7Ci0gICAgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtKHdvcmtlciwgJ01vY2tSVENSdHBUcmFuc2Zvcm0nKTsKKyAgICBzZW5k
ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwge25hbWU6J01v
Y2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6J2F1ZGlvJywgc2lkZTonc2VuZGVyJ30pOwor
ICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIs
IHtuYW1lOidNb2NrUlRDUnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOidhdWRpbycsIHNpZGU6J3Jl
Y2VpdmVyJ30pOwogCiAgICAgcHJvbWlzZTEgPSB3YWl0Rm9yTWVzc2FnZShzZW5kZXJUcmFuc2Zv
cm0ucG9ydCwgInN0YXJ0ZWQgYXVkaW8gc2VuZGVyIik7CiAgICAgcHJvbWlzZTIgPSB3YWl0Rm9y
TWVzc2FnZShyZWNlaXZlclRyYW5zZm9ybS5wb3J0LCAic3RhcnRlZCBhdWRpbyByZWNlaXZlciIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNm
b3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNmb3JtLmpz
CmluZGV4IDYxM2Y5NzMxYzYxN2U0N2U3ZTFlNzkxYzY2ZDJlNjEzN2NlMGJkMDguLmRmZjFhMjU3
MWQxNTA1OTBhZTliZGFlZjc1YjIzZmY3MTQzNDhiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRyYW5zZm9ybS5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvY29udGV4dC10cmFuc2Zvcm0uanMKQEAgLTEsMjEgKzEsMjEgQEAKLWNs
YXNzIE1vY2tSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
IHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsKK2NsYXNzIE1vY2tSVENS
dHBUcmFuc2Zvcm1lciB7CisgICAgY29uc3RydWN0b3IodHJhbnNmb3JtZXIpIHsKICAgICAgICAg
dGhpcy5hc2tLZXlGcmFtZSA9IGZhbHNlOwotICAgICAgICB0aGlzLnBvcnQub25tZXNzYWdlID0g
KGV2ZW50KSA9PiB7CisgICAgICAgIHRoaXMuY29udGV4dCA9IHRyYW5zZm9ybWVyOworICAgICAg
ICB0aGlzLmNvbnRleHQucG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKICAgICAgICAgICAg
IGlmIChldmVudC5kYXRhID09PSAic3RhcnRLZXlGcmFtZXMiKQogICAgICAgICAgICAgICAgIHRo
aXMuYXNrS2V5RnJhbWUgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQuZGF0YSA9
PT0gImVuZEtleUZyYW1lcyIpCiAgICAgICAgICAgICAgICAgdGhpcy5hc2tLZXlGcmFtZSA9IGZh
bHNlOwogICAgICAgICB9OworICAgICAgICB0aGlzLnN0YXJ0KCk7CiAgICAgfQotICAgIHN0YXJ0
KHJlYWRhYmxlU3RyZWFtLCB3cml0YWJsZVN0cmVhbSwgY29udGV4dCkKKyAgICBzdGFydCgpCiAg
ICAgewotICAgICAgICB0aGlzLnJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpOwot
ICAgICAgICB0aGlzLndyaXRlciA9IHdyaXRhYmxlU3RyZWFtLmdldFdyaXRlcigpOworICAgICAg
ICB0aGlzLnJlYWRlciA9IHRoaXMuY29udGV4dC5yZWFkYWJsZS5nZXRSZWFkZXIoKTsKKyAgICAg
ICAgdGhpcy53cml0ZXIgPSB0aGlzLmNvbnRleHQud3JpdGFibGUuZ2V0V3JpdGVyKCk7CiAgICAg
ICAgIHRoaXMucHJvY2VzcygpOwotICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OwotICAg
ICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoInN0YXJ0ZWQgIiArIGNvbnRleHQubWVkaWFUeXBl
ICsgIiAiICsgY29udGV4dC5zaWRlKTsKKyAgICAgICAgdGhpcy5jb250ZXh0LnBvcnQucG9zdE1l
c3NhZ2UoInN0YXJ0ZWQgIiArIHRoaXMuY29udGV4dC5vcHRpb25zLm1lZGlhVHlwZSArICIgIiAr
IHRoaXMuY29udGV4dC5vcHRpb25zLnNpZGUpOwogICAgIH0KIAogICAgIHByb2Nlc3MoKQpAQCAt
MjYsOSArMjYsOSBAQCBjbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lciB7CiAKICAgICAgICAgICAgIHRoaXMud3JpdGVyLndyaXRlKGNodW5r
LnZhbHVlKTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5tZWRpYVR5cGUgPT09ICJ2
aWRlbyIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQub3B0aW9ucy5tZWRpYVR5cGUg
PT09ICJ2aWRlbyIpIHsKICAgICAgICAgICAgICAgICBpZiAoY2h1bmsudmFsdWUgaW5zdGFuY2Vv
ZiBSVENFbmNvZGVkVmlkZW9GcmFtZSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3J0LnBv
c3RNZXNzYWdlKCJ2aWRlbyBmcmFtZSAiICsgY2h1bmsudmFsdWUudHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuY29udGV4dC5wb3J0LnBvc3RNZXNzYWdlKCJ2aWRlbyBmcmFtZSAiICsg
Y2h1bmsudmFsdWUudHlwZSk7CiAKICAgICAgICAgICAgICAgICBpZiAodGhpcy5hc2tLZXlGcmFt
ZSkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnJlcXVlc3RLZXlGcmFtZSgpOwpA
QCAtMzksNSArMzksOCBAQCBjbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lciB7CiAgICAgfQogfTsKIAotcmVnaXN0ZXJSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcigiTW9ja1JUQ1J0cFRyYW5zZm9ybSIsIE1vY2tSVENSdHBUcmFuc2Zvcm1lcik7
CitvbnJ0Y3RyYW5zZm9ybSA9IChldmVudCkgPT4geworICAgIG5ldyBNb2NrUlRDUnRwVHJhbnNm
b3JtZXIoZXZlbnQudHJhbnNmb3JtZXIpOworfTsKKwogc2VsZi5wb3N0TWVzc2FnZSgicmVnaXN0
ZXJlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXRyYW5z
Zm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanMKaW5k
ZXggODkxZjUxYWIxMDRjMjBiY2NkMzFkYjQ0ZDQ1N2QxZWY4MzNjNzhiNy4uYWEzZmJjOTgyYWZj
YzA5ZDQxNGUwYTJiOGE2Yzg4MzMyOGViMjVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL25vLXRyYW5zZm9ybS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvbm8tdHJhbnNmb3JtLmpzCkBAIC0xICsxIEBACi1zZWxmLnBvc3RNZXNzYWdlKHNlbGYu
cmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciA/ICJvbiIgOiAib2ZmIik7CitzZWxmLnBv
c3RNZXNzYWdlKHNlbGYuUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgPyAib24iIDogIm9mZiIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zv
cm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CmluZGV4IDFiNTcxNjk4MjI3MzI0NzlhYjZmMjFiOWEyYzk1
NDE3OWFkNWE5MGUuLmY1YmQ0YzE2ZjgzOGI4YWUwZGNiY2JkNTk3NDdjZWQ0YzA4OGZlNDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3Jt
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8td2VicnRj
LXRyYW5zZm9ybS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLVBBU1MgcmVnaXN0ZXJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uCi1Q
QVNTIG5vIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJl
YW0gZmxhZyBpcyBvZmYKK1BBU1MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJs
ZSBzdHJlYW0gZmxhZyBpcyBvbgorUEFTUyBubyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBp
bnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9mZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbAppbmRleCA2MTk5ODEzM2VjMTE0
ZjhhZDZmNjM1MTRhNDAzZDMyN2M5Y2UwMzhiLi44ODY5MzdlNjQ3YWRjYjhjNTkxMGUxMjIyYjk3
MDE3MWU0ZTYxMDI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8t
d2VicnRjLXRyYW5zZm9ybS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9u
by13ZWJydGMtdHJhbnNmb3JtLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvbWlzZV90ZXN0KGFz
eW5jICh0ZXN0KSA9PiB7CiAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcignbm8tdHJhbnNm
b3JtLmpzJyk7CiAgICAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
d29ya2VyLm9ubWVzc2FnZSA9IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7CiAgICAg
YXNzZXJ0X2VxdWFscyhkYXRhLCAib24iKTsKLX0sICJyZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyIGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb24iKTsKK30sICJSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uIik7CiAKIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQpAQCAt
MjMsNyArMjMsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCB3
b3JrZXIgPSBuZXcgV29ya2VyKCduby10cmFuc2Zvcm0uanMnKTsKICAgICBjb25zdCBkYXRhID0g
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0gKGV2ZW50KSA9
PiByZXNvbHZlKGV2ZW50LmRhdGEpKTsKICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICJvZmYiKTsK
LX0sICJubyByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2VydGFibGUgc3Ry
ZWFtIGZsYWcgaXMgb2ZmIik7Cit9LCAibm8gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5z
ZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYiKTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3Nj
cmlwdC10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2NyaXB0LXRy
YW5zZm9ybS5qcwppbmRleCA2YjA3NmRlODMzZjFiZmM1M2ZhMTU0M2VhZjkwZjlmNjBlMDNmMmQx
Li45MDFlNjc2ODE4YzFhODI5MmVlMGRlN2FjZWMwM2FkM2NkOTNkZTY5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2NyaXB0LXRyYW5zZm9ybS5qcworKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2NyaXB0LXRyYW5zZm9ybS5qcwpAQCAtMSwzMCArMSwy
NSBAQAotY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVuZHMgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIgewotICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICBzdXBlcigpOwotICAgICAg
ICB0aGlzLnBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB0aGlzLnBvcnQucG9zdE1lc3NhZ2Uo
ZXZlbnQuZGF0YSk7Ci0gICAgfQotICAgIHN0YXJ0KHJlYWRhYmxlU3RyZWFtLCB3cml0YWJsZVN0
cmVhbSkKLSAgICB7Ci0gICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoInN0YXJ0ZWQiKTsKLSAgICAg
ICAgdGhpcy5yZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTsKLSAgICAgICAgdGhp
cy53cml0ZXIgPSB3cml0YWJsZVN0cmVhbS5nZXRXcml0ZXIoKTsKLSAgICAgICAgdGhpcy5wcm9j
ZXNzKCk7Ci0gICAgfQorb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+IHsKKyAgICBjb25zdCB0
cmFuc2Zvcm1lciA9IGV2ZW50LnRyYW5zZm9ybWVyOworICAgIHRyYW5zZm9ybWVyLnBvcnQub25t
ZXNzYWdlID0gKGV2ZW50KSA9PiB0cmFuc2Zvcm1lci5wb3J0LnBvc3RNZXNzYWdlKGV2ZW50LmRh
dGEpOwogCi0gICAgcHJvY2VzcygpCisgICAgc2VsZi5wb3N0TWVzc2FnZSgic3RhcnRlZCIpOwor
ICAgIHRyYW5zZm9ybWVyLnJlYWRlciA9IHRyYW5zZm9ybWVyLnJlYWRhYmxlLmdldFJlYWRlcigp
OworICAgIHRyYW5zZm9ybWVyLndyaXRlciA9IHRyYW5zZm9ybWVyLndyaXRhYmxlLmdldFdyaXRl
cigpOworCisgICAgZnVuY3Rpb24gcHJvY2Vzcyh0cmFuc2Zvcm1lcikKICAgICB7Ci0gICAgICAg
IHRoaXMucmVhZGVyLnJlYWQoKS50aGVuKGNodW5rID0+IHsKKyAgICAgICAgdHJhbnNmb3JtZXIu
cmVhZGVyLnJlYWQoKS50aGVuKGNodW5rID0+IHsKICAgICAgICAgICAgIGlmIChjaHVuay5kb25l
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGlmIChjaHVuay52YWx1ZSBp
bnN0YW5jZW9mIFJUQ0VuY29kZWRWaWRlb0ZyYW1lKQogICAgICAgICAgICAgICAgIHNlbGYucG9z
dE1lc3NhZ2UoInZpZGVvIGNodW5rIik7CiAgICAgICAgICAgICBlbHNlIGlmIChjaHVuay52YWx1
ZSBpbnN0YW5jZW9mIFJUQ0VuY29kZWRBdWRpb0ZyYW1lKQogICAgICAgICAgICAgICAgIHNlbGYu
cG9zdE1lc3NhZ2UoImF1ZGlvIGNodW5rIik7Ci0gICAgICAgICAgICB0aGlzLndyaXRlci53cml0
ZShjaHVuay52YWx1ZSk7Ci0gICAgICAgICAgICB0aGlzLnByb2Nlc3MoKTsKKyAgICAgICAgICAg
IHRyYW5zZm9ybWVyLndyaXRlci53cml0ZShjaHVuay52YWx1ZSk7CisgICAgICAgICAgICBwcm9j
ZXNzKHRyYW5zZm9ybWVyKTsKICAgICAgICAgfSk7CiAgICAgfQotfTsKIAotcmVnaXN0ZXJSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcigiTW9ja1JUQ1J0cFRyYW5zZm9ybSIsIE1vY2tSVENSdHBUcmFu
c2Zvcm1lcik7CisgICAgcHJvY2Vzcyh0cmFuc2Zvcm1lcik7Cit9Owogc2VsZi5wb3N0TWVzc2Fn
ZSgicmVnaXN0ZXJlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L3NmcmFtZS10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1l
LXRyYW5zZm9ybS5qcwppbmRleCA0YzcwODM1NWQ5NDUxM2QzMmQ4MjY0YjllYmYwNDUwNWM2MmM3
NTAwLi42MTdjZjBhMzhhYTA4NTlmYTZlZThhZjAxZmRhYjVmOTRiNWJlYjE4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5qcwpAQCAtMSwxNCAr
MSw3IEBACi1jbGFzcyBTRnJhbWVSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyIHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgdGhpcy5zZnJhbWVUcmFuc2Zvcm0gPSBuZXcgU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6
ICJkZWNyeXB0IiwgYXV0aGVudGljYXRpb25TaXplOiAiMTAiLCBjb21wYXRpYmlsaXR5TW9kZTog
IkgyNjQiIH0pOwotICAgICAgICBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVp
bnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwg
OTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRl
cml2ZUtleSJdKS50aGVuKGtleSA9PiB0aGlzLnNmcmFtZVRyYW5zZm9ybS5zZXRFbmNyeXB0aW9u
S2V5KGtleSkpOwotICAgIH0KLSAgICBzdGFydChyZWFkYWJsZVN0cmVhbSwgd3JpdGFibGVTdHJl
YW0pCi0gICAgewotICAgICAgICByZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCh0aGlzLnNmcmFt
ZVRyYW5zZm9ybSkucGlwZVRvKHdyaXRhYmxlU3RyZWFtKTsKLSAgICB9Ci19OwotCi1yZWdpc3Rl
clJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCJTRnJhbWVSVENSdHBUcmFuc2Zvcm0iLCBTRnJhbWVS
VENSdHBUcmFuc2Zvcm1lcik7CitvbnJ0Y3RyYW5zZm9ybSA9IChldmVudCkgPT4geworICAgIGNv
bnN0IHNmcmFtZVRyYW5zZm9ybSA9IG5ldyBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogImRlY3J5
cHQiLCBhdXRoZW50aWNhdGlvblNpemU6ICIxMCIsIGNvbXBhdGliaWxpdHlNb2RlOiAiSDI2NCIg
fSk7CisgICAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsx
NDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1
LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSku
dGhlbihrZXkgPT4gc2ZyYW1lVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KSk7CisgICAg
Y29uc3QgdHJhbnNmb3JtZXIgPSBldmVudC50cmFuc2Zvcm1lcjsKKyAgICB0cmFuc2Zvcm1lci5y
ZWFkYWJsZS5waXBlVGhyb3VnaChzZnJhbWVUcmFuc2Zvcm0pLnBpcGVUbyh0cmFuc2Zvcm1lci53
cml0YWJsZSk7Cit9CiBzZWxmLnBvc3RNZXNzYWdlKCJyZWdpc3RlcmVkIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zvcm0uaHRt
bAppbmRleCA2MjkzZDU3YzU5MGM3YzhkY2E0MjViZmNmYTdlMjM4NzYzYmYwNmMyLi40ZjUyYWFi
N2I5MjAyNWVmODg2ZTNkMmNlNDdlMjFiNTExODA0OWJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3JpcHQtdHJhbnNmb3JtLmh0bWwKQEAgLTMz
LDggKzMzLDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgY29uc3QgbG9j
YWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9KTsKIAogICAgIGxldCBzZW5kZXIsIHJlY2VpdmVyOwotICAgIHNlbmRlclRyYW5z
Zm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCAnTW9ja1JUQ1J0cFRyYW5z
Zm9ybScpOwotICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bSh3b3JrZXIsICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7CisgICAgc2VuZGVyVHJhbnNmb3JtID0g
bmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsIHtuYW1lOidNb2NrUlRDUnRwVHJhbnNm
b3JtJywgbWVkaWFUeXBlOid2aWRlbycsIHNpZGU6J3NlbmRlcid9KTsKKyAgICByZWNlaXZlclRy
YW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCB7bmFtZTonTW9ja1JU
Q1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTondmlkZW8nLCBzaWRlOidyZWNlaXZlcid9KTsKIAog
ICAgIHByb21pc2UxID0gd2FpdEZvck1lc3NhZ2Uoc2VuZGVyVHJhbnNmb3JtLnBvcnQsICJzdGFy
dGVkIHZpZGVvIHNlbmRlciIpOwogICAgIHByb21pc2UyID0gd2FpdEZvck1lc3NhZ2UocmVjZWl2
ZXJUcmFuc2Zvcm0ucG9ydCwgInN0YXJ0ZWQgdmlkZW8gcmVjZWl2ZXIiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422821</attachid>
            <date>2021-03-10 05:32:14 -0800</date>
            <delta_ts>2021-03-12 06:43:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222982-20210310143211.patch</filename>
            <type>text/plain</type>
            <size>74382</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE2MzEyNWRmMTQzNDc3
MTAwNmRlNDcyMmI1MWM3YjZiMjgxMjY5Yi4uNzA2ZTJmMjY4MDdhZTI5N2YzZTUzZDc5OWFlMjJm
OGZhY2IxZWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIEF1ZGlvV29y
a2xldCBtb2RlbCB0byBhbiBldmVudCBiYXNlZCBtb2RlbCBhcyBwZXIgbGF0ZXN0IHNwZWNpZmlj
YXRpb24uCisgICAgICAgIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGNvbmNlbnRyYXRlcyBhbGwg
dGhlIEFQSSBhbmQgaXMgZXhwb3NlZCB0byB3b3JrZXIgdXNpbmcgYSBuZXcgcnRjdHJhbnNmb3Jt
IGV2ZW50LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igb3B0aW9ucyBwYXJhbWV0ZXIgcHJvdmlk
ZWQgaW4gUlRDUnRwU2NyaXB0VHJ0YW5zZm9ybSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlk
ZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI6OnJlYWRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjp3cml0YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJl
cXVlc3RLZXlGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cjo6b3B0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3Iu
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5jcHA6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXJFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46
CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6cHJlcGFyZUZvckRlc3Ry
dWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpj
cmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcik6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisKIDIwMjEtMDMtMTAgIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVsZWFzZSBhc3NlcnRpb24gZmFp
bHVyZXMgdW5kZXIgRWRpdG9yOjpzY2FuU2VsZWN0aW9uRm9yVGVsZXBob25lTnVtYmVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAxYTA2YjBmMzRkNzE4YTg2NTRkNDA3MWFkNzY3ZjhiN2EzNGNi
ZDc0Li4xNjUxYzYxNzQ3MWFlMmViZmQyY2E2NjhkZDYyYWVkNTk0NTJlOTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNDA3LDggKzQwNyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbAotICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5p
ZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZl
bnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kUGFyYW1ldGVycy5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlcitUcmFuc2Zvcm0uaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAwNmFkOGZlYjA2OGZiOWVkMDkz
YmQzOGM0MWJmMzk5M2U1MmNjNzNkLi41M2VhMzEyZTVmODk1NjZkMjJjM2RjMzI1NmY2ZjFkMTZm
ODVhY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTI0OSw4ICsyNDksNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Q29uc3RydWN0b3IuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZFBhcmFtZXRlcnMuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlcitUcmFuc2Zvcm0uaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWNmM2Qw
NjJjMGE2OTNkOTk0MTMwOGM1MmIzMjM4OGE3ODg2MTg1Yy4uNmVkN2VlYTJlZWFkMzVlYTEwMGY2
NGNkNzE1MDAyODkyYzhmZDYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE3MzQsMTAgKzE3MzQsOCBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybVBy
b3ZpZGVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuY3BwCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Q29uc3RydWN0b3IuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuY3BwCi0kKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTZW5kUGFy
YW1ldGVycy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUlRDUnRwU2VuZFBhcmFtZXRlcnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTZW5kZXIrVHJhbnNmb3JtLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2YzMmViMWRlZDc3OThlNDQyNjhiZGNlYzZkMmNhYjg5N2Rj
MmMxYS4uYjA2NDQ3ZDdjZmY5YWM0YzkyOWI4OTcxNzFhOGY1ODkwZDExOTQyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNzYsOCArMjc2LDcgQEAgSlNfQklORElOR19JRExT
IDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb250ZXh0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAKaW5kZXggZjI2OWQxZWJkNzdlZDlhOTZmZTU0OTM0ZjEz
MzgwMjc1YWI5YWFhMS4uMTE3ZTRmMmE1ODlmYzVlYmU1ZWM2N2MyNjBmYTYzZTlmYjY3MjJlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
RXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJKU0RPTUds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5k
LmgiCkBAIC00MSwyMiArNDIsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUlRDUnRwU2NyaXB0VHJhbnNmb3JtKTsKIAotRXhjZXB0aW9uT3I8
UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtlciYgd29ya2VyLCBTdHJpbmcm
JiBuYW1lKQorRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBXb3JrZXIm
IHdvcmtlciwgSlNDOjpKU1ZhbHVlIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCF3b3JrZXIuaGFzUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIobmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHdhcyByZWdpc3Rl
cmVkIHdpdGggdGhpcyBuYW1lIl9zIH07Ci0KICAgICBpZiAoIXdvcmtlci5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIldvcmtlciBmcmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCisgICAgYXV0byogY29udGV4dCA9
IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJnN0YXRlKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiSW52YWxpZCBjb250ZXh0Il9zIH07CisKKyAgICBhdXRvIHNl
cmlhbGl6ZWRPcHRpb25zID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUsIG9w
dGlvbnMpOworICAgIGlmICghc2VyaWFsaXplZE9wdGlvbnMpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisKICAgICBhdXRvIG1lc3NhZ2VDaGFu
bmVsID0gTWVzc2FnZUNoYW5uZWw6OmNyZWF0ZSgqd29ya2VyLnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CiAgICAgYXV0byB0cmFuc2Zvcm1NZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVsLT5w
b3J0MSgpOwogICAgIGF1dG8gdHJhbnNmb3JtZXJNZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVs
LT5wb3J0MigpOwogCi0gICAgYXV0byB0cmFuc2Zvcm0gPSBhZG9wdFJlZigqbmV3IFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybShjb250ZXh0LCBtYWtlUmVmKHdvcmtlciksIG1ha2VSZWYoKnRyYW5zZm9y
bU1lc3NhZ2VQb3J0KSkpOworICAgIGF1dG8gdHJhbnNmb3JtID0gYWRvcHRSZWYoKm5ldyBSVENS
dHBTY3JpcHRUcmFuc2Zvcm0oKmNvbnRleHQsIG1ha2VSZWYod29ya2VyKSwgbWFrZVJlZigqdHJh
bnNmb3JtTWVzc2FnZVBvcnQpKSk7CiAgICAgdHJhbnNmb3JtLT5zdXNwZW5kSWZOZWVkZWQoKTsK
IAotICAgIHdvcmtlci5jcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihuYW1lLCB0cmFuc2Zv
cm1lck1lc3NhZ2VQb3J0LT5kaXNlbnRhbmdsZSgpLCB0cmFuc2Zvcm0pOworICAgIHdvcmtlci5j
cmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcih0cmFuc2Zvcm0sIHNlcmlhbGl6ZWRPcHRpb25z
LnJlbGVhc2VOb25OdWxsKCksIHRyYW5zZm9ybWVyTWVzc2FnZVBvcnQtPmRpc2VudGFuZ2xlKCkp
OwogCiAgICAgcmV0dXJuIHRyYW5zZm9ybTsKIH0KQEAgLTczLDIzICs3OSwxNiBAQCBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm06On5SVENSdHBTY3JpcHRUcmFuc2Zvcm0oKQogICAgIGNsZWFyKCk7CiB9
CiAKLXZvaWQgUlRDUnRwU2NyaXB0VHJhbnNmb3JtOjpzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXI+JiYgdHJhbnNmb3JtZXIpCit2b2lkIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXImIHRyYW5zZm9y
bWVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghdHJhbnNmb3Jt
ZXIpIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpXSgpIG11dGFibGUgewotICAgICAgICAgICAgcXVldWVUYXNrVG9EaXNwYXRj
aEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIEVycm9yRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgIkFuIGVycm9yIHdhcyB0aHJvd24gZnJvbSBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lciBjb25zdHJ1Y3RvciJfcywgeyB9LCAwLCAwLCB7IH0pKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICB7CiAgICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV90cmFuc2Zvcm1lckxvY2spOwogICAgICAgICBBU1NFUlQoIW1f
aXNUcmFuc2Zvcm1lckluaXRpYWxpemVkKTsKICAgICAgICAgbV9pc1RyYW5zZm9ybWVySW5pdGlh
bGl6ZWQgPSB0cnVlOwotICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNm
b3JtZXIuZ2V0KCkpOworICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNm
b3JtZXIpOwogICAgIH0KLSAgICB0cmFuc2Zvcm1lci0+c3RhcnRQZW5kaW5nQWN0aXZpdHkoKTsK
KyAgICB0cmFuc2Zvcm1lci5zdGFydFBlbmRpbmdBY3Rpdml0eSgpOwogICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKG1fYmFja2VuZCkKICAgICAgICAgICAgIHNldHVwVHJhbnNmb3JtZXIobV9i
YWNrZW5kLnJlbGVhc2VOb25OdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmgKaW5kZXggZWM1NDY4
YWJlYTBiMDE3OTIzMDBkMTUzNTk0NDZkNWUzOWEyYWQ4Yi4uZWIyNzU3MmU2MGEyZGFkYTMxOTA4
MWRlZDIxZjRhOGEzOTdiYWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5oCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgogCkBAIC00NSwxMiArNDYsMTIgQEAgY2xhc3MgUlRDUnRwU2NyaXB0
VHJhbnNmb3JtIGZpbmFsCiAgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENSdHBTY3JpcHRUcmFuc2Zvcm0pOwogcHVi
bGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtPj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrZXImLCBTdHJpbmcmJiBuYW1lKTsK
KyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IGNyZWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgV29ya2VyJiwgSlNDOjpKU1ZhbHVlKTsKICAgICB+UlRD
UnRwU2NyaXB0VHJhbnNmb3JtKCk7CiAKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJu
IG1fcG9ydC5nZXQoKTsgfQogCi0gICAgdm9pZCBzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXI+JiYpOworICAgIHZvaWQgc2V0VHJhbnNmb3JtZXIoUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXImKTsKIAogICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNBdHRhY2hlZDsgfQogICAgIHZvaWQgaW5pdGlhbGl6ZUJhY2tlbmRGb3JSZWNlaXZlcihS
VENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKaW5kZXggZDY2
YTliOTUzMWMxNzgyMWM2ODk5YjZmNjAwZmQ1NzMwZDlmZTk5ZC4uY2Y0NDcyMmU3MzIxZGJlNjY0
ODM4MTFhNDhlOTExYjVjZmNmNjI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbApAQCAtMzAs
NyArMzAsNyBAQAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9i
amVjdCwKIF0gaW50ZXJmYWNlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSA6IEV2ZW50VGFyZ2V0IHsK
LSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoV29ya2Vy
IHdvcmtlciwgRE9NU3RyaW5nIG5hbWUpOworICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3RdIGNv
bnN0cnVjdG9yKFdvcmtlciB3b3JrZXIsIGFueSBvcHRpb25zKTsKIAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Q
cm92aWRlci5pZGwKaW5kZXggZDYzYmU4YWRjMzAyN2U1NzhmNjZjZjRjNTljMWI1NzRkNmZlMjYz
NS4uNDc2YTMyNDFhN2I4Mjc1NWY2MWI2NmY4OTI4NGRmN2Q1OWIyNGFkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Q
cm92aWRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKQEAgLTI0LDUgKzI0LDUgQEAKICAqLwogCiBp
bnRlcmZhY2UgbWl4aW4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIgewotICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIo
RE9NU3RyaW5nIG5hbWUsIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IgcHJvY2Vz
c29yQ29uc3RydWN0b3IpOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ydGN0cmFuc2Zv
cm07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAppbmRleCA0ZjIxMTU3ZGRkMGI5OGI0
NTZkZjQ3YmU0NTFlOTgzYTJiNDFmZDMzLi43ZmI2YzUyM2RhYzAzYjIyN2Y2YTVkZmVjNGY5NWVh
MjA1ODAyZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApAQCAtMzEsMjkgKzMxLDM4
IEBACiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJK
U1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgiCiAjaW5jbHVkZSAiSlNSVENFbmNvZGVkVmlkZW9GcmFt
ZS5oIgotI2luY2x1ZGUgIkpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgiCiAjaW5j
bHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJl
YW0uaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVk
ZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0
aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorRXhjZXB0aW9uT3I8
UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIG9wdGlvbnMsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0KQogewotICAgIGF1dG8g
cG9ydCA9IGRvd25jYXN0PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50YWtl
UGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCgpOwotICAgIGlmICghcG9ydCkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk5vIHBlbmRpbmcgY29uc3RydWN0aW9u
IGRhdGEgZm9yIHRoaXMgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIiX3MgfTsKKyAgICBpZiAoIWNv
bnRleHQuZ2xvYmFsT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9OwogCi0gICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIoY29udGV4dCwgcG9ydC5yZWxlYXNlTm9uTnVsbCgpKSk7Cisg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Y29udGV4dC5nbG9iYWxPYmplY3QoKSk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhnbG9i
YWxPYmplY3Qudm0oKSk7CisgICAgYXV0byByZWFkYWJsZVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxl
U3RyZWFtU291cmNlOjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlYWRhYmxlID0gUmVhZGFibGVTdHJl
YW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIHJlYWRhYmxlU291cmNlLmNvcHlSZWYoKSk7CisgICAg
aWYgKHJlYWRhYmxlLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVhZGFibGUucmVs
ZWFzZUV4Y2VwdGlvbigpOworCisgICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcg
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoY29udGV4dCwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92
ZShwb3J0KSwgcmVhZGFibGUucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUocmVhZGFibGVT
b3VyY2UpKSk7CiAgICAgdHJhbnNmb3JtZXItPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVy
biB0cmFuc2Zvcm1lcjsKIH0KIAotUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZXNzYWdl
UG9ydD4mJiBwb3J0KQorUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgb3B0aW9ucywgUmVmPE1lc3NhZ2VQb3J0PiYmIHBvcnQsIFJlZjxSZWFkYWJs
ZVN0cmVhbT4mJiByZWFkYWJsZSwgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiYmIHJl
YWRhYmxlU291cmNlKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwgbV9v
cHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAgLCBtX3BvcnQoV1RGTW92ZShwb3J0KSkKKyAg
ICAsIG1fcmVhZGFibGVTb3VyY2UoV1RGTW92ZShyZWFkYWJsZVNvdXJjZSkpCisgICAgLCBtX3Jl
YWRhYmxlKFdURk1vdmUocmVhZGFibGUpKQogewogfQogCkBAIC02MSw2OCArNzAsNTEgQEAgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXI6On5SVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpCiB7CiB9CiAK
LVJlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kKQorUmVhZGFi
bGVTdHJlYW0mIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpyZWFkYWJsZSgpCiB7Ci0gICAgYXV0
byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjayk7Ci0gICAgaWYgKCFjYWxsYmFjaykKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBhdXRvJiBjb250ZXh0ID0gZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8mIGds
b2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQuZ2xv
YmFsT2JqZWN0KCkpOworICAgIHJldHVybiBtX3JlYWRhYmxlLmdldCgpOworfQogCi0gICAgYXV0
byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZt
KTsKLQotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBTaW1wbGVSZWFkYWJsZVN0cmVh
bVNvdXJjZTo6Y3JlYXRlKCk7Ci0gICAgYXV0byByZWFkYWJsZVN0cmVhbSA9IFJlYWRhYmxlU3Ry
ZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkp
OwotICAgIGlmIChyZWFkYWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICBhdXRvIHdyaXRhYmxlU3RyZWFtID0gV3JpdGFibGVTdHJlYW06OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6Y3JlYXRlKFtiYWNr
ZW5kID0gbWFrZVJlZihiYWNrZW5kKV0oYXV0byYgY29udGV4dCwgYXV0byB2YWx1ZSkgLT4gRXhj
ZXB0aW9uT3I8dm9pZD4gewotICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqY29udGV4dC5n
bG9iYWxPYmplY3QoKTsKLQotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShnbG9iYWxPYmplY3Qudm0oKSk7Ci0gICAgICAgIGF1dG8gZnJhbWUgPSBjb252ZXJ0PElETFVu
aW9uPElETEludGVyZmFjZTxSVENFbmNvZGVkQXVkaW9GcmFtZT4sIElETEludGVyZmFjZTxSVENF
bmNvZGVkVmlkZW9GcmFtZT4+PihnbG9iYWxPYmplY3QsIHZhbHVlKTsKLQotICAgICAgICBpZiAo
c2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3Rp
bmdFeGNlcHRpb25FcnJvciB9OwotCi0gICAgICAgIGF1dG8gcnRjRnJhbWUgPSBXVEY6OnN3aXRj
aE9uKGZyYW1lLCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUpIHsKLSAg
ICAgICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKLSAgICAgICAgfSwg
WyZdKFJlZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7Ci0gICAgICAgIH0pOwotICAgICAgICBi
YWNrZW5kLT5wcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShydGNGcmFtZS5nZXQoKSk7Ci0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgfSkpOwotICAgIGlmICh3cml0YWJsZVN0cmVhbS5oYXNFeGNlcHRp
b24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAvLyBDYWxsIHN0YXJ0IGNhbGxi
YWNrLgotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVu
ZCh0b0pTTmV3bHlDcmVhdGVkKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIHJlYWRhYmxl
U3RyZWFtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7Ci0gICAgYXJncy5hcHBlbmQodG9KU05ld2x5
Q3JlYXRlZCgmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCB3cml0YWJsZVN0cmVhbS5yZWxl
YXNlUmV0dXJuVmFsdWUoKSkpOwotICAgIGFyZ3MuYXBwZW5kKHRvSlNOZXdseUNyZWF0ZWQoJmds
b2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0
OjpjcmVhdGUobWFrZVJlZihiYWNrZW5kKSkpKTsKLQotICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0
aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKLSAgICBjYWxsYmFjay0+aW52b2tlQ2FsbGJhY2soSlND
Ojpqc1VuZGVmaW5lZCgpLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmpl
Y3QsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInN0YXJ0IiksIHJldHVybmVkRXhj
ZXB0aW9uKTsKLSAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIGluIGNhc2Ugb2YgZXhjZXB0aW9u
PyBXZSBzaG91bGQgYXQgbGVhc3QgbG9nIGVycm9ycy4KLQotICAgIHJldHVybiByZWFkYWJsZVN0
cmVhbVNvdXJjZTsKK0V4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyOjp3cml0YWJsZSgpCit7CisgICAgaWYgKCFtX3dyaXRhYmxlKSB7CisgICAg
ICAgIGF1dG8qIGNvbnRleHQgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5nbG9i
YWxPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OworCisgICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGNvbnRleHQtPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgYXV0byB3
cml0YWJsZSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0
YWJsZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtYWtlUmVmKCp0aGlzKV0oYXV0
byYgY29udGV4dCwgYXV0byB2YWx1ZSkgLT4gRXhjZXB0aW9uT3I8dm9pZD4geworICAgICAgICAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7CisKKyAgICAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgp
KTsKKyAgICAgICAgICAgIGF1dG8gZnJhbWUgPSBjb252ZXJ0PElETFVuaW9uPElETEludGVyZmFj
ZTxSVENFbmNvZGVkQXVkaW9GcmFtZT4sIElETEludGVyZmFjZTxSVENFbmNvZGVkVmlkZW9GcmFt
ZT4+PihnbG9iYWxPYmplY3QsIHZhbHVlKTsKKworICAgICAgICAgICAgaWYgKHNjb3BlLmV4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2Vw
dGlvbkVycm9yIH07CisKKyAgICAgICAgICAgIGF1dG8gcnRjRnJhbWUgPSBXVEY6OnN3aXRjaE9u
KGZyYW1lLCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7CisgICAgICAgICAg
ICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybWVyLT5tX2JhY2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1l
ZEZyYW1lKHJ0Y0ZyYW1lLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IH0pKTsKKyAgICAgICAgaWYgKHdyaXRhYmxlLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAg
cmV0dXJuIHdyaXRhYmxlOworICAgICAgICBtX3dyaXRhYmxlID0gd3JpdGFibGUucmVsZWFzZVJl
dHVyblZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiBtYWtlUmVmKCptX3dyaXRhYmxlKTsKIH0K
IAogdm9pZCBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6c3RhcnQoUmVmPFJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQ+JiYgYmFja2VuZCkKIHsKLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtU291cmNlID0g
c3RhcnRTdHJlYW1zKGJhY2tlbmQuZ2V0KCkpOwotICAgIGlmICghcmVhZGFibGVTdHJlYW1Tb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fYmFja2VuZCA9IFdURk1vdmUoYmFja2VuZCk7
CiAKICAgICBhdXRvJiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fYmFja2VuZC0+c2V0VHJhbnNmb3JtYWJsZUZy
YW1lQ2FsbGJhY2soW3JlYWRhYmxlU3RyZWFtU291cmNlID0gbWFrZVdlYWtQdHIocmVhZGFibGVT
dHJlYW1Tb3VyY2UuZ2V0KCkpLCBpc0F1ZGlvID0gbV9iYWNrZW5kLT5tZWRpYVR5cGUoKSA9PSBS
VENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlvLCB0aHJlYWQgPSBtYWtlUmVm
KGNvbnRleHQudGhyZWFkKCkpXShhdXRvJiYgZnJhbWUpIG11dGFibGUgewotICAgICAgICB0aHJl
YWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3JlYWRhYmxlU3RyZWFtU291cmNlLCBpc0F1
ZGlvLCBmcmFtZSA9IFdURk1vdmUoZnJhbWUpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKLSAg
ICAgICAgICAgIGlmICghcmVhZGFibGVTdHJlYW1Tb3VyY2UpCisgICAgbV9iYWNrZW5kLT5zZXRU
cmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhbcmVhZGFibGVTb3VyY2UgPSBtYWtlV2Vha1B0ciht
X3JlYWRhYmxlU291cmNlLmdldCgpKSwgaXNBdWRpbyA9IG1fYmFja2VuZC0+bWVkaWFUeXBlKCkg
PT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbywgdGhyZWFkID0gbWFr
ZVJlZihjb250ZXh0LnRocmVhZCgpKV0oYXV0byYmIGZyYW1lKSBtdXRhYmxlIHsKKyAgICAgICAg
dGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZWFkYWJsZVNvdXJjZSwgaXNBdWRp
bywgZnJhbWUgPSBXVEZNb3ZlKGZyYW1lKV0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoIXJlYWRhYmxlU291cmNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmplY3QoKSk7CkBAIC0xMzAsNyArMTIyLDcgQEAgdm9p
ZCBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6c3RhcnQoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQ+JiYgYmFja2VuZCkKICAgICAgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwog
CiAgICAgICAgICAgICBhdXRvIHZhbHVlID0gaXNBdWRpbyA/IHRvSlMoJmdsb2JhbE9iamVjdCwg
Jmdsb2JhbE9iamVjdCwgUlRDRW5jb2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZShXVEZNb3ZlKGZyYW1l
KSkpIDogdG9KUygmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBSVENFbmNvZGVkVmlkZW9G
cmFtZTo6Y3JlYXRlKFdURk1vdmUoZnJhbWUpKSk7Ci0gICAgICAgICAgICByZWFkYWJsZVN0cmVh
bVNvdXJjZS0+ZW5xdWV1ZSh2YWx1ZSk7CisgICAgICAgICAgICByZWFkYWJsZVNvdXJjZS0+ZW5x
dWV1ZSh2YWx1ZSk7CiAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwog
ICAgIH0pOwogfQpAQCAtMTQzLDYgKzEzNSwyMyBAQCB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjpjbGVhcigpCiAgICAgc3RvcFBlbmRpbmdBY3Rpdml0eSgpOwogfQogCitFeGNlcHRpb25P
cjx2b2lkPiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6cmVxdWVzdEtleUZyYW1lKCkKK3sKKyAg
ICBpZiAoIW1fYmFja2VuZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiTm90IGF0dGFjaGVkIHRvIGEgcmVjZWl2ZXIgb3Igc2VuZGVyIl9zIH07CisKKyAg
ICBpZiAobV9iYWNrZW5kLT5tZWRpYVR5cGUoKSAhPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpN
ZWRpYVR5cGU6OlZpZGVvKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJDYW5ub3QgcmVxdWVzdCBrZXkgZnJhbWUgb24gYXVkaW8gc2VuZGVyIl9zIH07CisK
KyAgICBtX2JhY2tlbmQtPnJlcXVlc3RLZXlGcmFtZSgpOworICAgIHJldHVybiB7IH07Cit9CisK
K0pTQzo6SlNWYWx1ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6b3B0aW9ucyhKU0M6OkpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIG1fb3B0aW9ucy0+ZGVzZXJp
YWxpemUoZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
LmgKaW5kZXggNGMxYmJlMGFjNzFhMTAzZWFhMzAyNjMxMWNlYWM2NzZjNGIyZDQyMC4uNzZhNGRm
MThmYzBmNTQwNTQ0MTBhYjMyNmZjMTM0NDQ4NWM4ZjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuaApAQCAtMjksNDggKzI5LDU3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisj
aW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVzc2FnZVBv
cnQ7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBjbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0
cmVhbTsKIAogY2xhc3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIKICAgICA6IHB1YmxpYyBSZWZD
b3VudGVkPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPgogICAgICwgcHVibGljIEFjdGl2ZURPTU9i
amVjdAogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcj4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmKTsKICAgICB+UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKTsKIAotICAgIHZvaWQgc2V0
Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiYmIGNhbGxiYWNr
KSB7IG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQorICAgIFJlYWRhYmxlU3RyZWFt
JiByZWFkYWJsZSgpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IHdyaXRh
YmxlKCk7CisgICAgSlNDOjpKU1ZhbHVlIG9wdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCYpOwor
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVxdWVzdEtleUZyYW1lKCk7CiAgICAgTWVzc2FnZVBv
cnQmIHBvcnQoKSB7IHJldHVybiBtX3BvcnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc3RhcnRQZW5k
aW5nQWN0aXZpdHkoKSB7IG1fcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgq
dGhpcyk7IH0KICAgICB2b2lkIHN0YXJ0KFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYmKTsK
ICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICB2b2lkIHN0YXJ0UGVuZGluZ0FjdGl2aXR5KCkgeyBt
X3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOyB9Ci0KIHByaXZh
dGU6Ci0gICAgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFJlZjxNZXNzYWdlUG9ydD4mJik7Ci0KLSAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1T
b3VyY2U+IHN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CisgICAgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYsIFJlZjxNZXNzYWdlUG9ydD4mJiwgUmVmPFJlYWRhYmxlU3RyZWFtPiYm
LCBSZWY8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciI7IH0KICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7
IHN0b3BQZW5kaW5nQWN0aXZpdHkoKTsgfQogICAgIHZvaWQgc3RvcFBlbmRpbmdBY3Rpdml0eSgp
IHsgYXV0byBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKG1fcGVuZGluZ0FjdGl2aXR5KTsgfQog
CisgICAgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9vcHRpb25zOwogICAgIFJlZjxNZXNz
YWdlUG9ydD4gbV9wb3J0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9u
Zz4gbV9jYWxsYmFjazsKKworICAgIFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gbV9y
ZWFkYWJsZVNvdXJjZTsKKyAgICBSZWY8UmVhZGFibGVTdHJlYW0+IG1fcmVhZGFibGU7CisgICAg
UmVmUHRyPFdyaXRhYmxlU3RyZWFtPiBtX3dyaXRhYmxlOworCiAgICAgUmVmUHRyPFJUQ1J0cFRy
YW5zZm9ybUJhY2tlbmQ+IG1fYmFja2VuZDsKICAgICBSZWZQdHI8UGVuZGluZ0FjdGl2aXR5PFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gbV9wZW5kaW5nQWN0aXZpdHk7Ci0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKaW5kZXggMGY5NDBj
Y2RlYjMwMjRmOTQ0YTkxMGYwODUzNTYyN2EzNzk1NTZjOC4uMzg3MWM0MzllZTljNGY1MTdjYjRi
OTIwOWNlNjRlNzU3OTY3OGY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKQEAgLTMw
LDggKzMwLDEwIEBACiAgICAgRXhwb3NlZD1EZWRpY2F0ZWRXb3JrZXIsCiAgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0LAogXSBpbnRlcmZhY2UgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewot
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBjb25zdHJ1Y3RvcigvKiBvcHRp
b25hbCBvYmplY3QgdHJhbnNmb3JtT3B0aW9ucyAqLyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFJlYWRhYmxlU3RyZWFtIHJlYWRhYmxlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXcml0YWJs
ZVN0cmVhbSB3cml0YWJsZTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0LCBDYWNoZWRBdHRy
aWJ1dGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgb3B0aW9uczsKIAotICAgIC8vIEZJWE1FOiBh
ZGQgY29udHJvbGxlciBhdHRyaWJ1dGUuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQ
b3J0IHBvcnQ7CisgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgcmVxdWVzdEtleUZy
YW1lKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlkOWJkYjhiZTEzNzNiZjdmZmMwZjdmMWFk
OTBiODJkZjQ4NDQzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyQ29uc3RydWN0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoV0VCX1JUQykKLQotI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCi0j
aW5jbHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOwot
Ci1jbGFzcyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yIDogcHVibGljIFJlZkNv
dW50ZWQ8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvcj4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwotCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDxSZWZQdHI8UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXI+PiBoYW5kbGVFdmVudCgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnN0cnVjdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGU3MjFlNTNmNmI2NTViNGY4YWE5YjE3MmUyM2IyNzAzMTRjNTdiZjYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbAor
KysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFsPVdFQl9SVEMsCi1dIGNhbGxi
YWNrIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IgPSBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YzM5M2JhMDA3MDFmNmQxOWNmMzVkYTlmNjI2YzNkMzE4
ZGViY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShX
RUJfUlRDKQotCi0jaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIgotI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOwotCi1jbGFzcyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQKLSAgICA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dD4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0PiBjcmVh
dGUoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYpOwotICAgIH5SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHQoKSA9IGRlZmF1bHQ7Ci0KLSAgICB1c2luZyBTaWRlID0gUlRDUnRwVHJh
bnNmb3JtQmFja2VuZDo6U2lkZTsKLSAgICBTaWRlIHNpZGUoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tlbmQtPnNpZGUoKTsgfQotCi0gICAgdXNpbmcgTWVkaWFUeXBlID0gUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZDo6TWVkaWFUeXBlOwotICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX2JhY2tlbmQtPm1lZGlhVHlwZSgpOyB9Ci0KLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBy
ZXF1ZXN0S2V5RnJhbWUoKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYpOwotCi0gICAg
UmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+IG1fYmFja2VuZDsKLX07Ci0KLWlubGluZSBSZWY8
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0PiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQ6OmNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQotewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dChX
VEZNb3ZlKGJhY2tlbmQpKSk7Ci19Ci0KLWlubGluZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQ6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dChSZWY8UlRDUnRwVHJhbnNmb3Jt
QmFja2VuZD4mJiBiYWNrZW5kKQotICAgIDogbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi17
Ci19Ci0KLWlubGluZSBFeGNlcHRpb25Pcjx2b2lkPiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQ6OnJlcXVlc3RLZXlGcmFtZSgpCi17Ci0gICAgc3dpdGNoIChtZWRpYVR5cGUoKSkgewot
ICAgIGNhc2UgTWVkaWFUeXBlOjpBdWRpbzoKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IHJlcXVlc3Qga2V5IGZyYW1lIG9uIGF1ZGlvIHNlbmRl
ciJfcyB9OwotICAgIGNhc2UgTWVkaWFUeXBlOjpWaWRlbzoKLSAgICAgICAgbV9iYWNrZW5kLT5y
ZXF1ZXN0S2V5RnJhbWUoKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICByZXR1cm4geyB9OwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwODMzMGM4MGRjYjRiNjE1
YjI4N2RlMDE5ZTgyYzQ2ZDdjMWI4YjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLWVudW0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0U2lkZSB7
ICJyZWNlaXZlciIsICJzZW5kZXIiIH07Ci1lbnVtIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dE1lZGlhVHlwZSB7ICJhdWRpbyIsICJ2aWRlbyIgfTsKLQotWwotICAgIENvbmRpdGlvbmFs
PVdFQl9SVEMsCi0gICAgRW5hYmxlZEJ5U2V0dGluZz1XZWJSVENJbnNlcnRhYmxlU3RyZWFtcywK
LSAgICBFeHBvc2VkPURlZGljYXRlZFdvcmtlciwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAotXSBpbnRlcmZhY2UgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0IHsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0U2lkZSBzaWRl
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHRN
ZWRpYVR5cGUgbWVkaWFUeXBlOwotCi0gICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQg
cmVxdWVzdEtleUZyYW1lKCk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTlhNmY3NzhmYjQxYmIyNTMzOTEzOTJiMmJlYzA1NDE3MDg3ZDg3YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJFdmVudC5oIgorCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50KTsKKworUmVmPFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyRXZlbnQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQ6OmNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+JiYg
dHJhbnNmb3JtZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudCh0eXBlLCBXVEZNb3ZlKHRyYW5zZm9y
bWVyKSwgaXNUcnVzdGVkKSk7Cit9CisKK1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQ6OlJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgUmVmPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYmIHRyYW5zZm9ybWVyLCBJc1RydXN0ZWQgaXNUcnVzdGVk
KQorICAgIDogRXZlbnQodHlwZSwgeyB9LCBpc1RydXN0ZWQpCisgICAgLCBtX3RyYW5zZm9ybWVy
KFdURk1vdmUodHJhbnNmb3JtZXIpKQoreworfQorCitSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciYg
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudDo6dHJhbnNmb3JtZXIoKQoreworICAgIHJldHVy
biBtX3RyYW5zZm9ybWVyLmdldCgpOworfQorCitFdmVudEludGVyZmFjZSBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDZkNzJhMGVhMmUyOGQ3M2M3MWQyOTRk
MTYzNmY3NDdkNTRiZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50LmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfUlRDKQor
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50IGZpbmFsIDogcHVibGljIEV2
ZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
RXZlbnQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJF
dmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFJlZjxSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcj4mJiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisKKyAgICBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lciYgdHJhbnNmb3JtZXIoKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBSZWY8UlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXI+JiYsIElzVHJ1c3RlZCk7CisKKyAgICBSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI+IG1fdHJhbnNmb3JtZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmNGU0ZmRkOWZkNWVlOGIxMjQ0OTViMjE2ZjllZTgxNDM0MGZlMmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPVdFQl9SVEMsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1XZWJS
VENJbnNlcnRhYmxlU3RyZWFtcywKKyAgICBFeHBvc2VkPVdvcmtlcgorXSBpbnRlcmZhY2UgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01T
dHJpbmcgdHlwZSwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgdHJhbnNmb3JtZXIpOworCisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHRyYW5zZm9ybWVyOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggNDNkMTFjOWJkNTNjZTE2M2NmMmU4N2Y0NzFlYWRiYjEwM2Jh
ZmM4Yi4uZTlmOGQ1OTAxMzE0YjA0NjdkMjQ5NWQzZGU2ODQ5OTg4ZTQ1ZTJkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTE3Myw2ICsxNzMsNyBAQCBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFt
ZVRyYW5zZm9ybS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXIuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAKIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCitNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuY3BwCiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNm
b3JtLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5jcHAKQEAgLTMz
ODcsOCArMzM4OCw3IEBAIEpTUlRDUnRwUnR4UGFyYW1ldGVycy5jcHAKIEpTUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcAogSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwCiBKU1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmNwcAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmNw
cAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuY3BwCitKU1JUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyRXZlbnQuY3BwCiBKU1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmNwcAogSlNSVENSdHBT
ZW5kZXIuY3BwCiBKU1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZDY1Njhh
MTE2NDk2NzA0MjM0YTJiYmFjNTI5OTc5MTZlZDVlMTAzLi4wODUwNzBkMDIzMWU0YzhjOTc1MGYx
YWYwZmUzMDQxNmYzZWNmZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NzE4LDggKzc3MTgsNiBAQAogCQk0MTQxODlGMzI1
NjJFMzJDMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTQxODlGNDI1NjJFMzJDMDAzNjM0MTcgLyog
UlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNDE4OUY1MjU2MkUzMkQwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTQxODlGNjI1NjJFNjdBMDAz
NjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNDE4OUY3MjU2MkU2N0EwMDM2MzQx
NyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RjkyNTY0MTY1MDAwMzYzNDE3IC8qIFJUQ0Vu
Y29kZWRBdWRpb0ZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENFbmNvZGVkQXVk
aW9GcmFtZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUZBMjU2NDE2
NTEwMDM2MzQxNyAvKiBSVENFbmNvZGVkVmlkZW9GcmFtZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUlRDRW5jb2RlZFZpZGVvRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTQxODlGQjI1NjQxNzU3MDAzNjM0MTcgLyogUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4OTMsOCArNzg5MSw2IEBACiAJCTQxOUU2
RUM0MjU2NkQyMTEwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxOUU2RUM2MjU2NkQyMTMwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVj
dGlvbkljZUVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUGVlckNvbm5lY3Rp
b25JY2VFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RTZF
QzcyNTY2RDIxNDAwMkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5RTZFRDIyNTY3QkY2OTAwMkI1MDEwIC8qIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNDE5RTZFRDUyNTY3QkY2QTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lckNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RkFGQUQx
QUJBQkNENTAwNUIzNTcyIC8qIFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBMDIz
RUQxQTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03OTM0LDYgKzc5MzAsOSBAQAogCQk0MUI4Nzc2MDIzREUxMDQyMDAzNjM4QjggLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFCOTEzNzYyMzU4NEQwRTAwMjVCRkEzIC8qIE1vY2tBdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUI5MTM3ODIzNTg0
RDBGMDAyNUJGQTMgLyogTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFCQ0U4NzUyNUY3QTY3OTAwNDZDMkU1IC8q
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MUJDRTg3NjI1RjdBNjdBMDA0NkMyRTUgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDFCQ0U4NzcyNUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUJGMjA0MDIyQjk0NzE2
MDAwNEY4MTIgLyogUmVhbHRpbWVWaWRlb1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGlt
ZVZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkYyMDQyMjJC
OTQ3MTcwMDA0RjgxMiAvKiBSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE3MzY1LDEwICsxNzM2NCw5IEBACiAJCQkJNDE0MTg5RjMyNTYyRTMyQzAwMzYz
NDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcCAqLywKIAkJCQk0MTQxODlGNTI1NjJF
MzJEMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCAqLywKIAkJCQk0MTQxODlG
MTI1NjJERjU2MDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsICovLAotCQkJ
CTQxNDE4OUY2MjU2MkU2N0EwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0
cnVjdG9yLmggKi8sCi0JCQkJNDE0MTg5RjcyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsICovLAotCQkJCTQxOUU2RUQ1MjU2N0JGNkEwMDJC
NTAxMCAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaCAqLywKLQkJCQk0MTlFNkVE
MjI1NjdCRjY5MDAyQjUwMTAgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbCAq
LywKKwkJCQk0MUJDRTg3NjI1RjdBNjdBMDA0NkMyRTUgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJFdmVudC5jcHAgKi8sCisJCQkJNDFCQ0U4NzcyNUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyRXZlbnQuaCAqLywKKwkJCQk0MUJDRTg3NTI1RjdBNjc5MDA0NkMyRTUg
LyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJFdmVudC5pZGwgKi8sCiAJCQkJNDE0MTg5RUYyNTYy
REYwQzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbCAqLywKIAkJ
CQk0MTNDOEIyNjI1NTJFRUE5MDBFNjUwNTUgLyogUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5pZGwg
Ki8sCiAJCQkJNUUyQzQzNTkxQkNFRTMwRDAwMDFFMkJDIC8qIFJUQ1J0cFNlbmRlci5jcHAgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAppbmRleCBmYjky
Y2NhMTMzM2RiMTc4NTQzZGJmZWNlMGYzN2M5ZWEzY2NhZmNkLi43Y2FjNzIzY2YwNmQ5Zjk0YTkx
NmQwMGRkNzY4YjYxYjA5YTQyZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtLmgKQEAgLTg0LDYgKzg0LDExIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlYWRhYmxlU3Ry
CiAgICAgcmV0dXJuIHN0cmVhbSA/IHN0cmVhbS0+cmVhZGFibGVTdHJlYW0oKSA6IEpTQzo6anNV
bmRlZmluZWQoKTsKIH0KIAoraW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVhZGFibGVTdHJlYW0mIHN0cmVhbSkKK3sK
KyAgICByZXR1cm4gc3RyZWFtLnJlYWRhYmxlU3RyZWFtKCk7Cit9CisKIGlubGluZSBKU0M6OkpT
VmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxP
YmplY3QqLCBSZWY8UmVhZGFibGVTdHJlYW0+JiYgc3RyZWFtKQogewogICAgIHJldHVybiBzdHJl
YW0tPnJlYWRhYmxlU3RyZWFtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZGFmMTc5ZjJjZjQwOTdhZTEyOGJiYmQxNDBiYTll
MzI4MDRmNjBkYi4uMzdlZmZlYjJlMDNiZmU1YTkyNzA3NWUyMTI0Mjc3MDk5ZTQ1NWE5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtMjI2LDYgKzIyNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhSVENSdHBT
Y3JpcHRUcmFuc2Zvcm0pIFwKICAgICBtYWNybyhSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcikgXAog
ICAgIG1hY3JvKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dCkgXAorICAgIG1hY3JvKFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQpIFwKICAgICBtYWNybyhSVENSdHBTZW5kZXIpIFwK
ICAgICBtYWNybyhSVENSdHBUcmFuc2NlaXZlcikgXAogICAgIG1hY3JvKFJUQ1J0cFRyYW5zZm9y
bSkgXApAQCAtMzgxLDYgKzM4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyht
YXRjaGluZ0VsZW1lbnRJbkZsYXRUcmVlKSBcCiAgICAgbWFjcm8obWVkaWFTdHJlYW1UcmFja0Nv
bnN0cmFpbnRzKSBcCiAgICAgbWFjcm8ob3BlbkRhdGFiYXNlKSBcCisgICAgbWFjcm8ob25ydGN0
cmFuc2Zvcm0pIFwKICAgICBtYWNybyhvbnRvdWNoY2FuY2VsKSBcCiAgICAgbWFjcm8ob250b3Vj
aGVuZCkgXAogICAgIG1hY3JvKG9udG91Y2htb3ZlKSBcCkBAIC00MTksNyArNDIxLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHJlYWRlcikgXAogICAgIG1hY3JvKHJlYWR5UHJv
bWlzZSkgXAogICAgIG1hY3JvKHJlYWR5UHJvbWlzZUNhcGFiaWxpdHkpIFwKLSAgICBtYWNybyhy
ZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKSBcCiAgICAgbWFjcm8ocmVxdWVzdEFuaW1h
dGlvbkZyYW1lKSBcCiAgICAgbWFjcm8ocmVxdWVzdElkbGVDYWxsYmFjaykgXAogICAgIG1hY3Jv
KHJlc3BvbnNlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0
YWJsZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0u
aAppbmRleCA0NmZmODlkNWNkZTA4YjAwNmYyMTViMTNiMzBiYTI0ZDk4NTM3MjM4Li5jNTE4YTk0
NTk3NzI0ZTFkNzAxMDFhNjdiY2RiOGVmMzk5NjFmYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKQEAgLTgxLDYgKzgxLDExIEBAIGlubGluZSBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9iamVjdCos
IFdyaXRhYmxlU3RyCiAgICAgcmV0dXJuIHN0cmVhbSA/IHN0cmVhbS0+d3JpdGFibGVTdHJlYW0o
KSA6IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIAoraW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgV3JpdGFibGVTdHJlYW0m
IHN0cmVhbSkKK3sKKyAgICByZXR1cm4gc3RyZWFtLndyaXRhYmxlU3RyZWFtKCk7Cit9CisKIGlu
bGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNET01HbG9iYWxPYmplY3QqLCBSZWY8V3JpdGFibGVTdHJlYW0+JiYgc3RyZWFtKQogewogICAg
IHJldHVybiBzdHJlYW0tPndyaXRhYmxlU3RyZWFtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCA2MDA4YjA4MGYwZTg0Y2NjZGMxNWM3Y2MzMmJhNWQzNDMzZmM2Y2ZhLi4xMzk0NDQzOTgx
NDYwOTA5ZWYyYTBmZTViYzdkNzlhOTliNzJlNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTIzMiw2ICsyMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVzb3Vy
Y2V0aW1pbmdidWZmZXJmdWxsKSBcCiAgICAgbWFjcm8ocmVzdWx0KSBcCiAgICAgbWFjcm8ocmVz
dW1lKSBcCisgICAgbWFjcm8ocnRjdHJhbnNmb3JtKSBcCiAgICAgbWFjcm8oc2Nyb2xsKSBcCiAg
ICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMmQwYmNlMGY5NWZlNDVkZDIwM2RlMDU3MTQ3
YTM5MTliZDgzZTJkNS4uZGE4OGVhM2U1MTVmZjAxNjA0OGRiMzYyYjIxM2JmZTM1ZTU5ZDMzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTYxLDYgKzYxLDcgQEAgUlRDUGVlckNvbm5l
Y3Rpb25JY2VFcnJvckV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRp
b25hbD1XRUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMK
K1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJh
Y2tFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQK
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggNjFmZGQ1NWNiNDg4ZDE4NTUy
Y2U0NzMxOWE5YWExZGM4ZjFkMzJiOC4uMGNiZDcwM2EzMGE2Y2M4ZTRiN2JkODBjM2MwNWE5NzFm
NDRhZDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTM1LDEwICszNSwxMCBAQAogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgiCi0jaW5jbHVkZSAi
SlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZUV2ZW50LmgiCi0jaW5jbHVkZSAiUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKKyNpbmNsdWRl
ICJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50LmgiCiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIldvcmtlci5oIgpAQCAtNzYsMTAgKzc2LDYgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKIHZv
aWQgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiB7
CiAgICAgV29ya2VyR2xvYmFsU2NvcGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwotCi0jaWYg
RU5BQkxFKFdFQl9SVEMpCi0gICAgbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwLmNs
ZWFyKCk7Ci0jZW5kaWYKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpT
VmFsdWUgbWVzc2FnZVZhbHVlLCBQb3N0TWVzc2FnZU9wdGlvbnMmJiBvcHRpb25zKQpAQCAtMTI2
LDcxICsxMjIsMTUgQEAgdm9pZCBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y2FuY2VsQW5p
bWF0aW9uRnJhbWUoQ2FsbGJhY2tJZCBjYWxsYmFja0lkKQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0VCX1JUQykKLUV4Y2VwdGlvbk9yPHZvaWQ+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpy
ZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFJlZjxKU1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+JiYgdHJhbnNmb3JtZXJDb25zdHJ1Y3RvcikK
LXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmIChuYW1lLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTmFtZSBj
YW5ub3QgYmUgdGhlIGVtcHR5IHN0cmluZyJfcyB9OwotCi0gICAgaWYgKG1fcnRjUnRwVHJhbnNm
b3JtZXJDb25zdHJ1Y3Rvck1hcC5jb250YWlucyhuYW1lKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiQSB0cmFuc2Zvcm1lciB3YXMgYWxyZWFkeSByZWdp
c3RlcmVkIHdpdGggdGhpcyBuYW1lIl9zIH07Ci0KLSAgICBKU0M6OkpTT2JqZWN0KiBqc0NvbnN0
cnVjdG9yID0gdHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNr
KCk7Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0ganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0
KCk7Ci0gICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKCFqc0NvbnN0cnVjdG9yLT5pc0Nv
bnN0cnVjdG9yKHZtKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNs
YXNzIGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cigpIGlzIG5vdCBhIGNvbnN0cnVjdG9yIl9zIH07Ci0KLSAgICBhdXRvIHByb3RvdHlwZSA9IGpz
Q29uc3RydWN0b3ItPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0p
OwotCi0gICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIkNsYXNzIGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpIGhhcyBpbnZhbGlkIHByb3RvdHlwZSJfcyB9OwotCi0g
ICAgbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwLmFkZChuYW1lLCBXVEZNb3ZlKHRy
YW5zZm9ybWVyQ29uc3RydWN0b3IpKTsKLQotICAgIHRocmVhZCgpLndvcmtlck9iamVjdFByb3h5
KCkucG9zdFRhc2tUb1dvcmtlck9iamVjdChbbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCldKGF1
dG8mIHdvcmtlcikgbXV0YWJsZSB7Ci0gICAgICAgIHdvcmtlci5hZGRSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcihXVEZNb3ZlKG5hbWUpKTsKLSAgICB9KTsKLQotICAgIHJldHVybiB7IH07Ci19Ci0K
LVJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFRyYW5zZmVy
cmVkTWVzc2FnZVBvcnQgcG9ydCkKK1JlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0aW9ucywgVHJhbnNmZXJyZWRNZXNzYWdlUG9y
dCYmIHBvcnQpCiB7Ci0gICAgYXV0byBjb25zdHJ1Y3RvciA9IG1fcnRjUnRwVHJhbnNmb3JtZXJD
b25zdHJ1Y3Rvck1hcC5nZXQobmFtZSk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yKTsKLSAgICBp
ZiAoIWNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8qIGpz
Q29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0g
ICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29uc3RydWN0b3ItPmNhbGxiYWNrRGF0YSgpLT5nbG9i
YWxPYmplY3QoKTsKLSAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayB7IGdsb2JhbE9iamVjdCB9OwotCi0gICAgbV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3Nh
Z2VQb3J0ID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlKCp0aGlzLCBXVEZNb3ZlKHBvcnQpKTsKLQot
ICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhdXRvKiBvYmplY3QgPSBK
U0M6OmNvbnN0cnVjdChnbG9iYWxPYmplY3QsIGpzQ29uc3RydWN0b3IsIGFyZ3MsICJGYWlsZWQg
dG8gY29uc3RydWN0IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIik7Ci0gICAgQVNTRVJUKCEhc2Nv
cGUuZXhjZXB0aW9uKCkgPT0gIW9iamVjdCk7Ci0KLSAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICBhdXRvIHRyYW5zZm9ybWVy
T3JFeGNlcHRpb24gPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKG9wdGlvbnMpLCBNZXNzYWdlUG9ydDo6ZW50YW5nbGUoKnRoaXMsIFdURk1vdmUocG9ydCkp
KTsKKyAgICBpZiAodHJhbnNmb3JtZXJPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwotCi0gICAgYXV0byYganNUcmFuc2Zvcm1lciA9ICpKU0M6OmpzQ2FzdDxKU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyKj4ob2JqZWN0KTsKLSAgICBhdXRvJiB0cmFuc2Zvcm1lciA9
IGpzVHJhbnNmb3JtZXIud3JhcHBlZCgpOwotICAgIHRyYW5zZm9ybWVyLnNldENhbGxiYWNrKG1h
a2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1RyYW5zZm9ybWVyLCBnbG9iYWxPYmpl
Y3QpKTsKLQotICAgIHJldHVybiAmdHJhbnNmb3JtZXI7CisgICAgYXV0byB0cmFuc2Zvcm1lciA9
IHRyYW5zZm9ybWVyT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgZGlzcGF0
Y2hFdmVudChSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnJ0Y3RyYW5zZm9ybUV2ZW50LCB0cmFuc2Zvcm1lci5jb3B5UmVmKCksIEV2ZW50OjpJc1RydXN0
ZWQ6OlllcykpOworICAgIHJldHVybiB0cmFuc2Zvcm1lcjsKIH0KLQogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA1N2Y0NTJjNmVlYTllMDYzZmQ3NTg4ZGU5MTM0
Mjc5MGNkODk5YzEzLi5lM2NjZDAwMDRhNTM5MWQ1ZGQ2ZmJlYzM5MDQ2NWFmYmJjOWUxYjVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS5oCkBAIC03Niw5ICs3Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCi0gICAgUmVmUHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBjcmVhdGVSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCk7Ci0gICAg
RXhjZXB0aW9uT3I8dm9pZD4gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcm
JiwgUmVmPEpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvcj4mJik7Ci0gICAgUmVm
UHRyPE1lc3NhZ2VQb3J0PiB0YWtlUGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCgpIHsg
cmV0dXJuIFdURk1vdmUobV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0KTsgfQorICAg
IFJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9y
dCYmKTsKICNlbmRpZgogCiAgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Oldvcmtl
cjsgfQpAQCAtOTksMTAgKzk3LDYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NB
TlZBUykKICAgICBSZWZQdHI8V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV93b3JrZXJBbmlt
YXRpb25Db250cm9sbGVyOwogI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+PiBt
X3J0Y1J0cFRyYW5zZm9ybWVyQ29uc3RydWN0b3JNYXA7Ci0gICAgUmVmUHRyPE1lc3NhZ2VQb3J0
PiBtX3BlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwNGZkZjU4
Mjc0M2ViOTczYjUyNWQ1NGM4YThkOGYzN2Q4MjUyMGZjLi4yYTQxYTNlZTRiMDU0NGE4NjMxOWU4
YTVlZDI5ZTA2ZWVmZDQ1M2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yNDks
MTggKzI0OSwxNCBAQCB2b2lkIFdvcmtlcjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB9
CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKLXZvaWQgV29ya2VyOjphZGRSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcihTdHJpbmcmJiBuYW1lKQotewotICAgIG1fdHJhbnNmb3JtZXJzLmFkZChXVEZNb3Zl
KG5hbWUpKTsKLX0KLQotdm9pZCBXb3JrZXI6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
KGNvbnN0IFN0cmluZyYgbmFtZSwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0LCBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKK3ZvaWQgV29ya2VyOjpjcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcihSVENSdHBTY3JpcHRUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBvcHRpb25zLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYgcG9y
dCkKIHsKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9jb250ZXh0UHJveHkucG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKFtuYW1l
ID0gbmFtZS5pc29sYXRlZENvcHkoKSwgcG9ydCwgdHJhbnNmb3JtID0gbWFrZVJlZih0cmFuc2Zv
cm0pXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgdHJhbnNmb3JtLT5zZXRUcmFu
c2Zvcm1lcihkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuY3Jl
YXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoV1RGTW92ZShuYW1lKSwgcG9ydCkpOworICAgIG1f
Y29udGV4dFByb3h5LnBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShbdHJhbnNmb3JtID0gbWFr
ZVJlZih0cmFuc2Zvcm0pLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcG9ydCA9IFdURk1v
dmUocG9ydCldKGF1dG8mIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byB0cmFu
c2Zvcm1lciA9IGRvd25jYXN0PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5j
cmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHBv
cnQpKSkKKyAgICAgICAgICAgIHRyYW5zZm9ybS0+c2V0VHJhbnNmb3JtZXIoKnRyYW5zZm9ybWVy
KTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zv
cm0pXSB7IH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCAzOGE2MjNh
OThkYmEzNWZmODAxM2NkNmZjOGM4NWM4MTAyMDUwMjExLi5hY2I5NmVhYjZjMTlhMmJlZGRlNzk0
NTkxYzJjMDQ1NzQ1NmJkYWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTc3LDkgKzc3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwogCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgdm9pZCBhZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihT
dHJpbmcmJik7Ci0gICAgYm9vbCBoYXNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihjb25zdCBTdHJp
bmcmIG5hbWUpIHsgcmV0dXJuIG1fdHJhbnNmb3JtZXJzLmNvbnRhaW5zKG5hbWUpOyB9Ci0gICAg
dm9pZCBjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmLCBUcmFuc2Zl
cnJlZE1lc3NhZ2VQb3J0LCBSVENSdHBTY3JpcHRUcmFuc2Zvcm0mKTsKKyAgICB2b2lkIGNyZWF0
ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSYsIFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQmJik7CiAgICAgdm9p
ZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik+JiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NTJlMzMxNTRjMWRlYTRmYzY1YTBh
YmYzOWRhNGYyNDU5YmFkYmY2Li5hMzRmMDEyNDdmYzhjNzVhMmU4NzhhYmQ3MGEyZjBlMmZkYjQ0
ODkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0g
dG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQt
dHJhbnNmb3JtLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNm
b3JtLmpzOgorICAgICAgICAoTW9ja1JUQ1J0cFRyYW5zZm9ybWVyKToKKyAgICAgICAgKE1vY2tS
VENSdHBUcmFuc2Zvcm1lci5wcm90b3R5cGUuc3RhcnQpOgorICAgICAgICAoTW9ja1JUQ1J0cFRy
YW5zZm9ybWVyLnByb3RvdHlwZS5wcm9jZXNzKToKKyAgICAgICAgKG9ucnRjdHJhbnNmb3JtKToK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvbm8tdHJhbnNmb3JtLmpzOgorICAgICAgICAqIGh0
dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3dwdC93ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sOgorICAgICAgICAqIGh0
dHAvd3B0L3dlYnJ0Yy9zY3JpcHQtdHJhbnNmb3JtLmpzOgorICAgICAgICAob25ydGN0cmFuc2Zv
cm0ucHJvY2Vzcyk6CisgICAgICAgIChvbnJ0Y3RyYW5zZm9ybSk6CisgICAgICAgICogaHR0cC93
cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uanM6CisgICAgICAgIChvbnJ0Y3RyYW5zZm9ybSk6
CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbDoK
KwogMjAyMS0wMy0wOSAgVmVua3kgRGFzcyAgPHlhcmFuYW1hdmVua2F0YXJhbWFuYUBhcHBsZS5j
b20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBOb2RlOjppc1RleHROb2RlKCkgdmlhIEFw
cGx5QmxvY2tFbGVtZW50Q29tbWFuZDo6ZW5kT2ZOZXh0UGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5v
ZGVzSWZOZWVkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRp
by1zY3JpcHQtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVk
aW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sCmluZGV4IGZiNmFhYjUwOTk0NmRmYWRkOGMyMWJjZDA1
MmE0YzEwZWNjNWY4MTcuLjU3MDZkMmZmNzQzZmQ0NmU4MTY4YmRkMjEzOTg2MDJlMDUwZmRkN2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQtdHJh
bnNmb3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2F1ZGlvLXNjcmlw
dC10cmFuc2Zvcm0uaHRtbApAQCAtMzMsOCArMzMsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRl
c3QpID0+IHsKICAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogCiAgICAgbGV0IHNlbmRlciwgcmVj
ZWl2ZXI7Ci0gICAgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3
b3JrZXIsICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7Ci0gICAgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBu
ZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwgJ01vY2tSVENSdHBUcmFuc2Zvcm0nKTsK
KyAgICBzZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwg
e25hbWU6J01vY2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6J2F1ZGlvJywgc2lkZTonc2Vu
ZGVyJ30pOworICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bSh3b3JrZXIsIHtuYW1lOidNb2NrUlRDUnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOidhdWRpbycs
IHNpZGU6J3JlY2VpdmVyJ30pOwogCiAgICAgcHJvbWlzZTEgPSB3YWl0Rm9yTWVzc2FnZShzZW5k
ZXJUcmFuc2Zvcm0ucG9ydCwgInN0YXJ0ZWQgYXVkaW8gc2VuZGVyIik7CiAgICAgcHJvbWlzZTIg
PSB3YWl0Rm9yTWVzc2FnZShyZWNlaXZlclRyYW5zZm9ybS5wb3J0LCAic3RhcnRlZCBhdWRpbyBy
ZWNlaXZlciIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRl
eHQtdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJh
bnNmb3JtLmpzCmluZGV4IDYxM2Y5NzMxYzYxN2U0N2U3ZTFlNzkxYzY2ZDJlNjEzN2NlMGJkMDgu
LmRmZjFhMjU3MWQxNTA1OTBhZTliZGFlZjc1YjIzZmY3MTQzNDhiM2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRyYW5zZm9ybS5qcworKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJydGMvY29udGV4dC10cmFuc2Zvcm0uanMKQEAgLTEsMjEgKzEs
MjEgQEAKLWNsYXNzIE1vY2tSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyIHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsKK2NsYXNz
IE1vY2tSVENSdHBUcmFuc2Zvcm1lciB7CisgICAgY29uc3RydWN0b3IodHJhbnNmb3JtZXIpIHsK
ICAgICAgICAgdGhpcy5hc2tLZXlGcmFtZSA9IGZhbHNlOwotICAgICAgICB0aGlzLnBvcnQub25t
ZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgIHRoaXMuY29udGV4dCA9IHRyYW5zZm9ybWVy
OworICAgICAgICB0aGlzLmNvbnRleHQucG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKICAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAic3RhcnRLZXlGcmFtZXMiKQogICAgICAgICAg
ICAgICAgIHRoaXMuYXNrS2V5RnJhbWUgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAoZXZl
bnQuZGF0YSA9PT0gImVuZEtleUZyYW1lcyIpCiAgICAgICAgICAgICAgICAgdGhpcy5hc2tLZXlG
cmFtZSA9IGZhbHNlOwogICAgICAgICB9OworICAgICAgICB0aGlzLnN0YXJ0KCk7CiAgICAgfQot
ICAgIHN0YXJ0KHJlYWRhYmxlU3RyZWFtLCB3cml0YWJsZVN0cmVhbSwgY29udGV4dCkKKyAgICBz
dGFydCgpCiAgICAgewotICAgICAgICB0aGlzLnJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJl
YWRlcigpOwotICAgICAgICB0aGlzLndyaXRlciA9IHdyaXRhYmxlU3RyZWFtLmdldFdyaXRlcigp
OworICAgICAgICB0aGlzLnJlYWRlciA9IHRoaXMuY29udGV4dC5yZWFkYWJsZS5nZXRSZWFkZXIo
KTsKKyAgICAgICAgdGhpcy53cml0ZXIgPSB0aGlzLmNvbnRleHQud3JpdGFibGUuZ2V0V3JpdGVy
KCk7CiAgICAgICAgIHRoaXMucHJvY2VzcygpOwotICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250
ZXh0OwotICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoInN0YXJ0ZWQgIiArIGNvbnRleHQu
bWVkaWFUeXBlICsgIiAiICsgY29udGV4dC5zaWRlKTsKKyAgICAgICAgdGhpcy5jb250ZXh0LnBv
cnQucG9zdE1lc3NhZ2UoInN0YXJ0ZWQgIiArIHRoaXMuY29udGV4dC5vcHRpb25zLm1lZGlhVHlw
ZSArICIgIiArIHRoaXMuY29udGV4dC5vcHRpb25zLnNpZGUpOwogICAgIH0KIAogICAgIHByb2Nl
c3MoKQpAQCAtMjYsOSArMjYsOSBAQCBjbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5k
cyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7CiAKICAgICAgICAgICAgIHRoaXMud3JpdGVyLndy
aXRlKGNodW5rLnZhbHVlKTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5tZWRpYVR5
cGUgPT09ICJ2aWRlbyIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQub3B0aW9ucy5t
ZWRpYVR5cGUgPT09ICJ2aWRlbyIpIHsKICAgICAgICAgICAgICAgICBpZiAoY2h1bmsudmFsdWUg
aW5zdGFuY2VvZiBSVENFbmNvZGVkVmlkZW9GcmFtZSkKLSAgICAgICAgICAgICAgICAgICAgdGhp
cy5wb3J0LnBvc3RNZXNzYWdlKCJ2aWRlbyBmcmFtZSAiICsgY2h1bmsudmFsdWUudHlwZSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5wb3J0LnBvc3RNZXNzYWdlKCJ2aWRlbyBm
cmFtZSAiICsgY2h1bmsudmFsdWUudHlwZSk7CiAKICAgICAgICAgICAgICAgICBpZiAodGhpcy5h
c2tLZXlGcmFtZSkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnJlcXVlc3RLZXlG
cmFtZSgpOwpAQCAtMzksNSArMzksOCBAQCBjbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0
ZW5kcyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7CiAgICAgfQogfTsKIAotcmVnaXN0ZXJSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcigiTW9ja1JUQ1J0cFRyYW5zZm9ybSIsIE1vY2tSVENSdHBUcmFu
c2Zvcm1lcik7CitvbnJ0Y3RyYW5zZm9ybSA9IChldmVudCkgPT4geworICAgIG5ldyBNb2NrUlRD
UnRwVHJhbnNmb3JtZXIoZXZlbnQudHJhbnNmb3JtZXIpOworfTsKKwogc2VsZi5wb3N0TWVzc2Fn
ZSgicmVnaXN0ZXJlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L25vLXRyYW5zZm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zv
cm0uanMKaW5kZXggODkxZjUxYWIxMDRjMjBiY2NkMzFkYjQ0ZDQ1N2QxZWY4MzNjNzhiNy4uYWEz
ZmJjOTgyYWZjYzA5ZDQxNGUwYTJiOGE2Yzg4MzMyOGViMjVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXRyYW5zZm9ybS5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvbm8tdHJhbnNmb3JtLmpzCkBAIC0xICsxIEBACi1zZWxmLnBvc3RNZXNz
YWdlKHNlbGYucmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciA/ICJvbiIgOiAib2ZmIik7
CitzZWxmLnBvc3RNZXNzYWdlKHNlbGYuUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgPyAib24iIDog
Im9mZiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0
Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25v
LXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CmluZGV4IDFiNTcxNjk4MjI3MzI0NzlhYjZm
MjFiOWEyYzk1NDE3OWFkNWE5MGUuLmY1YmQ0YzE2ZjgzOGI4YWUwZGNiY2JkNTk3NDdjZWQ0YzA4
OGZlNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMt
dHJhbnNmb3JtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
bm8td2VicnRjLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLVBBU1Mg
cmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFn
IGlzIG9uCi1QQVNTIG5vIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0
YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYKK1BBU1MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYg
aW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvbgorUEFTUyBubyBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9mZgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbAppbmRleCA2MTk5
ODEzM2VjMTE0ZjhhZDZmNjM1MTRhNDAzZDMyN2M5Y2UwMzhiLi44ODY5MzdlNjQ3YWRjYjhjNTkx
MGUxMjIyYjk3MDE3MWU0ZTYxMDI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcign
bm8tdHJhbnNmb3JtLmpzJyk7CiAgICAgY29uc3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gd29ya2VyLm9ubWVzc2FnZSA9IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRh
KSk7CiAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAib24iKTsKLX0sICJyZWdpc3RlclJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyIGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb24iKTsKK30sICJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uIik7
CiAKIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQpAQCAtMjMsNyArMjMsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAg
ICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKCduby10cmFuc2Zvcm0uanMnKTsKICAgICBjb25z
dCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0g
KGV2ZW50KSA9PiByZXNvbHZlKGV2ZW50LmRhdGEpKTsKICAgICBhc3NlcnRfZXF1YWxzKGRhdGEs
ICJvZmYiKTsKLX0sICJubyByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2Vy
dGFibGUgc3RyZWFtIGZsYWcgaXMgb2ZmIik7Cit9LCAibm8gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYiKTsKICAgICAgICAgPC9zY3JpcHQ+
CiAgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
c2NyaXB0LXRyYW5zZm9ybS5qcwppbmRleCA2YjA3NmRlODMzZjFiZmM1M2ZhMTU0M2VhZjkwZjlm
NjBlMDNmMmQxLi45MDFlNjc2ODE4YzFhODI5MmVlMGRlN2FjZWMwM2FkM2NkOTNkZTY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2NyaXB0LXRyYW5zZm9ybS5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2NyaXB0LXRyYW5zZm9ybS5qcwpAQCAt
MSwzMCArMSwyNSBAQAotY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVuZHMgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIgewotICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICBzdXBlcigp
OwotICAgICAgICB0aGlzLnBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB0aGlzLnBvcnQucG9z
dE1lc3NhZ2UoZXZlbnQuZGF0YSk7Ci0gICAgfQotICAgIHN0YXJ0KHJlYWRhYmxlU3RyZWFtLCB3
cml0YWJsZVN0cmVhbSkKLSAgICB7Ci0gICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoInN0YXJ0ZWQi
KTsKLSAgICAgICAgdGhpcy5yZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTsKLSAg
ICAgICAgdGhpcy53cml0ZXIgPSB3cml0YWJsZVN0cmVhbS5nZXRXcml0ZXIoKTsKLSAgICAgICAg
dGhpcy5wcm9jZXNzKCk7Ci0gICAgfQorb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+IHsKKyAg
ICBjb25zdCB0cmFuc2Zvcm1lciA9IGV2ZW50LnRyYW5zZm9ybWVyOworICAgIHRyYW5zZm9ybWVy
LnBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB0cmFuc2Zvcm1lci5wb3J0LnBvc3RNZXNzYWdl
KGV2ZW50LmRhdGEpOwogCi0gICAgcHJvY2VzcygpCisgICAgc2VsZi5wb3N0TWVzc2FnZSgic3Rh
cnRlZCIpOworICAgIHRyYW5zZm9ybWVyLnJlYWRlciA9IHRyYW5zZm9ybWVyLnJlYWRhYmxlLmdl
dFJlYWRlcigpOworICAgIHRyYW5zZm9ybWVyLndyaXRlciA9IHRyYW5zZm9ybWVyLndyaXRhYmxl
LmdldFdyaXRlcigpOworCisgICAgZnVuY3Rpb24gcHJvY2Vzcyh0cmFuc2Zvcm1lcikKICAgICB7
Ci0gICAgICAgIHRoaXMucmVhZGVyLnJlYWQoKS50aGVuKGNodW5rID0+IHsKKyAgICAgICAgdHJh
bnNmb3JtZXIucmVhZGVyLnJlYWQoKS50aGVuKGNodW5rID0+IHsKICAgICAgICAgICAgIGlmIChj
aHVuay5kb25lKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGlmIChjaHVu
ay52YWx1ZSBpbnN0YW5jZW9mIFJUQ0VuY29kZWRWaWRlb0ZyYW1lKQogICAgICAgICAgICAgICAg
IHNlbGYucG9zdE1lc3NhZ2UoInZpZGVvIGNodW5rIik7CiAgICAgICAgICAgICBlbHNlIGlmIChj
aHVuay52YWx1ZSBpbnN0YW5jZW9mIFJUQ0VuY29kZWRBdWRpb0ZyYW1lKQogICAgICAgICAgICAg
ICAgIHNlbGYucG9zdE1lc3NhZ2UoImF1ZGlvIGNodW5rIik7Ci0gICAgICAgICAgICB0aGlzLndy
aXRlci53cml0ZShjaHVuay52YWx1ZSk7Ci0gICAgICAgICAgICB0aGlzLnByb2Nlc3MoKTsKKyAg
ICAgICAgICAgIHRyYW5zZm9ybWVyLndyaXRlci53cml0ZShjaHVuay52YWx1ZSk7CisgICAgICAg
ICAgICBwcm9jZXNzKHRyYW5zZm9ybWVyKTsKICAgICAgICAgfSk7CiAgICAgfQotfTsKIAotcmVn
aXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigiTW9ja1JUQ1J0cFRyYW5zZm9ybSIsIE1vY2tS
VENSdHBUcmFuc2Zvcm1lcik7CisgICAgcHJvY2Vzcyh0cmFuc2Zvcm1lcik7Cit9Owogc2VsZi5w
b3N0TWVzc2FnZSgicmVnaXN0ZXJlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJy
dGMvc2ZyYW1lLXRyYW5zZm9ybS5qcwppbmRleCA0YzcwODM1NWQ5NDUxM2QzMmQ4MjY0YjllYmYw
NDUwNWM2MmM3NTAwLi42MTdjZjBhMzhhYTA4NTlmYTZlZThhZjAxZmRhYjVmOTRiNWJlYjE4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5qcwpA
QCAtMSwxNCArMSw3IEBACi1jbGFzcyBTRnJhbWVSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyIHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgdGhpcy5zZnJhbWVUcmFuc2Zvcm0gPSBuZXcgU0ZyYW1lVHJhbnNmb3Jt
KHsgcm9sZSA6ICJkZWNyeXB0IiwgYXV0aGVudGljYXRpb25TaXplOiAiMTAiLCBjb21wYXRpYmls
aXR5TW9kZTogIkgyNjQiIH0pOwotICAgICAgICBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3
IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwg
MjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVC
aXRzIiwgImRlcml2ZUtleSJdKS50aGVuKGtleSA9PiB0aGlzLnNmcmFtZVRyYW5zZm9ybS5zZXRF
bmNyeXB0aW9uS2V5KGtleSkpOwotICAgIH0KLSAgICBzdGFydChyZWFkYWJsZVN0cmVhbSwgd3Jp
dGFibGVTdHJlYW0pCi0gICAgewotICAgICAgICByZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCh0
aGlzLnNmcmFtZVRyYW5zZm9ybSkucGlwZVRvKHdyaXRhYmxlU3RyZWFtKTsKLSAgICB9Ci19Owot
Ci1yZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCJTRnJhbWVSVENSdHBUcmFuc2Zvcm0i
LCBTRnJhbWVSVENSdHBUcmFuc2Zvcm1lcik7CitvbnJ0Y3RyYW5zZm9ybSA9IChldmVudCkgPT4g
eworICAgIGNvbnN0IHNmcmFtZVRyYW5zZm9ybSA9IG5ldyBTRnJhbWVUcmFuc2Zvcm0oeyByb2xl
IDogImRlY3J5cHQiLCBhdXRoZW50aWNhdGlvblNpemU6ICIxMCIsIGNvbXBhdGliaWxpdHlNb2Rl
OiAiSDI2NCIgfSk7CisgICAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50
OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkz
LCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJp
dmVLZXkiXSkudGhlbihrZXkgPT4gc2ZyYW1lVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5
KSk7CisgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBldmVudC50cmFuc2Zvcm1lcjsKKyAgICB0cmFu
c2Zvcm1lci5yZWFkYWJsZS5waXBlVGhyb3VnaChzZnJhbWVUcmFuc2Zvcm0pLnBpcGVUbyh0cmFu
c2Zvcm1lci53cml0YWJsZSk7Cit9CiBzZWxmLnBvc3RNZXNzYWdlKCJyZWdpc3RlcmVkIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5z
Zm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFu
c2Zvcm0uaHRtbAppbmRleCA2MjkzZDU3YzU5MGM3YzhkY2E0MjViZmNmYTdlMjM4NzYzYmYwNmMy
Li40ZjUyYWFiN2I5MjAyNWVmODg2ZTNkMmNlNDdlMjFiNTExODA0OWJjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3JpcHQtdHJhbnNmb3JtLmh0
bWwKQEAgLTMzLDggKzMzLDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAg
Y29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7dmlkZW86IHRydWV9KTsKIAogICAgIGxldCBzZW5kZXIsIHJlY2VpdmVyOwotICAgIHNl
bmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCAnTW9ja1JU
Q1J0cFRyYW5zZm9ybScpOwotICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybSh3b3JrZXIsICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7CisgICAgc2VuZGVyVHJh
bnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsIHtuYW1lOidNb2NrUlRD
UnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOid2aWRlbycsIHNpZGU6J3NlbmRlcid9KTsKKyAgICBy
ZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCB7bmFt
ZTonTW9ja1JUQ1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTondmlkZW8nLCBzaWRlOidyZWNlaXZl
cid9KTsKIAogICAgIHByb21pc2UxID0gd2FpdEZvck1lc3NhZ2Uoc2VuZGVyVHJhbnNmb3JtLnBv
cnQsICJzdGFydGVkIHZpZGVvIHNlbmRlciIpOwogICAgIHByb21pc2UyID0gd2FpdEZvck1lc3Nh
Z2UocmVjZWl2ZXJUcmFuc2Zvcm0ucG9ydCwgInN0YXJ0ZWQgdmlkZW8gcmVjZWl2ZXIiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423043</attachid>
            <date>2021-03-12 06:43:13 -0800</date>
            <delta_ts>2021-03-12 08:09:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222982-20210312154308.patch</filename>
            <type>text/plain</type>
            <size>75523</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Mjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUxYzExOGNiMTRhZjdm
NjAxNzM0MGFkYjkyNjE5OTY4ODNhMWU5My4uYzcyMDA1NmI1NDNmMWQwOGMyNTQyODQwMmUzOTVj
ZmI1MTkxOGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE1vdmUgZnJvbSBBdWRpb1dvcmts
ZXQgbW9kZWwgdG8gYW4gZXZlbnQgYmFzZWQgbW9kZWwgYXMgcGVyIGxhdGVzdCBzcGVjaWZpY2F0
aW9uLgorICAgICAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBjb25jZW50cmF0ZXMgYWxsIHRo
ZSBBUEkgYW5kIGlzIGV4cG9zZWQgdG8gd29ya2VyIHVzaW5nIGEgbmV3IHJ0Y3RyYW5zZm9ybSBl
dmVudC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG9wdGlvbnMgcGFyYW1ldGVyIHByb3ZpZGVk
IGluIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6UlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnJlYWRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Ojp3cml0YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJlcXVl
c3RLZXlGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
b3B0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0
YXJ0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2ZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcik6CisgICAg
ICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisKIDIwMjEt
MDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
UlRDRGF0YUNoYW5uZWwgdHJhbnNmZXJhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFhMDZi
MGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLmYyMjE0ZTg1YmE5OGFiZjZhMjY0
OWY2ZTNlNTU1YmM2MTE3M2QxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDcsOCArNDA3
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCi0gICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbAotICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2VuZFBhcmFtZXRlcnMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIrVHJhbnNmb3JtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLmlkbApAQCAtNDIxLDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDVHJhY2tFdmVudC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmlkbAogCiAgICAgTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDA2YWQ4ZmViMDY4ZmI5ZWQwOTNiZDM4YzQxYmYzOTkzZTUyY2M3M2QuLmFkOWU5
NjY3ZjBhNjg2YjE2OTVjNzA4ZmEwODg1MTUzNDAzY2FlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQ5LDggKzI0OSw2IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRy
YW5zZm9ybVByb3ZpZGVyLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKLSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwKLSQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0Lmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kUGFyYW1ldGVy
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyK1Ry
YW5zZm9ybS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmlkbApAQCAtMjY0LDYgKzI2Miw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBhY2YzZDA2MmMwYTY5
M2Q5OTQxMzA4YzUyYjMyMzg4YTc4ODYxODVjLi5hNjRlN2U3OWNhYzM1NmMyZDM3MmNhZmRiZjVh
M2E5M2JlMDk4MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMTczNCwxMCArMTczNCw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1
Y3Rvci5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2Vu
ZFBhcmFtZXRlcnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5jcHAKQEAgLTE3NjQs
NiArMTc2MCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUlRDU3RhdHNSZXBvcnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JUQ1N0YXRzUmVwb3J0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDVHJhY2tFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDVHJhY2tFdmVudC5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1RyYW5zZm9ybUV2ZW50LmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENUcmFu
c2Zvcm1FdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1JhZGlvTm9kZUxpc3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JhZGlvTm9kZUxpc3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZStDU1NPTVZpZXcuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA3ZjMyZWIxZGVkNzc5OGU0NDI2OGJkY2VjNmQyY2FiODk3ZGMyYzFh
Li41NjBiOGI3YWEwNTdmNTI4NDJiZTUzZDAzOGQwZjRmNTI0ODMzOWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3Niw4ICsyNzYsNiBAQCBKU19CSU5ESU5HX0lETFMgOj0g
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtUHJvdmlkZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU3lu
Y2hyb25pemF0aW9uU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmlkbCBcCkBAIC0yODcsNiArMjg1LDcg
QEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDVHJhY2tFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybS5jcHAKaW5kZXggZjI2OWQxZWJkNzdlZDlhOTZmZTU0OTM0ZjEzMzgwMjc1YWI5YWFhMS4u
MTE3ZTRmMmE1ODlmYzVlYmU1ZWM2N2MyNjBmYTYzZTlmYjY3MjJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgiCkBAIC00MSwyMiAr
NDIsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoUlRDUnRwU2NyaXB0VHJhbnNmb3JtKTsKIAotRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFdvcmtlciYgd29ya2VyLCBTdHJpbmcmJiBuYW1lKQorRXhjZXB0
aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6
Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBXb3JrZXImIHdvcmtlciwgSlNDOjpK
U1ZhbHVlIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCF3b3JrZXIuaGFzUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIobmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIk5vIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHdhcyByZWdpc3RlcmVkIHdpdGggdGhpcyBu
YW1lIl9zIH07Ci0KICAgICBpZiAoIXdvcmtlci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIldvcmtlciBmcmFt
ZSBpcyBkZXRhY2hlZCJfcyB9OwogCisgICAgYXV0byogY29udGV4dCA9IEpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oJnN0YXRlKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiSW52YWxpZCBjb250ZXh0Il9zIH07CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRPcHRpb25z
ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUsIG9wdGlvbnMpOworICAgIGlm
ICghc2VyaWFsaXplZE9wdGlvbnMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGlu
Z0V4Y2VwdGlvbkVycm9yIH07CisKICAgICBhdXRvIG1lc3NhZ2VDaGFubmVsID0gTWVzc2FnZUNo
YW5uZWw6OmNyZWF0ZSgqd29ya2VyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgYXV0
byB0cmFuc2Zvcm1NZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVsLT5wb3J0MSgpOwogICAgIGF1
dG8gdHJhbnNmb3JtZXJNZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVsLT5wb3J0MigpOwogCi0g
ICAgYXV0byB0cmFuc2Zvcm0gPSBhZG9wdFJlZigqbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybShj
b250ZXh0LCBtYWtlUmVmKHdvcmtlciksIG1ha2VSZWYoKnRyYW5zZm9ybU1lc3NhZ2VQb3J0KSkp
OworICAgIGF1dG8gdHJhbnNmb3JtID0gYWRvcHRSZWYoKm5ldyBSVENSdHBTY3JpcHRUcmFuc2Zv
cm0oKmNvbnRleHQsIG1ha2VSZWYod29ya2VyKSwgbWFrZVJlZigqdHJhbnNmb3JtTWVzc2FnZVBv
cnQpKSk7CiAgICAgdHJhbnNmb3JtLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAotICAgIHdvcmtlci5j
cmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihuYW1lLCB0cmFuc2Zvcm1lck1lc3NhZ2VQb3J0
LT5kaXNlbnRhbmdsZSgpLCB0cmFuc2Zvcm0pOworICAgIHdvcmtlci5jcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcih0cmFuc2Zvcm0sIHNlcmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxs
KCksIHRyYW5zZm9ybWVyTWVzc2FnZVBvcnQtPmRpc2VudGFuZ2xlKCkpOwogCiAgICAgcmV0dXJu
IHRyYW5zZm9ybTsKIH0KQEAgLTczLDIzICs3OSwxNiBAQCBSVENSdHBTY3JpcHRUcmFuc2Zvcm06
On5SVENSdHBTY3JpcHRUcmFuc2Zvcm0oKQogICAgIGNsZWFyKCk7CiB9CiAKLXZvaWQgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtOjpzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI+JiYgdHJhbnNmb3JtZXIpCit2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJh
bnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXImIHRyYW5zZm9ybWVyKQogewogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghdHJhbnNmb3JtZXIpIHsKLSAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgp
IG11dGFibGUgewotICAgICAgICAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBU
YXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIEVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgIkFuIGVycm9yIHdhcyB0aHJvd24gZnJvbSBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciBjb25zdHJ1Y3RvciJfcywgeyB9LCAwLCAwLCB7IH0pKTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV90cmFuc2Zvcm1lckxvY2spOwogICAgICAgICBBU1NFUlQoIW1faXNUcmFuc2Zvcm1lcklu
aXRpYWxpemVkKTsKICAgICAgICAgbV9pc1RyYW5zZm9ybWVySW5pdGlhbGl6ZWQgPSB0cnVlOwot
ICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNmb3JtZXIuZ2V0KCkpOwor
ICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNmb3JtZXIpOwogICAgIH0K
LSAgICB0cmFuc2Zvcm1lci0+c3RhcnRQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICB0cmFuc2Zvcm1l
ci5zdGFydFBlbmRpbmdBY3Rpdml0eSgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1f
YmFja2VuZCkKICAgICAgICAgICAgIHNldHVwVHJhbnNmb3JtZXIobV9iYWNrZW5kLnJlbGVhc2VO
b25OdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmgKaW5kZXggZWM1NDY4YWJlYTBiMDE3OTIzMDBk
MTUzNTk0NDZkNWUzOWEyYWQ4Yi4uZWIyNzU3MmU2MGEyZGFkYTMxOTA4MWRlZDIxZjRhOGEzOTdi
YWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogCkBAIC00NSwxMiArNDYsMTIgQEAgY2xhc3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtIGZpbmFs
CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChSVENSdHBTY3JpcHRUcmFuc2Zvcm0pOwogcHVibGljOgotICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtPj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXb3JrZXImLCBTdHJpbmcmJiBuYW1lKTsKKyAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgV29ya2VyJiwgSlNDOjpKU1ZhbHVlKTsKICAgICB+UlRDUnRwU2NyaXB0VHJhbnNm
b3JtKCk7CiAKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQoKTsg
fQogCi0gICAgdm9pZCBzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI+JiYpOworICAgIHZvaWQgc2V0VHJhbnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIm
KTsKIAogICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBdHRhY2hlZDsg
fQogICAgIHZvaWQgaW5pdGlhbGl6ZUJhY2tlbmRGb3JSZWNlaXZlcihSVENSdHBUcmFuc2Zvcm1C
YWNrZW5kJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKaW5kZXggZDY2YTliOTUzMWMxNzgyMWM2
ODk5YjZmNjAwZmQ1NzMwZDlmZTk5ZC4uY2Y0NDcyMmU3MzIxZGJlNjY0ODM4MTFhNDhlOTExYjVj
ZmNmNjI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbApAQCAtMzAsNyArMzAsNyBAQAogICAg
IEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKIF0gaW50ZXJm
YWNlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSA6IEV2ZW50VGFyZ2V0IHsKLSAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoV29ya2VyIHdvcmtlciwgRE9NU3Ry
aW5nIG5hbWUpOworICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3RdIGNvbnN0cnVjdG9yKFdvcmtl
ciB3b3JrZXIsIGFueSBvcHRpb25zKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdl
UG9ydCBwb3J0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKaW5k
ZXggZDYzYmU4YWRjMzAyN2U1NzhmNjZjZjRjNTljMWI1NzRkNmZlMjYzNS4uNDc2YTMyNDFhN2I4
Mjc1NWY2MWI2NmY4OTI4NGRmN2Q1OWIyNGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1Qcm92aWRlci5pZGwKQEAgLTI0LDUgKzI0LDUgQEAKICAqLwogCiBpbnRlcmZhY2UgbWl4aW4g
UlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIgewotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dW5kZWZpbmVkIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoRE9NU3RyaW5nIG5hbWUs
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IgcHJvY2Vzc29yQ29uc3RydWN0b3Ip
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ydGN0cmFuc2Zvcm07CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyLmNwcAppbmRleCA0ZjIxMTU3ZGRkMGI5OGI0NTZkZjQ3YmU0NTFlOTgz
YTJiNDFmZDMzLi4xMDMxN2NkZDk1MDQ3YTg2NDEwYmY2ODQ1MTc0NmZhM2JkMTkxMDkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApAQCAtMzEsMjkgKzMxLDM4IEBACiAjaW5jbHVkZSAi
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1JUQ0VuY29kZWRBdWRp
b0ZyYW1lLmgiCiAjaW5jbHVkZSAiSlNSVENFbmNvZGVkVmlkZW9GcmFtZS5oIgotI2luY2x1ZGUg
IkpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKICNpbmNsdWRl
ICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiV3JpdGFibGVTdHJl
YW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8UmVmPFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9wdGlv
bnMsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0KQogewotICAgIGF1dG8gcG9ydCA9IGRvd25jYXN0
PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50YWtlUGVuZGluZ1JUQ1RyYW5z
Zm9tZXJNZXNzYWdlUG9ydCgpOwotICAgIGlmICghcG9ydCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIk5vIHBlbmRpbmcgY29uc3RydWN0aW9uIGRhdGEgZm9yIHRoaXMg
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIiX3MgfTsKKyAgICBpZiAoIWNvbnRleHQuZ2xvYmFsT2Jq
ZWN0KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9Owog
Ci0gICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcgUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoY29udGV4dCwgcG9ydC5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgYXV0byYgZ2xvYmFs
T2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxP
YmplY3QoKSk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3Qudm0oKSk7
CisgICAgYXV0byByZWFkYWJsZVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpj
cmVhdGUoKTsKKyAgICBhdXRvIHJlYWRhYmxlID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9i
YWxPYmplY3QsIHJlYWRhYmxlU291cmNlLmNvcHlSZWYoKSk7CisgICAgaWYgKHJlYWRhYmxlLmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVhZGFibGUucmVsZWFzZUV4Y2VwdGlvbigp
OworCisgICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIoY29udGV4dCwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShwb3J0KSwgcmVhZGFi
bGUucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUocmVhZGFibGVTb3VyY2UpKSk7CiAgICAg
dHJhbnNmb3JtZXItPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiB0cmFuc2Zvcm1lcjsK
IH0KIAotUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0KQor
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0
aW9ucywgUmVmPE1lc3NhZ2VQb3J0PiYmIHBvcnQsIFJlZjxSZWFkYWJsZVN0cmVhbT4mJiByZWFk
YWJsZSwgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiYmIHJlYWRhYmxlU291cmNlKQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwgbV9vcHRpb25zKFdURk1vdmUo
b3B0aW9ucykpCiAgICAgLCBtX3BvcnQoV1RGTW92ZShwb3J0KSkKKyAgICAsIG1fcmVhZGFibGVT
b3VyY2UoV1RGTW92ZShyZWFkYWJsZVNvdXJjZSkpCisgICAgLCBtX3JlYWRhYmxlKFdURk1vdmUo
cmVhZGFibGUpKQogewogfQogCkBAIC02MSw2OCArNzAsNTEgQEAgUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI6On5SVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpCiB7CiB9CiAKLVJlZlB0cjxTaW1wbGVS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFt
cyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kKQorUmVhZGFibGVTdHJlYW0mIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyOjpyZWFkYWJsZSgpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IFdU
Rk1vdmUobV9jYWxsYmFjayk7Ci0gICAgaWYgKCFjYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KLSAgICBhdXRvJiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQuZ2xvYmFsT2JqZWN0KCkpOwor
ICAgIHJldHVybiBtX3JlYWRhYmxlLmdldCgpOworfQogCi0gICAgYXV0byYgdm0gPSBnbG9iYWxP
YmplY3Qudm0oKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLQotICAgIGF1dG8g
cmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRl
KCk7Ci0gICAgYXV0byByZWFkYWJsZVN0cmVhbSA9IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOwotICAgIGlmIChyZWFk
YWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBhdXRvIHdyaXRhYmxlU3RyZWFtID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6Y3JlYXRlKFtiYWNrZW5kID0gbWFrZVJlZihi
YWNrZW5kKV0oYXV0byYgY29udGV4dCwgYXV0byB2YWx1ZSkgLT4gRXhjZXB0aW9uT3I8dm9pZD4g
ewotICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3QoKTsK
LQotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3Qu
dm0oKSk7Ci0gICAgICAgIGF1dG8gZnJhbWUgPSBjb252ZXJ0PElETFVuaW9uPElETEludGVyZmFj
ZTxSVENFbmNvZGVkQXVkaW9GcmFtZT4sIElETEludGVyZmFjZTxSVENFbmNvZGVkVmlkZW9GcmFt
ZT4+PihnbG9iYWxPYmplY3QsIHZhbHVlKTsKLQotICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJv
ciB9OwotCi0gICAgICAgIGF1dG8gcnRjRnJhbWUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLCBbJl0o
UmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVy
biBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKLSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENF
bmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2
YWx1ZS0+cnRjRnJhbWUoKSk7Ci0gICAgICAgIH0pOwotICAgICAgICBiYWNrZW5kLT5wcm9jZXNz
VHJhbnNmb3JtZWRGcmFtZShydGNGcmFtZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgfSkpOwotICAgIGlmICh3cml0YWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KLSAgICAvLyBDYWxsIHN0YXJ0IGNhbGxiYWNrLgotICAgIEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTTmV3bHlDcmVh
dGVkKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIHJlYWRhYmxlU3RyZWFtLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKSk7Ci0gICAgYXJncy5hcHBlbmQodG9KU05ld2x5Q3JlYXRlZCgmZ2xvYmFs
T2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCB3cml0YWJsZVN0cmVhbS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSkpOwotICAgIGFyZ3MuYXBwZW5kKHRvSlNOZXdseUNyZWF0ZWQoJmdsb2JhbE9iamVjdCwgJmds
b2JhbE9iamVjdCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0OjpjcmVhdGUobWFrZVJl
ZihiYWNrZW5kKSkpKTsKLQotICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4
Y2VwdGlvbjsKLSAgICBjYWxsYmFjay0+aW52b2tlQ2FsbGJhY2soSlNDOjpqc1VuZGVmaW5lZCgp
LCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIEpTQzo6SWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgInN0YXJ0IiksIHJldHVybmVkRXhjZXB0aW9uKTsKLSAgICAv
LyBGSVhNRTogRG8gc29tZXRoaW5nIGluIGNhc2Ugb2YgZXhjZXB0aW9uPyBXZSBzaG91bGQgYXQg
bGVhc3QgbG9nIGVycm9ycy4KLQotICAgIHJldHVybiByZWFkYWJsZVN0cmVhbVNvdXJjZTsKK0V4
Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp3
cml0YWJsZSgpCit7CisgICAgaWYgKCFtX3dyaXRhYmxlKSB7CisgICAgICAgIGF1dG8qIGNvbnRl
eHQgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5nbG9iYWxPYmplY3QoKSkKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAg
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGNvbnRleHQtPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgYXV0byB3cml0YWJsZU9yRXhjZXB0
aW9uID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIFNpbXBsZVdyaXRhYmxl
U3RyZWFtU2luazo6Y3JlYXRlKFt0cmFuc2Zvcm1lciA9IG1ha2VSZWYoKnRoaXMpXShhdXRvJiBj
b250ZXh0LCBhdXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAgICAgICBh
dXRvJiBnbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3QoKTsKKworICAgICAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwor
ICAgICAgICAgICAgYXV0byBmcmFtZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJU
Q0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+
KGdsb2JhbE9iamVjdCwgdmFsdWUpOworCisgICAgICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9u
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IgfTsKKworICAgICAgICAgICAgYXV0byBydGNGcmFtZSA9IFdURjo6c3dpdGNoT24oZnJh
bWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgICAgIH0s
IFsmXShSZWZQdHI8UlRDRW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAg
ICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdHJhbnNmb3JtZXItPm1fYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJh
bWUocnRjRnJhbWUuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfSkp
OworICAgICAgICBpZiAod3JpdGFibGVPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiB3cml0YWJsZU9yRXhjZXB0aW9uOworICAgICAgICBtX3dyaXRhYmxlID0g
d3JpdGFibGVPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB9CisgICAgcmV0
dXJuIG1ha2VSZWYoKm1fd3JpdGFibGUpOwogfQogCiB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjpzdGFydChSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQogewotICAg
IGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBzdGFydFN0cmVhbXMoYmFja2VuZC5nZXQoKSk7
Ci0gICAgaWYgKCFyZWFkYWJsZVN0cmVhbVNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
bV9iYWNrZW5kID0gV1RGTW92ZShiYWNrZW5kKTsKIAogICAgIGF1dG8mIGNvbnRleHQgPSBkb3du
Y2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAg
bV9iYWNrZW5kLT5zZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhbcmVhZGFibGVTdHJlYW1T
b3VyY2UgPSBtYWtlV2Vha1B0cihyZWFkYWJsZVN0cmVhbVNvdXJjZS5nZXQoKSksIGlzQXVkaW8g
PSBtX2JhY2tlbmQtPm1lZGlhVHlwZSgpID09IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlh
VHlwZTo6QXVkaW8sIHRocmVhZCA9IG1ha2VSZWYoY29udGV4dC50aHJlYWQoKSldKGF1dG8mJiBm
cmFtZSkgbXV0YWJsZSB7Ci0gICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbcmVhZGFibGVTdHJlYW1Tb3VyY2UsIGlzQXVkaW8sIGZyYW1lID0gV1RGTW92ZShmcmFtZSld
KGF1dG8mIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKCFyZWFkYWJsZVN0cmVh
bVNvdXJjZSkKKyAgICBtX2JhY2tlbmQtPnNldFRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKFty
ZWFkYWJsZVNvdXJjZSA9IG1ha2VXZWFrUHRyKG1fcmVhZGFibGVTb3VyY2UuZ2V0KCkpLCBpc0F1
ZGlvID0gbV9iYWNrZW5kLT5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpN
ZWRpYVR5cGU6OkF1ZGlvLCB0aHJlYWQgPSBtYWtlUmVmKGNvbnRleHQudGhyZWFkKCkpXShhdXRv
JiYgZnJhbWUpIG11dGFibGUgeworICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zv
ck1vZGUoW3JlYWRhYmxlU291cmNlLCBpc0F1ZGlvLCBmcmFtZSA9IFdURk1vdmUoZnJhbWUpXShh
dXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghcmVhZGFibGVTb3VyY2Up
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb250ZXh0Lmdsb2JhbE9iamVj
dCgpKTsKQEAgLTEzMCw3ICsxMjIsNyBAQCB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpz
dGFydChSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQogICAgICAgICAgICAg
SlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBp
c0F1ZGlvID8gdG9KUygmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBSVENFbmNvZGVkQXVk
aW9GcmFtZTo6Y3JlYXRlKFdURk1vdmUoZnJhbWUpKSkgOiB0b0pTKCZnbG9iYWxPYmplY3QsICZn
bG9iYWxPYmplY3QsIFJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpjcmVhdGUoV1RGTW92ZShmcmFtZSkp
KTsKLSAgICAgICAgICAgIHJlYWRhYmxlU3RyZWFtU291cmNlLT5lbnF1ZXVlKHZhbHVlKTsKKyAg
ICAgICAgICAgIHJlYWRhYmxlU291cmNlLT5lbnF1ZXVlKHZhbHVlKTsKICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgfSk7CiB9CkBAIC0xNDMsNiArMTM1LDIz
IEBAIHZvaWQgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNsZWFyKCkKICAgICBzdG9wUGVuZGlu
Z0FjdGl2aXR5KCk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjpyZXF1ZXN0S2V5RnJhbWUoKQoreworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJOb3QgYXR0YWNoZWQgdG8gYSBy
ZWNlaXZlciBvciBzZW5kZXIiX3MgfTsKKworICAgIGlmIChtX2JhY2tlbmQtPm1lZGlhVHlwZSgp
ICE9IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTo6VmlkZW8pCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCByZXF1ZXN0IGtleSBm
cmFtZSBvbiBhdWRpbyBzZW5kZXIiX3MgfTsKKworICAgIG1fYmFja2VuZC0+cmVxdWVzdEtleUZy
YW1lKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworSlNDOjpKU1ZhbHVlIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpvcHRpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sK
KyAgICByZXR1cm4gbV9vcHRpb25zLT5kZXNlcmlhbGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxP
YmplY3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRleCA0YzFiYmUwYWM3MWExMDNlYWEz
MDI2MzExY2VhYzY3NmM0YjJkNDIwLi43NmE0ZGYxOGZjMGY1NDA1NDQxMGFiMzI2ZmMxMzQ0NDg1
YzhmOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBAIC0yOSw0OCArMjksNTcgQEAKIAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0j
aW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZXNzYWdlUG9ydDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTaW1wbGVSZWFkYWJsZVN0
cmVhbVNvdXJjZTsKK2NsYXNzIFdyaXRhYmxlU3RyZWFtOwogCiBjbGFzcyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcgogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI+CiAgICAgLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmLCBSZWY8TWVzc2FnZVBvcnQ+JiYpOwogICAgIH5SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcigpOwogCi0gICAgdm9pZCBzZXRDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlND
YWxsYmFja0RhdGFTdHJvbmc+JiYgY2FsbGJhY2spIHsgbV9jYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOyB9CisgICAgUmVhZGFibGVTdHJlYW0mIHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9u
T3I8UmVmPFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUoKTsKKyAgICBKU0M6OkpTVmFsdWUgb3B0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXF1
ZXN0S2V5RnJhbWUoKTsKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5n
ZXQoKTsgfQogCisgICAgdm9pZCBzdGFydFBlbmRpbmdBY3Rpdml0eSgpIHsgbV9wZW5kaW5nQWN0
aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsgfQogICAgIHZvaWQgc3RhcnQoUmVm
PFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYpOwogICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIHZv
aWQgc3RhcnRQZW5kaW5nQWN0aXZpdHkoKSB7IG1fcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyk7IH0KLQogcHJpdmF0ZToKLSAgICBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKLQotICAg
IFJlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRTdHJlYW1zKFJUQ1J0cFRy
YW5zZm9ybUJhY2tlbmQmKTsKKyAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmLCBSZWY8UmVhZGFibGVTdHJlYW0+JiYsIFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4mJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
IjsgfQogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsgc3RvcFBlbmRpbmdBY3Rpdml0eSgpOyB9CiAg
ICAgdm9pZCBzdG9wUGVuZGluZ0FjdGl2aXR5KCkgeyBhdXRvIHBlbmRpbmdBY3Rpdml0eSA9IFdU
Rk1vdmUobV9wZW5kaW5nQWN0aXZpdHkpOyB9CiAKKyAgICBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtX29wdGlvbnM7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiBtX2NhbGxiYWNrOworCisgICAgUmVmPFNp
bXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBtX3JlYWRhYmxlU291cmNlOworICAgIFJlZjxSZWFk
YWJsZVN0cmVhbT4gbV9yZWFkYWJsZTsKKyAgICBSZWZQdHI8V3JpdGFibGVTdHJlYW0+IG1fd3Jp
dGFibGU7CisKICAgICBSZWZQdHI8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4gbV9iYWNrZW5kOwog
ICAgIFJlZlB0cjxQZW5kaW5nQWN0aXZpdHk8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+PiBtX3Bl
bmRpbmdBY3Rpdml0eTsKLQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmlkbAppbmRleCAwZjk0MGNjZGViMzAyNGY5NDRhOTEwZjA4NTM1NjI3YTM3
OTU1NmM4Li4zODcxYzQzOWVlOWM0ZjUxN2NiNGI5MjA5Y2U2NGU3NTc5Njc4ZjgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyLmlkbApAQCAtMzAsOCArMzAsMTAgQEAKICAgICBFeHBvc2VkPURl
ZGljYXRlZFdvcmtlciwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFj
ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIGNvbnN0cnVjdG9yKC8qIG9wdGlvbmFsIG9iamVjdCB0cmFuc2Zvcm1PcHRpb25z
ICovKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFdyaXRhYmxlU3RyZWFtIHdyaXRhYmxlOworICAgIFtDYWxs
V2l0aD1HbG9iYWxPYmplY3QsIENhY2hlZEF0dHJpYnV0ZV0gcmVhZG9ubHkgYXR0cmlidXRlIGFu
eSBvcHRpb25zOwogCi0gICAgLy8gRklYTUU6IGFkZCBjb250cm9sbGVyIGF0dHJpYnV0ZS4KICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDsKKyAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIHVuZGVmaW5lZCByZXF1ZXN0S2V5RnJhbWUoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOWQ5YmRiOGJlMTM3M2JmN2ZmYzBmN2YxYWQ5MGI4MmRmNDg0NDNiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfUlRDKQotCi0jaW5j
bHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI7Ci0KLWNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyQ29uc3RydWN0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ckNvbnN0cnVjdG9yPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICB1
c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7Ci0KLSAgICB2aXJ0dWFs
IENhbGxiYWNrUmVzdWx0PFJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IGhhbmRsZUV2
ZW50KCkgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTcyMWU1M2Y2YjY1NWI0ZjhhYTli
MTcyZTIzYjI3MDMxNGM1N2JmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAg
Q29uZGl0aW9uYWw9V0VCX1JUQywKLV0gY2FsbGJhY2sgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJD
b25zdHJ1Y3RvciA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdjMzkz
YmEwMDcwMWY2ZDE5Y2YzNWRhOWY2MjZjM2QzMThkZWJjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEs
ODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0KLSNpbmNsdWRlICJSVENSdHBU
cmFuc2Zvcm1CYWNrZW5kLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ7Ci0KLWNsYXNzIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyQ29udGV4dAotICAgIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXJDb250ZXh0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnRleHQ+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2Vu
ZD4mJik7Ci0gICAgflJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dCgpID0gZGVmYXVsdDsK
LQotICAgIHVzaW5nIFNpZGUgPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpTaWRlOwotICAgIFNp
ZGUgc2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZC0+c2lkZSgpOyB9Ci0KLSAgICB1c2lu
ZyBNZWRpYVR5cGUgPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU7Ci0gICAgTWVk
aWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZC0+bWVkaWFUeXBlKCk7
IH0KLQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcXVlc3RLZXlGcmFtZSgpOwotCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dChSZWY8UlRDUnRw
VHJhbnNmb3JtQmFja2VuZD4mJik7Ci0KLSAgICBSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4g
bV9iYWNrZW5kOwotfTsKLQotaW5saW5lIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRl
eHQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6Y3JlYXRlKFJlZjxSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0KFdURk1vdmUoYmFja2VuZCkpKTsKLX0KLQotaW5s
aW5lIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb250ZXh0KFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCi0gICAgOiBt
X2JhY2tlbmQoV1RGTW92ZShiYWNrZW5kKSkKLXsKLX0KLQotaW5saW5lIEV4Y2VwdGlvbk9yPHZv
aWQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6cmVxdWVzdEtleUZyYW1lKCkKLXsK
LSAgICBzd2l0Y2ggKG1lZGlhVHlwZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVR5cGU6OkF1ZGlvOgot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgcmVx
dWVzdCBrZXkgZnJhbWUgb24gYXVkaW8gc2VuZGVyIl9zIH07Ci0gICAgY2FzZSBNZWRpYVR5cGU6
OlZpZGVvOgotICAgICAgICBtX2JhY2tlbmQtPnJlcXVlc3RLZXlGcmFtZSgpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTA4MzMwYzgwZGNiNGI2MTViMjg3ZGUwMTllODJjNDZkN2MxYjhiNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZW51bSBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnRleHRTaWRlIHsgInJlY2VpdmVyIiwgInNlbmRlciIgfTsKLWVu
dW0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0TWVkaWFUeXBlIHsgImF1ZGlvIiwgInZp
ZGVvIiB9OwotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VCX1JUQywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPVdlYlJUQ0luc2VydGFibGVTdHJlYW1zLAotICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2Vy
LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lckNvbnRleHQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lckNvbnRleHRTaWRlIHNpZGU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dE1lZGlhVHlwZSBtZWRpYVR5cGU7Ci0KLSAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCByZXF1ZXN0S2V5RnJhbWUoKTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3Jt
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYTYwYTQ2Yzg1MGI5OGIwMDdhY2M0YWRkOGQ0MDMxY2M0
OGNhODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1RyYW5zZm9ybUV2ZW50LmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSVENUcmFuc2Zvcm1FdmVudC5oIgorCisj
aWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENU
cmFuc2Zvcm1FdmVudCk7CisKK1JlZjxSVENUcmFuc2Zvcm1FdmVudD4gUlRDVHJhbnNmb3JtRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBSZWY8UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI+JiYgdHJhbnNmb3JtZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUlRDVHJhbnNmb3JtRXZlbnQodHlwZSwgV1RGTW92ZSh0cmFuc2Zvcm1l
ciksIGlzVHJ1c3RlZCkpOworfQorCitSVENUcmFuc2Zvcm1FdmVudDo6UlRDVHJhbnNmb3JtRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYm
IHRyYW5zZm9ybWVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgeyB9
LCBpc1RydXN0ZWQpCisgICAgLCBtX3RyYW5zZm9ybWVyKFdURk1vdmUodHJhbnNmb3JtZXIpKQor
eworfQorCitSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciYgUlRDVHJhbnNmb3JtRXZlbnQ6OnRyYW5z
Zm9ybWVyKCkKK3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm1lci5nZXQoKTsKK30KKworRXZlbnRJ
bnRlcmZhY2UgUlRDVHJhbnNmb3JtRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gUlRDVHJhbnNmb3JtRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmN2UyMDZiYzBhOTMzMmJlMjg4NjY2MTk2YzJhNDcxNGM0NmQ5YWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENUcmFuc2Zvcm1FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENUcmFuc2Zv
cm1FdmVudCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSVENUcmFuc2Zvcm1FdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4m
JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisKKyAgICBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciYgdHJhbnNmb3JtZXIoKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNl
KCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUlRDVHJhbnNmb3JtRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYmLCBJc1RydXN0
ZWQpOworCisgICAgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBtX3RyYW5zZm9ybWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJh
bnNmb3JtRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwOTZmYTRkMjhmMjY2NGZhMjUwYWVjNjc4MWY0
MjA5N2JjYTg3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRCeVNldHRpbmc9
V2ViUlRDSW5zZXJ0YWJsZVN0cmVhbXMsCisgICAgRXhwb3NlZD1Xb3JrZXIsCisgICAgSW50ZXJm
YWNlTmFtZT1SVENUcmFuc2Zvcm1FdmVudCwKK10gaW50ZXJmYWNlIFJUQ1RyYW5zZm9ybUV2ZW50
IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lciB0cmFuc2Zvcm1lcik7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIgdHJhbnNmb3JtZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0M2Qx
MWM5YmQ1M2NlMTYzY2YyZTg3ZjQ3MWVhZGJiMTAzYmFmYzhiLi40OTMxYmQwYzdiZDM3ODAxZjZj
M2M1M2ExYTM5ODA0NTM4MTEzNTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc4LDYgKzE3OCw3IEBA
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBUcmFuc2NlaXZlci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50LmNwcAor
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU0ZyYW1lVXRpbHMuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1NUVU5NZXNzYWdlUGFy
c2luZy5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKQEAg
LTMzODcsOCArMzM4OCw2IEBAIEpTUlRDUnRwUnR4UGFyYW1ldGVycy5jcHAKIEpTUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtLmNwcAogSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwCiBKU1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyLmNwcAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
LmNwcAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuY3BwCiBKU1JUQ1J0cFNlbmRQ
YXJhbWV0ZXJzLmNwcAogSlNSVENSdHBTZW5kZXIuY3BwCiBKU1JUQ1J0cFN5bmNocm9uaXphdGlv
blNvdXJjZS5jcHAKQEAgLTM0MDAsNiArMzM5OSw3IEBAIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
SW5pdC5jcHAKIEpTUlRDU2lnbmFsaW5nU3RhdGUuY3BwCiBKU1JUQ1N0YXRzUmVwb3J0LmNwcAog
SlNSVENUcmFja0V2ZW50LmNwcAorSlNSVENUcmFuc2Zvcm1FdmVudC5jcHAKIEpTUmFkaW9Ob2Rl
TGlzdC5jcHAKIEpTUmFuZ2UuY3BwCiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNWQ2NTY4YTExNjQ5NjcwNDIzNGEyYmJhYzUyOTk3OTE2ZWQ1ZTEwMy4uMDg0NTJiOTNi
ZjllMmU5OTdhZmEyOTM0ZWE5MzFiMDc4ODJkMWY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzcxOCw4ICs3NzE4LDYgQEAK
IAkJNDE0MTg5RjMyNTYyRTMyQzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RjQyNTYyRTMy
QzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTQxODlGNTI1NjJFMzJEMDAzNjM0MTcgLyogUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE0MTg5
RjYyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTQxODlGNzI1
NjJFNjdBMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rv
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUY5MjU2NDE2NTAwMDM2
MzQxNyAvKiBSVENFbmNvZGVkQXVkaW9GcmFtZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UlRDRW5jb2RlZEF1ZGlvRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTQxODlGQTI1NjQxNjUxMDAzNjM0MTcgLyogUlRDRW5jb2RlZFZpZGVvRnJhbWUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJUQ0VuY29kZWRWaWRlb0ZyYW1lLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RkIyNTY0MTc1NzAwMzYzNDE3IC8qIFJUQ0VuY29kZWRB
dWRpb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0VuY29kZWRB
dWRpb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODkzLDggKzc4OTEs
NiBAQAogCQk0MTlFNkVDNDI1NjZEMjExMDAyQjUwMTAgLyogUlRDUGVlckNvbm5lY3Rpb25JY2VF
cnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlFNkVDNjI1NjZEMjEzMDAyQjUwMTAgLyog
UlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOUU2RUM3MjU2NkQyMTQwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOUU2RUQyMjU2N0JGNjkwMDJCNTAx
MCAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQxOUU2RUQ1MjU2N0JGNkEwMDJCNTAxMCAvKiBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQTAyM0VEMUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzkzNCw2ICs3OTMwLDkgQEAKIAkJNDFCODc3NjAyM0RFMTA0MjAwMzYz
OEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQjkxMzc2MjM1ODREMEUwMDI1QkZBMyAvKiBNb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFCOTEzNzgyMzU4NEQwRjAwMjVCRkEzIC8qIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQkNFODc1MjVGN0E2
NzkwMDQ2QzJFNSAvKiBSVENUcmFuc2Zvcm1FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUlRDVHJhbnNmb3JtRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MUJDRTg3NjI1RjdBNjdBMDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDVHJhbnNmb3JtRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUJDRTg3NzI1RjdBNjdBMDA0NkMyRTUgLyogUlRD
VHJhbnNmb3JtRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVHJh
bnNmb3JtRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCRjIwNDAyMkI5
NDcxNjAwMDRGODEyIC8qIFJlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVh
bHRpbWVWaWRlb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUJGMjA0
MjIyQjk0NzE3MDAwNEY4MTIgLyogUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWFsdGltZVZpZGVvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzM2NSwxMCArMTczNjQsOSBAQAogCQkJCTQxNDE4OUYzMjU2MkUzMkMw
MDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgKi8sCiAJCQkJNDE0MTg5RjUy
NTYyRTMyRDAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggKi8sCiAJCQkJNDE0
MTg5RjEyNTYyREY1NjAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbCAqLywK
LQkJCQk0MTQxODlGNjI1NjJFNjdBMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJD
b25zdHJ1Y3Rvci5oICovLAotCQkJCTQxNDE4OUY3MjU2MkU2N0EwMDM2MzQxNyAvKiBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbCAqLywKLQkJCQk0MTlFNkVENTI1NjdCRjZB
MDAyQjUwMTAgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmggKi8sCi0JCQkJNDE5
RTZFRDIyNTY3QkY2OTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5p
ZGwgKi8sCisJCQkJNDFCQ0U4NzYyNUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1RyYW5zZm9ybUV2ZW50
LmNwcCAqLywKKwkJCQk0MUJDRTg3NzI1RjdBNjdBMDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZl
bnQuaCAqLywKKwkJCQk0MUJDRTg3NTI1RjdBNjc5MDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZl
bnQuaWRsICovLAogCQkJCTQxNDE4OUVGMjU2MkRGMEMwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1Qcm92aWRlci5pZGwgKi8sCiAJCQkJNDEzQzhCMjYyNTUyRUVBOTAwRTY1MDU1IC8q
IFJUQ1J0cFNlbmRlcitUcmFuc2Zvcm0uaWRsICovLAogCQkJCTVFMkM0MzU5MUJDRUUzMEQwMDAx
RTJCQyAvKiBSVENSdHBTZW5kZXIuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggZmI5MmNjYTEzMzNkYjE3ODU0M2RiZmVjZTBmMzdjOWVh
M2NjYWZjZC4uN2NhYzcyM2NmMDZkOWY5NGE5MTZkMDBkZDc2OGI2MWIwOWE0MmU0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC04NCw2ICs4NCwx
MSBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBSZWFkYWJsZVN0cgogICAgIHJldHVybiBzdHJlYW0gPyBzdHJlYW0t
PnJlYWRhYmxlU3RyZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKK2lubGluZSBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9iamVjdCos
IFJlYWRhYmxlU3RyZWFtJiBzdHJlYW0pCit7CisgICAgcmV0dXJuIHN0cmVhbS5yZWFkYWJsZVN0
cmVhbSgpOworfQorCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFJlYWRhYmxlU3RyZWFtPiYm
IHN0cmVhbSkKIHsKICAgICByZXR1cm4gc3RyZWFtLT5yZWFkYWJsZVN0cmVhbSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGRh
ZjE3OWYyY2Y0MDk3YWUxMjhiYmJkMTQwYmE5ZTMyODA0ZjYwZGIuLmM3ODdmMGU4MTQxNjI2ZWZj
MDliMTdkMTgxNzQxNDAyNjJhNzIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzMiw2ICsyMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKSBcCiAgICAgbWFjcm8o
UlRDU3RhdHNSZXBvcnQpIFwKICAgICBtYWNybyhSVENUcmFja0V2ZW50KSBcCisgICAgbWFjcm8o
UlRDVHJhbnNmb3JtRXZlbnQpIFwKICAgICBtYWNybyhSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhSZWFkYWJsZVN0
cmVhbUJZT0JSZWFkZXIpIFwKQEAgLTM4MSw2ICszODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8obWF0Y2hpbmdFbGVtZW50SW5GbGF0VHJlZSkgXAogICAgIG1hY3JvKG1lZGlh
U3RyZWFtVHJhY2tDb25zdHJhaW50cykgXAogICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkgXAorICAg
IG1hY3JvKG9ucnRjdHJhbnNmb3JtKSBcCiAgICAgbWFjcm8ob250b3VjaGNhbmNlbCkgXAogICAg
IG1hY3JvKG9udG91Y2hlbmQpIFwKICAgICBtYWNybyhvbnRvdWNobW92ZSkgXApAQCAtNDE5LDcg
KzQyMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhyZWFkZXIpIFwKICAgICBt
YWNybyhyZWFkeVByb21pc2UpIFwKICAgICBtYWNybyhyZWFkeVByb21pc2VDYXBhYmlsaXR5KSBc
Ci0gICAgbWFjcm8ocmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcikgXAogICAgIG1hY3Jv
KHJlcXVlc3RBbmltYXRpb25GcmFtZSkgXAogICAgIG1hY3JvKHJlcXVlc3RJZGxlQ2FsbGJhY2sp
IFwKICAgICBtYWNybyhyZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dy
aXRhYmxlU3RyZWFtLmgKaW5kZXggNDZmZjg5ZDVjZGUwOGIwMDZmMjE1YjEzYjMwYmEyNGQ5ODUz
NzIzOC4uYzUxOGE5NDU5NzcyNGUxZDcwMTAxYTY3YmNkYjhlZjM5OTYxZmFkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCkBAIC04MSw2ICs4MSwxMSBA
QCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBXcml0YWJsZVN0cgogICAgIHJldHVybiBzdHJlYW0gPyBzdHJlYW0tPndy
aXRhYmxlU3RyZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKK2lubGluZSBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFdy
aXRhYmxlU3RyZWFtJiBzdHJlYW0pCit7CisgICAgcmV0dXJuIHN0cmVhbS53cml0YWJsZVN0cmVh
bSgpOworfQorCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFdyaXRhYmxlU3RyZWFtPiYmIHN0
cmVhbSkKIHsKICAgICByZXR1cm4gc3RyZWFtLT53cml0YWJsZVN0cmVhbSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKaW5kZXggNjAwOGIwODBmMGU4NGNjY2RjMTVjN2NjMzJiYTVkMzQzM2ZjNmNm
YS4uMTM5NDQ0Mzk4MTQ2MDkwOWVmMmEwZmU1YmM3ZDc5YTk5YjcyZTU1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCkBAIC0yMzIsNiArMjMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKHJlc291cmNldGltaW5nYnVmZmVyZnVsbCkgXAogICAgIG1hY3JvKHJlc3VsdCkgXAog
ICAgIG1hY3JvKHJlc3VtZSkgXAorICAgIG1hY3JvKHJ0Y3RyYW5zZm9ybSkgXAogICAgIG1hY3Jv
KHNjcm9sbCkgXAogICAgIG1hY3JvKHNlYXJjaCkgXAogICAgIG1hY3JvKHNlY3VyaXR5cG9saWN5
dmlvbGF0aW9uKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDJkMGJjZTBmOTVmZTQ1
ZGQyMDNkZTA1NzE0N2EzOTE5YmQ4M2UyZDUuLjFmYmVmNDUwYzQ0NDgxMWE1N2Q5OTY3YTIzNjVj
NDRkOWI5NDBhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC02Miw2ICs2Miw3IEBA
IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDRGF0YUNo
YW5uZWxFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNv
bmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1RyYWNrRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQworUlRD
VHJhbnNmb3JtRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50CiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CiBTcGVlY2hTeW50aGVzaXNFdmVudCBjb25k
aXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDYxZmRkNTVjYjQ4OGQxODU1
MmNlNDczMTlhOWFhMWRjOGYxZDMyYjguLmQ0Y2VjNGY0ZjgzYjYzYjhkOGJmNWFmMTk1NjEyZjEz
ZDZhMWMzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0zNSwxMCArMzUsMTAgQEAKICNpbmNsdWRlICJDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAjaW5jbHVkZSAiSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIgotI2luY2x1ZGUg
IkpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VFdmVudC5oIgotI2luY2x1ZGUgIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgiCisjaW5jbHVk
ZSAiUlRDVHJhbnNmb3JtRXZlbnQuaCIKICNpbmNsdWRlICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV29ya2Vy
LmgiCkBAIC03NiwxMCArNzYsNiBAQCBFdmVudFRhcmdldEludGVyZmFjZSBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogdm9pZCBEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCkKIHsKICAgICBXb3Jr
ZXJHbG9iYWxTY29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCk7Ci0KLSNpZiBFTkFCTEUoV0VC
X1JUQykKLSAgICBtX3J0Y1J0cFRyYW5zZm9ybWVyQ29uc3RydWN0b3JNYXAuY2xlYXIoKTsKLSNl
bmRpZgogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
cG9zdE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEpTQzo6SlNWYWx1ZSBtZXNz
YWdlVmFsdWUsIFBvc3RNZXNzYWdlT3B0aW9ucyYmIG9wdGlvbnMpCkBAIC0xMjYsNzEgKzEyMiwx
NSBAQCB2b2lkIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjYW5jZWxBbmltYXRpb25GcmFt
ZShDYWxsYmFja0lkIGNhbGxiYWNrSWQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQot
RXhjZXB0aW9uT3I8dm9pZD4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnJlZ2lzdGVyUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYgbmFtZSwgUmVmPEpTUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb25zdHJ1Y3Rvcj4mJiB0cmFuc2Zvcm1lckNvbnN0cnVjdG9yKQotewotICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKG5hbWUuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOYW1lIGNhbm5vdCBiZSB0
aGUgZW1wdHkgc3RyaW5nIl9zIH07Ci0KLSAgICBpZiAobV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0
cnVjdG9yTWFwLmNvbnRhaW5zKG5hbWUpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IsICJBIHRyYW5zZm9ybWVyIHdhcyBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0
aCB0aGlzIG5hbWUiX3MgfTsKLQotICAgIEpTQzo6SlNPYmplY3QqIGpzQ29uc3RydWN0b3IgPSB0
cmFuc2Zvcm1lckNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKLSAgICBh
dXRvKiBnbG9iYWxPYmplY3QgPSBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKTsKLSAgICBh
dXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoIWpzQ29uc3RydWN0b3ItPmlzQ29uc3RydWN0b3Io
dm0pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2xhc3MgZGVmaW5p
dGl0aW9uIHBhc3NlZCB0byByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCkgaXMgbm90
IGEgY29uc3RydWN0b3IiX3MgfTsKLQotICAgIGF1dG8gcHJvdG90eXBlID0ganNDb25zdHJ1Y3Rv
ci0+Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7Ci0KLSAgICBp
ZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiQ2xhc3MgZGVmaW5pdGl0aW9uIHBhc3NlZCB0byByZWdpc3RlclJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKCkgaGFzIGludmFsaWQgcHJvdG90eXBlIl9zIH07Ci0KLSAgICBtX3J0Y1J0
cFRyYW5zZm9ybWVyQ29uc3RydWN0b3JNYXAuYWRkKG5hbWUsIFdURk1vdmUodHJhbnNmb3JtZXJD
b25zdHJ1Y3RvcikpOwotCi0gICAgdGhyZWFkKCkud29ya2VyT2JqZWN0UHJveHkoKS5wb3N0VGFz
a1RvV29ya2VyT2JqZWN0KFtuYW1lID0gbmFtZS5pc29sYXRlZENvcHkoKV0oYXV0byYgd29ya2Vy
KSBtdXRhYmxlIHsKLSAgICAgICAgd29ya2VyLmFkZFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFdU
Rk1vdmUobmFtZSkpOwotICAgIH0pOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQotUmVmUHRyPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRl
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYgbmFtZSwgVHJhbnNmZXJyZWRNZXNzYWdl
UG9ydCBwb3J0KQorUmVmUHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6Y3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBvcHRpb25zLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYgcG9ydCkK
IHsKLSAgICBhdXRvIGNvbnN0cnVjdG9yID0gbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
TWFwLmdldChuYW1lKTsKLSAgICBBU1NFUlQoY29uc3RydWN0b3IpOwotICAgIGlmICghY29uc3Ry
dWN0b3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byoganNDb25zdHJ1Y3Rv
ciA9IGNvbnN0cnVjdG9yLT5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKLSAgICBhdXRvKiBn
bG9iYWxPYmplY3QgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmdsb2JhbE9iamVjdCgp
OwotICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgZ2xv
YmFsT2JqZWN0IH07Ci0KLSAgICBtX3BlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQgPSBN
ZXNzYWdlUG9ydDo6ZW50YW5nbGUoKnRoaXMsIFdURk1vdmUocG9ydCkpOwotCi0gICAgSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6Y29uc3Ry
dWN0KGdsb2JhbE9iamVjdCwganNDb25zdHJ1Y3RvciwgYXJncywgIkZhaWxlZCB0byBjb25zdHJ1
Y3QgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIiKTsKLSAgICBBU1NFUlQoISFzY29wZS5leGNlcHRp
b24oKSA9PSAhb2JqZWN0KTsKLQotICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkgewotICAgICAg
ICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgIGF1dG8gdHJhbnNmb3JtZXJPckV4Y2VwdGlv
biA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUob3B0aW9u
cyksIE1lc3NhZ2VQb3J0OjplbnRhbmdsZSgqdGhpcywgV1RGTW92ZShwb3J0KSkpOworICAgIGlm
ICh0cmFuc2Zvcm1lck9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
Ci0KLSAgICBhdXRvJiBqc1RyYW5zZm9ybWVyID0gKkpTQzo6anNDYXN0PEpTUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIqPihvYmplY3QpOwotICAgIGF1dG8mIHRyYW5zZm9ybWVyID0ganNUcmFuc2Zv
cm1lci53cmFwcGVkKCk7Ci0gICAgdHJhbnNmb3JtZXIuc2V0Q2FsbGJhY2sobWFrZVVuaXF1ZTxK
U0NhbGxiYWNrRGF0YVN0cm9uZz4oJmpzVHJhbnNmb3JtZXIsIGdsb2JhbE9iamVjdCkpOwotCi0g
ICAgcmV0dXJuICZ0cmFuc2Zvcm1lcjsKKyAgICBhdXRvIHRyYW5zZm9ybWVyID0gdHJhbnNmb3Jt
ZXJPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICBkaXNwYXRjaEV2ZW50KFJU
Q1RyYW5zZm9ybUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJ0Y3RyYW5zZm9ybUV2ZW50LCB0
cmFuc2Zvcm1lci5jb3B5UmVmKCksIEV2ZW50OjpJc1RydXN0ZWQ6OlllcykpOworICAgIHJldHVy
biB0cmFuc2Zvcm1lcjsKIH0KLQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aAppbmRleCA1N2Y0NTJjNmVlYTllMDYzZmQ3NTg4ZGU5MTM0Mjc5MGNkODk5YzEzLi5lM2NjZDAw
MDRhNTM5MWQ1ZGQ2ZmJlYzM5MDQ2NWFmYmJjOWUxYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC03Niw5ICs3Niw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgUmVmUHRyPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJp
bmcmJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVn
aXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJiwgUmVmPEpTUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvcj4mJik7Ci0gICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiB0YWtl
UGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCgpIHsgcmV0dXJuIFdURk1vdmUobV9wZW5k
aW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0KTsgfQorICAgIFJlZlB0cjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4gY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmKTsKICNlbmRpZgogCiAgICAg
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsgfQpAQCAtOTksMTAgKzk3LDYg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKICAgICBSZWZQdHI8V29y
a2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV93b3JrZXJBbmltYXRpb25Db250cm9sbGVyOwogI2Vu
ZGlmCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxKU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+PiBtX3J0Y1J0cFRyYW5zZm9ybWVyQ29u
c3RydWN0b3JNYXA7Ci0gICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBtX3BlbmRpbmdSVENUcmFuc2Zv
bWVyTWVzc2FnZVBvcnQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAwNGZkZjU4Mjc0M2ViOTczYjUyNWQ1NGM4YThk
OGYzN2Q4MjUyMGZjLi4yYTQxYTNlZTRiMDU0NGE4NjMxOWU4YTVlZDI5ZTA2ZWVmZDQ1M2M5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0yNDksMTggKzI0OSwxNCBAQCB2b2lkIFdv
cmtlcjo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB9CiAKICNpZiBFTkFCTEUoV0VCX1JU
QykKLXZvaWQgV29ya2VyOjphZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJiBuYW1l
KQotewotICAgIG1fdHJhbnNmb3JtZXJzLmFkZChXVEZNb3ZlKG5hbWUpKTsKLX0KLQotdm9pZCBX
b3JrZXI6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKGNvbnN0IFN0cmluZyYgbmFtZSwg
VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCBwb3J0LCBSVENSdHBTY3JpcHRUcmFuc2Zvcm0mIHRyYW5z
Zm9ybSkKK3ZvaWQgV29ya2VyOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihSVENSdHBT
Y3JpcHRUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBv
cHRpb25zLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYgcG9ydCkKIHsKICAgICBpZiAoIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb250ZXh0UHJv
eHkucG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKFtuYW1lID0gbmFtZS5pc29sYXRlZENvcHko
KSwgcG9ydCwgdHJhbnNmb3JtID0gbWFrZVJlZih0cmFuc2Zvcm0pXShhdXRvJiBjb250ZXh0KSBt
dXRhYmxlIHsKLSAgICAgICAgdHJhbnNmb3JtLT5zZXRUcmFuc2Zvcm1lcihkb3duY2FzdDxEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoV1RGTW92ZShuYW1lKSwgcG9ydCkpOworICAgIG1fY29udGV4dFByb3h5LnBvc3RUYXNr
VG9Xb3JrZXJHbG9iYWxTY29wZShbdHJhbnNmb3JtID0gbWFrZVJlZih0cmFuc2Zvcm0pLCBvcHRp
b25zID0gV1RGTW92ZShvcHRpb25zKSwgcG9ydCA9IFdURk1vdmUocG9ydCldKGF1dG8mIGNvbnRl
eHQpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byB0cmFuc2Zvcm1lciA9IGRvd25jYXN0PERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5jcmVhdGVSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lcihXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHBvcnQpKSkKKyAgICAgICAgICAgIHRy
YW5zZm9ybS0+c2V0VHJhbnNmb3JtZXIoKnRyYW5zZm9ybWVyKTsKICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pXSB7IH0pOwogICAgIH0pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCAzOGE2MjNhOThkYmEzNWZmODAxM2NkNmZjOGM4
NWM4MTAyMDUwMjExLi5hY2I5NmVhYjZjMTlhMmJlZGRlNzk0NTkxYzJjMDQ1NzQ1NmJkYWViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTc3LDkgKzc3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlzcGF0Y2hFdmVudChFdmVudCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0g
ICAgdm9pZCBhZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTdHJpbmcmJik7Ci0gICAgYm9vbCBo
YXNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmIG5hbWUpIHsgcmV0dXJuIG1f
dHJhbnNmb3JtZXJzLmNvbnRhaW5zKG5hbWUpOyB9Ci0gICAgdm9pZCBjcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0LCBSVENS
dHBTY3JpcHRUcmFuc2Zvcm0mKTsKKyAgICB2b2lkIGNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSYsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYs
IFRyYW5zZmVycmVkTWVzc2FnZVBvcnQmJik7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xv
YmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBmMDVmZTFiM2JjNjRkMmYyMTY4YTkwOWIzZjk2MDY2MjFiOWJjNDEyLi4z
ZmYyOGM4ZjNhNTYxZTE4YTRhZTNlNjA1NGE5MWM5YTg4NmI5YjE1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMjEtMDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIFVwZGF0ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0gdG8gdGhlIGxhdGVzdCB2ZXJzaW9u
IG9mIHRoZSBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjI5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJydGMvYXVkaW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRyYW5zZm9ybS5qczoKKyAgICAgICAgKE1vY2tS
VENSdHBUcmFuc2Zvcm1lcik6CisgICAgICAgIChNb2NrUlRDUnRwVHJhbnNmb3JtZXIucHJvdG90
eXBlLnN0YXJ0KToKKyAgICAgICAgKE1vY2tSVENSdHBUcmFuc2Zvcm1lci5wcm90b3R5cGUucHJv
Y2Vzcyk6CisgICAgICAgIChvbnJ0Y3RyYW5zZm9ybSk6CisgICAgICAgICogaHR0cC93cHQvd2Vi
cnRjL25vLXRyYW5zZm9ybS5qczoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvbm8td2VicnRj
LXRyYW5zZm9ybS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL25vLXdl
YnJ0Yy10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvc2NyaXB0LXRy
YW5zZm9ybS5qczoKKyAgICAgICAgKG9ucnRjdHJhbnNmb3JtLnByb2Nlc3MpOgorICAgICAgICAo
b25ydGN0cmFuc2Zvcm0pOgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNm
b3JtLmpzOgorICAgICAgICAob25ydGN0cmFuc2Zvcm0pOgorICAgICAgICAqIGh0dHAvd3B0L3dl
YnJ0Yy92aWRlby1zY3JpcHQtdHJhbnNmb3JtLmh0bWw6CisKIDIwMjEtMDMtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgUlRDRGF0YUNoYW5uZWwg
dHJhbnNmZXJhYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVk
aW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2F1
ZGlvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbAppbmRleCBmYjZhYWI1MDk5NDZkZmFkZDhjMjFiY2Qw
NTJhNGMxMGVjYzVmODE3Li41NzA2ZDJmZjc0M2ZkNDZlODE2OGJkZDIxMzk4NjAyZTA1MGZkZDdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVkaW8tc2NyaXB0LXRy
YW5zZm9ybS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3Jp
cHQtdHJhbnNmb3JtLmh0bWwKQEAgLTMzLDggKzMzLDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CiAgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKIAogICAgIGxldCBzZW5kZXIsIHJl
Y2VpdmVyOwotICAgIHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0o
d29ya2VyLCAnTW9ja1JUQ1J0cFRyYW5zZm9ybScpOwotICAgIHJlY2VpdmVyVHJhbnNmb3JtID0g
bmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7
CisgICAgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIs
IHtuYW1lOidNb2NrUlRDUnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOidhdWRpbycsIHNpZGU6J3Nl
bmRlcid9KTsKKyAgICByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zv
cm0od29ya2VyLCB7bmFtZTonTW9ja1JUQ1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTonYXVkaW8n
LCBzaWRlOidyZWNlaXZlcid9KTsKIAogICAgIHByb21pc2UxID0gd2FpdEZvck1lc3NhZ2Uoc2Vu
ZGVyVHJhbnNmb3JtLnBvcnQsICJzdGFydGVkIGF1ZGlvIHNlbmRlciIpOwogICAgIHByb21pc2Uy
ID0gd2FpdEZvck1lc3NhZ2UocmVjZWl2ZXJUcmFuc2Zvcm0ucG9ydCwgInN0YXJ0ZWQgYXVkaW8g
cmVjZWl2ZXIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250
ZXh0LXRyYW5zZm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRy
YW5zZm9ybS5qcwppbmRleCA2MTNmOTczMWM2MTdlNDdlN2UxZTc5MWM2NmQyZTYxMzdjZTBiZDA4
Li5kZmYxYTI1NzFkMTUwNTkwYWU5YmRhZWY3NWIyM2ZmNzE0MzQ4YjNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvY29udGV4dC10cmFuc2Zvcm0uanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNmb3JtLmpzCkBAIC0xLDIxICsx
LDIxIEBACi1jbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lciB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgIHN1cGVyKCk7CitjbGFz
cyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgeworICAgIGNvbnN0cnVjdG9yKHRyYW5zZm9ybWVyKSB7
CiAgICAgICAgIHRoaXMuYXNrS2V5RnJhbWUgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5wb3J0Lm9u
bWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICB0aGlzLmNvbnRleHQgPSB0cmFuc2Zvcm1l
cjsKKyAgICAgICAgdGhpcy5jb250ZXh0LnBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CiAg
ICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gInN0YXJ0S2V5RnJhbWVzIikKICAgICAgICAg
ICAgICAgICB0aGlzLmFza0tleUZyYW1lID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGV2
ZW50LmRhdGEgPT09ICJlbmRLZXlGcmFtZXMiKQogICAgICAgICAgICAgICAgIHRoaXMuYXNrS2V5
RnJhbWUgPSBmYWxzZTsKICAgICAgICAgfTsKKyAgICAgICAgdGhpcy5zdGFydCgpOwogICAgIH0K
LSAgICBzdGFydChyZWFkYWJsZVN0cmVhbSwgd3JpdGFibGVTdHJlYW0sIGNvbnRleHQpCisgICAg
c3RhcnQoKQogICAgIHsKLSAgICAgICAgdGhpcy5yZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRS
ZWFkZXIoKTsKLSAgICAgICAgdGhpcy53cml0ZXIgPSB3cml0YWJsZVN0cmVhbS5nZXRXcml0ZXIo
KTsKKyAgICAgICAgdGhpcy5yZWFkZXIgPSB0aGlzLmNvbnRleHQucmVhZGFibGUuZ2V0UmVhZGVy
KCk7CisgICAgICAgIHRoaXMud3JpdGVyID0gdGhpcy5jb250ZXh0LndyaXRhYmxlLmdldFdyaXRl
cigpOwogICAgICAgICB0aGlzLnByb2Nlc3MoKTsKLSAgICAgICAgdGhpcy5jb250ZXh0ID0gY29u
dGV4dDsKLSAgICAgICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKCJzdGFydGVkICIgKyBjb250ZXh0
Lm1lZGlhVHlwZSArICIgIiArIGNvbnRleHQuc2lkZSk7CisgICAgICAgIHRoaXMuY29udGV4dC5w
b3J0LnBvc3RNZXNzYWdlKCJzdGFydGVkICIgKyB0aGlzLmNvbnRleHQub3B0aW9ucy5tZWRpYVR5
cGUgKyAiICIgKyB0aGlzLmNvbnRleHQub3B0aW9ucy5zaWRlKTsKICAgICB9CiAKICAgICBwcm9j
ZXNzKCkKQEAgLTI2LDkgKzI2LDkgQEAgY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVu
ZHMgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewogCiAgICAgICAgICAgICB0aGlzLndyaXRlci53
cml0ZShjaHVuay52YWx1ZSk7CiAKLSAgICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQubWVkaWFU
eXBlID09PSAidmlkZW8iKSB7CisgICAgICAgICAgICBpZiAodGhpcy5jb250ZXh0Lm9wdGlvbnMu
bWVkaWFUeXBlID09PSAidmlkZW8iKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNodW5rLnZhbHVl
IGluc3RhbmNlb2YgUlRDRW5jb2RlZFZpZGVvRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIHRo
aXMucG9ydC5wb3N0TWVzc2FnZSgidmlkZW8gZnJhbWUgIiArIGNodW5rLnZhbHVlLnR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQucG9ydC5wb3N0TWVzc2FnZSgidmlkZW8g
ZnJhbWUgIiArIGNodW5rLnZhbHVlLnR5cGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
YXNrS2V5RnJhbWUpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5yZXF1ZXN0S2V5
RnJhbWUoKTsKQEAgLTM5LDUgKzM5LDggQEAgY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4
dGVuZHMgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewogICAgIH0KIH07CiAKLXJlZ2lzdGVyUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIoIk1vY2tSVENSdHBUcmFuc2Zvcm0iLCBNb2NrUlRDUnRwVHJh
bnNmb3JtZXIpOworb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+IHsKKyAgICBuZXcgTW9ja1JU
Q1J0cFRyYW5zZm9ybWVyKGV2ZW50LnRyYW5zZm9ybWVyKTsKK307CisKIHNlbGYucG9zdE1lc3Nh
Z2UoInJlZ2lzdGVyZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0
Yy9uby10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8tdHJhbnNm
b3JtLmpzCmluZGV4IDg5MWY1MWFiMTA0YzIwYmNjZDMxZGI0NGQ0NTdkMWVmODMzYzc4YjcuLmFh
M2ZiYzk4MmFmY2MwOWQ0MTRlMGEyYjhhNmM4ODMzMjhlYjI1YTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2VicnRjL25vLXRyYW5zZm9ybS5qcwpAQCAtMSArMSBAQAotc2VsZi5wb3N0TWVz
c2FnZShzZWxmLnJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgPyAib24iIDogIm9mZiIp
Oworc2VsZi5wb3N0TWVzc2FnZShzZWxmLlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyID8gIm9uIiA6
ICJvZmYiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJy
dGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9u
by13ZWJydGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAppbmRleCAxYjU3MTY5ODIyNzMyNDc5YWI2
ZjIxYjlhMmM5NTQxNzlhZDVhOTBlLi5mNWJkNGMxNmY4MzhiOGFlMGRjYmNiZDU5NzQ3Y2VkNGMw
ODhmZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8td2VicnRj
LXRyYW5zZm9ybS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L25vLXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1QQVNT
IHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxh
ZyBpcyBvbgotUEFTUyBubyByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2Vy
dGFibGUgc3RyZWFtIGZsYWcgaXMgb2ZmCitQQVNTIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlm
IGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb24KK1BBU1Mgbm8gUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWwKaW5kZXggNjE5
OTgxMzNlYzExNGY4YWQ2ZjYzNTE0YTQwM2QzMjdjOWNlMDM4Yi4uODg2OTM3ZTY0N2FkY2I4YzU5
MTBlMTIyMmI5NzAxNzFlNGU2MTAyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIo
J25vLXRyYW5zZm9ybS5qcycpOwogICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0
YSkpOwogICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgIm9uIik7Ci19LCAicmVnaXN0ZXJSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uIik7Cit9LCAi
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvbiIp
OwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBpZiAod2luZG93LmludGVy
bmFscykKQEAgLTIzLDcgKzIzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcignbm8tdHJhbnNmb3JtLmpzJyk7CiAgICAgY29u
c3QgZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gd29ya2VyLm9ubWVzc2FnZSA9
IChldmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7CiAgICAgYXNzZXJ0X2VxdWFscyhkYXRh
LCAib2ZmIik7Ci19LCAibm8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNl
cnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9mZiIpOworfSwgIm5vIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyIGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb2ZmIik7CiAgICAgICAgIDwvc2NyaXB0
PgogICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9zY3JpcHQtdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L3NjcmlwdC10cmFuc2Zvcm0uanMKaW5kZXggNmIwNzZkZTgzM2YxYmZjNTNmYTE1NDNlYWY5MGY5
ZjYwZTAzZjJkMS4uOTAxZTY3NjgxOGMxYTgyOTJlZTBkZTdhY2VjMDNhZDNjZDkzZGU2OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanMKQEAg
LTEsMzAgKzEsMjUgQEAKLWNsYXNzIE1vY2tSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyIHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIo
KTsKLSAgICAgICAgdGhpcy5wb3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gdGhpcy5wb3J0LnBv
c3RNZXNzYWdlKGV2ZW50LmRhdGEpOwotICAgIH0KLSAgICBzdGFydChyZWFkYWJsZVN0cmVhbSwg
d3JpdGFibGVTdHJlYW0pCi0gICAgewotICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCJzdGFydGVk
Iik7Ci0gICAgICAgIHRoaXMucmVhZGVyID0gcmVhZGFibGVTdHJlYW0uZ2V0UmVhZGVyKCk7Ci0g
ICAgICAgIHRoaXMud3JpdGVyID0gd3JpdGFibGVTdHJlYW0uZ2V0V3JpdGVyKCk7Ci0gICAgICAg
IHRoaXMucHJvY2VzcygpOwotICAgIH0KK29ucnRjdHJhbnNmb3JtID0gKGV2ZW50KSA9PiB7Cisg
ICAgY29uc3QgdHJhbnNmb3JtZXIgPSBldmVudC50cmFuc2Zvcm1lcjsKKyAgICB0cmFuc2Zvcm1l
ci5wb3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gdHJhbnNmb3JtZXIucG9ydC5wb3N0TWVzc2Fn
ZShldmVudC5kYXRhKTsKIAotICAgIHByb2Nlc3MoKQorICAgIHNlbGYucG9zdE1lc3NhZ2UoInN0
YXJ0ZWQiKTsKKyAgICB0cmFuc2Zvcm1lci5yZWFkZXIgPSB0cmFuc2Zvcm1lci5yZWFkYWJsZS5n
ZXRSZWFkZXIoKTsKKyAgICB0cmFuc2Zvcm1lci53cml0ZXIgPSB0cmFuc2Zvcm1lci53cml0YWJs
ZS5nZXRXcml0ZXIoKTsKKworICAgIGZ1bmN0aW9uIHByb2Nlc3ModHJhbnNmb3JtZXIpCiAgICAg
ewotICAgICAgICB0aGlzLnJlYWRlci5yZWFkKCkudGhlbihjaHVuayA9PiB7CisgICAgICAgIHRy
YW5zZm9ybWVyLnJlYWRlci5yZWFkKCkudGhlbihjaHVuayA9PiB7CiAgICAgICAgICAgICBpZiAo
Y2h1bmsuZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBpZiAoY2h1
bmsudmFsdWUgaW5zdGFuY2VvZiBSVENFbmNvZGVkVmlkZW9GcmFtZSkKICAgICAgICAgICAgICAg
ICBzZWxmLnBvc3RNZXNzYWdlKCJ2aWRlbyBjaHVuayIpOwogICAgICAgICAgICAgZWxzZSBpZiAo
Y2h1bmsudmFsdWUgaW5zdGFuY2VvZiBSVENFbmNvZGVkQXVkaW9GcmFtZSkKICAgICAgICAgICAg
ICAgICBzZWxmLnBvc3RNZXNzYWdlKCJhdWRpbyBjaHVuayIpOwotICAgICAgICAgICAgdGhpcy53
cml0ZXIud3JpdGUoY2h1bmsudmFsdWUpOwotICAgICAgICAgICAgdGhpcy5wcm9jZXNzKCk7Cisg
ICAgICAgICAgICB0cmFuc2Zvcm1lci53cml0ZXIud3JpdGUoY2h1bmsudmFsdWUpOworICAgICAg
ICAgICAgcHJvY2Vzcyh0cmFuc2Zvcm1lcik7CiAgICAgICAgIH0pOwogICAgIH0KLX07CiAKLXJl
Z2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoIk1vY2tSVENSdHBUcmFuc2Zvcm0iLCBNb2Nr
UlRDUnRwVHJhbnNmb3JtZXIpOworICAgIHByb2Nlc3ModHJhbnNmb3JtZXIpOworfTsKIHNlbGYu
cG9zdE1lc3NhZ2UoInJlZ2lzdGVyZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL3NmcmFtZS10cmFuc2Zvcm0uanMKaW5kZXggNGM3MDgzNTVkOTQ1MTNkMzJkODI2NGI5ZWJm
MDQ1MDVjNjJjNzUwMC4uNjE3Y2YwYTM4YWEwODU5ZmE2ZWU4YWYwMWZkYWI1Zjk0YjViZWIxOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0u
anMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uanMK
QEAgLTEsMTQgKzEsNyBAQAotY2xhc3MgU0ZyYW1lUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgIHN1
cGVyKCk7Ci0gICAgICAgIHRoaXMuc2ZyYW1lVHJhbnNmb3JtID0gbmV3IFNGcmFtZVRyYW5zZm9y
bSh7IHJvbGUgOiAiZGVjcnlwdCIsIGF1dGhlbnRpY2F0aW9uU2l6ZTogIjEwIiwgY29tcGF0aWJp
bGl0eU1vZGU6ICJIMjY0IiB9KTsKLSAgICAgICAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJh
dyIsIG5ldyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYs
IDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZl
Qml0cyIsICJkZXJpdmVLZXkiXSkudGhlbihrZXkgPT4gdGhpcy5zZnJhbWVUcmFuc2Zvcm0uc2V0
RW5jcnlwdGlvbktleShrZXkpKTsKLSAgICB9Ci0gICAgc3RhcnQocmVhZGFibGVTdHJlYW0sIHdy
aXRhYmxlU3RyZWFtKQotICAgIHsKLSAgICAgICAgcmVhZGFibGVTdHJlYW0ucGlwZVRocm91Z2go
dGhpcy5zZnJhbWVUcmFuc2Zvcm0pLnBpcGVUbyh3cml0YWJsZVN0cmVhbSk7Ci0gICAgfQotfTsK
LQotcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigiU0ZyYW1lUlRDUnRwVHJhbnNmb3Jt
IiwgU0ZyYW1lUlRDUnRwVHJhbnNmb3JtZXIpOworb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+
IHsKKyAgICBjb25zdCBzZnJhbWVUcmFuc2Zvcm0gPSBuZXcgU0ZyYW1lVHJhbnNmb3JtKHsgcm9s
ZSA6ICJkZWNyeXB0IiwgYXV0aGVudGljYXRpb25TaXplOiAiMTAiLCBjb21wYXRpYmlsaXR5TW9k
ZTogIkgyNjQiIH0pOworICAgIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWlu
dDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5
MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVy
aXZlS2V5Il0pLnRoZW4oa2V5ID0+IHNmcmFtZVRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtl
eSkpOworICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gZXZlbnQudHJhbnNmb3JtZXI7CisgICAgdHJh
bnNmb3JtZXIucmVhZGFibGUucGlwZVRocm91Z2goc2ZyYW1lVHJhbnNmb3JtKS5waXBlVG8odHJh
bnNmb3JtZXIud3JpdGFibGUpOworfQogc2VsZi5wb3N0TWVzc2FnZSgicmVnaXN0ZXJlZCIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFu
c2Zvcm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3JpcHQtdHJh
bnNmb3JtLmh0bWwKaW5kZXggNjI5M2Q1N2M1OTBjN2M4ZGNhNDI1YmZjZmE3ZTIzODc2M2JmMDZj
Mi4uNGY1MmFhYjdiOTIwMjVlZjg4NmUzZDJjZTQ3ZTIxYjUxMTgwNDliYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5o
dG1sCkBAIC0zMyw4ICszMyw4IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAg
IGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB0cnVlfSk7CiAKICAgICBsZXQgc2VuZGVyLCByZWNlaXZlcjsKLSAgICBz
ZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwgJ01vY2tS
VENSdHBUcmFuc2Zvcm0nKTsKLSAgICByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm0od29ya2VyLCAnTW9ja1JUQ1J0cFRyYW5zZm9ybScpOworICAgIHNlbmRlclRy
YW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCB7bmFtZTonTW9ja1JU
Q1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTondmlkZW8nLCBzaWRlOidzZW5kZXInfSk7CisgICAg
cmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwge25h
bWU6J01vY2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6J3ZpZGVvJywgc2lkZToncmVjZWl2
ZXInfSk7CiAKICAgICBwcm9taXNlMSA9IHdhaXRGb3JNZXNzYWdlKHNlbmRlclRyYW5zZm9ybS5w
b3J0LCAic3RhcnRlZCB2aWRlbyBzZW5kZXIiKTsKICAgICBwcm9taXNlMiA9IHdhaXRGb3JNZXNz
YWdlKHJlY2VpdmVyVHJhbnNmb3JtLnBvcnQsICJzdGFydGVkIHZpZGVvIHJlY2VpdmVyIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423052</attachid>
            <date>2021-03-12 08:09:22 -0800</date>
            <delta_ts>2021-03-13 03:11:34 -0800</delta_ts>
            <desc>Win fix try</desc>
            <filename>bug-222982-20210312170919.patch</filename>
            <type>text/plain</type>
            <size>76385</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Mjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGUxYzExOGNiMTRhZjdm
NjAxNzM0MGFkYjkyNjE5OTY4ODNhMWU5My4uYzcyMDA1NmI1NDNmMWQwOGMyNTQyODQwMmUzOTVj
ZmI1MTkxOGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE1vdmUgZnJvbSBBdWRpb1dvcmts
ZXQgbW9kZWwgdG8gYW4gZXZlbnQgYmFzZWQgbW9kZWwgYXMgcGVyIGxhdGVzdCBzcGVjaWZpY2F0
aW9uLgorICAgICAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBjb25jZW50cmF0ZXMgYWxsIHRo
ZSBBUEkgYW5kIGlzIGV4cG9zZWQgdG8gd29ya2VyIHVzaW5nIGEgbmV3IHJ0Y3RyYW5zZm9ybSBl
dmVudC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG9wdGlvbnMgcGFyYW1ldGVyIHByb3ZpZGVk
IGluIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6UlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnJlYWRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Ojp3cml0YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJlcXVl
c3RLZXlGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
b3B0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0
YXJ0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2ZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcik6CisgICAg
ICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisKIDIwMjEt
MDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
UlRDRGF0YUNoYW5uZWwgdHJhbnNmZXJhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFhMDZi
MGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLmYyMjE0ZTg1YmE5OGFiZjZhMjY0
OWY2ZTNlNTU1YmM2MTE3M2QxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDcsOCArNDA3
LDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCi0gICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbAotICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2VuZFBhcmFtZXRlcnMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIrVHJhbnNmb3JtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLmlkbApAQCAtNDIxLDYgKzQxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTaWduYWxpbmdTdGF0ZS5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDVHJhY2tFdmVudC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmlkbAogCiAgICAgTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDA2YWQ4ZmViMDY4ZmI5ZWQwOTNiZDM4YzQxYmYzOTkzZTUyY2M3M2QuLmFkOWU5
NjY3ZjBhNjg2YjE2OTVjNzA4ZmEwODg1MTUzNDAzY2FlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQ5LDggKzI0OSw2IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRy
YW5zZm9ybVByb3ZpZGVyLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKLSQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwKLSQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0Lmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kUGFyYW1ldGVy
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyK1Ry
YW5zZm9ybS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmlkbApAQCAtMjY0LDYgKzI2Miw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBhY2YzZDA2MmMwYTY5
M2Q5OTQxMzA4YzUyYjMyMzg4YTc4ODYxODVjLi5hNjRlN2U3OWNhYzM1NmMyZDM3MmNhZmRiZjVh
M2E5M2JlMDk4MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMTczNCwxMCArMTczNCw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1
Y3Rvci5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2Vu
ZFBhcmFtZXRlcnMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5jcHAKQEAgLTE3NjQs
NiArMTc2MCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUlRDU3RhdHNSZXBvcnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JUQ1N0YXRzUmVwb3J0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDVHJhY2tFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDVHJhY2tFdmVudC5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1RyYW5zZm9ybUV2ZW50LmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENUcmFu
c2Zvcm1FdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1JhZGlvTm9kZUxpc3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1JhZGlvTm9kZUxpc3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZStDU1NPTVZpZXcuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA3ZjMyZWIxZGVkNzc5OGU0NDI2OGJkY2VjNmQyY2FiODk3ZGMyYzFh
Li41NjBiOGI3YWEwNTdmNTI4NDJiZTUzZDAzOGQwZjRmNTI0ODMzOWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3Niw4ICsyNzYsNiBAQCBKU19CSU5ESU5HX0lETFMgOj0g
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtUHJvdmlkZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU3lu
Y2hyb25pemF0aW9uU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmlkbCBcCkBAIC0yODcsNiArMjg1LDcg
QEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDVHJhY2tFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybS5jcHAKaW5kZXggZjI2OWQxZWJkNzdlZDlhOTZmZTU0OTM0ZjEzMzgwMjc1YWI5YWFhMS4u
MTE3ZTRmMmE1ODlmYzVlYmU1ZWM2N2MyNjBmYTYzZTlmYjY3MjJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VDaGFubmVsLmgiCiAjaW5jbHVkZSAiUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgiCkBAIC00MSwyMiAr
NDIsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoUlRDUnRwU2NyaXB0VHJhbnNmb3JtKTsKIAotRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFdvcmtlciYgd29ya2VyLCBTdHJpbmcmJiBuYW1lKQorRXhjZXB0
aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6
Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBXb3JrZXImIHdvcmtlciwgSlNDOjpK
U1ZhbHVlIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCF3b3JrZXIuaGFzUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIobmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIk5vIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHdhcyByZWdpc3RlcmVkIHdpdGggdGhpcyBu
YW1lIl9zIH07Ci0KICAgICBpZiAoIXdvcmtlci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIldvcmtlciBmcmFt
ZSBpcyBkZXRhY2hlZCJfcyB9OwogCisgICAgYXV0byogY29udGV4dCA9IEpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oJnN0YXRlKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiSW52YWxpZCBjb250ZXh0Il9zIH07CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRPcHRpb25z
ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUsIG9wdGlvbnMpOworICAgIGlm
ICghc2VyaWFsaXplZE9wdGlvbnMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGlu
Z0V4Y2VwdGlvbkVycm9yIH07CisKICAgICBhdXRvIG1lc3NhZ2VDaGFubmVsID0gTWVzc2FnZUNo
YW5uZWw6OmNyZWF0ZSgqd29ya2VyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgYXV0
byB0cmFuc2Zvcm1NZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVsLT5wb3J0MSgpOwogICAgIGF1
dG8gdHJhbnNmb3JtZXJNZXNzYWdlUG9ydCA9IG1lc3NhZ2VDaGFubmVsLT5wb3J0MigpOwogCi0g
ICAgYXV0byB0cmFuc2Zvcm0gPSBhZG9wdFJlZigqbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybShj
b250ZXh0LCBtYWtlUmVmKHdvcmtlciksIG1ha2VSZWYoKnRyYW5zZm9ybU1lc3NhZ2VQb3J0KSkp
OworICAgIGF1dG8gdHJhbnNmb3JtID0gYWRvcHRSZWYoKm5ldyBSVENSdHBTY3JpcHRUcmFuc2Zv
cm0oKmNvbnRleHQsIG1ha2VSZWYod29ya2VyKSwgbWFrZVJlZigqdHJhbnNmb3JtTWVzc2FnZVBv
cnQpKSk7CiAgICAgdHJhbnNmb3JtLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAotICAgIHdvcmtlci5j
cmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihuYW1lLCB0cmFuc2Zvcm1lck1lc3NhZ2VQb3J0
LT5kaXNlbnRhbmdsZSgpLCB0cmFuc2Zvcm0pOworICAgIHdvcmtlci5jcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcih0cmFuc2Zvcm0sIHNlcmlhbGl6ZWRPcHRpb25zLnJlbGVhc2VOb25OdWxs
KCksIHRyYW5zZm9ybWVyTWVzc2FnZVBvcnQtPmRpc2VudGFuZ2xlKCkpOwogCiAgICAgcmV0dXJu
IHRyYW5zZm9ybTsKIH0KQEAgLTczLDIzICs3OSwxNiBAQCBSVENSdHBTY3JpcHRUcmFuc2Zvcm06
On5SVENSdHBTY3JpcHRUcmFuc2Zvcm0oKQogICAgIGNsZWFyKCk7CiB9CiAKLXZvaWQgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtOjpzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI+JiYgdHJhbnNmb3JtZXIpCit2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJh
bnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXImIHRyYW5zZm9ybWVyKQogewogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghdHJhbnNmb3JtZXIpIHsKLSAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgp
IG11dGFibGUgewotICAgICAgICAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBU
YXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIEVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgIkFuIGVycm9yIHdhcyB0aHJvd24gZnJvbSBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciBjb25zdHJ1Y3RvciJfcywgeyB9LCAwLCAwLCB7IH0pKTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV90cmFuc2Zvcm1lckxvY2spOwogICAgICAgICBBU1NFUlQoIW1faXNUcmFuc2Zvcm1lcklu
aXRpYWxpemVkKTsKICAgICAgICAgbV9pc1RyYW5zZm9ybWVySW5pdGlhbGl6ZWQgPSB0cnVlOwot
ICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNmb3JtZXIuZ2V0KCkpOwor
ICAgICAgICBtX3RyYW5zZm9ybWVyID0gbWFrZVdlYWtQdHIodHJhbnNmb3JtZXIpOwogICAgIH0K
LSAgICB0cmFuc2Zvcm1lci0+c3RhcnRQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICB0cmFuc2Zvcm1l
ci5zdGFydFBlbmRpbmdBY3Rpdml0eSgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1f
YmFja2VuZCkKICAgICAgICAgICAgIHNldHVwVHJhbnNmb3JtZXIobV9iYWNrZW5kLnJlbGVhc2VO
b25OdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmgKaW5kZXggZWM1NDY4YWJlYTBiMDE3OTIzMDBk
MTUzNTk0NDZkNWUzOWEyYWQ4Yi4uZWIyNzU3MmU2MGEyZGFkYTMxOTA4MWRlZDIxZjRhOGEzOTdi
YWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogCkBAIC00NSwxMiArNDYsMTIgQEAgY2xhc3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtIGZpbmFs
CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChSVENSdHBTY3JpcHRUcmFuc2Zvcm0pOwogcHVibGljOgotICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3JtPj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXb3JrZXImLCBTdHJpbmcmJiBuYW1lKTsKKyAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgV29ya2VyJiwgSlNDOjpKU1ZhbHVlKTsKICAgICB+UlRDUnRwU2NyaXB0VHJhbnNm
b3JtKCk7CiAKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5nZXQoKTsg
fQogCi0gICAgdm9pZCBzZXRUcmFuc2Zvcm1lcihSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI+JiYpOworICAgIHZvaWQgc2V0VHJhbnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIm
KTsKIAogICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBdHRhY2hlZDsg
fQogICAgIHZvaWQgaW5pdGlhbGl6ZUJhY2tlbmRGb3JSZWNlaXZlcihSVENSdHBUcmFuc2Zvcm1C
YWNrZW5kJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKaW5kZXggZDY2YTliOTUzMWMxNzgyMWM2
ODk5YjZmNjAwZmQ1NzMwZDlmZTk5ZC4uY2Y0NDcyMmU3MzIxZGJlNjY0ODM4MTFhNDhlOTExYjVj
ZmNmNjI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbApAQCAtMzAsNyArMzAsNyBAQAogICAg
IEV4cG9zZWQ9V2luZG93LAogICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKIF0gaW50ZXJm
YWNlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSA6IEV2ZW50VGFyZ2V0IHsKLSAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gY29uc3RydWN0b3IoV29ya2VyIHdvcmtlciwgRE9NU3Ry
aW5nIG5hbWUpOworICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3RdIGNvbnN0cnVjdG9yKFdvcmtl
ciB3b3JrZXIsIGFueSBvcHRpb25zKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdl
UG9ydCBwb3J0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKaW5k
ZXggZDYzYmU4YWRjMzAyN2U1NzhmNjZjZjRjNTljMWI1NzRkNmZlMjYzNS4uNDc2YTMyNDFhN2I4
Mjc1NWY2MWI2NmY4OTI4NGRmN2Q1OWIyNGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1Qcm92aWRlci5pZGwKQEAgLTI0LDUgKzI0LDUgQEAKICAqLwogCiBpbnRlcmZhY2UgbWl4aW4g
UlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIgewotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dW5kZWZpbmVkIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoRE9NU3RyaW5nIG5hbWUs
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IgcHJvY2Vzc29yQ29uc3RydWN0b3Ip
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ydGN0cmFuc2Zvcm07CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyLmNwcAppbmRleCA0ZjIxMTU3ZGRkMGI5OGI0NTZkZjQ3YmU0NTFlOTgz
YTJiNDFmZDMzLi4xMDMxN2NkZDk1MDQ3YTg2NDEwYmY2ODQ1MTc0NmZhM2JkMTkxMDkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApAQCAtMzEsMjkgKzMxLDM4IEBACiAjaW5jbHVkZSAi
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1JUQ0VuY29kZWRBdWRp
b0ZyYW1lLmgiCiAjaW5jbHVkZSAiSlNSVENFbmNvZGVkVmlkZW9GcmFtZS5oIgotI2luY2x1ZGUg
IkpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKICNpbmNsdWRl
ICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiV3JpdGFibGVTdHJl
YW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8UmVmPFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyPj4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9wdGlv
bnMsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0KQogewotICAgIGF1dG8gcG9ydCA9IGRvd25jYXN0
PERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50YWtlUGVuZGluZ1JUQ1RyYW5z
Zm9tZXJNZXNzYWdlUG9ydCgpOwotICAgIGlmICghcG9ydCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIk5vIHBlbmRpbmcgY29uc3RydWN0aW9uIGRhdGEgZm9yIHRoaXMg
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIiX3MgfTsKKyAgICBpZiAoIWNvbnRleHQuZ2xvYmFsT2Jq
ZWN0KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9Owog
Ci0gICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcgUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoY29udGV4dCwgcG9ydC5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgYXV0byYgZ2xvYmFs
T2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxP
YmplY3QoKSk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3Qudm0oKSk7
CisgICAgYXV0byByZWFkYWJsZVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpj
cmVhdGUoKTsKKyAgICBhdXRvIHJlYWRhYmxlID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9i
YWxPYmplY3QsIHJlYWRhYmxlU291cmNlLmNvcHlSZWYoKSk7CisgICAgaWYgKHJlYWRhYmxlLmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVhZGFibGUucmVsZWFzZUV4Y2VwdGlvbigp
OworCisgICAgYXV0byB0cmFuc2Zvcm1lciA9IGFkb3B0UmVmKCpuZXcgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIoY29udGV4dCwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShwb3J0KSwgcmVhZGFi
bGUucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUocmVhZGFibGVTb3VyY2UpKSk7CiAgICAg
dHJhbnNmb3JtZXItPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiB0cmFuc2Zvcm1lcjsK
IH0KIAotUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0KQor
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0
aW9ucywgUmVmPE1lc3NhZ2VQb3J0PiYmIHBvcnQsIFJlZjxSZWFkYWJsZVN0cmVhbT4mJiByZWFk
YWJsZSwgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiYmIHJlYWRhYmxlU291cmNlKQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwgbV9vcHRpb25zKFdURk1vdmUo
b3B0aW9ucykpCiAgICAgLCBtX3BvcnQoV1RGTW92ZShwb3J0KSkKKyAgICAsIG1fcmVhZGFibGVT
b3VyY2UoV1RGTW92ZShyZWFkYWJsZVNvdXJjZSkpCisgICAgLCBtX3JlYWRhYmxlKFdURk1vdmUo
cmVhZGFibGUpKQogewogfQogCkBAIC02MSw2OCArNzAsNTEgQEAgUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI6On5SVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpCiB7CiB9CiAKLVJlZlB0cjxTaW1wbGVS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFt
cyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kKQorUmVhZGFibGVTdHJlYW0mIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyOjpyZWFkYWJsZSgpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IFdU
Rk1vdmUobV9jYWxsYmFjayk7Ci0gICAgaWYgKCFjYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KLSAgICBhdXRvJiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQuZ2xvYmFsT2JqZWN0KCkpOwor
ICAgIHJldHVybiBtX3JlYWRhYmxlLmdldCgpOworfQogCi0gICAgYXV0byYgdm0gPSBnbG9iYWxP
YmplY3Qudm0oKTsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKLQotICAgIGF1dG8g
cmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRl
KCk7Ci0gICAgYXV0byByZWFkYWJsZVN0cmVhbSA9IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOwotICAgIGlmIChyZWFk
YWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBhdXRvIHdyaXRhYmxlU3RyZWFtID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6Y3JlYXRlKFtiYWNrZW5kID0gbWFrZVJlZihi
YWNrZW5kKV0oYXV0byYgY29udGV4dCwgYXV0byB2YWx1ZSkgLT4gRXhjZXB0aW9uT3I8dm9pZD4g
ewotICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3QoKTsK
LQotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3Qu
dm0oKSk7Ci0gICAgICAgIGF1dG8gZnJhbWUgPSBjb252ZXJ0PElETFVuaW9uPElETEludGVyZmFj
ZTxSVENFbmNvZGVkQXVkaW9GcmFtZT4sIElETEludGVyZmFjZTxSVENFbmNvZGVkVmlkZW9GcmFt
ZT4+PihnbG9iYWxPYmplY3QsIHZhbHVlKTsKLQotICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJv
ciB9OwotCi0gICAgICAgIGF1dG8gcnRjRnJhbWUgPSBXVEY6OnN3aXRjaE9uKGZyYW1lLCBbJl0o
UmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUpIHsKLSAgICAgICAgICAgIHJldHVy
biBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKLSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENF
bmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2
YWx1ZS0+cnRjRnJhbWUoKSk7Ci0gICAgICAgIH0pOwotICAgICAgICBiYWNrZW5kLT5wcm9jZXNz
VHJhbnNmb3JtZWRGcmFtZShydGNGcmFtZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgfSkpOwotICAgIGlmICh3cml0YWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KLSAgICAvLyBDYWxsIHN0YXJ0IGNhbGxiYWNrLgotICAgIEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTTmV3bHlDcmVh
dGVkKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIHJlYWRhYmxlU3RyZWFtLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKSk7Ci0gICAgYXJncy5hcHBlbmQodG9KU05ld2x5Q3JlYXRlZCgmZ2xvYmFs
T2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCB3cml0YWJsZVN0cmVhbS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSkpOwotICAgIGFyZ3MuYXBwZW5kKHRvSlNOZXdseUNyZWF0ZWQoJmdsb2JhbE9iamVjdCwgJmds
b2JhbE9iamVjdCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0OjpjcmVhdGUobWFrZVJl
ZihiYWNrZW5kKSkpKTsKLQotICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4
Y2VwdGlvbjsKLSAgICBjYWxsYmFjay0+aW52b2tlQ2FsbGJhY2soSlNDOjpqc1VuZGVmaW5lZCgp
LCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIEpTQzo6SWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgInN0YXJ0IiksIHJldHVybmVkRXhjZXB0aW9uKTsKLSAgICAv
LyBGSVhNRTogRG8gc29tZXRoaW5nIGluIGNhc2Ugb2YgZXhjZXB0aW9uPyBXZSBzaG91bGQgYXQg
bGVhc3QgbG9nIGVycm9ycy4KLQotICAgIHJldHVybiByZWFkYWJsZVN0cmVhbVNvdXJjZTsKK0V4
Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp3
cml0YWJsZSgpCit7CisgICAgaWYgKCFtX3dyaXRhYmxlKSB7CisgICAgICAgIGF1dG8qIGNvbnRl
eHQgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5nbG9iYWxPYmplY3QoKSkKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAg
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGNvbnRleHQtPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgYXV0byB3cml0YWJsZU9yRXhjZXB0
aW9uID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIFNpbXBsZVdyaXRhYmxl
U3RyZWFtU2luazo6Y3JlYXRlKFt0cmFuc2Zvcm1lciA9IG1ha2VSZWYoKnRoaXMpXShhdXRvJiBj
b250ZXh0LCBhdXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAgICAgICBh
dXRvJiBnbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3QoKTsKKworICAgICAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwor
ICAgICAgICAgICAgYXV0byBmcmFtZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJU
Q0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+
KGdsb2JhbE9iamVjdCwgdmFsdWUpOworCisgICAgICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9u
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IgfTsKKworICAgICAgICAgICAgYXV0byBydGNGcmFtZSA9IFdURjo6c3dpdGNoT24oZnJh
bWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgICAgIH0s
IFsmXShSZWZQdHI8UlRDRW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAg
ICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdHJhbnNmb3JtZXItPm1fYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJh
bWUocnRjRnJhbWUuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfSkp
OworICAgICAgICBpZiAod3JpdGFibGVPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiB3cml0YWJsZU9yRXhjZXB0aW9uOworICAgICAgICBtX3dyaXRhYmxlID0g
d3JpdGFibGVPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB9CisgICAgcmV0
dXJuIG1ha2VSZWYoKm1fd3JpdGFibGUpOwogfQogCiB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjpzdGFydChSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQogewotICAg
IGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBzdGFydFN0cmVhbXMoYmFja2VuZC5nZXQoKSk7
Ci0gICAgaWYgKCFyZWFkYWJsZVN0cmVhbVNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
bV9iYWNrZW5kID0gV1RGTW92ZShiYWNrZW5kKTsKIAogICAgIGF1dG8mIGNvbnRleHQgPSBkb3du
Y2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAg
bV9iYWNrZW5kLT5zZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhbcmVhZGFibGVTdHJlYW1T
b3VyY2UgPSBtYWtlV2Vha1B0cihyZWFkYWJsZVN0cmVhbVNvdXJjZS5nZXQoKSksIGlzQXVkaW8g
PSBtX2JhY2tlbmQtPm1lZGlhVHlwZSgpID09IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlh
VHlwZTo6QXVkaW8sIHRocmVhZCA9IG1ha2VSZWYoY29udGV4dC50aHJlYWQoKSldKGF1dG8mJiBm
cmFtZSkgbXV0YWJsZSB7Ci0gICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbcmVhZGFibGVTdHJlYW1Tb3VyY2UsIGlzQXVkaW8sIGZyYW1lID0gV1RGTW92ZShmcmFtZSld
KGF1dG8mIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKCFyZWFkYWJsZVN0cmVh
bVNvdXJjZSkKKyAgICBtX2JhY2tlbmQtPnNldFRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKFty
ZWFkYWJsZVNvdXJjZSA9IG1ha2VXZWFrUHRyKG1fcmVhZGFibGVTb3VyY2UuZ2V0KCkpLCBpc0F1
ZGlvID0gbV9iYWNrZW5kLT5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpN
ZWRpYVR5cGU6OkF1ZGlvLCB0aHJlYWQgPSBtYWtlUmVmKGNvbnRleHQudGhyZWFkKCkpXShhdXRv
JiYgZnJhbWUpIG11dGFibGUgeworICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zv
ck1vZGUoW3JlYWRhYmxlU291cmNlLCBpc0F1ZGlvLCBmcmFtZSA9IFdURk1vdmUoZnJhbWUpXShh
dXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghcmVhZGFibGVTb3VyY2Up
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb250ZXh0Lmdsb2JhbE9iamVj
dCgpKTsKQEAgLTEzMCw3ICsxMjIsNyBAQCB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpz
dGFydChSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQogICAgICAgICAgICAg
SlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBp
c0F1ZGlvID8gdG9KUygmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBSVENFbmNvZGVkQXVk
aW9GcmFtZTo6Y3JlYXRlKFdURk1vdmUoZnJhbWUpKSkgOiB0b0pTKCZnbG9iYWxPYmplY3QsICZn
bG9iYWxPYmplY3QsIFJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpjcmVhdGUoV1RGTW92ZShmcmFtZSkp
KTsKLSAgICAgICAgICAgIHJlYWRhYmxlU3RyZWFtU291cmNlLT5lbnF1ZXVlKHZhbHVlKTsKKyAg
ICAgICAgICAgIHJlYWRhYmxlU291cmNlLT5lbnF1ZXVlKHZhbHVlKTsKICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgfSk7CiB9CkBAIC0xNDMsNiArMTM1LDIz
IEBAIHZvaWQgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNsZWFyKCkKICAgICBzdG9wUGVuZGlu
Z0FjdGl2aXR5KCk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyOjpyZXF1ZXN0S2V5RnJhbWUoKQoreworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJOb3QgYXR0YWNoZWQgdG8gYSBy
ZWNlaXZlciBvciBzZW5kZXIiX3MgfTsKKworICAgIGlmIChtX2JhY2tlbmQtPm1lZGlhVHlwZSgp
ICE9IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTo6VmlkZW8pCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCByZXF1ZXN0IGtleSBm
cmFtZSBvbiBhdWRpbyBzZW5kZXIiX3MgfTsKKworICAgIG1fYmFja2VuZC0+cmVxdWVzdEtleUZy
YW1lKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworSlNDOjpKU1ZhbHVlIFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpvcHRpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sK
KyAgICByZXR1cm4gbV9vcHRpb25zLT5kZXNlcmlhbGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxP
YmplY3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRleCA0YzFiYmUwYWM3MWExMDNlYWEz
MDI2MzExY2VhYzY3NmM0YjJkNDIwLi43NmE0ZGYxOGZjMGY1NDA1NDQxMGFiMzI2ZmMxMzQ0NDg1
YzhmOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBAIC0yOSw0OCArMjksNTcgQEAKIAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCi0j
aW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZXNzYWdlUG9ydDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTaW1wbGVSZWFkYWJsZVN0
cmVhbVNvdXJjZTsKK2NsYXNzIFdyaXRhYmxlU3RyZWFtOwogCiBjbGFzcyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcgogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI+CiAgICAgLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmLCBSZWY8TWVzc2FnZVBvcnQ+JiYpOwogICAgIH5SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcigpOwogCi0gICAgdm9pZCBzZXRDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8SlND
YWxsYmFja0RhdGFTdHJvbmc+JiYgY2FsbGJhY2spIHsgbV9jYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOyB9CisgICAgUmVhZGFibGVTdHJlYW0mIHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9u
T3I8UmVmPFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUoKTsKKyAgICBKU0M6OkpTVmFsdWUgb3B0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXF1
ZXN0S2V5RnJhbWUoKTsKICAgICBNZXNzYWdlUG9ydCYgcG9ydCgpIHsgcmV0dXJuIG1fcG9ydC5n
ZXQoKTsgfQogCisgICAgdm9pZCBzdGFydFBlbmRpbmdBY3Rpdml0eSgpIHsgbV9wZW5kaW5nQWN0
aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsgfQogICAgIHZvaWQgc3RhcnQoUmVm
PFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYpOwogICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIHZv
aWQgc3RhcnRQZW5kaW5nQWN0aXZpdHkoKSB7IG1fcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyk7IH0KLQogcHJpdmF0ZToKLSAgICBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKLQotICAg
IFJlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRTdHJlYW1zKFJUQ1J0cFRy
YW5zZm9ybUJhY2tlbmQmKTsKKyAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmLCBSZWY8UmVhZGFibGVTdHJlYW0+JiYsIFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4mJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
IjsgfQogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsgc3RvcFBlbmRpbmdBY3Rpdml0eSgpOyB9CiAg
ICAgdm9pZCBzdG9wUGVuZGluZ0FjdGl2aXR5KCkgeyBhdXRvIHBlbmRpbmdBY3Rpdml0eSA9IFdU
Rk1vdmUobV9wZW5kaW5nQWN0aXZpdHkpOyB9CiAKKyAgICBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtX29wdGlvbnM7CiAgICAgUmVmPE1lc3NhZ2VQb3J0PiBtX3BvcnQ7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiBtX2NhbGxiYWNrOworCisgICAgUmVmPFNp
bXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBtX3JlYWRhYmxlU291cmNlOworICAgIFJlZjxSZWFk
YWJsZVN0cmVhbT4gbV9yZWFkYWJsZTsKKyAgICBSZWZQdHI8V3JpdGFibGVTdHJlYW0+IG1fd3Jp
dGFibGU7CisKICAgICBSZWZQdHI8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4gbV9iYWNrZW5kOwog
ICAgIFJlZlB0cjxQZW5kaW5nQWN0aXZpdHk8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+PiBtX3Bl
bmRpbmdBY3Rpdml0eTsKLQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmlkbAppbmRleCAwZjk0MGNjZGViMzAyNGY5NDRhOTEwZjA4NTM1NjI3YTM3
OTU1NmM4Li4zODcxYzQzOWVlOWM0ZjUxN2NiNGI5MjA5Y2U2NGU3NTc5Njc4ZjgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyLmlkbApAQCAtMzAsOCArMzAsMTAgQEAKICAgICBFeHBvc2VkPURl
ZGljYXRlZFdvcmtlciwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFj
ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIGNvbnN0cnVjdG9yKC8qIG9wdGlvbmFsIG9iamVjdCB0cmFuc2Zvcm1PcHRpb25z
ICovKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFdyaXRhYmxlU3RyZWFtIHdyaXRhYmxlOworICAgIFtDYWxs
V2l0aD1HbG9iYWxPYmplY3QsIENhY2hlZEF0dHJpYnV0ZV0gcmVhZG9ubHkgYXR0cmlidXRlIGFu
eSBvcHRpb25zOwogCi0gICAgLy8gRklYTUU6IGFkZCBjb250cm9sbGVyIGF0dHJpYnV0ZS4KICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDsKKyAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIHVuZGVmaW5lZCByZXF1ZXN0S2V5RnJhbWUoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOWQ5YmRiOGJlMTM3M2JmN2ZmYzBmN2YxYWQ5MGI4MmRmNDg0NDNiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfUlRDKQotCi0jaW5j
bHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI7Ci0KLWNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyQ29uc3RydWN0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ckNvbnN0cnVjdG9yPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKLXB1YmxpYzoKLSAgICB1
c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7Ci0KLSAgICB2aXJ0dWFs
IENhbGxiYWNrUmVzdWx0PFJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IGhhbmRsZUV2
ZW50KCkgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTcyMWU1M2Y2YjY1NWI0ZjhhYTli
MTcyZTIzYjI3MDMxNGM1N2JmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAg
Q29uZGl0aW9uYWw9V0VCX1JUQywKLV0gY2FsbGJhY2sgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJD
b25zdHJ1Y3RvciA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjdjMzkz
YmEwMDcwMWY2ZDE5Y2YzNWRhOWY2MjZjM2QzMThkZWJjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEs
ODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0KLSNpbmNsdWRlICJSVENSdHBU
cmFuc2Zvcm1CYWNrZW5kLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ7Ci0KLWNsYXNzIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyQ29udGV4dAotICAgIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXJDb250ZXh0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnRleHQ+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2Vu
ZD4mJik7Ci0gICAgflJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dCgpID0gZGVmYXVsdDsK
LQotICAgIHVzaW5nIFNpZGUgPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpTaWRlOwotICAgIFNp
ZGUgc2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZC0+c2lkZSgpOyB9Ci0KLSAgICB1c2lu
ZyBNZWRpYVR5cGUgPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU7Ci0gICAgTWVk
aWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2VuZC0+bWVkaWFUeXBlKCk7
IH0KLQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcXVlc3RLZXlGcmFtZSgpOwotCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dChSZWY8UlRDUnRw
VHJhbnNmb3JtQmFja2VuZD4mJik7Ci0KLSAgICBSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4g
bV9iYWNrZW5kOwotfTsKLQotaW5saW5lIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRl
eHQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6Y3JlYXRlKFJlZjxSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0KFdURk1vdmUoYmFja2VuZCkpKTsKLX0KLQotaW5s
aW5lIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb250ZXh0KFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYmIGJhY2tlbmQpCi0gICAgOiBt
X2JhY2tlbmQoV1RGTW92ZShiYWNrZW5kKSkKLXsKLX0KLQotaW5saW5lIEV4Y2VwdGlvbk9yPHZv
aWQ+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6cmVxdWVzdEtleUZyYW1lKCkKLXsK
LSAgICBzd2l0Y2ggKG1lZGlhVHlwZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVR5cGU6OkF1ZGlvOgot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgcmVx
dWVzdCBrZXkgZnJhbWUgb24gYXVkaW8gc2VuZGVyIl9zIH07Ci0gICAgY2FzZSBNZWRpYVR5cGU6
OlZpZGVvOgotICAgICAgICBtX2JhY2tlbmQtPnJlcXVlc3RLZXlGcmFtZSgpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXJDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTA4MzMwYzgwZGNiNGI2MTViMjg3ZGUwMTllODJjNDZkN2MxYjhiNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZW51bSBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnRleHRTaWRlIHsgInJlY2VpdmVyIiwgInNlbmRlciIgfTsKLWVu
dW0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0TWVkaWFUeXBlIHsgImF1ZGlvIiwgInZp
ZGVvIiB9OwotCi1bCi0gICAgQ29uZGl0aW9uYWw9V0VCX1JUQywKLSAgICBFbmFibGVkQnlTZXR0
aW5nPVdlYlJUQ0luc2VydGFibGVTdHJlYW1zLAotICAgIEV4cG9zZWQ9RGVkaWNhdGVkV29ya2Vy
LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lckNvbnRleHQgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lckNvbnRleHRTaWRlIHNpZGU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dE1lZGlhVHlwZSBtZWRpYVR5cGU7Ci0KLSAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCByZXF1ZXN0S2V5RnJhbWUoKTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3Jt
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYTYwYTQ2Yzg1MGI5OGIwMDdhY2M0YWRkOGQ0MDMxY2M0
OGNhODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1RyYW5zZm9ybUV2ZW50LmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSVENUcmFuc2Zvcm1FdmVudC5oIgorCisj
aWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENU
cmFuc2Zvcm1FdmVudCk7CisKK1JlZjxSVENUcmFuc2Zvcm1FdmVudD4gUlRDVHJhbnNmb3JtRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBSZWY8UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI+JiYgdHJhbnNmb3JtZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUlRDVHJhbnNmb3JtRXZlbnQodHlwZSwgV1RGTW92ZSh0cmFuc2Zvcm1l
ciksIGlzVHJ1c3RlZCkpOworfQorCitSVENUcmFuc2Zvcm1FdmVudDo6UlRDVHJhbnNmb3JtRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYm
IHRyYW5zZm9ybWVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgeyB9
LCBpc1RydXN0ZWQpCisgICAgLCBtX3RyYW5zZm9ybWVyKFdURk1vdmUodHJhbnNmb3JtZXIpKQor
eworfQorCitSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciYgUlRDVHJhbnNmb3JtRXZlbnQ6OnRyYW5z
Zm9ybWVyKCkKK3sKKyAgICByZXR1cm4gbV90cmFuc2Zvcm1lci5nZXQoKTsKK30KKworRXZlbnRJ
bnRlcmZhY2UgUlRDVHJhbnNmb3JtRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gUlRDVHJhbnNmb3JtRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmN2UyMDZiYzBhOTMzMmJlMjg4NjY2MTk2YzJhNDcxNGM0NmQ5YWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENUcmFuc2Zvcm1FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENUcmFuc2Zv
cm1FdmVudCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSVENUcmFuc2Zvcm1FdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4m
JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisKKyAgICBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciYgdHJhbnNmb3JtZXIoKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNl
KCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUlRDVHJhbnNmb3JtRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiYmLCBJc1RydXN0
ZWQpOworCisgICAgUmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiBtX3RyYW5zZm9ybWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5z
Zm9ybUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJh
bnNmb3JtRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwOTZmYTRkMjhmMjY2NGZhMjUwYWVjNjc4MWY0
MjA5N2JjYTg3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfUlRDLAorICAgIEVuYWJsZWRCeVNldHRpbmc9
V2ViUlRDSW5zZXJ0YWJsZVN0cmVhbXMsCisgICAgRXhwb3NlZD1Xb3JrZXIsCisgICAgSW50ZXJm
YWNlTmFtZT1SVENUcmFuc2Zvcm1FdmVudCwKK10gaW50ZXJmYWNlIFJUQ1RyYW5zZm9ybUV2ZW50
IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lciB0cmFuc2Zvcm1lcik7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIgdHJhbnNmb3JtZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0M2Qx
MWM5YmQ1M2NlMTYzY2YyZTg3ZjQ3MWVhZGJiMTAzYmFmYzhiLi40OTMxYmQwYzdiZDM3ODAxZjZj
M2M1M2ExYTM5ODA0NTM4MTEzNTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc4LDYgKzE3OCw3IEBA
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBUcmFuc2NlaXZlci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFja0V2ZW50LmNwcAor
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5jcHAKIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU0ZyYW1lVXRpbHMuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1NUVU5NZXNzYWdlUGFy
c2luZy5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKQEAg
LTMzODcsOCArMzM4OCw2IEBAIEpTUlRDUnRwUnR4UGFyYW1ldGVycy5jcHAKIEpTUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtLmNwcAogSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwCiBKU1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyLmNwcAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
LmNwcAotSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuY3BwCiBKU1JUQ1J0cFNlbmRQ
YXJhbWV0ZXJzLmNwcAogSlNSVENSdHBTZW5kZXIuY3BwCiBKU1JUQ1J0cFN5bmNocm9uaXphdGlv
blNvdXJjZS5jcHAKQEAgLTM0MDAsNiArMzM5OSw3IEBAIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
SW5pdC5jcHAKIEpTUlRDU2lnbmFsaW5nU3RhdGUuY3BwCiBKU1JUQ1N0YXRzUmVwb3J0LmNwcAog
SlNSVENUcmFja0V2ZW50LmNwcAorSlNSVENUcmFuc2Zvcm1FdmVudC5jcHAKIEpTUmFkaW9Ob2Rl
TGlzdC5jcHAKIEpTUmFuZ2UuY3BwCiBKU1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNWQ2NTY4YTExNjQ5NjcwNDIzNGEyYmJhYzUyOTk3OTE2ZWQ1ZTEwMy4uMDlhNDczZGJh
M2M1NTcwZjNhOTE5ZDk4YTc1NjBlMGJiYWRhMzg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzcxOCw4ICs3NzE4LDYgQEAK
IAkJNDE0MTg5RjMyNTYyRTMyQzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RjQyNTYyRTMy
QzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTQxODlGNTI1NjJFMzJEMDAzNjM0MTcgLyogUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE0MTg5
RjYyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTQxODlGNzI1
NjJFNjdBMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rv
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUY5MjU2NDE2NTAwMDM2
MzQxNyAvKiBSVENFbmNvZGVkQXVkaW9GcmFtZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UlRDRW5jb2RlZEF1ZGlvRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTQxODlGQTI1NjQxNjUxMDAzNjM0MTcgLyogUlRDRW5jb2RlZFZpZGVvRnJhbWUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJUQ0VuY29kZWRWaWRlb0ZyYW1lLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RkIyNTY0MTc1NzAwMzYzNDE3IC8qIFJUQ0VuY29kZWRB
dWRpb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0VuY29kZWRB
dWRpb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODkzLDggKzc4OTEs
NiBAQAogCQk0MTlFNkVDNDI1NjZEMjExMDAyQjUwMTAgLyogUlRDUGVlckNvbm5lY3Rpb25JY2VF
cnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlFNkVDNjI1NjZEMjEzMDAyQjUwMTAgLyog
UlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOUU2RUM3MjU2NkQyMTQwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOUU2RUQyMjU2N0JGNjkwMDJCNTAx
MCAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQxOUU2RUQ1MjU2N0JGNkEwMDJCNTAxMCAvKiBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQTAyM0VEMUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzkzNCw2ICs3OTMwLDkgQEAKIAkJNDFCODc3NjAyM0RFMTA0MjAwMzYz
OEI4IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQjkxMzc2MjM1ODREMEUwMDI1QkZBMyAvKiBNb2NrQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
Y2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFCOTEzNzgyMzU4NEQwRjAwMjVCRkEzIC8qIE1vY2tBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1ZGlvRGVzdGluYXRp
b25Db2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQkNFODc1MjVGN0E2
NzkwMDQ2QzJFNSAvKiBSVENUcmFuc2Zvcm1FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUlRDVHJhbnNmb3JtRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MUJDRTg3NjI1RjdBNjdBMDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDVHJhbnNmb3JtRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUJDRTg3NzI1RjdBNjdBMDA0NkMyRTUgLyogUlRD
VHJhbnNmb3JtRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVHJh
bnNmb3JtRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCRjIwNDAyMkI5
NDcxNjAwMDRGODEyIC8qIFJlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVh
bHRpbWVWaWRlb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUJGMjA0
MjIyQjk0NzE3MDAwNEY4MTIgLyogUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWFsdGltZVZpZGVvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzM2NSwxMCArMTczNjQsNiBAQAogCQkJCTQxNDE4OUYzMjU2MkUzMkMw
MDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgKi8sCiAJCQkJNDE0MTg5RjUy
NTYyRTMyRDAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggKi8sCiAJCQkJNDE0
MTg5RjEyNTYyREY1NjAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbCAqLywK
LQkJCQk0MTQxODlGNjI1NjJFNjdBMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJD
b25zdHJ1Y3Rvci5oICovLAotCQkJCTQxNDE4OUY3MjU2MkU2N0EwMDM2MzQxNyAvKiBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbCAqLywKLQkJCQk0MTlFNkVENTI1NjdCRjZB
MDAyQjUwMTAgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmggKi8sCi0JCQkJNDE5
RTZFRDIyNTY3QkY2OTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5p
ZGwgKi8sCiAJCQkJNDE0MTg5RUYyNTYyREYwQzAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybVByb3ZpZGVyLmlkbCAqLywKIAkJCQk0MTNDOEIyNjI1NTJFRUE5MDBFNjUwNTUgLyogUlRD
UnRwU2VuZGVyK1RyYW5zZm9ybS5pZGwgKi8sCiAJCQkJNUUyQzQzNTkxQkNFRTMwRDAwMDFFMkJD
IC8qIFJUQ1J0cFNlbmRlci5jcHAgKi8sCkBAIC0xNzQwNyw2ICsxNzQwMiw5IEBACiAJCQkJNUUy
QzQzNjQxQkNFRTM3MjAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQuY3BwICovLAogCQkJCTVFMkM0
MzY1MUJDRUUzNzIwMDAxRTJCQyAvKiBSVENUcmFja0V2ZW50LmggKi8sCiAJCQkJNUUyQzQzNjYx
QkNFRTM3MjAwMDFFMkJDIC8qIFJUQ1RyYWNrRXZlbnQuaWRsICovLAorCQkJCTQxQkNFODc2MjVG
N0E2N0EwMDQ2QzJFNSAvKiBSVENUcmFuc2Zvcm1FdmVudC5jcHAgKi8sCisJCQkJNDFCQ0U4Nzcy
NUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1RyYW5zZm9ybUV2ZW50LmggKi8sCisJCQkJNDFCQ0U4NzUy
NUY3QTY3OTAwNDZDMkU1IC8qIFJUQ1RyYW5zZm9ybUV2ZW50LmlkbCAqLywKIAkJCQk0MTIwOUUy
NjI1N0EyRkJCMDAxMjBBQ0EgLyogU0ZyYW1lVXRpbHMuY3BwICovLAogCQkJCTQxMjA5RTI0MjU3
QTJGQkIwMDEyMEFDQSAvKiBTRnJhbWVVdGlscy5oICovLAogCQkJCTQxRTY3QTdGMjVEMTY4NDYw
MDdCMEE0QyAvKiBTVFVOTWVzc2FnZVBhcnNpbmcuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKaW5kZXggZmI5MmNjYTEzMzNkYjE3ODU0M2RiZmVj
ZTBmMzdjOWVhM2NjYWZjZC4uN2NhYzcyM2NmMDZkOWY5NGE5MTZkMDBkZDc2OGI2MWIwOWE0MmU0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC04
NCw2ICs4NCwxMSBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWFkYWJsZVN0cgogICAgIHJldHVybiBzdHJlYW0g
PyBzdHJlYW0tPnJlYWRhYmxlU3RyZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKK2lu
bGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCosIFJlYWRhYmxlU3RyZWFtJiBzdHJlYW0pCit7CisgICAgcmV0dXJuIHN0cmVhbS5y
ZWFkYWJsZVN0cmVhbSgpOworfQorCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFJlYWRhYmxl
U3RyZWFtPiYmIHN0cmVhbSkKIHsKICAgICByZXR1cm4gc3RyZWFtLT5yZWFkYWJsZVN0cmVhbSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CmluZGV4IGRhZjE3OWYyY2Y0MDk3YWUxMjhiYmJkMTQwYmE5ZTMyODA0ZjYwZGIuLmM3ODdmMGU4
MTQxNjI2ZWZjMDliMTdkMTgxNzQxNDAyNjJhNzIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzMiw2ICsyMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKSBcCiAg
ICAgbWFjcm8oUlRDU3RhdHNSZXBvcnQpIFwKICAgICBtYWNybyhSVENUcmFja0V2ZW50KSBcCisg
ICAgbWFjcm8oUlRDVHJhbnNmb3JtRXZlbnQpIFwKICAgICBtYWNybyhSZWFkYWJsZUJ5dGVTdHJl
YW1Db250cm9sbGVyKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhS
ZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIpIFwKQEAgLTM4MSw2ICszODIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8obWF0Y2hpbmdFbGVtZW50SW5GbGF0VHJlZSkgXAogICAgIG1h
Y3JvKG1lZGlhU3RyZWFtVHJhY2tDb25zdHJhaW50cykgXAogICAgIG1hY3JvKG9wZW5EYXRhYmFz
ZSkgXAorICAgIG1hY3JvKG9ucnRjdHJhbnNmb3JtKSBcCiAgICAgbWFjcm8ob250b3VjaGNhbmNl
bCkgXAogICAgIG1hY3JvKG9udG91Y2hlbmQpIFwKICAgICBtYWNybyhvbnRvdWNobW92ZSkgXApA
QCAtNDE5LDcgKzQyMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhyZWFkZXIp
IFwKICAgICBtYWNybyhyZWFkeVByb21pc2UpIFwKICAgICBtYWNybyhyZWFkeVByb21pc2VDYXBh
YmlsaXR5KSBcCi0gICAgbWFjcm8ocmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcikgXAog
ICAgIG1hY3JvKHJlcXVlc3RBbmltYXRpb25GcmFtZSkgXAogICAgIG1hY3JvKHJlcXVlc3RJZGxl
Q2FsbGJhY2spIFwKICAgICBtYWNybyhyZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKaW5kZXggNDZmZjg5ZDVjZGUwOGIwMDZmMjE1YjEzYjMw
YmEyNGQ5ODUzNzIzOC4uYzUxOGE5NDU5NzcyNGUxZDcwMTAxYTY3YmNkYjhlZjM5OTYxZmFkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCkBAIC04MSw2
ICs4MSwxMSBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBXcml0YWJsZVN0cgogICAgIHJldHVybiBzdHJlYW0gPyBz
dHJlYW0tPndyaXRhYmxlU3RyZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKK2lubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU0dsb2JhbE9i
amVjdCosIFdyaXRhYmxlU3RyZWFtJiBzdHJlYW0pCit7CisgICAgcmV0dXJuIHN0cmVhbS53cml0
YWJsZVN0cmVhbSgpOworfQorCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFdyaXRhYmxlU3Ry
ZWFtPiYmIHN0cmVhbSkKIHsKICAgICByZXR1cm4gc3RyZWFtLT53cml0YWJsZVN0cmVhbSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNjAwOGIwODBmMGU4NGNjY2RjMTVjN2NjMzJiYTVk
MzQzM2ZjNmNmYS4uMTM5NDQ0Mzk4MTQ2MDkwOWVmMmEwZmU1YmM3ZDc5YTk5YjcyZTU1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0yMzIsNiArMjMyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKHJlc291cmNldGltaW5nYnVmZmVyZnVsbCkgXAogICAgIG1hY3JvKHJl
c3VsdCkgXAogICAgIG1hY3JvKHJlc3VtZSkgXAorICAgIG1hY3JvKHJ0Y3RyYW5zZm9ybSkgXAog
ICAgIG1hY3JvKHNjcm9sbCkgXAogICAgIG1hY3JvKHNlYXJjaCkgXAogICAgIG1hY3JvKHNlY3Vy
aXR5cG9saWN5dmlvbGF0aW9uKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDJkMGJj
ZTBmOTVmZTQ1ZGQyMDNkZTA1NzE0N2EzOTE5YmQ4M2UyZDUuLjFmYmVmNDUwYzQ0NDgxMWE1N2Q5
OTY3YTIzNjVjNDRkOWI5NDBhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC02Miw2
ICs2Miw3IEBAIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwog
UlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENEVE1GVG9uZUNoYW5n
ZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1RyYWNrRXZlbnQgY29uZGl0aW9uYWw9V0VC
X1JUQworUlRDVHJhbnNmb3JtRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50CiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CiBTcGVlY2hTeW50aGVzaXNF
dmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggN2EwNDIwZDdmZmFm
ZDY0OGU0YjZkNTcxNDhjZDAyNDdiMzg0ZWY4ZC4uZDkwOTlmMWJlODc2ODJkYjI5YzM2Yzk2YmRh
OTljMTU4YmM4MDA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgIldlYkdMU2FtcGxlci5oIgogI2lu
Y2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA2MWZkZDU1Y2I0
ODhkMTg1NTJjZTQ3MzE5YTlhYTFkYzhmMWQzMmI4Li5kNGNlYzRmNGY4M2I2M2I4ZDhiZjVhZjE5
NTYxMmYxM2Q2YTFjMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBACiAjaW5jbHVk
ZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKLSNp
bmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRl
ICJNZXNzYWdlRXZlbnQuaCIKLSNpbmNsdWRlICJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIgor
I2luY2x1ZGUgIlJUQ1RyYW5zZm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlv
bkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
Ildvcmtlci5oIgpAQCAtNzYsMTAgKzc2LDYgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKIHZvaWQg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiB7CiAg
ICAgV29ya2VyR2xvYmFsU2NvcGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwotCi0jaWYgRU5B
QkxFKFdFQl9SVEMpCi0gICAgbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwLmNsZWFy
KCk7Ci0jZW5kaWYKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFs
dWUgbWVzc2FnZVZhbHVlLCBQb3N0TWVzc2FnZU9wdGlvbnMmJiBvcHRpb25zKQpAQCAtMTI2LDcx
ICsxMjIsMTUgQEAgdm9pZCBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Y2FuY2VsQW5pbWF0
aW9uRnJhbWUoQ2FsbGJhY2tJZCBjYWxsYmFja0lkKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VC
X1JUQykKLUV4Y2VwdGlvbk9yPHZvaWQ+IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpyZWdp
c3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFJlZjxKU1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+JiYgdHJhbnNmb3JtZXJDb25zdHJ1Y3RvcikKLXsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmIChuYW1lLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTmFtZSBjYW5u
b3QgYmUgdGhlIGVtcHR5IHN0cmluZyJfcyB9OwotCi0gICAgaWYgKG1fcnRjUnRwVHJhbnNmb3Jt
ZXJDb25zdHJ1Y3Rvck1hcC5jb250YWlucyhuYW1lKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yLCAiQSB0cmFuc2Zvcm1lciB3YXMgYWxyZWFkeSByZWdpc3Rl
cmVkIHdpdGggdGhpcyBuYW1lIl9zIH07Ci0KLSAgICBKU0M6OkpTT2JqZWN0KiBqc0NvbnN0cnVj
dG9yID0gdHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7
Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0ganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7
Ci0gICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKCFqc0NvbnN0cnVjdG9yLT5pc0NvbnN0
cnVjdG9yKHZtKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNsYXNz
IGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigp
IGlzIG5vdCBhIGNvbnN0cnVjdG9yIl9zIH07Ci0KLSAgICBhdXRvIHByb3RvdHlwZSA9IGpzQ29u
c3RydWN0b3ItPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwot
Ci0gICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIkNsYXNzIGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcigpIGhhcyBpbnZhbGlkIHByb3RvdHlwZSJfcyB9OwotCi0gICAg
bV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwLmFkZChuYW1lLCBXVEZNb3ZlKHRyYW5z
Zm9ybWVyQ29uc3RydWN0b3IpKTsKLQotICAgIHRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCku
cG9zdFRhc2tUb1dvcmtlck9iamVjdChbbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCldKGF1dG8m
IHdvcmtlcikgbXV0YWJsZSB7Ci0gICAgICAgIHdvcmtlci5hZGRSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcihXVEZNb3ZlKG5hbWUpKTsKLSAgICB9KTsKLQotICAgIHJldHVybiB7IH07Ci19Ci0KLVJl
ZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6
OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFN0cmluZyYmIG5hbWUsIFRyYW5zZmVycmVk
TWVzc2FnZVBvcnQgcG9ydCkKK1JlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0aW9ucywgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYm
IHBvcnQpCiB7Ci0gICAgYXV0byBjb25zdHJ1Y3RvciA9IG1fcnRjUnRwVHJhbnNmb3JtZXJDb25z
dHJ1Y3Rvck1hcC5nZXQobmFtZSk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yKTsKLSAgICBpZiAo
IWNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8qIGpzQ29u
c3RydWN0b3IgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0gICAg
YXV0byogZ2xvYmFsT2JqZWN0ID0gY29uc3RydWN0b3ItPmNhbGxiYWNrRGF0YSgpLT5nbG9iYWxP
YmplY3QoKTsKLSAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
ayB7IGdsb2JhbE9iamVjdCB9OwotCi0gICAgbV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQ
b3J0ID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlKCp0aGlzLCBXVEZNb3ZlKHBvcnQpKTsKLQotICAg
IEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhdXRvKiBvYmplY3QgPSBKU0M6
OmNvbnN0cnVjdChnbG9iYWxPYmplY3QsIGpzQ29uc3RydWN0b3IsIGFyZ3MsICJGYWlsZWQgdG8g
Y29uc3RydWN0IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIik7Ci0gICAgQVNTRVJUKCEhc2NvcGUu
ZXhjZXB0aW9uKCkgPT0gIW9iamVjdCk7Ci0KLSAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpIHsK
LSAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICBhdXRvIHRyYW5zZm9ybWVyT3JF
eGNlcHRpb24gPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3Zl
KG9wdGlvbnMpLCBNZXNzYWdlUG9ydDo6ZW50YW5nbGUoKnRoaXMsIFdURk1vdmUocG9ydCkpKTsK
KyAgICBpZiAodHJhbnNmb3JtZXJPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwotCi0gICAgYXV0byYganNUcmFuc2Zvcm1lciA9ICpKU0M6OmpzQ2FzdDxKU1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyKj4ob2JqZWN0KTsKLSAgICBhdXRvJiB0cmFuc2Zvcm1lciA9IGpz
VHJhbnNmb3JtZXIud3JhcHBlZCgpOwotICAgIHRyYW5zZm9ybWVyLnNldENhbGxiYWNrKG1ha2VV
bmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZqc1RyYW5zZm9ybWVyLCBnbG9iYWxPYmplY3Qp
KTsKLQotICAgIHJldHVybiAmdHJhbnNmb3JtZXI7CisgICAgYXV0byB0cmFuc2Zvcm1lciA9IHRy
YW5zZm9ybWVyT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgZGlzcGF0Y2hF
dmVudChSVENUcmFuc2Zvcm1FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ydGN0cmFuc2Zvcm1F
dmVudCwgdHJhbnNmb3JtZXIuY29weVJlZigpLCBFdmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKKyAg
ICByZXR1cm4gdHJhbnNmb3JtZXI7CiB9Ci0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlLmgKaW5kZXggNTdmNDUyYzZlZWE5ZTA2M2ZkNzU4OGRlOTEzNDI3OTBjZDg5OWMxMy4u
ZTNjY2QwMDA0YTUzOTFkNWRkNmZiZWMzOTA0NjVhZmJiYzllMWI1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNzYs
OSArNzYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIFJl
ZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIoU3RyaW5nJiYsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQpOwotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYsIFJlZjxKU1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+JiYpOwotICAgIFJlZlB0cjxNZXNzYWdlUG9y
dD4gdGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKSB7IHJldHVybiBXVEZNb3Zl
KG1fcGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCk7IH0KKyAgICBSZWZQdHI8UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXI+IGNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQmJik7CiAjZW5kaWYK
IAogICAgIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5h
bCB7IHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7IH0KQEAgLTk5LDEw
ICs5Nyw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCiAgICAgUmVm
UHRyPFdvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fd29ya2VyQW5pbWF0aW9uQ29udHJvbGxl
cjsKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQ
dHI8SlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yPj4gbV9ydGNSdHBUcmFuc2Zv
cm1lckNvbnN0cnVjdG9yTWFwOwotICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gbV9wZW5kaW5nUlRD
VHJhbnNmb21lck1lc3NhZ2VQb3J0OwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggMDRmZGY1ODI3NDNlYjk3M2I1MjVk
NTRjOGE4ZDhmMzdkODI1MjBmYy4uMmE0MWEzZWU0YjA1NDRhODYzMTllOGE1ZWQyOWUwNmVlZmQ0
NTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtMjQ5LDE4ICsyNDksMTQgQEAg
dm9pZCBXb3JrZXI6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogfQogCiAjaWYgRU5BQkxF
KFdFQl9SVEMpCi12b2lkIFdvcmtlcjo6YWRkUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5n
JiYgbmFtZSkKLXsKLSAgICBtX3RyYW5zZm9ybWVycy5hZGQoV1RGTW92ZShuYW1lKSk7Ci19Ci0K
LXZvaWQgV29ya2VyOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcm
IG5hbWUsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQgcG9ydCwgUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
JiB0cmFuc2Zvcm0pCit2b2lkIFdvcmtlcjo6Y3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIo
UlRDUnRwU2NyaXB0VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgb3B0aW9ucywgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmIHBvcnQpCiB7CiAgICAgaWYg
KCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29u
dGV4dFByb3h5LnBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShbbmFtZSA9IG5hbWUuaXNvbGF0
ZWRDb3B5KCksIHBvcnQsIHRyYW5zZm9ybSA9IG1ha2VSZWYodHJhbnNmb3JtKV0oYXV0byYgY29u
dGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgIHRyYW5zZm9ybS0+c2V0VHJhbnNmb3JtZXIoZG93bmNh
c3Q8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLmNyZWF0ZVJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKFdURk1vdmUobmFtZSksIHBvcnQpKTsKKyAgICBtX2NvbnRleHRQcm94eS5w
b3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoW3RyYW5zZm9ybSA9IG1ha2VSZWYodHJhbnNmb3Jt
KSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIHBvcnQgPSBXVEZNb3ZlKHBvcnQpXShhdXRv
JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gdHJhbnNmb3JtZXIgPSBkb3du
Y2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuY3JlYXRlUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIoV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShwb3J0KSkpCisgICAgICAg
ICAgICB0cmFuc2Zvcm0tPnNldFRyYW5zZm9ybWVyKCp0cmFuc2Zvcm1lcik7CiAgICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RyYW5zZm9ybSA9IFdURk1vdmUodHJhbnNmb3JtKV0geyB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggMzhhNjIzYTk4ZGJhMzVmZjgwMTNj
ZDZmYzhjODVjODEwMjA1MDIxMS4uYWNiOTZlYWI2YzE5YTJiZWRkZTc5NDU5MWMyYzA0NTc0NTZi
ZGFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC03Nyw5ICs3Nyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJf
UlRDKQotICAgIHZvaWQgYWRkUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYpOwotICAg
IGJvb2wgaGFzUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoY29uc3QgU3RyaW5nJiBuYW1lKSB7IHJl
dHVybiBtX3RyYW5zZm9ybWVycy5jb250YWlucyhuYW1lKTsgfQotICAgIHZvaWQgY3JlYXRlUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIoY29uc3QgU3RyaW5nJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9y
dCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtJik7CisgICAgdm9pZCBjcmVhdGVSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcihSVENSdHBTY3JpcHRUcmFuc2Zvcm0mLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0JiYpOwogICAgIHZvaWQgcG9zdFRhc2tUb1dv
cmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYm
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjA1ZmUxYjNiYzY0ZDJmMjE2OGE5MDliM2Y5NjA2NjIxYjli
YzQxMi4uM2ZmMjhjOGYzYTU2MWUxOGE0YWUzZTYwNTRhOTFjOWE4ODZiOWIxNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTAzLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2NyaXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3Qg
dmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL2F1ZGlvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbDoK
KyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvY29udGV4dC10cmFuc2Zvcm0uanM6CisgICAgICAg
IChNb2NrUlRDUnRwVHJhbnNmb3JtZXIpOgorICAgICAgICAoTW9ja1JUQ1J0cFRyYW5zZm9ybWVy
LnByb3RvdHlwZS5zdGFydCk6CisgICAgICAgIChNb2NrUlRDUnRwVHJhbnNmb3JtZXIucHJvdG90
eXBlLnByb2Nlc3MpOgorICAgICAgICAob25ydGN0cmFuc2Zvcm0pOgorICAgICAgICAqIGh0dHAv
d3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanM6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL25v
LXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0
Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3Nj
cmlwdC10cmFuc2Zvcm0uanM6CisgICAgICAgIChvbnJ0Y3RyYW5zZm9ybS5wcm9jZXNzKToKKyAg
ICAgICAgKG9ucnRjdHJhbnNmb3JtKToKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvc2ZyYW1l
LXRyYW5zZm9ybS5qczoKKyAgICAgICAgKG9ucnRjdHJhbnNmb3JtKToKKyAgICAgICAgKiBodHRw
L3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sOgorCiAyMDIxLTAzLTEyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJUQ0RhdGFD
aGFubmVsIHRyYW5zZmVyYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL2F1ZGlvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YnJ0Yy9hdWRpby1zY3JpcHQtdHJhbnNmb3JtLmh0bWwKaW5kZXggZmI2YWFiNTA5OTQ2ZGZhZGQ4
YzIxYmNkMDUyYTRjMTBlY2M1ZjgxNy4uNTcwNmQyZmY3NDNmZDQ2ZTgxNjhiZGQyMTM5ODYwMmUw
NTBmZGQ3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2F1ZGlvLXNj
cmlwdC10cmFuc2Zvcm0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVk
aW8tc2NyaXB0LXRyYW5zZm9ybS5odG1sCkBAIC0zMyw4ICszMyw4IEBAIHByb21pc2VfdGVzdChh
c3luYyAodGVzdCkgPT4gewogICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CiAKICAgICBsZXQgc2Vu
ZGVyLCByZWNlaXZlcjsKLSAgICBzZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtKHdvcmtlciwgJ01vY2tSVENSdHBUcmFuc2Zvcm0nKTsKLSAgICByZWNlaXZlclRyYW5z
Zm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCAnTW9ja1JUQ1J0cFRyYW5z
Zm9ybScpOworICAgIHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0o
d29ya2VyLCB7bmFtZTonTW9ja1JUQ1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTonYXVkaW8nLCBz
aWRlOidzZW5kZXInfSk7CisgICAgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0
VHJhbnNmb3JtKHdvcmtlciwge25hbWU6J01vY2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6
J2F1ZGlvJywgc2lkZToncmVjZWl2ZXInfSk7CiAKICAgICBwcm9taXNlMSA9IHdhaXRGb3JNZXNz
YWdlKHNlbmRlclRyYW5zZm9ybS5wb3J0LCAic3RhcnRlZCBhdWRpbyBzZW5kZXIiKTsKICAgICBw
cm9taXNlMiA9IHdhaXRGb3JNZXNzYWdlKHJlY2VpdmVyVHJhbnNmb3JtLnBvcnQsICJzdGFydGVk
IGF1ZGlvIHJlY2VpdmVyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJy
dGMvY29udGV4dC10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvY29u
dGV4dC10cmFuc2Zvcm0uanMKaW5kZXggNjEzZjk3MzFjNjE3ZTQ3ZTdlMWU3OTFjNjZkMmU2MTM3
Y2UwYmQwOC4uZGZmMWEyNTcxZDE1MDU5MGFlOWJkYWVmNzViMjNmZjcxNDM0OGIzZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNmb3JtLmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRyYW5zZm9ybS5qcwpAQCAt
MSwyMSArMSwyMSBAQAotY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVuZHMgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIgewotICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICBzdXBlcigp
OworY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIHsKKyAgICBjb25zdHJ1Y3Rvcih0cmFuc2Zv
cm1lcikgewogICAgICAgICB0aGlzLmFza0tleUZyYW1lID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu
cG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gdHJh
bnNmb3JtZXI7CisgICAgICAgIHRoaXMuY29udGV4dC5wb3J0Lm9ubWVzc2FnZSA9IChldmVudCkg
PT4gewogICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJzdGFydEtleUZyYW1lcyIpCiAg
ICAgICAgICAgICAgICAgdGhpcy5hc2tLZXlGcmFtZSA9IHRydWU7CiAgICAgICAgICAgICBlbHNl
IGlmIChldmVudC5kYXRhID09PSAiZW5kS2V5RnJhbWVzIikKICAgICAgICAgICAgICAgICB0aGlz
LmFza0tleUZyYW1lID0gZmFsc2U7CiAgICAgICAgIH07CisgICAgICAgIHRoaXMuc3RhcnQoKTsK
ICAgICB9Ci0gICAgc3RhcnQocmVhZGFibGVTdHJlYW0sIHdyaXRhYmxlU3RyZWFtLCBjb250ZXh0
KQorICAgIHN0YXJ0KCkKICAgICB7Ci0gICAgICAgIHRoaXMucmVhZGVyID0gcmVhZGFibGVTdHJl
YW0uZ2V0UmVhZGVyKCk7Ci0gICAgICAgIHRoaXMud3JpdGVyID0gd3JpdGFibGVTdHJlYW0uZ2V0
V3JpdGVyKCk7CisgICAgICAgIHRoaXMucmVhZGVyID0gdGhpcy5jb250ZXh0LnJlYWRhYmxlLmdl
dFJlYWRlcigpOworICAgICAgICB0aGlzLndyaXRlciA9IHRoaXMuY29udGV4dC53cml0YWJsZS5n
ZXRXcml0ZXIoKTsKICAgICAgICAgdGhpcy5wcm9jZXNzKCk7Ci0gICAgICAgIHRoaXMuY29udGV4
dCA9IGNvbnRleHQ7Ci0gICAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSgic3RhcnRlZCAiICsg
Y29udGV4dC5tZWRpYVR5cGUgKyAiICIgKyBjb250ZXh0LnNpZGUpOworICAgICAgICB0aGlzLmNv
bnRleHQucG9ydC5wb3N0TWVzc2FnZSgic3RhcnRlZCAiICsgdGhpcy5jb250ZXh0Lm9wdGlvbnMu
bWVkaWFUeXBlICsgIiAiICsgdGhpcy5jb250ZXh0Lm9wdGlvbnMuc2lkZSk7CiAgICAgfQogCiAg
ICAgcHJvY2VzcygpCkBAIC0yNiw5ICsyNiw5IEBAIGNsYXNzIE1vY2tSVENSdHBUcmFuc2Zvcm1l
ciBleHRlbmRzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHsKIAogICAgICAgICAgICAgdGhpcy53
cml0ZXIud3JpdGUoY2h1bmsudmFsdWUpOwogCi0gICAgICAgICAgICBpZiAodGhpcy5jb250ZXh0
Lm1lZGlhVHlwZSA9PT0gInZpZGVvIikgeworICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5v
cHRpb25zLm1lZGlhVHlwZSA9PT0gInZpZGVvIikgewogICAgICAgICAgICAgICAgIGlmIChjaHVu
ay52YWx1ZSBpbnN0YW5jZW9mIFJUQ0VuY29kZWRWaWRlb0ZyYW1lKQotICAgICAgICAgICAgICAg
ICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoInZpZGVvIGZyYW1lICIgKyBjaHVuay52YWx1ZS50
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnBvcnQucG9zdE1lc3NhZ2Uo
InZpZGVvIGZyYW1lICIgKyBjaHVuay52YWx1ZS50eXBlKTsKIAogICAgICAgICAgICAgICAgIGlm
ICh0aGlzLmFza0tleUZyYW1lKQogICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQucmVx
dWVzdEtleUZyYW1lKCk7CkBAIC0zOSw1ICszOSw4IEBAIGNsYXNzIE1vY2tSVENSdHBUcmFuc2Zv
cm1lciBleHRlbmRzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHsKICAgICB9CiB9OwogCi1yZWdp
c3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCJNb2NrUlRDUnRwVHJhbnNmb3JtIiwgTW9ja1JU
Q1J0cFRyYW5zZm9ybWVyKTsKK29ucnRjdHJhbnNmb3JtID0gKGV2ZW50KSA9PiB7CisgICAgbmV3
IE1vY2tSVENSdHBUcmFuc2Zvcm1lcihldmVudC50cmFuc2Zvcm1lcik7Cit9OworCiBzZWxmLnBv
c3RNZXNzYWdlKCJyZWdpc3RlcmVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJydGMvbm8tdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25v
LXRyYW5zZm9ybS5qcwppbmRleCA4OTFmNTFhYjEwNGMyMGJjY2QzMWRiNDRkNDU3ZDFlZjgzM2M3
OGI3Li5hYTNmYmM5ODJhZmNjMDlkNDE0ZTBhMmI4YTZjODgzMzI4ZWIyNWE3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8tdHJhbnNmb3JtLmpzCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanMKQEAgLTEgKzEgQEAKLXNlbGYu
cG9zdE1lc3NhZ2Uoc2VsZi5yZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyID8gIm9uIiA6
ICJvZmYiKTsKK3NlbGYucG9zdE1lc3NhZ2Uoc2VsZi5SVENSdHBTY3JpcHRUcmFuc2Zvcm1lciA/
ICJvbiIgOiAib2ZmIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
bm8td2VicnRjLXRyYW5zZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKaW5kZXggMWI1NzE2OTgyMjcz
MjQ3OWFiNmYyMWI5YTJjOTU0MTc5YWQ1YTkwZS4uZjViZDRjMTZmODM4YjhhZTBkY2JjYmQ1OTc0
N2NlZDRjMDg4ZmU0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25v
LXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAK
IAotUEFTUyByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2VydGFibGUgc3Ry
ZWFtIGZsYWcgaXMgb24KLVBBU1Mgbm8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBp
ZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9mZgorUEFTUyBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uCitQQVNTIG5vIFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyIGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb2ZmCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sCmlu
ZGV4IDYxOTk4MTMzZWMxMTRmOGFkNmY2MzUxNGE0MDNkMzI3YzljZTAzOGIuLjg4NjkzN2U2NDdh
ZGNiOGM1OTEwZTEyMjJiOTcwMTcxZTRlNjEwMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbApAQCAtMTQsNyArMTQsNyBA
QCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCB3b3JrZXIgPSBuZXcg
V29ya2VyKCduby10cmFuc2Zvcm0uanMnKTsKICAgICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0gKGV2ZW50KSA9PiByZXNvbHZlKGV2
ZW50LmRhdGEpKTsKICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICJvbiIpOwotfSwgInJlZ2lzdGVy
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvbiIp
OworfSwgIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcg
aXMgb24iKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCkBAIC0yMyw3ICsyMyw3IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkg
PT4gewogICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoJ25vLXRyYW5zZm9ybS5qcycpOwog
ICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHdvcmtlci5vbm1l
c3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0YSkpOwogICAgIGFzc2VydF9lcXVh
bHMoZGF0YSwgIm9mZiIpOwotfSwgIm5vIHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIg
aWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYiKTsKK30sICJubyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9mZiIpOwogICAgICAgICA8
L3NjcmlwdD4KICAgICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvc2NyaXB0LXRyYW5zZm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9zY3JpcHQtdHJhbnNmb3JtLmpzCmluZGV4IDZiMDc2ZGU4MzNmMWJmYzUzZmExNTQz
ZWFmOTBmOWY2MGUwM2YyZDEuLjkwMWU2NzY4MThjMWE4MjkyZWUwZGU3YWNlYzAzYWQzY2Q5M2Rl
NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zY3JpcHQtdHJhbnNm
b3JtLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zY3JpcHQtdHJhbnNmb3Jt
LmpzCkBAIC0xLDMwICsxLDI1IEBACi1jbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5k
cyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMucG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHRoaXMu
cG9ydC5wb3N0TWVzc2FnZShldmVudC5kYXRhKTsKLSAgICB9Ci0gICAgc3RhcnQocmVhZGFibGVT
dHJlYW0sIHdyaXRhYmxlU3RyZWFtKQotICAgIHsKLSAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgi
c3RhcnRlZCIpOwotICAgICAgICB0aGlzLnJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRl
cigpOwotICAgICAgICB0aGlzLndyaXRlciA9IHdyaXRhYmxlU3RyZWFtLmdldFdyaXRlcigpOwot
ICAgICAgICB0aGlzLnByb2Nlc3MoKTsKLSAgICB9CitvbnJ0Y3RyYW5zZm9ybSA9IChldmVudCkg
PT4geworICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gZXZlbnQudHJhbnNmb3JtZXI7CisgICAgdHJh
bnNmb3JtZXIucG9ydC5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHRyYW5zZm9ybWVyLnBvcnQucG9z
dE1lc3NhZ2UoZXZlbnQuZGF0YSk7CiAKLSAgICBwcm9jZXNzKCkKKyAgICBzZWxmLnBvc3RNZXNz
YWdlKCJzdGFydGVkIik7CisgICAgdHJhbnNmb3JtZXIucmVhZGVyID0gdHJhbnNmb3JtZXIucmVh
ZGFibGUuZ2V0UmVhZGVyKCk7CisgICAgdHJhbnNmb3JtZXIud3JpdGVyID0gdHJhbnNmb3JtZXIu
d3JpdGFibGUuZ2V0V3JpdGVyKCk7CisKKyAgICBmdW5jdGlvbiBwcm9jZXNzKHRyYW5zZm9ybWVy
KQogICAgIHsKLSAgICAgICAgdGhpcy5yZWFkZXIucmVhZCgpLnRoZW4oY2h1bmsgPT4geworICAg
ICAgICB0cmFuc2Zvcm1lci5yZWFkZXIucmVhZCgpLnRoZW4oY2h1bmsgPT4gewogICAgICAgICAg
ICAgaWYgKGNodW5rLmRvbmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
aWYgKGNodW5rLnZhbHVlIGluc3RhbmNlb2YgUlRDRW5jb2RlZFZpZGVvRnJhbWUpCiAgICAgICAg
ICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgidmlkZW8gY2h1bmsiKTsKICAgICAgICAgICAgIGVs
c2UgaWYgKGNodW5rLnZhbHVlIGluc3RhbmNlb2YgUlRDRW5jb2RlZEF1ZGlvRnJhbWUpCiAgICAg
ICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgiYXVkaW8gY2h1bmsiKTsKLSAgICAgICAgICAg
IHRoaXMud3JpdGVyLndyaXRlKGNodW5rLnZhbHVlKTsKLSAgICAgICAgICAgIHRoaXMucHJvY2Vz
cygpOworICAgICAgICAgICAgdHJhbnNmb3JtZXIud3JpdGVyLndyaXRlKGNodW5rLnZhbHVlKTsK
KyAgICAgICAgICAgIHByb2Nlc3ModHJhbnNmb3JtZXIpOwogICAgICAgICB9KTsKICAgICB9Ci19
OwogCi1yZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKCJNb2NrUlRDUnRwVHJhbnNmb3Jt
IiwgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyKTsKKyAgICBwcm9jZXNzKHRyYW5zZm9ybWVyKTsKK307
CiBzZWxmLnBvc3RNZXNzYWdlKCJyZWdpc3RlcmVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmpzCmluZGV4IDRjNzA4MzU1ZDk0NTEzZDMyZDgy
NjRiOWViZjA0NTA1YzYyYzc1MDAuLjYxN2NmMGEzOGFhMDg1OWZhNmVlOGFmMDFmZGFiNWY5NGI1
YmViMTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJh
bnNmb3JtLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNm
b3JtLmpzCkBAIC0xLDE0ICsxLDcgQEAKLWNsYXNzIFNGcmFtZVJUQ1J0cFRyYW5zZm9ybWVyIGV4
dGVuZHMgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewotICAgIGNvbnN0cnVjdG9yKCkgewotICAg
ICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLnNmcmFtZVRyYW5zZm9ybSA9IG5ldyBTRnJhbWVU
cmFuc2Zvcm0oeyByb2xlIDogImRlY3J5cHQiLCBhdXRoZW50aWNhdGlvblNpemU6ICIxMCIsIGNv
bXBhdGliaWxpdHlNb2RlOiAiSDI2NCIgfSk7Ci0gICAgICAgIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2
NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBb
ImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pLnRoZW4oa2V5ID0+IHRoaXMuc2ZyYW1lVHJhbnNm
b3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KSk7Ci0gICAgfQotICAgIHN0YXJ0KHJlYWRhYmxlU3Ry
ZWFtLCB3cml0YWJsZVN0cmVhbSkKLSAgICB7Ci0gICAgICAgIHJlYWRhYmxlU3RyZWFtLnBpcGVU
aHJvdWdoKHRoaXMuc2ZyYW1lVHJhbnNmb3JtKS5waXBlVG8od3JpdGFibGVTdHJlYW0pOwotICAg
IH0KLX07Ci0KLXJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoIlNGcmFtZVJUQ1J0cFRy
YW5zZm9ybSIsIFNGcmFtZVJUQ1J0cFRyYW5zZm9ybWVyKTsKK29ucnRjdHJhbnNmb3JtID0gKGV2
ZW50KSA9PiB7CisgICAgY29uc3Qgc2ZyYW1lVHJhbnNmb3JtID0gbmV3IFNGcmFtZVRyYW5zZm9y
bSh7IHJvbGUgOiAiZGVjcnlwdCIsIGF1dGhlbnRpY2F0aW9uU2l6ZTogIjEwIiwgY29tcGF0aWJp
bGl0eU1vZGU6ICJIMjY0IiB9KTsKKyAgICBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwg
bmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5
LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRz
IiwgImRlcml2ZUtleSJdKS50aGVuKGtleSA9PiBzZnJhbWVUcmFuc2Zvcm0uc2V0RW5jcnlwdGlv
bktleShrZXkpKTsKKyAgICBjb25zdCB0cmFuc2Zvcm1lciA9IGV2ZW50LnRyYW5zZm9ybWVyOwor
ICAgIHRyYW5zZm9ybWVyLnJlYWRhYmxlLnBpcGVUaHJvdWdoKHNmcmFtZVRyYW5zZm9ybSkucGlw
ZVRvKHRyYW5zZm9ybWVyLndyaXRhYmxlKTsKK30KIHNlbGYucG9zdE1lc3NhZ2UoInJlZ2lzdGVy
ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3Jp
cHQtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2Ny
aXB0LXRyYW5zZm9ybS5odG1sCmluZGV4IDYyOTNkNTdjNTkwYzdjOGRjYTQyNWJmY2ZhN2UyMzg3
NjNiZjA2YzIuLjRmNTJhYWI3YjkyMDI1ZWY4ODZlM2QyY2U0N2UyMWI1MTE4MDQ5YmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3JpcHQtdHJhbnNmb3Jt
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFu
c2Zvcm0uaHRtbApAQCAtMzMsOCArMzMsOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+
IHsKICAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pOwogCiAgICAgbGV0IHNlbmRlciwgcmVjZWl2ZXI7
Ci0gICAgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIs
ICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7Ci0gICAgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwgJ01vY2tSVENSdHBUcmFuc2Zvcm0nKTsKKyAgICBz
ZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwge25hbWU6
J01vY2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6J3ZpZGVvJywgc2lkZTonc2VuZGVyJ30p
OworICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3Jr
ZXIsIHtuYW1lOidNb2NrUlRDUnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOid2aWRlbycsIHNpZGU6
J3JlY2VpdmVyJ30pOwogCiAgICAgcHJvbWlzZTEgPSB3YWl0Rm9yTWVzc2FnZShzZW5kZXJUcmFu
c2Zvcm0ucG9ydCwgInN0YXJ0ZWQgdmlkZW8gc2VuZGVyIik7CiAgICAgcHJvbWlzZTIgPSB3YWl0
Rm9yTWVzc2FnZShyZWNlaXZlclRyYW5zZm9ybS5wb3J0LCAic3RhcnRlZCB2aWRlbyByZWNlaXZl
ciIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423080</attachid>
            <date>2021-03-12 13:48:13 -0800</date>
            <delta_ts>2021-03-12 14:55:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222982-20210313064811.patch</filename>
            <type>text/plain</type>
            <size>78484</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM0OTI3NmU4NmUyNjFm
NjZiODhlYTFhYjE5NGUzYTNhZTJjNGQ3MS4uODcyZTQ4YTFlZmUwODM4YWNkMjQyYzZkZTVjYzMw
MjVmNGVjZThjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIxLTAzLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE1vdmUgZnJvbSBBdWRpb1dvcmts
ZXQgbW9kZWwgdG8gYW4gZXZlbnQgYmFzZWQgbW9kZWwgYXMgcGVyIGxhdGVzdCBzcGVjaWZpY2F0
aW9uLgorICAgICAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBjb25jZW50cmF0ZXMgYWxsIHRo
ZSBBUEkgYW5kIGlzIGV4cG9zZWQgdG8gd29ya2VyIHVzaW5nIGEgbmV3IHJ0Y3RyYW5zZm9ybSBl
dmVudC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG9wdGlvbnMgcGFyYW1ldGVyIHByb3ZpZGVk
IGluIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6UlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnJlYWRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Ojp3cml0YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnJlcXVl
c3RLZXlGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6
b3B0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0
YXJ0UGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOiBSZW1vdmVkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1RyYW5zZm9ybUV2ZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcik6CisgICAg
ICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisKIDIwMjEt
MDMtMTIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBVc2UgcmVmcHRy
IHRvIFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAxYTA2YjBmMzRkNzE4YTg2NTRkNDA3MWFkNzY3ZjhiN2EzNGNiZDc0Li5mMjIxNGU4NWJhOThh
YmY2YTI2NDlmNmUzZTU1NWJjNjExNzNkMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDA3
LDggKzQwNyw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbAotICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwKLSAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2VuZGVyK1RyYW5zZm9ybS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNlbmRlci5pZGwKQEAgLTQyMSw2ICs0MTksNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZH
X0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2lnbmFsaW5nU3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1RyYWNrRXZlbnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENUcmFuc2Zvcm1FdmVudC5pZGwKIAogICAgIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCAwNmFkOGZlYjA2OGZiOWVkMDkzYmQzOGM0MWJmMzk5M2U1MmNjNzNk
Li5hZDllOTY2N2YwYTY4NmIxNjk1YzcwOGZhMDg4NTE1MzQwM2NhZTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0OSw4ICsyNDks
NiBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
Y3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaWRsCi0kKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRsCi0kKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZFBh
cmFtZXRlcnMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNl
bmRlcitUcmFuc2Zvcm0uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNlbmRlci5pZGwKQEAgLTI2NCw2ICsyNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhY2tFdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYWNmM2Qw
NjJjMGE2OTNkOTk0MTMwOGM1MmIzMjM4OGE3ODg2MTg1Yy4uYTY0ZTdlNzljYWMzNTZjMmQzNzJj
YWZkYmY1YTNhOTNiZTA5ODAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE3MzQsMTAgKzE3MzQsNiBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybVBy
b3ZpZGVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1Qcm92aWRlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuY3BwCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Q29uc3RydWN0b3IuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuY3BwCi0kKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
dGV4dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JU
Q1J0cFNlbmRQYXJhbWV0ZXJzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNSVENSdHBTZW5kUGFyYW1ldGVycy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1J0cFNlbmRlcitUcmFuc2Zvcm0uY3BwCkBA
IC0xNzY0LDYgKzE3NjAsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1JUQ1N0YXRzUmVwb3J0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTdGF0c1JlcG9ydC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1RyYWNrRXZlbnQuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1RyYWNrRXZlbnQuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENUcmFuc2Zvcm1F
dmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UlRDVHJhbnNmb3JtRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2UrQ1NTT01WaWV3LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2YzMmViMWRlZDc3OThlNDQyNjhiZGNlYzZkMmNhYjg5
N2RjMmMxYS4uNTYwYjhiN2FhMDU3ZjUyODQyYmU1M2QwMzhkMGY0ZjUyNDgzMzlhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNzYsOCArMjc2LDYgQEAgSlNfQklORElOR19J
RExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXJDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbi5pZGwgXApAQCAtMjg3LDYg
KzI4NSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1NpZ25hbGluZ1N0YXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1RyYWNrRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbi5pZGwgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm0uY3BwCmluZGV4IGYyNjlkMWViZDc3ZWQ5YTk2ZmU1NDkzNGYxMzM4MDI3NWFi
OWFhYTEuLjExN2U0ZjJhNTg5ZmM1ZWJlNWVjNjdjMjYwZmE2M2U5ZmI2NzIyZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJNZXNzYWdlQ2hhbm5lbC5oIgogI2luY2x1ZGUgIlJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIgpAQCAt
NDEsMjIgKzQyLDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSk7CiAKLUV4Y2VwdGlvbk9yPFJlZjxSVENS
dHBTY3JpcHRUcmFuc2Zvcm0+PiBSVENSdHBTY3JpcHRUcmFuc2Zvcm06OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrZXImIHdvcmtlciwgU3RyaW5nJiYgbmFtZSkK
K0V4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm0+PiBSVENSdHBTY3JpcHRUcmFu
c2Zvcm06OmNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgV29ya2VyJiB3b3JrZXIs
IEpTQzo6SlNWYWx1ZSBvcHRpb25zKQogewotICAgIGlmICghd29ya2VyLmhhc1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKG5hbWUpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJObyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciB3YXMgcmVnaXN0ZXJlZCB3aXRo
IHRoaXMgbmFtZSJfcyB9OwotCiAgICAgaWYgKCF3b3JrZXIuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJXb3Jr
ZXIgZnJhbWUgaXMgZGV0YWNoZWQiX3MgfTsKIAorICAgIGF1dG8qIGNvbnRleHQgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZzdGF0ZSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkludmFsaWQgY29udGV4dCJfcyB9OworCisgICAgYXV0byBzZXJpYWxpemVk
T3B0aW9ucyA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHN0YXRlLCBvcHRpb25zKTsK
KyAgICBpZiAoIXNlcmlhbGl6ZWRPcHRpb25zKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
RXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworCiAgICAgYXV0byBtZXNzYWdlQ2hhbm5lbCA9IE1l
c3NhZ2VDaGFubmVsOjpjcmVhdGUoKndvcmtlci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwog
ICAgIGF1dG8gdHJhbnNmb3JtTWVzc2FnZVBvcnQgPSBtZXNzYWdlQ2hhbm5lbC0+cG9ydDEoKTsK
ICAgICBhdXRvIHRyYW5zZm9ybWVyTWVzc2FnZVBvcnQgPSBtZXNzYWdlQ2hhbm5lbC0+cG9ydDIo
KTsKIAotICAgIGF1dG8gdHJhbnNmb3JtID0gYWRvcHRSZWYoKm5ldyBSVENSdHBTY3JpcHRUcmFu
c2Zvcm0oY29udGV4dCwgbWFrZVJlZih3b3JrZXIpLCBtYWtlUmVmKCp0cmFuc2Zvcm1NZXNzYWdl
UG9ydCkpKTsKKyAgICBhdXRvIHRyYW5zZm9ybSA9IGFkb3B0UmVmKCpuZXcgUlRDUnRwU2NyaXB0
VHJhbnNmb3JtKCpjb250ZXh0LCBtYWtlUmVmKHdvcmtlciksIG1ha2VSZWYoKnRyYW5zZm9ybU1l
c3NhZ2VQb3J0KSkpOwogICAgIHRyYW5zZm9ybS0+c3VzcGVuZElmTmVlZGVkKCk7CiAKLSAgICB3
b3JrZXIuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIobmFtZSwgdHJhbnNmb3JtZXJNZXNz
YWdlUG9ydC0+ZGlzZW50YW5nbGUoKSwgdHJhbnNmb3JtKTsKKyAgICB3b3JrZXIuY3JlYXRlUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIodHJhbnNmb3JtLCBzZXJpYWxpemVkT3B0aW9ucy5yZWxlYXNl
Tm9uTnVsbCgpLCB0cmFuc2Zvcm1lck1lc3NhZ2VQb3J0LT5kaXNlbnRhbmdsZSgpKTsKIAogICAg
IHJldHVybiB0cmFuc2Zvcm07CiB9CkBAIC03MywyMyArNzksMTYgQEAgUlRDUnRwU2NyaXB0VHJh
bnNmb3JtOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtKCkKICAgICBjbGVhcigpOwogfQogCi12b2lk
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybTo6c2V0VHJhbnNmb3JtZXIoUmVmUHRyPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyPiYmIHRyYW5zZm9ybWVyKQordm9pZCBSVENSdHBTY3JpcHRUcmFuc2Zvcm06
OnNldFRyYW5zZm9ybWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lcikKIHsK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAoIXRyYW5zZm9ybWVyKSB7Ci0g
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgq
dGhpcywgVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBFcnJvckV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQsICJBbiBlcnJvciB3YXMgdGhyb3duIGZyb20gUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIgY29uc3RydWN0b3IiX3MsIHsgfSwgMCwgMCwgeyB9KSk7Ci0gICAgICAgIH0p
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgewogICAgICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fdHJhbnNmb3JtZXJMb2NrKTsKICAgICAgICAgQVNTRVJUKCFtX2lzVHJhbnNm
b3JtZXJJbml0aWFsaXplZCk7CiAgICAgICAgIG1faXNUcmFuc2Zvcm1lckluaXRpYWxpemVkID0g
dHJ1ZTsKLSAgICAgICAgbV90cmFuc2Zvcm1lciA9IG1ha2VXZWFrUHRyKHRyYW5zZm9ybWVyLmdl
dCgpKTsKKyAgICAgICAgbV90cmFuc2Zvcm1lciA9IG1ha2VXZWFrUHRyKHRyYW5zZm9ybWVyKTsK
ICAgICB9Ci0gICAgdHJhbnNmb3JtZXItPnN0YXJ0UGVuZGluZ0FjdGl2aXR5KCk7CisgICAgdHJh
bnNmb3JtZXIuc3RhcnRQZW5kaW5nQWN0aXZpdHkoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChtX2JhY2tlbmQpCiAgICAgICAgICAgICBzZXR1cFRyYW5zZm9ybWVyKG1fYmFja2VuZC5y
ZWxlYXNlTm9uTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5oCmluZGV4IGVjNTQ2OGFiZWEwYjAx
NzkyMzAwZDE1MzU5NDQ2ZDVlMzlhMmFkOGIuLmViMjc1NzJlNjBhMmRhZGEzMTkwODFkZWQyMWY0
YThhMzk3YmFjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KIApAQCAtNDUsMTIgKzQ2LDEyIEBAIGNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bSBmaW5hbAogICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoUlRDUnRwU2NyaXB0VHJhbnNmb3JtKTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybT4+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya2VyJiwgU3RyaW5nJiYgbmFtZSk7CisgICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm0+PiBjcmVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCYsIFdvcmtlciYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgflJUQ1J0cFNjcmlw
dFRyYW5zZm9ybSgpOwogCiAgICAgTWVzc2FnZVBvcnQmIHBvcnQoKSB7IHJldHVybiBtX3BvcnQu
Z2V0KCk7IH0KIAotICAgIHZvaWQgc2V0VHJhbnNmb3JtZXIoUmVmUHRyPFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyPiYmKTsKKyAgICB2b2lkIHNldFRyYW5zZm9ybWVyKFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyJik7CiAKICAgICBib29sIGlzQXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQXR0
YWNoZWQ7IH0KICAgICB2b2lkIGluaXRpYWxpemVCYWNrZW5kRm9yUmVjZWl2ZXIoUlRDUnRwVHJh
bnNmb3JtQmFja2VuZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uaWRsCmluZGV4IGQ2NmE5Yjk1MzFj
MTc4MjFjNjg5OWI2ZjYwMGZkNTczMGQ5ZmU5OWQuLmNmNDQ3MjJlNzMyMWRiZTY2NDgzODExYTQ4
ZTkxMWI1Y2ZjZjYyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5pZGwKQEAgLTMwLDcgKzMwLDcg
QEAKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBd
IGludGVyZmFjZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0gOiBFdmVudFRhcmdldCB7Ci0gICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKFdvcmtlciB3b3JrZXIs
IERPTVN0cmluZyBuYW1lKTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSBjb25zdHJ1Y3Rv
cihXb3JrZXIgd29ya2VyLCBhbnkgb3B0aW9ucyk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
TWVzc2FnZVBvcnQgcG9ydDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
aWRsCmluZGV4IGQ2M2JlOGFkYzMwMjdlNTc4ZjY2Y2Y0YzU5YzFiNTc0ZDZmZTI2MzUuLjQ3NmEz
MjQxYTdiODI3NTVmNjFiNjZmODkyODRkZjdkNTliMjRhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtUHJvdmlkZXIu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtUHJvdmlkZXIuaWRsCkBAIC0yNCw1ICsyNCw1IEBACiAgKi8KIAogaW50ZXJmYWNl
IG1peGluIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybVByb3ZpZGVyIHsKLSAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIHVuZGVmaW5lZCByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKERPTVN0cmlu
ZyBuYW1lLCBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yIHByb2Nlc3NvckNvbnN0
cnVjdG9yKTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucnRjdHJhbnNmb3JtOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggNGYyMTE1N2RkZDBiOThiNDU2ZGY0N2Jl
NDUxZTk4M2EyYjQxZmQzMy4uMTAzMTdjZGQ5NTA0N2E4NjQxMGJmNjg0NTE3NDZmYTNiZDE5MTA5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTMxLDI5ICszMSwzOCBAQAogI2lu
Y2x1ZGUgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNSVENFbmNv
ZGVkQXVkaW9GcmFtZS5oIgogI2luY2x1ZGUgIkpTUlRDRW5jb2RlZFZpZGVvRnJhbWUuaCIKLSNp
bmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oIgogI2luY2x1ZGUgIlJU
Q1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCiAj
aW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbS5oIgogI2luY2x1ZGUgIldyaXRh
YmxlU3RyZWFtU2luay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPFJl
ZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK0V4Y2VwdGlvbk9yPFJlZjxSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBvcHRpb25zLCBSZWY8TWVzc2FnZVBvcnQ+JiYgcG9ydCkKIHsKLSAgICBhdXRvIHBvcnQgPSBk
b3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdS
VENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKTsKLSAgICBpZiAoIXBvcnQpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJObyBwZW5kaW5nIGNvbnN0cnVjdGlvbiBkYXRhIGZv
ciB0aGlzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIl9zIH07CisgICAgaWYgKCFjb250ZXh0Lmds
b2JhbE9iamVjdCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKIAotICAgIGF1dG8gdHJhbnNmb3JtZXIgPSBhZG9wdFJlZigqbmV3IFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyKGNvbnRleHQsIHBvcnQucmVsZWFzZU5vbk51bGwoKSkpOworICAgIGF1dG8m
IGdsb2JhbE9iamVjdCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQu
Z2xvYmFsT2JqZWN0KCkpOworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0
LnZtKCkpOworICAgIGF1dG8gcmVhZGFibGVTb3VyY2UgPSBTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFkYWJsZSA9IFJlYWRhYmxlU3RyZWFtOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChyZWFk
YWJsZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHJlYWRhYmxlLnJlbGVhc2VFeGNl
cHRpb24oKTsKKworICAgIGF1dG8gdHJhbnNmb3JtZXIgPSBhZG9wdFJlZigqbmV3IFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyKGNvbnRleHQsIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocG9ydCks
IHJlYWRhYmxlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHJlYWRhYmxlU291cmNlKSkp
OwogICAgIHRyYW5zZm9ybWVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gdHJhbnNm
b3JtZXI7CiB9CiAKLVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVzc2FnZVBvcnQ+JiYg
cG9ydCkKK1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIG9wdGlvbnMsIFJlZjxNZXNzYWdlUG9ydD4mJiBwb3J0LCBSZWY8UmVhZGFibGVTdHJlYW0+
JiYgcmVhZGFibGUsIFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4mJiByZWFkYWJsZVNv
dXJjZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKKyAgICAsIG1fb3B0aW9ucyhX
VEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9wb3J0KFdURk1vdmUocG9ydCkpCisgICAgLCBtX3Jl
YWRhYmxlU291cmNlKFdURk1vdmUocmVhZGFibGVTb3VyY2UpKQorICAgICwgbV9yZWFkYWJsZShX
VEZNb3ZlKHJlYWRhYmxlKSkKIHsKIH0KIApAQCAtNjEsNjggKzcwLDUxIEBAIFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQogewogfQogCi1SZWZQdHI8
U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFy
dFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkKK1JlYWRhYmxlU3RyZWFt
JiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcjo6cmVhZGFibGUoKQogewotICAgIGF1dG8gY2FsbGJh
Y2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spOwotICAgIGlmICghY2FsbGJhY2spCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgYXV0byYgY29udGV4dCA9IGRvd25jYXN0PFdvcmtlckdsb2Jh
bFNjb3BlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjb250ZXh0Lmdsb2JhbE9iamVj
dCgpKTsKKyAgICByZXR1cm4gbV9yZWFkYWJsZS5nZXQoKTsKK30KIAotICAgIGF1dG8mIHZtID0g
Z2xvYmFsT2JqZWN0LnZtKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7Ci0KLSAg
ICBhdXRvIHJlYWRhYmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6
OmNyZWF0ZSgpOwotICAgIGF1dG8gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJsZVN0cmVhbTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgcmVhZGFibGVTdHJlYW1Tb3VyY2UuY29weVJlZigpKTsKLSAgICBp
ZiAocmVhZGFibGVTdHJlYW0uaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgYXV0byB3cml0YWJsZVN0cmVhbSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OmNyZWF0ZShbYmFja2VuZCA9IG1h
a2VSZWYoYmFja2VuZCldKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9y
PHZvaWQ+IHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2Jq
ZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFs
T2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExJ
bnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRlcmZhY2U8UlRDRW5jb2RlZFZp
ZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0KLSAgICAgICAgaWYgKHNjb3BlLmV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0
aW9uRXJyb3IgfTsKLQotICAgICAgICBhdXRvIHJ0Y0ZyYW1lID0gV1RGOjpzd2l0Y2hPbihmcmFt
ZSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkQXVkaW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7Ci0gICAgICAgIH0sIFsmXShSZWZQ
dHI8UlRDRW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIG1h
a2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOwotICAgICAgICB9KTsKLSAgICAgICAgYmFja2VuZC0+
cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUocnRjRnJhbWUuZ2V0KCkpOwotICAgICAgICByZXR1cm4g
eyB9OwotICAgIH0pKTsKLSAgICBpZiAod3JpdGFibGVTdHJlYW0uaGFzRXhjZXB0aW9uKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgLy8gQ2FsbCBzdGFydCBjYWxsYmFjay4KLSAg
ICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQodG9KU05l
d2x5Q3JlYXRlZCgmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwotICAgIGFyZ3MuYXBwZW5kKHRvSlNOZXdseUNyZWF0ZWQo
Jmdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgd3JpdGFibGVTdHJlYW0ucmVsZWFzZVJldHVy
blZhbHVlKCkpKTsKLSAgICBhcmdzLmFwcGVuZCh0b0pTTmV3bHlDcmVhdGVkKCZnbG9iYWxPYmpl
Y3QsICZnbG9iYWxPYmplY3QsIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dDo6Y3JlYXRl
KG1ha2VSZWYoYmFja2VuZCkpKSk7Ci0KLSAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0
dXJuZWRFeGNlcHRpb247Ci0gICAgY2FsbGJhY2stPmludm9rZUNhbGxiYWNrKEpTQzo6anNVbmRl
ZmluZWQoKSwgYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBKU0M6
OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJzdGFydCIpLCByZXR1cm5lZEV4Y2VwdGlvbik7
Ci0gICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBpbiBjYXNlIG9mIGV4Y2VwdGlvbj8gV2Ugc2hv
dWxkIGF0IGxlYXN0IGxvZyBlcnJvcnMuCi0KLSAgICByZXR1cm4gcmVhZGFibGVTdHJlYW1Tb3Vy
Y2U7CitFeGNlcHRpb25PcjxSZWY8V3JpdGFibGVTdHJlYW0+PiBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcjo6d3JpdGFibGUoKQoreworICAgIGlmICghbV93cml0YWJsZSkgeworICAgICAgICBhdXRv
KiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CisgICAgICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+Z2xvYmFsT2JqZWN0
KCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsK
KworICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihjb250ZXh0LT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8gd3JpdGFibGVP
ckV4Y2VwdGlvbiA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVX
cml0YWJsZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtYWtlUmVmKCp0aGlzKV0o
YXV0byYgY29udGV4dCwgYXV0byB2YWx1ZSkgLT4gRXhjZXB0aW9uT3I8dm9pZD4geworICAgICAg
ICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7CisKKyAg
ICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52
bSgpKTsKKyAgICAgICAgICAgIGF1dG8gZnJhbWUgPSBjb252ZXJ0PElETFVuaW9uPElETEludGVy
ZmFjZTxSVENFbmNvZGVkQXVkaW9GcmFtZT4sIElETEludGVyZmFjZTxSVENFbmNvZGVkVmlkZW9G
cmFtZT4+PihnbG9iYWxPYmplY3QsIHZhbHVlKTsKKworICAgICAgICAgICAgaWYgKHNjb3BlLmV4
Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4
Y2VwdGlvbkVycm9yIH07CisKKyAgICAgICAgICAgIGF1dG8gcnRjRnJhbWUgPSBXVEY6OnN3aXRj
aE9uKGZyYW1lLCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7CisgICAgICAg
ICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbWFrZVJlZih2YWx1ZS0+cnRjRnJhbWUoKSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybWVyLT5tX2JhY2tlbmQtPnByb2Nlc3NUcmFuc2Zv
cm1lZEZyYW1lKHJ0Y0ZyYW1lLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAg
ICAgIH0pKTsKKyAgICAgICAgaWYgKHdyaXRhYmxlT3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkp
CisgICAgICAgICAgICByZXR1cm4gd3JpdGFibGVPckV4Y2VwdGlvbjsKKyAgICAgICAgbV93cml0
YWJsZSA9IHdyaXRhYmxlT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgfQor
ICAgIHJldHVybiBtYWtlUmVmKCptX3dyaXRhYmxlKTsKIH0KIAogdm9pZCBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcjo6c3RhcnQoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYgYmFja2VuZCkK
IHsKLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtU291cmNlID0gc3RhcnRTdHJlYW1zKGJhY2tlbmQu
Z2V0KCkpOwotICAgIGlmICghcmVhZGFibGVTdHJlYW1Tb3VyY2UpCi0gICAgICAgIHJldHVybjsK
LQogICAgIG1fYmFja2VuZCA9IFdURk1vdmUoYmFja2VuZCk7CiAKICAgICBhdXRvJiBjb250ZXh0
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgIG1fYmFja2VuZC0+c2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3JlYWRhYmxl
U3RyZWFtU291cmNlID0gbWFrZVdlYWtQdHIocmVhZGFibGVTdHJlYW1Tb3VyY2UuZ2V0KCkpLCBp
c0F1ZGlvID0gbV9iYWNrZW5kLT5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5k
OjpNZWRpYVR5cGU6OkF1ZGlvLCB0aHJlYWQgPSBtYWtlUmVmKGNvbnRleHQudGhyZWFkKCkpXShh
dXRvJiYgZnJhbWUpIG11dGFibGUgewotICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3JlYWRhYmxlU3RyZWFtU291cmNlLCBpc0F1ZGlvLCBmcmFtZSA9IFdURk1vdmUo
ZnJhbWUpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmICghcmVhZGFi
bGVTdHJlYW1Tb3VyY2UpCisgICAgbV9iYWNrZW5kLT5zZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxs
YmFjayhbcmVhZGFibGVTb3VyY2UgPSBtYWtlV2Vha1B0cihtX3JlYWRhYmxlU291cmNlLmdldCgp
KSwgaXNBdWRpbyA9IG1fYmFja2VuZC0+bWVkaWFUeXBlKCkgPT0gUlRDUnRwVHJhbnNmb3JtQmFj
a2VuZDo6TWVkaWFUeXBlOjpBdWRpbywgdGhyZWFkID0gbWFrZVJlZihjb250ZXh0LnRocmVhZCgp
KV0oYXV0byYmIGZyYW1lKSBtdXRhYmxlIHsKKyAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFtyZWFkYWJsZVNvdXJjZSwgaXNBdWRpbywgZnJhbWUgPSBXVEZNb3ZlKGZy
YW1lKV0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoIXJlYWRhYmxl
U291cmNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgYXV0byYgZ2xv
YmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9i
YWxPYmplY3QoKSk7CkBAIC0xMzAsNyArMTIyLDcgQEAgdm9pZCBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcjo6c3RhcnQoUmVmPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYgYmFja2VuZCkKICAgICAg
ICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCiAgICAgICAgICAgICBhdXRvIHZh
bHVlID0gaXNBdWRpbyA/IHRvSlMoJmdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgUlRDRW5j
b2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZShXVEZNb3ZlKGZyYW1lKSkpIDogdG9KUygmZ2xvYmFsT2Jq
ZWN0LCAmZ2xvYmFsT2JqZWN0LCBSVENFbmNvZGVkVmlkZW9GcmFtZTo6Y3JlYXRlKFdURk1vdmUo
ZnJhbWUpKSk7Ci0gICAgICAgICAgICByZWFkYWJsZVN0cmVhbVNvdXJjZS0+ZW5xdWV1ZSh2YWx1
ZSk7CisgICAgICAgICAgICByZWFkYWJsZVNvdXJjZS0+ZW5xdWV1ZSh2YWx1ZSk7CiAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgIH0pOwogfQpAQCAtMTQzLDYg
KzEzNSwyMyBAQCB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjbGVhcigpCiAgICAgc3Rv
cFBlbmRpbmdBY3Rpdml0eSgpOwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcjo6cmVxdWVzdEtleUZyYW1lKCkKK3sKKyAgICBpZiAoIW1fYmFja2VuZCkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm90IGF0dGFjaGVk
IHRvIGEgcmVjZWl2ZXIgb3Igc2VuZGVyIl9zIH07CisKKyAgICBpZiAobV9iYWNrZW5kLT5tZWRp
YVR5cGUoKSAhPSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU6OlZpZGVvKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgcmVxdWVz
dCBrZXkgZnJhbWUgb24gYXVkaW8gc2VuZGVyIl9zIH07CisKKyAgICBtX2JhY2tlbmQtPnJlcXVl
c3RLZXlGcmFtZSgpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQzo6SlNWYWx1ZSBSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lcjo6b3B0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIG1fb3B0aW9ucy0+ZGVzZXJpYWxpemUoZ2xvYmFsT2JqZWN0LCAm
Z2xvYmFsT2JqZWN0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKaW5kZXggNGMxYmJlMGFjNzFh
MTAzZWFhMzAyNjMxMWNlYWM2NzZjNGIyZDQyMC4uNzZhNGRmMThmYzBmNTQwNTQ0MTBhYjMyNmZj
MTM0NDQ4NWM4ZjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaApAQCAtMjksNDggKzI5LDU3
IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgotI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisjaW5jbHVkZSAiUlRDUnRwVHJhbnNm
b3JtQmFja2VuZC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVzc2FnZVBvcnQ7CitjbGFzcyBSZWFkYWJsZVN0
cmVhbTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVhbTsKIAogY2xhc3MgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyPgogICAgICwgcHVibGljIEFjdGl2ZURPTU9iamVjdAogICAgICwgcHVibGljIENh
bk1ha2VXZWFrUHRyPFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lcj4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKICAgICB+UlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIoKTsKIAotICAgIHZvaWQgc2V0Q2FsbGJhY2soc3RkOjp1bmlxdWVf
cHRyPEpTQ2FsbGJhY2tEYXRhU3Ryb25nPiYmIGNhbGxiYWNrKSB7IG1fY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKTsgfQorICAgIFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZSgpOworICAgIEV4
Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IHdyaXRhYmxlKCk7CisgICAgSlNDOjpKU1Zh
bHVlIG9wdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCYpOworCisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcmVxdWVzdEtleUZyYW1lKCk7CiAgICAgTWVzc2FnZVBvcnQmIHBvcnQoKSB7IHJldHVybiBt
X3BvcnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc3RhcnRQZW5kaW5nQWN0aXZpdHkoKSB7IG1fcGVu
ZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7IH0KICAgICB2b2lkIHN0
YXJ0KFJlZjxSVENSdHBUcmFuc2Zvcm1CYWNrZW5kPiYmKTsKICAgICB2b2lkIGNsZWFyKCk7CiAK
LSAgICB2b2lkIHN0YXJ0UGVuZGluZ0FjdGl2aXR5KCkgeyBtX3BlbmRpbmdBY3Rpdml0eSA9IG1h
a2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOyB9Ci0KIHByaXZhdGU6Ci0gICAgUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxNZXNzYWdlUG9ydD4mJik7
Ci0KLSAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFtcyhS
VENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CisgICAgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFJlZjxN
ZXNzYWdlUG9ydD4mJiwgUmVmPFJlYWRhYmxlU3RyZWFtPiYmLCBSZWY8U2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2U+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hh
ciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lciI7IH0KICAgICB2b2lkIHN0b3AoKSBmaW5hbCB7IHN0b3BQZW5kaW5nQWN0aXZpdHko
KTsgfQogICAgIHZvaWQgc3RvcFBlbmRpbmdBY3Rpdml0eSgpIHsgYXV0byBwZW5kaW5nQWN0aXZp
dHkgPSBXVEZNb3ZlKG1fcGVuZGluZ0FjdGl2aXR5KTsgfQogCisgICAgUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbV9vcHRpb25zOwogICAgIFJlZjxNZXNzYWdlUG9ydD4gbV9wb3J0OwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrRGF0YVN0cm9uZz4gbV9jYWxsYmFjazsKKworICAg
IFJlZjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gbV9yZWFkYWJsZVNvdXJjZTsKKyAgICBS
ZWY8UmVhZGFibGVTdHJlYW0+IG1fcmVhZGFibGU7CisgICAgUmVmUHRyPFdyaXRhYmxlU3RyZWFt
PiBtX3dyaXRhYmxlOworCiAgICAgUmVmUHRyPFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+IG1fYmFj
a2VuZDsKICAgICBSZWZQdHI8UGVuZGluZ0FjdGl2aXR5PFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
Pj4gbV9wZW5kaW5nQWN0aXZpdHk7Ci0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKaW5kZXggMGY5NDBjY2RlYjMwMjRmOTQ0YTkxMGYwODUz
NTYyN2EzNzk1NTZjOC4uMzg3MWM0MzllZTljNGY1MTdjYjRiOTIwOWNlNjRlNzU3OTY3OGY4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5pZGwKQEAgLTMwLDggKzMwLDEwIEBACiAgICAgRXhw
b3NlZD1EZWRpY2F0ZWRXb3JrZXIsCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogXSBp
bnRlcmZhY2UgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBjb25zdHJ1Y3RvcigvKiBvcHRpb25hbCBvYmplY3QgdHJhbnNmb3Jt
T3B0aW9ucyAqLyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlYWRhYmxlU3RyZWFtIHJlYWRh
YmxlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXcml0YWJsZVN0cmVhbSB3cml0YWJsZTsKKyAg
ICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0LCBDYWNoZWRBdHRyaWJ1dGVdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBhbnkgb3B0aW9uczsKIAotICAgIC8vIEZJWE1FOiBhZGQgY29udHJvbGxlciBhdHRyaWJ1
dGUuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0IHBvcnQ7CisgICAgW01heVRo
cm93RXhjZXB0aW9uXSB1bmRlZmluZWQgcmVxdWVzdEtleUZyYW1lKCk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTlkOWJkYjhiZTEzNzNiZjdmZmMwZjdmMWFkOTBiODJkZjQ4NDQzYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3IuaAor
KysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCX1JUQykK
LQotI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiQ2FsbGJhY2tSZXN1
bHQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOwotCi1jbGFzcyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnN0cnVjdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXJDb25zdHJ1Y3Rvcj4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7Ci1wdWJsaWM6
Ci0gICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOwotCi0gICAg
dmlydHVhbCBDYWxsYmFja1Jlc3VsdDxSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+PiBo
YW5kbGVFdmVudCgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25z
dHJ1Y3Rvci5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MjFlNTNmNmI2NTVi
NGY4YWE5YjE3MmUyM2IyNzAzMTRjNTdiZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0cnVjdG9yLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
WwotICAgIENvbmRpdGlvbmFsPVdFQl9SVEMsCi1dIGNhbGxiYWNrIFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyQ29uc3RydWN0b3IgPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zv
cm1lckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI3YzM5M2JhMDA3MDFmNmQxOWNmMzVkYTlmNjI2YzNkMzE4ZGViY2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfUlRDKQotCi0jaW5jbHVkZSAi
UlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOwotCi1jbGFzcyBS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQKLSAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0PiBjcmVhdGUoUmVmPFJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQ+JiYpOwotICAgIH5SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQoKSA9IGRl
ZmF1bHQ7Ci0KLSAgICB1c2luZyBTaWRlID0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6U2lkZTsK
LSAgICBTaWRlIHNpZGUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tlbmQtPnNpZGUoKTsgfQotCi0g
ICAgdXNpbmcgTWVkaWFUeXBlID0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOwot
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tlbmQtPm1lZGlh
VHlwZSgpOyB9Ci0KLSAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXF1ZXN0S2V5RnJhbWUoKTsKLQot
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQoUmVm
PFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ+JiYpOwotCi0gICAgUmVmPFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQ+IG1fYmFja2VuZDsKLX07Ci0KLWlubGluZSBSZWY8UlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXJDb250ZXh0PiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQ6OmNyZWF0ZShSZWY8UlRD
UnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQotewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dChXVEZNb3ZlKGJhY2tlbmQpKSk7Ci19
Ci0KLWlubGluZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQ6OlJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyQ29udGV4dChSZWY8UlRDUnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQot
ICAgIDogbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi17Ci19Ci0KLWlubGluZSBFeGNlcHRp
b25Pcjx2b2lkPiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQ6OnJlcXVlc3RLZXlGcmFt
ZSgpCi17Ci0gICAgc3dpdGNoIChtZWRpYVR5cGUoKSkgewotICAgIGNhc2UgTWVkaWFUeXBlOjpB
dWRpbzoKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fu
bm90IHJlcXVlc3Qga2V5IGZyYW1lIG9uIGF1ZGlvIHNlbmRlciJfcyB9OwotICAgIGNhc2UgTWVk
aWFUeXBlOjpWaWRlbzoKLSAgICAgICAgbV9iYWNrZW5kLT5yZXF1ZXN0S2V5RnJhbWUoKTsKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4geyB9OwotICAg
IH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGUwODMzMGM4MGRjYjRiNjE1YjI4N2RlMDE5ZTgyYzQ2ZDdjMWI4
YjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRl
eHQuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLWVudW0g
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0U2lkZSB7ICJyZWNlaXZlciIsICJzZW5kZXIi
IH07Ci1lbnVtIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dE1lZGlhVHlwZSB7ICJhdWRp
byIsICJ2aWRlbyIgfTsKLQotWwotICAgIENvbmRpdGlvbmFsPVdFQl9SVEMsCi0gICAgRW5hYmxl
ZEJ5U2V0dGluZz1XZWJSVENJbnNlcnRhYmxlU3RyZWFtcywKLSAgICBFeHBvc2VkPURlZGljYXRl
ZFdvcmtlciwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0U2lkZSBzaWRlOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHRNZWRpYVR5cGUgbWVkaWFUeXBlOwot
Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgcmVxdWVzdEtleUZyYW1lKCk7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENUcmFu
c2Zvcm1FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Ry
YW5zZm9ybUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGE2MGE0NmM4NTBiOThiMDA3YWNjNGFkZDhk
NDAzMWNjNDhjYTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUlRDVHJhbnNmb3JtRXZlbnQu
aCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoUlRDVHJhbnNmb3JtRXZlbnQpOworCitSZWY8UlRDVHJhbnNmb3JtRXZlbnQ+IFJUQ1RyYW5z
Zm9ybUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgUmVmPFJUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyPiYmIHRyYW5zZm9ybWVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1RyYW5zZm9ybUV2ZW50KHR5cGUsIFdURk1vdmUodHJh
bnNmb3JtZXIpLCBpc1RydXN0ZWQpKTsKK30KKworUlRDVHJhbnNmb3JtRXZlbnQ6OlJUQ1RyYW5z
Zm9ybUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcj4mJiB0cmFuc2Zvcm1lciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5
cGUsIHsgfSwgaXNUcnVzdGVkKQorICAgICwgbV90cmFuc2Zvcm1lcihXVEZNb3ZlKHRyYW5zZm9y
bWVyKSkKK3sKK30KKworUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXImIFJUQ1RyYW5zZm9ybUV2ZW50
Ojp0cmFuc2Zvcm1lcigpCit7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtZXIuZ2V0KCk7Cit9CisK
K0V2ZW50SW50ZXJmYWNlIFJUQ1RyYW5zZm9ybUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFJUQ1RyYW5zZm9ybUV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZl
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZjdlMjA2YmMwYTkzMzJiZTI4ODY2NjE5NmMyYTQ3MTRjNDZkOWFk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENUcmFuc2Zvcm1FdmVudC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDVHJhbnNmb3JtRXZl
bnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUlRD
VHJhbnNmb3JtRXZlbnQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UlRDVHJhbnNmb3JtRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBSZWY8UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXI+JiYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworCisgICAgUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXImIHRyYW5zZm9ybWVyKCk7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudElu
dGVyZmFjZSgpIGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIFJUQ1RyYW5zZm9ybUV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4mJiwg
SXNUcnVzdGVkKTsKKworICAgIFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4gbV90cmFuc2Zv
cm1lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENUcmFuc2Zvcm1FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1RyYW5zZm9ybUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDk2ZmE0ZDI4ZjI2NjRmYTI1MGFl
YzY3ODFmNDIwOTdiY2E4N2VhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENUcmFuc2Zvcm1FdmVudC5pZGwKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX1JUQywKKyAgICBFbmFibGVkQnlT
ZXR0aW5nPVdlYlJUQ0luc2VydGFibGVTdHJlYW1zLAorICAgIEV4cG9zZWQ9V29ya2VyLAorICAg
IEludGVyZmFjZU5hbWU9UlRDVHJhbnNmb3JtRXZlbnQsCitdIGludGVyZmFjZSBSVENUcmFuc2Zv
cm1FdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIgdHJhbnNmb3JtZXIpOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIHRyYW5zZm9ybWVyOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggNDNkMTFjOWJkNTNjZTE2M2NmMmU4N2Y0NzFlYWRiYjEwM2JhZmM4Yi4uNDkzMWJkMGM3YmQz
NzgwMWY2YzNjNTNhMWEzOTgwNDUzODExMzU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3OCw2ICsx
NzgsNyBAQCBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5jcHAKIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhY2tFdmVu
dC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhbnNmb3JtRXZlbnQuY3BwCiBNb2R1bGVz
L21lZGlhc3RyZWFtL1NGcmFtZVV0aWxzLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9TVFVOTWVz
c2FnZVBhcnNpbmcuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwCkBAIC0zMzg3LDggKzMzODgsNiBAQCBKU1JUQ1J0cFJ0eFBhcmFtZXRlcnMuY3BwCiBKU1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKIEpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcAogSlNS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKLUpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25z
dHJ1Y3Rvci5jcHAKLUpTUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmNwcAogSlNSVENS
dHBTZW5kUGFyYW1ldGVycy5jcHAKIEpTUlRDUnRwU2VuZGVyLmNwcAogSlNSVENSdHBTeW5jaHJv
bml6YXRpb25Tb3VyY2UuY3BwCkBAIC0zNDAwLDYgKzMzOTksNyBAQCBKU1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkluaXQuY3BwCiBKU1JUQ1NpZ25hbGluZ1N0YXRlLmNwcAogSlNSVENTdGF0c1JlcG9y
dC5jcHAKIEpTUlRDVHJhY2tFdmVudC5jcHAKK0pTUlRDVHJhbnNmb3JtRXZlbnQuY3BwCiBKU1Jh
ZGlvTm9kZUxpc3QuY3BwCiBKU1JhbmdlLmNwcAogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGEwYzA1NGRjNDM5ODk3NTdjYjkzNGRiMjJmMjE3OGZmMGIxMThiNjAuLjE4
MmI5YTVhNTA0Y2E4NzY4YzhmYjlkYjc5NTBjMjFiMjBjY2Y0NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc3MTgsOCArNzcx
OCw2IEBACiAJCTQxNDE4OUYzMjU2MkUzMkMwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUY0
MjU2MkUzMkMwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0MTg5RjUyNTYyRTMyRDAwMzYzNDE3IC8qIFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQxNDE4OUY2MjU2MkU2N0EwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnN0
cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE0
MTg5RjcyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0
b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29u
c3RydWN0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTQxODlGOTI1NjQx
NjUwMDAzNjM0MTcgLyogUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJUQ0VuY29kZWRBdWRpb0ZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE0MTg5RkEyNTY0MTY1MTAwMzYzNDE3IC8qIFJUQ0VuY29kZWRWaWRlb0ZyYW1lLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENFbmNvZGVkVmlkZW9GcmFtZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDE4OUZCMjU2NDE3NTcwMDM2MzQxNyAvKiBSVENF
bmNvZGVkQXVkaW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENF
bmNvZGVkQXVkaW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzg5Myw4
ICs3ODkxLDYgQEAKIAkJNDE5RTZFQzQyNTY2RDIxMTAwMkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0
aW9uSWNlRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RTZFQzYyNTY2RDIxMzAwMkI1
MDEwIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTlFNkVDNzI1NjZEMjE0MDAyQjUwMTAgLyogUlRDUGVlckNvbm5lY3Rp
b25JY2VFcnJvckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJy
b3JFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTlFNkVEMjI1NjdCRjY5
MDAyQjUwMTAgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0MTlFNkVENTI1NjdCRjZBMDAyQjUwMTAgLyogUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjM1NzIgLyogUmVhZGFibGVTdHJlYW1CWU9C
UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFk
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1
QjgyOEIgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJlYW0u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc5MzQsNiArNzkzMCw5IEBACiAJCTQxQjg3NzYwMjNERTEw
NDIwMDM2MzhCOCAvKiBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUI5MTM3NjIzNTg0RDBFMDAyNUJGQTMgLyog
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQjkxMzc4MjM1ODREMEYwMDI1QkZBMyAvKiBNb2NrQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tBdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUJDRTg3
NTI1RjdBNjc5MDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJUQ1RyYW5zZm9ybUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFCQ0U4NzYyNUY3QTY3QTAwNDZDMkU1IC8qIFJUQ1RyYW5zZm9ybUV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1RyYW5zZm9ybUV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFCQ0U4NzcyNUY3QTY3QTAwNDZDMkU1
IC8qIFJUQ1RyYW5zZm9ybUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1RyYW5zZm9ybUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkYy
MDQwMjJCOTQ3MTYwMDA0RjgxMiAvKiBSZWFsdGltZVZpZGVvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlYWx0aW1lVmlkZW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFCRjIwNDIyMkI5NDcxNzAwMDRGODEyIC8qIFJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTdGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTczODAsMTAgKzE3Mzc5LDYgQEAKIAkJCQk0MTQxODlGMzI1
NjJFMzJDMDAzNjM0MTcgLyogUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwICovLAogCQkJCTQx
NDE4OUY1MjU2MkUzMkQwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oICovLAog
CQkJCTQxNDE4OUYxMjU2MkRGNTYwMDM2MzQxNyAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5p
ZGwgKi8sCi0JCQkJNDE0MTg5RjYyNTYyRTY3QTAwMzYzNDE3IC8qIFJUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyQ29uc3RydWN0b3IuaCAqLywKLQkJCQk0MTQxODlGNzI1NjJFNjdBMDAzNjM0MTcgLyog
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci5pZGwgKi8sCi0JCQkJNDE5RTZFRDUy
NTY3QkY2QTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oICovLAot
CQkJCTQxOUU2RUQyMjU2N0JGNjkwMDJCNTAxMCAvKiBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQuaWRsICovLAogCQkJCTQxNDE4OUVGMjU2MkRGMEMwMDM2MzQxNyAvKiBSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1Qcm92aWRlci5pZGwgKi8sCiAJCQkJNDEzQzhCMjYyNTUyRUVBOTAwRTY1MDU1
IC8qIFJUQ1J0cFNlbmRlcitUcmFuc2Zvcm0uaWRsICovLAogCQkJCTVFMkM0MzU5MUJDRUUzMEQw
MDAxRTJCQyAvKiBSVENSdHBTZW5kZXIuY3BwICovLApAQCAtMTc0MjIsNiArMTc0MTcsOSBAQAog
CQkJCTVFMkM0MzY0MUJDRUUzNzIwMDAxRTJCQyAvKiBSVENUcmFja0V2ZW50LmNwcCAqLywKIAkJ
CQk1RTJDNDM2NTFCQ0VFMzcyMDAwMUUyQkMgLyogUlRDVHJhY2tFdmVudC5oICovLAogCQkJCTVF
MkM0MzY2MUJDRUUzNzIwMDAxRTJCQyAvKiBSVENUcmFja0V2ZW50LmlkbCAqLywKKwkJCQk0MUJD
RTg3NjI1RjdBNjdBMDA0NkMyRTUgLyogUlRDVHJhbnNmb3JtRXZlbnQuY3BwICovLAorCQkJCTQx
QkNFODc3MjVGN0E2N0EwMDQ2QzJFNSAvKiBSVENUcmFuc2Zvcm1FdmVudC5oICovLAorCQkJCTQx
QkNFODc1MjVGN0E2NzkwMDQ2QzJFNSAvKiBSVENUcmFuc2Zvcm1FdmVudC5pZGwgKi8sCiAJCQkJ
NDEyMDlFMjYyNTdBMkZCQjAwMTIwQUNBIC8qIFNGcmFtZVV0aWxzLmNwcCAqLywKIAkJCQk0MTIw
OUUyNDI1N0EyRkJCMDAxMjBBQ0EgLyogU0ZyYW1lVXRpbHMuaCAqLywKIAkJCQk0MUU2N0E3RjI1
RDE2ODQ2MDA3QjBBNEMgLyogU1RVTk1lc3NhZ2VQYXJzaW5nLmNwcCAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCmluZGV4IGZiOTJjY2ExMzMzZGIxNzg1
NDNkYmZlY2UwZjM3YzllYTNjY2FmY2QuLjdjYWM3MjNjZjA2ZDlmOTRhOTE2ZDAwZGQ3NjhiNjFi
MDlhNDJlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxl
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0u
aApAQCAtODQsNiArODQsMTEgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVhZGFibGVTdHIKICAgICByZXR1cm4g
c3RyZWFtID8gc3RyZWFtLT5yZWFkYWJsZVN0cmVhbSgpIDogSlNDOjpqc1VuZGVmaW5lZCgpOwog
fQogCitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBSZWFkYWJsZVN0cmVhbSYgc3RyZWFtKQoreworICAgIHJldHVybiBz
dHJlYW0ucmVhZGFibGVTdHJlYW0oKTsKK30KKwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTTmV3
bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxS
ZWFkYWJsZVN0cmVhbT4mJiBzdHJlYW0pCiB7CiAgICAgcmV0dXJuIHN0cmVhbS0+cmVhZGFibGVT
dHJlYW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaAppbmRleCBkYWYxNzlmMmNmNDA5N2FlMTI4YmJiZDE0MGJhOWUzMjgwNGY2MGRiLi5j
Nzg3ZjBlODE0MTYyNmVmYzA5YjE3ZDE4MTc0MTQwMjYyYTcyMDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMzIsNiArMjMy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bikgXAogICAgIG1hY3JvKFJUQ1N0YXRzUmVwb3J0KSBcCiAgICAgbWFjcm8oUlRDVHJhY2tFdmVu
dCkgXAorICAgIG1hY3JvKFJUQ1RyYW5zZm9ybUV2ZW50KSBcCiAgICAgbWFjcm8oUmVhZGFibGVC
eXRlU3RyZWFtQ29udHJvbGxlcikgXAogICAgIG1hY3JvKFJlYWRhYmxlU3RyZWFtKSBcCiAgICAg
bWFjcm8oUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyKSBcCkBAIC0zODEsNiArMzgyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1hdGNoaW5nRWxlbWVudEluRmxhdFRyZWUpIFwK
ICAgICBtYWNybyhtZWRpYVN0cmVhbVRyYWNrQ29uc3RyYWludHMpIFwKICAgICBtYWNybyhvcGVu
RGF0YWJhc2UpIFwKKyAgICBtYWNybyhvbnJ0Y3RyYW5zZm9ybSkgXAogICAgIG1hY3JvKG9udG91
Y2hjYW5jZWwpIFwKICAgICBtYWNybyhvbnRvdWNoZW5kKSBcCiAgICAgbWFjcm8ob250b3VjaG1v
dmUpIFwKQEAgLTQxOSw3ICs0MjEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
cmVhZGVyKSBcCiAgICAgbWFjcm8ocmVhZHlQcm9taXNlKSBcCiAgICAgbWFjcm8ocmVhZHlQcm9t
aXNlQ2FwYWJpbGl0eSkgXAotICAgIG1hY3JvKHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIpIFwKICAgICBtYWNybyhyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKICAgICBtYWNybyhyZXF1
ZXN0SWRsZUNhbGxiYWNrKSBcCiAgICAgbWFjcm8ocmVzcG9uc2UpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCmluZGV4IDQ2ZmY4OWQ1Y2RlMDhiMDA2ZjIx
NWIxM2IzMGJhMjRkOTg1MzcyMzguLmM1MThhOTQ1OTc3MjRlMWQ3MDEwMWE2N2JjZGI4ZWYzOTk2
MWZhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3Ry
ZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaApA
QCAtODEsNiArODEsMTEgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgV3JpdGFibGVTdHIKICAgICByZXR1cm4gc3Ry
ZWFtID8gc3RyZWFtLT53cml0YWJsZVN0cmVhbSgpIDogSlNDOjpqc1VuZGVmaW5lZCgpOwogfQog
CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBXcml0YWJsZVN0cmVhbSYgc3RyZWFtKQoreworICAgIHJldHVybiBzdHJl
YW0ud3JpdGFibGVTdHJlYW0oKTsKK30KKwogaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxXcml0
YWJsZVN0cmVhbT4mJiBzdHJlYW0pCiB7CiAgICAgcmV0dXJuIHN0cmVhbS0+d3JpdGFibGVTdHJl
YW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDYwMDhiMDgwZjBlODRjY2NkYzE1Yzdj
YzMyYmE1ZDM0MzNmYzZjZmEuLjEzOTQ0NDM5ODE0NjA5MDllZjJhMGZlNWJjN2Q3OWE5OWI3MmU1
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMjMyLDYgKzIzMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwpIFwKICAgICBt
YWNybyhyZXN1bHQpIFwKICAgICBtYWNybyhyZXN1bWUpIFwKKyAgICBtYWNybyhydGN0cmFuc2Zv
cm0pIFwKICAgICBtYWNybyhzY3JvbGwpIFwKICAgICBtYWNybyhzZWFyY2gpIFwKICAgICBtYWNy
byhzZWN1cml0eXBvbGljeXZpb2xhdGlvbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRl
eCAyZDBiY2UwZjk1ZmU0NWRkMjAzZGUwNTcxNDdhMzkxOWJkODNlMmQ1Li4xZmJlZjQ1MGM0NDQ4
MTFhNTdkOTk2N2EyMzY1YzQ0ZDliOTQwYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpA
QCAtNjIsNiArNjIsNyBAQCBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IGNvbmRpdGlvbmFsPVdF
Ql9SVEMKIFJUQ0RhdGFDaGFubmVsRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDRFRNRlRv
bmVDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlv
bmFsPVdFQl9SVEMKK1JUQ1RyYW5zZm9ybUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudAogU3BlZWNoUmVjb2duaXRpb25FdmVudAogU3BlZWNoU3lu
dGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4
IDhmMzYxNmI3YzhhMzYzMjBiZjRmYjlhYmEwMzEwMTkyOWM3MWMyZGQuLjEyZTM4OTM4YTZlN2Mx
MGQ5ZGI5NDdhYjc2NTE4MmFlODU0NTc4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQwLDggKzQwLDEx
IEBACiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3Jh
bS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xTYW1w
bGVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJHTFRl
eHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgiCisjaW5jbHVkZSAi
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNs
dWRlIDxsaW1pdHM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFRyYW5zZm9ybUZlZWRiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VHJhbnNmb3JtRmVlZGJhY2suY3BwCmluZGV4IDVhZThhMjdhNTFhMThlZGExMWFlZjllNmVjNGQ3
MWVjNDA3OWM1YzMuLjEzZTY0OTZlMmVhNjU3ZDZjNjZiYjI1OGZhOWRmOWRjZWU3MmQ3YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxFKFdFQkdMMikKICNpbmNsdWRl
ICJXZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgiCiAKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKLSNpbmNsdWRlICJXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQWJzdHJh
Y3RTbG90VmlzaXRvcklubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCBmMDM1YTA1YThlMzA4MzU2ZmI4MmYzMGFjNjhmM2Jh
NTExZGU5NGQxLi4zMDg4MTI2YWZhNDI5YmJhNDAyYzU1NjJiZjUxNWYwZjBhYTFmYzQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ay5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wyKQogCi0jaW5jbHVkZSAi
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0Lmgi
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDAsNiArMzksOCBAQCBjbGFzcyBBYnN0cmFjdExvY2tl
cjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OworCiBjbGFzcyBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrIGZpbmFsIDogcHVibGljIFdlYkdMU2hh
cmVkT2JqZWN0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJHTFRyYW5zZm9ybUZlZWRiYWNr
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVy
UHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJv
Z3JhbS5jcHAKaW5kZXggN2EwNDIwZDdmZmFmZDY0OGU0YjZkNTcxNDhjZDAyNDdiMzg0ZWY4ZC4u
ZDkwOTlmMWJlODc2ODJkYjI5YzM2Yzk2YmRhOTljMTU4YmM4MDA2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2lu
Y2x1ZGUgIldlYkdMU2FtcGxlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlLmNwcAppbmRleCA2MWZkZDU1Y2I0ODhkMTg1NTJjZTQ3MzE5YTlhYTFkYzhmMWQzMmI4
Li5kNGNlYzRmNGY4M2I2M2I4ZDhiZjVhZjE5NTYxMmYxM2Q2YTFjMzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApA
QCAtMzUsMTAgKzM1LDEwIEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkpTUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIuaCIKLSNpbmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKLSNpbmNsdWRlICJS
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIgorI2luY2x1ZGUgIlJUQ1RyYW5zZm9ybUV2ZW50Lmgi
CiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldvcmtlci5oIgpAQCAtNzYsMTAgKzc2LDYgQEAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QKIHZvaWQgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnBy
ZXBhcmVGb3JEZXN0cnVjdGlvbigpCiB7CiAgICAgV29ya2VyR2xvYmFsU2NvcGU6OnByZXBhcmVG
b3JEZXN0cnVjdGlvbigpOwotCi0jaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgbV9ydGNSdHBUcmFu
c2Zvcm1lckNvbnN0cnVjdG9yTWFwLmNsZWFyKCk7Ci0jZW5kaWYKIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9i
YWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBQb3N0TWVzc2FnZU9w
dGlvbnMmJiBvcHRpb25zKQpAQCAtMTI2LDcxICsxMjIsMTUgQEAgdm9pZCBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoQ2FsbGJhY2tJZCBjYWxsYmFja0lk
KQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKLUV4Y2VwdGlvbk9yPHZvaWQ+IERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpyZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFN0
cmluZyYmIG5hbWUsIFJlZjxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+JiYg
dHJhbnNmb3JtZXJDb25zdHJ1Y3RvcikKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
LQotICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCAiTmFtZSBjYW5ub3QgYmUgdGhlIGVtcHR5IHN0cmluZyJfcyB9Owot
Ci0gICAgaWYgKG1fcnRjUnRwVHJhbnNmb3JtZXJDb25zdHJ1Y3Rvck1hcC5jb250YWlucyhuYW1l
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiQSB0cmFu
c2Zvcm1lciB3YXMgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhpcyBuYW1lIl9zIH07Ci0KLSAg
ICBKU0M6OkpTT2JqZWN0KiBqc0NvbnN0cnVjdG9yID0gdHJhbnNmb3JtZXJDb25zdHJ1Y3Rvci0+
Y2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0ganND
b25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAg
aWYgKCFqc0NvbnN0cnVjdG9yLT5pc0NvbnN0cnVjdG9yKHZtKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNsYXNzIGRlZmluaXRpdGlvbiBwYXNzZWQgdG8gcmVnaXN0
ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpIGlzIG5vdCBhIGNvbnN0cnVjdG9yIl9zIH07Ci0K
LSAgICBhdXRvIHByb3RvdHlwZSA9IGpzQ29uc3RydWN0b3ItPmdldFByb3RvdHlwZSh2bSwgZ2xv
YmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwotCi0gICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3Qo
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNsYXNzIGRlZmluaXRp
dGlvbiBwYXNzZWQgdG8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigpIGhhcyBpbnZh
bGlkIHByb3RvdHlwZSJfcyB9OwotCi0gICAgbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9y
TWFwLmFkZChuYW1lLCBXVEZNb3ZlKHRyYW5zZm9ybWVyQ29uc3RydWN0b3IpKTsKLQotICAgIHRo
cmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkucG9zdFRhc2tUb1dvcmtlck9iamVjdChbbmFtZSA9
IG5hbWUuaXNvbGF0ZWRDb3B5KCldKGF1dG8mIHdvcmtlcikgbXV0YWJsZSB7Ci0gICAgICAgIHdv
cmtlci5hZGRSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihXVEZNb3ZlKG5hbWUpKTsKLSAgICB9KTsK
LQotICAgIHJldHVybiB7IH07Ci19Ci0KLVJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4g
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
KFN0cmluZyYmIG5hbWUsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQgcG9ydCkKK1JlZlB0cjxSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcj4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZVJU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0aW9u
cywgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmIHBvcnQpCiB7Ci0gICAgYXV0byBjb25zdHJ1Y3Rv
ciA9IG1fcnRjUnRwVHJhbnNmb3JtZXJDb25zdHJ1Y3Rvck1hcC5nZXQobmFtZSk7Ci0gICAgQVNT
RVJUKGNvbnN0cnVjdG9yKTsKLSAgICBpZiAoIWNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIGF1dG8qIGpzQ29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rvci0+Y2FsbGJh
Y2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29uc3RydWN0
b3ItPmNhbGxiYWNrRGF0YSgpLT5nbG9iYWxPYmplY3QoKTsKLSAgICBhdXRvJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayB7IGdsb2JhbE9iamVjdCB9OwotCi0gICAgbV9w
ZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0ID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlKCp0
aGlzLCBXVEZNb3ZlKHBvcnQpKTsKLQotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJn
czsKLSAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmNvbnN0cnVjdChnbG9iYWxPYmplY3QsIGpzQ29u
c3RydWN0b3IsIGFyZ3MsICJGYWlsZWQgdG8gY29uc3RydWN0IFJUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyIik7Ci0gICAgQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIW9iamVjdCk7Ci0KLSAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpIHsKLSAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24o
KTsKKyAgICBhdXRvIHRyYW5zZm9ybWVyT3JFeGNlcHRpb24gPSBSVENSdHBTY3JpcHRUcmFuc2Zv
cm1lcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKG9wdGlvbnMpLCBNZXNzYWdlUG9ydDo6ZW50YW5n
bGUoKnRoaXMsIFdURk1vdmUocG9ydCkpKTsKKyAgICBpZiAodHJhbnNmb3JtZXJPckV4Y2VwdGlv
bi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotCi0gICAgYXV0byYganNUcmFuc2Zv
cm1lciA9ICpKU0M6OmpzQ2FzdDxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKj4ob2JqZWN0KTsK
LSAgICBhdXRvJiB0cmFuc2Zvcm1lciA9IGpzVHJhbnNmb3JtZXIud3JhcHBlZCgpOwotICAgIHRy
YW5zZm9ybWVyLnNldENhbGxiYWNrKG1ha2VVbmlxdWU8SlNDYWxsYmFja0RhdGFTdHJvbmc+KCZq
c1RyYW5zZm9ybWVyLCBnbG9iYWxPYmplY3QpKTsKLQotICAgIHJldHVybiAmdHJhbnNmb3JtZXI7
CisgICAgYXV0byB0cmFuc2Zvcm1lciA9IHRyYW5zZm9ybWVyT3JFeGNlcHRpb24ucmVsZWFzZVJl
dHVyblZhbHVlKCk7CisgICAgZGlzcGF0Y2hFdmVudChSVENUcmFuc2Zvcm1FdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5ydGN0cmFuc2Zvcm1FdmVudCwgdHJhbnNmb3JtZXIuY29weVJlZigpLCBF
dmVudDo6SXNUcnVzdGVkOjpZZXMpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtZXI7CiB9Ci0KICNl
bmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNTdmNDUyYzZlZWE5ZTA2
M2ZkNzU4OGRlOTEzNDI3OTBjZDg5OWMxMy4uZTNjY2QwMDA0YTUzOTFkNWRkNmZiZWMzOTA0NjVh
ZmJiYzllMWI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNzYsOSArNzYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShXRUJfUlRDKQotICAgIFJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4g
Y3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYsIFRyYW5zZmVycmVkTWVzc2Fn
ZVBvcnQpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoU3RyaW5nJiYsIFJlZjxKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29uc3RydWN0b3I+
JiYpOwotICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gdGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVz
c2FnZVBvcnQoKSB7IHJldHVybiBXVEZNb3ZlKG1fcGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdl
UG9ydCk7IH0KKyAgICBSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+IGNyZWF0ZVJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFRyYW5zZmVy
cmVkTWVzc2FnZVBvcnQmJik7CiAjZW5kaWYKIAogICAgIEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpXb3JrZXI7IH0KQEAgLTk5LDEwICs5Nyw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KE9GRlNDUkVFTl9DQU5WQVMpCiAgICAgUmVmUHRyPFdvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXI+
IG1fd29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfUlRD
KQotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnN0cnVjdG9yPj4gbV9ydGNSdHBUcmFuc2Zvcm1lckNvbnN0cnVjdG9yTWFwOwotICAgIFJlZlB0
cjxNZXNzYWdlUG9ydD4gbV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0OwotI2VuZGlm
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAK
aW5kZXggMDRmZGY1ODI3NDNlYjk3M2I1MjVkNTRjOGE4ZDhmMzdkODI1MjBmYy4uMmE0MWEzZWU0
YjA1NDRhODYzMTllOGE1ZWQyOWUwNmVlZmQ0NTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcApAQCAtMjQ5LDE4ICsyNDksMTQgQEAgdm9pZCBXb3JrZXI6OmRpc3BhdGNoRXZlbnQoRXZl
bnQmIGV2ZW50KQogfQogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCi12b2lkIFdvcmtlcjo6YWRkUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIoU3RyaW5nJiYgbmFtZSkKLXsKLSAgICBtX3RyYW5zZm9ybWVy
cy5hZGQoV1RGTW92ZShuYW1lKSk7Ci19Ci0KLXZvaWQgV29ya2VyOjpjcmVhdGVSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lcihjb25zdCBTdHJpbmcmIG5hbWUsIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQg
cG9ydCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtJiB0cmFuc2Zvcm0pCit2b2lkIFdvcmtlcjo6Y3Jl
YXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoUlRDUnRwU2NyaXB0VHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb3B0aW9ucywgVHJhbnNmZXJyZWRNZXNz
YWdlUG9ydCYmIHBvcnQpCiB7CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dFByb3h5LnBvc3RUYXNrVG9Xb3JrZXJHbG9i
YWxTY29wZShbbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCksIHBvcnQsIHRyYW5zZm9ybSA9IG1h
a2VSZWYodHJhbnNmb3JtKV0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgIHRyYW5z
Zm9ybS0+c2V0VHJhbnNmb3JtZXIoZG93bmNhc3Q8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLmNyZWF0ZVJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyKFdURk1vdmUobmFtZSksIHBv
cnQpKTsKKyAgICBtX2NvbnRleHRQcm94eS5wb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoW3Ry
YW5zZm9ybSA9IG1ha2VSZWYodHJhbnNmb3JtKSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyks
IHBvcnQgPSBXVEZNb3ZlKHBvcnQpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKGF1dG8gdHJhbnNmb3JtZXIgPSBkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCkuY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoV1RGTW92ZShvcHRpb25z
KSwgV1RGTW92ZShwb3J0KSkpCisgICAgICAgICAgICB0cmFuc2Zvcm0tPnNldFRyYW5zZm9ybWVy
KCp0cmFuc2Zvcm1lcik7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RyYW5zZm9ybSA9IFdU
Rk1vdmUodHJhbnNmb3JtKV0geyB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgK
aW5kZXggMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEwMjA1MDIxMS4uYWNiOTZlYWI2
YzE5YTJiZWRkZTc5NDU5MWMyYzA0NTc0NTZiZGFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5o
CkBAIC03Nyw5ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQm
KSBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIHZvaWQgYWRkUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIoU3RyaW5nJiYpOwotICAgIGJvb2wgaGFzUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIoY29uc3QgU3RyaW5nJiBuYW1lKSB7IHJldHVybiBtX3RyYW5zZm9ybWVycy5jb250YWlucyhu
YW1lKTsgfQotICAgIHZvaWQgY3JlYXRlUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoY29uc3QgU3Ry
aW5nJiwgVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCwgUlRDUnRwU2NyaXB0VHJhbnNmb3JtJik7Cisg
ICAgdm9pZCBjcmVhdGVSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihSVENSdHBTY3JpcHRUcmFuc2Zv
cm0mLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0
JiYpOwogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2QzYWQ0MmVh
YjVhMGRhMzVhMDg4NzE5ODQ4NGVkZWZhZTRlZDcwMi4uNGZjOWI5ZWJhZjZhY2I2OGE5MGQ4ZmMz
OWQ5MmU4YWM5YWM5NjRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc3BlYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogaHR0cC93cHQvd2VicnRjL2F1
ZGlvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvY29u
dGV4dC10cmFuc2Zvcm0uanM6CisgICAgICAgIChNb2NrUlRDUnRwVHJhbnNmb3JtZXIpOgorICAg
ICAgICAoTW9ja1JUQ1J0cFRyYW5zZm9ybWVyLnByb3RvdHlwZS5zdGFydCk6CisgICAgICAgIChN
b2NrUlRDUnRwVHJhbnNmb3JtZXIucHJvdG90eXBlLnByb2Nlc3MpOgorICAgICAgICAob25ydGN0
cmFuc2Zvcm0pOgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanM6Cisg
ICAgICAgICogaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWw6Cisg
ICAgICAgICogaHR0cC93cHQvd2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanM6CisgICAgICAgIChv
bnJ0Y3RyYW5zZm9ybS5wcm9jZXNzKToKKyAgICAgICAgKG9ucnRjdHJhbnNmb3JtKToKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5qczoKKyAgICAgICAgKG9ucnRj
dHJhbnNmb3JtKToKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5z
Zm9ybS5odG1sOgorCiAyMDIxLTAzLTEyICBSb2JlcnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWFjT1Mgd2syXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhLXNvdXJjZS9Tb3VyY2VCdWZmZXItYWJvcnQtdXBkYXRpbmcuaHRtbCBpcyBhIGZsYWtl
eSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVkaW8t
c2NyaXB0LXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2F1ZGlv
LXNjcmlwdC10cmFuc2Zvcm0uaHRtbAppbmRleCBmYjZhYWI1MDk5NDZkZmFkZDhjMjFiY2QwNTJh
NGMxMGVjYzVmODE3Li41NzA2ZDJmZjc0M2ZkNDZlODE2OGJkZDIxMzk4NjAyZTA1MGZkZDdlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvYXVkaW8tc2NyaXB0LXRyYW5z
Zm9ybS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9hdWRpby1zY3JpcHQt
dHJhbnNmb3JtLmh0bWwKQEAgLTMzLDggKzMzLDggQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CiAgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKIAogICAgIGxldCBzZW5kZXIsIHJlY2Vp
dmVyOwotICAgIHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29y
a2VyLCAnTW9ja1JUQ1J0cFRyYW5zZm9ybScpOwotICAgIHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3
IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsICdNb2NrUlRDUnRwVHJhbnNmb3JtJyk7Cisg
ICAgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSh3b3JrZXIsIHtu
YW1lOidNb2NrUlRDUnRwVHJhbnNmb3JtJywgbWVkaWFUeXBlOidhdWRpbycsIHNpZGU6J3NlbmRl
cid9KTsKKyAgICByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0o
d29ya2VyLCB7bmFtZTonTW9ja1JUQ1J0cFRyYW5zZm9ybScsIG1lZGlhVHlwZTonYXVkaW8nLCBz
aWRlOidyZWNlaXZlcid9KTsKIAogICAgIHByb21pc2UxID0gd2FpdEZvck1lc3NhZ2Uoc2VuZGVy
VHJhbnNmb3JtLnBvcnQsICJzdGFydGVkIGF1ZGlvIHNlbmRlciIpOwogICAgIHByb21pc2UyID0g
d2FpdEZvck1lc3NhZ2UocmVjZWl2ZXJUcmFuc2Zvcm0ucG9ydCwgInN0YXJ0ZWQgYXVkaW8gcmVj
ZWl2ZXIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0
LXRyYW5zZm9ybS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9jb250ZXh0LXRyYW5z
Zm9ybS5qcwppbmRleCA2MTNmOTczMWM2MTdlNDdlN2UxZTc5MWM2NmQyZTYxMzdjZTBiZDA4Li5k
ZmYxYTI1NzFkMTUwNTkwYWU5YmRhZWY3NWIyM2ZmNzE0MzQ4YjNmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJydGMvY29udGV4dC10cmFuc2Zvcm0uanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL2NvbnRleHQtdHJhbnNmb3JtLmpzCkBAIC0xLDIxICsxLDIx
IEBACi1jbGFzcyBNb2NrUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBSVENSdHBTY3JpcHRUcmFu
c2Zvcm1lciB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgIHN1cGVyKCk7CitjbGFzcyBN
b2NrUlRDUnRwVHJhbnNmb3JtZXIgeworICAgIGNvbnN0cnVjdG9yKHRyYW5zZm9ybWVyKSB7CiAg
ICAgICAgIHRoaXMuYXNrS2V5RnJhbWUgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5wb3J0Lm9ubWVz
c2FnZSA9IChldmVudCkgPT4geworICAgICAgICB0aGlzLmNvbnRleHQgPSB0cmFuc2Zvcm1lcjsK
KyAgICAgICAgdGhpcy5jb250ZXh0LnBvcnQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CiAgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gInN0YXJ0S2V5RnJhbWVzIikKICAgICAgICAgICAg
ICAgICB0aGlzLmFza0tleUZyYW1lID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50
LmRhdGEgPT09ICJlbmRLZXlGcmFtZXMiKQogICAgICAgICAgICAgICAgIHRoaXMuYXNrS2V5RnJh
bWUgPSBmYWxzZTsKICAgICAgICAgfTsKKyAgICAgICAgdGhpcy5zdGFydCgpOwogICAgIH0KLSAg
ICBzdGFydChyZWFkYWJsZVN0cmVhbSwgd3JpdGFibGVTdHJlYW0sIGNvbnRleHQpCisgICAgc3Rh
cnQoKQogICAgIHsKLSAgICAgICAgdGhpcy5yZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFk
ZXIoKTsKLSAgICAgICAgdGhpcy53cml0ZXIgPSB3cml0YWJsZVN0cmVhbS5nZXRXcml0ZXIoKTsK
KyAgICAgICAgdGhpcy5yZWFkZXIgPSB0aGlzLmNvbnRleHQucmVhZGFibGUuZ2V0UmVhZGVyKCk7
CisgICAgICAgIHRoaXMud3JpdGVyID0gdGhpcy5jb250ZXh0LndyaXRhYmxlLmdldFdyaXRlcigp
OwogICAgICAgICB0aGlzLnByb2Nlc3MoKTsKLSAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4
dDsKLSAgICAgICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKCJzdGFydGVkICIgKyBjb250ZXh0Lm1l
ZGlhVHlwZSArICIgIiArIGNvbnRleHQuc2lkZSk7CisgICAgICAgIHRoaXMuY29udGV4dC5wb3J0
LnBvc3RNZXNzYWdlKCJzdGFydGVkICIgKyB0aGlzLmNvbnRleHQub3B0aW9ucy5tZWRpYVR5cGUg
KyAiICIgKyB0aGlzLmNvbnRleHQub3B0aW9ucy5zaWRlKTsKICAgICB9CiAKICAgICBwcm9jZXNz
KCkKQEAgLTI2LDkgKzI2LDkgQEAgY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVuZHMg
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewogCiAgICAgICAgICAgICB0aGlzLndyaXRlci53cml0
ZShjaHVuay52YWx1ZSk7CiAKLSAgICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQubWVkaWFUeXBl
ID09PSAidmlkZW8iKSB7CisgICAgICAgICAgICBpZiAodGhpcy5jb250ZXh0Lm9wdGlvbnMubWVk
aWFUeXBlID09PSAidmlkZW8iKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNodW5rLnZhbHVlIGlu
c3RhbmNlb2YgUlRDRW5jb2RlZFZpZGVvRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMu
cG9ydC5wb3N0TWVzc2FnZSgidmlkZW8gZnJhbWUgIiArIGNodW5rLnZhbHVlLnR5cGUpOworICAg
ICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQucG9ydC5wb3N0TWVzc2FnZSgidmlkZW8gZnJh
bWUgIiArIGNodW5rLnZhbHVlLnR5cGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXNr
S2V5RnJhbWUpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5yZXF1ZXN0S2V5RnJh
bWUoKTsKQEAgLTM5LDUgKzM5LDggQEAgY2xhc3MgTW9ja1JUQ1J0cFRyYW5zZm9ybWVyIGV4dGVu
ZHMgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgewogICAgIH0KIH07CiAKLXJlZ2lzdGVyUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIoIk1vY2tSVENSdHBUcmFuc2Zvcm0iLCBNb2NrUlRDUnRwVHJhbnNm
b3JtZXIpOworb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+IHsKKyAgICBuZXcgTW9ja1JUQ1J0
cFRyYW5zZm9ybWVyKGV2ZW50LnRyYW5zZm9ybWVyKTsKK307CisKIHNlbGYucG9zdE1lc3NhZ2Uo
InJlZ2lzdGVyZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9u
by10cmFuc2Zvcm0uanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8tdHJhbnNmb3Jt
LmpzCmluZGV4IDg5MWY1MWFiMTA0YzIwYmNjZDMxZGI0NGQ0NTdkMWVmODMzYzc4YjcuLmFhM2Zi
Yzk4MmFmY2MwOWQ0MTRlMGEyYjhhNmM4ODMzMjhlYjI1YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby10cmFuc2Zvcm0uanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL25vLXRyYW5zZm9ybS5qcwpAQCAtMSArMSBAQAotc2VsZi5wb3N0TWVzc2Fn
ZShzZWxmLnJlZ2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgPyAib24iIDogIm9mZiIpOwor
c2VsZi5wb3N0TWVzc2FnZShzZWxmLlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyID8gIm9uIiA6ICJv
ZmYiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMt
dHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13
ZWJydGMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAppbmRleCAxYjU3MTY5ODIyNzMyNDc5YWI2ZjIx
YjlhMmM5NTQxNzlhZDVhOTBlLi5mNWJkNGMxNmY4MzhiOGFlMGRjYmNiZDU5NzQ3Y2VkNGMwODhm
ZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvbm8td2VicnRjLXRy
YW5zZm9ybS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL25v
LXdlYnJ0Yy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1QQVNTIHJl
Z2lzdGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBp
cyBvbgotUEFTUyBubyByZWdpc3RlclJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGluc2VydGFi
bGUgc3RyZWFtIGZsYWcgaXMgb2ZmCitQQVNTIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGlmIGlu
c2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb24KK1BBU1Mgbm8gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvZmYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYnJ0Yy9uby13ZWJydGMtdHJhbnNmb3JtLmh0bWwKaW5kZXggNjE5OTgx
MzNlYzExNGY4YWQ2ZjYzNTE0YTQwM2QzMjdjOWNlMDM4Yi4uODg2OTM3ZTY0N2FkY2I4YzU5MTBl
MTIyMmI5NzAxNzFlNGU2MTAyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL25vLXdlYnJ0Yy10cmFuc2Zvcm0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvbm8td2VicnRjLXRyYW5zZm9ybS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHByb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoJ25v
LXRyYW5zZm9ybS5qcycpOwogICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHJlc29sdmUoZXZlbnQuZGF0YSkp
OwogICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgIm9uIik7Ci19LCAicmVnaXN0ZXJSVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRhYmxlIHN0cmVhbSBmbGFnIGlzIG9uIik7Cit9LCAiUlRD
UnRwU2NyaXB0VHJhbnNmb3JtZXIgaWYgaW5zZXJ0YWJsZSBzdHJlYW0gZmxhZyBpcyBvbiIpOwog
CiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBpZiAod2luZG93LmludGVybmFs
cykKQEAgLTIzLDcgKzIzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAg
Y29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcignbm8tdHJhbnNmb3JtLmpzJyk7CiAgICAgY29uc3Qg
ZGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gd29ya2VyLm9ubWVzc2FnZSA9IChl
dmVudCkgPT4gcmVzb2x2ZShldmVudC5kYXRhKSk7CiAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAi
b2ZmIik7Ci19LCAibm8gcmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lciBpZiBpbnNlcnRh
YmxlIHN0cmVhbSBmbGFnIGlzIG9mZiIpOworfSwgIm5vIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
IGlmIGluc2VydGFibGUgc3RyZWFtIGZsYWcgaXMgb2ZmIik7CiAgICAgICAgIDwvc2NyaXB0Pgog
ICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YnJ0Yy9zY3JpcHQtdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3Nj
cmlwdC10cmFuc2Zvcm0uanMKaW5kZXggNmIwNzZkZTgzM2YxYmZjNTNmYTE1NDNlYWY5MGY5ZjYw
ZTAzZjJkMS4uOTAxZTY3NjgxOGMxYTgyOTJlZTBkZTdhY2VjMDNhZDNjZDkzZGU2OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanMKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NjcmlwdC10cmFuc2Zvcm0uanMKQEAgLTEs
MzAgKzEsMjUgQEAKLWNsYXNzIE1vY2tSVENSdHBUcmFuc2Zvcm1lciBleHRlbmRzIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyIHsKLSAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAgc3VwZXIoKTsK
LSAgICAgICAgdGhpcy5wb3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gdGhpcy5wb3J0LnBvc3RN
ZXNzYWdlKGV2ZW50LmRhdGEpOwotICAgIH0KLSAgICBzdGFydChyZWFkYWJsZVN0cmVhbSwgd3Jp
dGFibGVTdHJlYW0pCi0gICAgewotICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCJzdGFydGVkIik7
Ci0gICAgICAgIHRoaXMucmVhZGVyID0gcmVhZGFibGVTdHJlYW0uZ2V0UmVhZGVyKCk7Ci0gICAg
ICAgIHRoaXMud3JpdGVyID0gd3JpdGFibGVTdHJlYW0uZ2V0V3JpdGVyKCk7Ci0gICAgICAgIHRo
aXMucHJvY2VzcygpOwotICAgIH0KK29ucnRjdHJhbnNmb3JtID0gKGV2ZW50KSA9PiB7CisgICAg
Y29uc3QgdHJhbnNmb3JtZXIgPSBldmVudC50cmFuc2Zvcm1lcjsKKyAgICB0cmFuc2Zvcm1lci5w
b3J0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4gdHJhbnNmb3JtZXIucG9ydC5wb3N0TWVzc2FnZShl
dmVudC5kYXRhKTsKIAotICAgIHByb2Nlc3MoKQorICAgIHNlbGYucG9zdE1lc3NhZ2UoInN0YXJ0
ZWQiKTsKKyAgICB0cmFuc2Zvcm1lci5yZWFkZXIgPSB0cmFuc2Zvcm1lci5yZWFkYWJsZS5nZXRS
ZWFkZXIoKTsKKyAgICB0cmFuc2Zvcm1lci53cml0ZXIgPSB0cmFuc2Zvcm1lci53cml0YWJsZS5n
ZXRXcml0ZXIoKTsKKworICAgIGZ1bmN0aW9uIHByb2Nlc3ModHJhbnNmb3JtZXIpCiAgICAgewot
ICAgICAgICB0aGlzLnJlYWRlci5yZWFkKCkudGhlbihjaHVuayA9PiB7CisgICAgICAgIHRyYW5z
Zm9ybWVyLnJlYWRlci5yZWFkKCkudGhlbihjaHVuayA9PiB7CiAgICAgICAgICAgICBpZiAoY2h1
bmsuZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBpZiAoY2h1bmsu
dmFsdWUgaW5zdGFuY2VvZiBSVENFbmNvZGVkVmlkZW9GcmFtZSkKICAgICAgICAgICAgICAgICBz
ZWxmLnBvc3RNZXNzYWdlKCJ2aWRlbyBjaHVuayIpOwogICAgICAgICAgICAgZWxzZSBpZiAoY2h1
bmsudmFsdWUgaW5zdGFuY2VvZiBSVENFbmNvZGVkQXVkaW9GcmFtZSkKICAgICAgICAgICAgICAg
ICBzZWxmLnBvc3RNZXNzYWdlKCJhdWRpbyBjaHVuayIpOwotICAgICAgICAgICAgdGhpcy53cml0
ZXIud3JpdGUoY2h1bmsudmFsdWUpOwotICAgICAgICAgICAgdGhpcy5wcm9jZXNzKCk7CisgICAg
ICAgICAgICB0cmFuc2Zvcm1lci53cml0ZXIud3JpdGUoY2h1bmsudmFsdWUpOworICAgICAgICAg
ICAgcHJvY2Vzcyh0cmFuc2Zvcm1lcik7CiAgICAgICAgIH0pOwogICAgIH0KLX07CiAKLXJlZ2lz
dGVyUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoIk1vY2tSVENSdHBUcmFuc2Zvcm0iLCBNb2NrUlRD
UnRwVHJhbnNmb3JtZXIpOworICAgIHByb2Nlc3ModHJhbnNmb3JtZXIpOworfTsKIHNlbGYucG9z
dE1lc3NhZ2UoInJlZ2lzdGVyZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L3NmcmFtZS10cmFuc2Zvcm0uanMKaW5kZXggNGM3MDgzNTVkOTQ1MTNkMzJkODI2NGI5ZWJmMDQ1
MDVjNjJjNzUwMC4uNjE3Y2YwYTM4YWEwODU5ZmE2ZWU4YWYwMWZkYWI1Zjk0YjViZWIxOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uanMKQEAg
LTEsMTQgKzEsNyBAQAotY2xhc3MgU0ZyYW1lUlRDUnRwVHJhbnNmb3JtZXIgZXh0ZW5kcyBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lciB7Ci0gICAgY29uc3RydWN0b3IoKSB7Ci0gICAgICAgIHN1cGVy
KCk7Ci0gICAgICAgIHRoaXMuc2ZyYW1lVHJhbnNmb3JtID0gbmV3IFNGcmFtZVRyYW5zZm9ybSh7
IHJvbGUgOiAiZGVjcnlwdCIsIGF1dGhlbnRpY2F0aW9uU2l6ZTogIjEwIiwgY29tcGF0aWJpbGl0
eU1vZGU6ICJIMjY0IiB9KTsKLSAgICAgICAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIs
IG5ldyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIx
OSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0
cyIsICJkZXJpdmVLZXkiXSkudGhlbihrZXkgPT4gdGhpcy5zZnJhbWVUcmFuc2Zvcm0uc2V0RW5j
cnlwdGlvbktleShrZXkpKTsKLSAgICB9Ci0gICAgc3RhcnQocmVhZGFibGVTdHJlYW0sIHdyaXRh
YmxlU3RyZWFtKQotICAgIHsKLSAgICAgICAgcmVhZGFibGVTdHJlYW0ucGlwZVRocm91Z2godGhp
cy5zZnJhbWVUcmFuc2Zvcm0pLnBpcGVUbyh3cml0YWJsZVN0cmVhbSk7Ci0gICAgfQotfTsKLQot
cmVnaXN0ZXJSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcigiU0ZyYW1lUlRDUnRwVHJhbnNmb3JtIiwg
U0ZyYW1lUlRDUnRwVHJhbnNmb3JtZXIpOworb25ydGN0cmFuc2Zvcm0gPSAoZXZlbnQpID0+IHsK
KyAgICBjb25zdCBzZnJhbWVUcmFuc2Zvcm0gPSBuZXcgU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6
ICJkZWNyeXB0IiwgYXV0aGVudGljYXRpb25TaXplOiAiMTAiLCBjb21wYXRpYmlsaXR5TW9kZTog
IkgyNjQiIH0pOworICAgIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhB
cnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5Mywg
MjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZl
S2V5Il0pLnRoZW4oa2V5ID0+IHNmcmFtZVRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSkp
OworICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gZXZlbnQudHJhbnNmb3JtZXI7CisgICAgdHJhbnNm
b3JtZXIucmVhZGFibGUucGlwZVRocm91Z2goc2ZyYW1lVHJhbnNmb3JtKS5waXBlVG8odHJhbnNm
b3JtZXIud3JpdGFibGUpOworfQogc2VsZi5wb3N0TWVzc2FnZSgicmVnaXN0ZXJlZCIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zv
cm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy92aWRlby1zY3JpcHQtdHJhbnNm
b3JtLmh0bWwKaW5kZXggNjI5M2Q1N2M1OTBjN2M4ZGNhNDI1YmZjZmE3ZTIzODc2M2JmMDZjMi4u
NGY1MmFhYjdiOTIwMjVlZjg4NmUzZDJjZTQ3ZTIxYjUxMTgwNDliYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3ZpZGVvLXNjcmlwdC10cmFuc2Zvcm0uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvdmlkZW8tc2NyaXB0LXRyYW5zZm9ybS5odG1s
CkBAIC0zMyw4ICszMyw4IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIGNv
bnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoe3ZpZGVvOiB0cnVlfSk7CiAKICAgICBsZXQgc2VuZGVyLCByZWNlaXZlcjsKLSAgICBzZW5k
ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwgJ01vY2tSVENS
dHBUcmFuc2Zvcm0nKTsKLSAgICByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTY3JpcHRU
cmFuc2Zvcm0od29ya2VyLCAnTW9ja1JUQ1J0cFRyYW5zZm9ybScpOworICAgIHNlbmRlclRyYW5z
Zm9ybSA9IG5ldyBSVENSdHBTY3JpcHRUcmFuc2Zvcm0od29ya2VyLCB7bmFtZTonTW9ja1JUQ1J0
cFRyYW5zZm9ybScsIG1lZGlhVHlwZTondmlkZW8nLCBzaWRlOidzZW5kZXInfSk7CisgICAgcmVj
ZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU2NyaXB0VHJhbnNmb3JtKHdvcmtlciwge25hbWU6
J01vY2tSVENSdHBUcmFuc2Zvcm0nLCBtZWRpYVR5cGU6J3ZpZGVvJywgc2lkZToncmVjZWl2ZXIn
fSk7CiAKICAgICBwcm9taXNlMSA9IHdhaXRGb3JNZXNzYWdlKHNlbmRlclRyYW5zZm9ybS5wb3J0
LCAic3RhcnRlZCB2aWRlbyBzZW5kZXIiKTsKICAgICBwcm9taXNlMiA9IHdhaXRGb3JNZXNzYWdl
KHJlY2VpdmVyVHJhbnNmb3JtLnBvcnQsICJzdGFydGVkIHZpZGVvIHJlY2VpdmVyIik7Cg==
</data>
<flag name="commit-queue"
          id="442357"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>