<?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>268885</bug_id>
          
          <creation_ts>2024-02-06 19:12:40 -0800</creation_ts>
          <short_desc>[FFC] Flex Formatting Context should follow IFC&apos;s integration codepath design</short_desc>
          <delta_ts>2024-02-12 10:45:47 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2011260</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-02-06 19:12:40 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011261</commentid>
    <comment_count>1</comment_count>
      <attachid>469756</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-06 19:21:10 -0800</bug_when>
    <thetext>Created attachment 469756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011274</commentid>
    <comment_count>2</comment_count>
      <attachid>469757</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-06 19:47:52 -0800</bug_when>
    <thetext>Created attachment 469757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011395</commentid>
    <comment_count>3</comment_count>
      <attachid>469759</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-07 07:35:02 -0800</bug_when>
    <thetext>Created attachment 469759
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011573</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-02-07 15:44:49 -0800</bug_when>
    <thetext>Committed 274252@main (56ef8327a9a9): &lt;https://commits.webkit.org/274252@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469759.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011574</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-02-07 15:46:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/122502444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011632</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2024-02-07 21:05:57 -0800</bug_when>
    <thetext>Broke the watchOS build, tracking revert in https://bugs.webkit.org/show_bug.cgi?id=268964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011729</commentid>
    <comment_count>7</comment_count>
      <attachid>469771</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-08 07:09:17 -0800</bug_when>
    <thetext>Created attachment 469771
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011823</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-02-08 10:47:43 -0800</bug_when>
    <thetext>Committed 274300@main (4bd4d4f8b539): &lt;https://commits.webkit.org/274300@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469771.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2012671</commentid>
    <comment_count>9</comment_count>
      <attachid>469771</attachid>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2024-02-12 04:59:30 -0800</bug_when>
    <thetext>Comment on attachment 469771
[fast-cq]Patch

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

&gt; Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cppSource/WebCore/layout/formattingContexts/flex/FlexFormattingState.cpp:37
&gt; +    : m_flexFormattingContext(flexFormattingContext)

Will the m_flexFormattingContext variable be used later?
It is unused right now.

It triggers build errors on Clang linux debug builds, with -Werror,-Wunused-private-field</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2012728</commentid>
    <comment_count>10</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-02-12 08:46:34 -0800</bug_when>
    <thetext>(In reply to Olivier Blin from comment #9)
&gt; Comment on attachment 469771 [details]
&gt; [fast-cq]Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=469771&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/formattingContexts/flex/FlexFormattingUtils.cppSource/WebCore/layout/formattingContexts/flex/FlexFormattingState.cpp:37
&gt; &gt; +    : m_flexFormattingContext(flexFormattingContext)
&gt; 
&gt; Will the m_flexFormattingContext variable be used later?
&gt; It is unused right now.
&gt; 
&gt; It triggers build errors on Clang linux debug builds, with
&gt; -Werror,-Wunused-private-field
Yeah, it is going to be used soon but also if it blocks you in any way, feel free to remove it (or let me know if you want me to remove it). Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2012777</commentid>
    <comment_count>11</comment_count>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2024-02-12 10:45:47 -0800</bug_when>
    <thetext>(In reply to zalan from comment #10)
&gt; (In reply to Olivier Blin from comment #9)
&gt; &gt; Will the m_flexFormattingContext variable be used later?
&gt; &gt; It is unused right now.
&gt; &gt; 
&gt; &gt; It triggers build errors on Clang linux debug builds, with
&gt; &gt; -Werror,-Wunused-private-field
&gt; Yeah, it is going to be used soon but also if it blocks you in any way, feel
&gt; free to remove it (or let me know if you want me to remove it). Thanks!

No, that&apos;s ok if it is going to be used later.
Thanks for the heads-up!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469756</attachid>
            <date>2024-02-06 19:21:10 -0800</date>
            <delta_ts>2024-02-06 20:03:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268885-20240206192109.patch</filename>
            <type>text/plain</type>
            <size>52345</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4ZmZkYjI5YzRiZTQ3ZGVmZDk2YWUxNTQyNjcwOWM4ZmRiMjk0NzQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgNiBGZWIgMjAyNCAxOToxNDowMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtGRkNdIEZs
ZXggRm9ybWF0dGluZyBDb250ZXh0IHNob3VsZCBmb2xsb3cgSUZDJ3MgaW50ZWdyYXRpb24KIGNv
ZGVwYXRoIGRlc2lnbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4
ODg1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCjEuIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBpcyBubyBsb25nZXIgZGVyaXZlZCBmcm9tIEZvcm1hdHRpbmdDb250ZXh0CjIuIEdlb21ldHJ5
IGNsYXNzIC0+IFV0aWwgKHNpbWlsYXIgdG8gSW5saW5lRm9ybWF0dGluZ1V0aWxzKQozLiBTdGF0
ZSAtPiBGbGV4Q29udGVudENhY2hlIChzaW1pbGFyIHRvIElubGluZUNvbnRlbnRDYWNoZSkKNC4g
UGFzcyBpbiBMYXlvdXRTdGF0ZSB0byBGbGV4Rm9ybWF0dGluZ0NvbnRleHQgdG8gcmVhZCBib3gg
Z2VvbWV0cnkuCgoqIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0OgoqIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6aGFzRm9ybWF0dGluZ1N0YXRl
IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZGVzdHJveUZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRmxleEZv
cm1hdHRpbmdDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
U3RhdGU6OmVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oOgooV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2FjaGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRl
LmNwcC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdD
b250ZXh0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9y
bWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRGbGV4SXRlbXNUb0xvZ2ljYWxTcGFjZSk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkpOgoo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yRmxleEl0
ZW0gY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21l
dHJ5Rm9yRmxleEl0ZW0pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZv
cm1hdHRpbmdDb250ZXh0Ojpyb290IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1h
dHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nVXRpbHMgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpG
bGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRTdGF0ZSk6CigpOiBEZWxldGVkLgoqIFNv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmNwcDogUmVtb3ZlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdT
dGF0ZS5oLgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1V0aWxzOjpGbGV4Rm9ybWF0
dGluZ1V0aWxzKToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWlu
QXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0
dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKToKKiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhM
YXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6RmxleExheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6fkZsZXhMYXlvdXQpOgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZUZvcm1hdHRpbmdS
b290R2VvbWV0cnlBbmRJbnZhbGlkYXRlKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpG
bGV4TGF5b3V0Ojp1cGRhdGVGbGV4SXRlbURpbWVuc2lvbnMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkZsZXhMYXlvdXQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0OjpsYXlvdXQpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJlbmRlcmVycyk6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6Y29udGVudExvZ2ljYWxIZWlnaHQg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJl
bmRlcmVycyBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0Lmg6CihXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6RmxleExheW91dDo6bGF5b3V0U3RhdGUgY29uc3QpOgotLS0KIFNvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogfCAyMiArKy0tLQogU291cmNlL1dl
YkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwICAgICAgIHwgIDggLS0KIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgICAgICAgICB8IDI0ICsrKy0tCiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCAgICAgICAgICAgfCAxMiArLS0KIC4uLi9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCB8ICAxIC0KIC4uLi9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmggICB8ICAxIC0KIC4uLkZvcm1hdHRpbmdTdGF0
ZS5jcHAgPT4gRmxleENvbnRlbnRDYWNoZS5ofSB8IDIwICsrLS0KIC4uLi9mbGV4L0ZsZXhGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgICAgICAgICAgICB8IDM0ICsrKystLS0KIC4uLi9mbGV4L0ZsZXhG
b3JtYXR0aW5nQ29udGV4dC5oICAgICAgICAgICAgICB8IDI5ICsrKy0tLQogLi4uL2ZsZXgvRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgICAgICAgICAgIHwgOTMgLS0tLS0tLS0tLS0tLS0tLS0t
LQogLi4ubWF0dGluZ1N0YXRlLmggPT4gRmxleEZvcm1hdHRpbmdVdGlscy5jcHB9IHwgMzcgKysr
Ky0tLS0KIC4uLmF0dGluZ0dlb21ldHJ5LmggPT4gRmxleEZvcm1hdHRpbmdVdGlscy5ofSB8IDE0
ICstLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuY3BwICAgIHwgIDgg
Ky0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmggICAgICB8ICAxIC0K
IC4uLi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAgICAgICB8IDI2ICsrKy0t
LQogLi4uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmggICAgICAgIHwgIDggKy0K
IDE3IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAyMjIgZGVsZXRpb25zKC0pCiBy
ZW5hbWUgU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L3tGbGV4
Rm9ybWF0dGluZ1N0YXRlLmNwcCA9PiBGbGV4Q29udGVudENhY2hlLmh9ICg4NCUpCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCiByZW5hbWUgU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L3tGbGV4Rm9ybWF0dGluZ1N0YXRlLmggPT4gRmxleEZv
cm1hdHRpbmdVdGlscy5jcHB9ICg2MSUpCiByZW5hbWUgU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9mbGV4L3tGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmggPT4gRmxleEZv
cm1hdHRpbmdVdGlscy5ofSAoNzUlKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggM2QzZTEyZjdhMzE5Li45
OGFiODg3YzM4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzI5LDkgKzE3MjksOCBAQCBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3Bw
CiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNw
cAotbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
Y3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5jcHAKLWxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcAorbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwCiBsYXlvdXQv
ZmxvYXRzL0Zsb2F0QXZvaWRlci5jcHAKIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNw
cAogbGF5b3V0L2Zsb2F0cy9QbGFjZWRGbG9hdHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDI1M2ZkYmZiZjA5Li43ZTll
MWFlNzNiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI2NTgsNyArMjY1OCw2IEBACiAJCTZGQjI0MDA1MjNERkYxMjgwMDc5
NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjVF
MjE0MjIxRjI0NTMwMDM5ODlDRiAvKiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjVFMjEyMjIxRjI0NDcwMDM5
ODlDRiAvKiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RkI3RDJEOTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250
ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
NkZCN0QyREUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUwRkQ3RkMw
MDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZCOTEwNUMyODMwQkM4QTAwMDA0OTI5IC8qIEZs
ZXhSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkMzRjk0NzI1MTY3NTY3MDBBNDlCRUEg
LyogSW5saW5lRGlzcGxheUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkZDM0Y5NDUyNTE2NzU2NjAwQTQ5QkVBIC8qIElubGluZURpc3BsYXlCb3gu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkNC
REI5NzI2NURGMkM4MDAyMUVBN0IgLyogTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZDQkRC
OTUyNjVERjJDNzAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjY2
OCw3ICsyNjY3LDcgQEAKIAkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkU2MzZFODI2
NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lUXVpcmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU2MzZFNzI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5l
UXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkZFN0NGQTIyMTc3RUVGMjAwNUIxNTczIC8qIElubGluZUl0ZW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3
MyAvKiBJbmxpbmVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNkZGOTExRjcyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
RjkxMUY2MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkZGOTExRjcyNjQ4
N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRjkxMUY2MjY0ODdGQzgwMDIwMjFERiAvKiBG
bGV4Rm9ybWF0dGluZ1V0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkZGREM0NDIyMTJFRkYxNzAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZGREM0NDAy
MTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWls
dXJlS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTcxMDI1RUNEMUY5OUYwQ0UwMDRBMjUwQyAvKiBBbmltYXRpb25UaW1lbGluZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEwMjVFQzcxRjk5RjA5
NjAwNEEyNTBDIC8qIEFuaW1hdGlvblRpbWVsaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUzODUsNiArNTM4NCw3IEBACiAJCUREQTIxMEVB
MjlGQzQ2RUUwMEM3MTJDMyAvKiBJbmxpbmVMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRERBMjEwRTkyOUZDNDZFRDAwQzcxMkMzIC8q
IElubGluZUxheW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRERBM0Q1Q0YyQTdEODQ0RDAwMEVDRUUxIC8qIFRleHRPbmx5U2ltcGxl
TGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEREQTNENUNFMkE3RDg0NEQwMDBFQ0VFMSAvKiBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRERC
MDRGM0EyNzhFNTUzOTAwOEQzNjc4IC8qIGxpYldURi5hIGluIFByb2R1Y3QgRGVwZW5kZW5jaWVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREQjA0RjM5Mjc4RTU1MzEwMDhE
MzY3OCAvKiBsaWJXVEYuYSAqLzsgfTsKKwkJRERCODUwQTAyQjcyQkVBMDAwRTcwMEU5IC8qIEZs
ZXhDb250ZW50Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEREQjg1MDlGMkI3MkJFQTAwMEU3MDBFOSAvKiBGbGV4Q29udGVudENhY2hlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRERCRjhEQUYy
QUI1MUZDMTAwQjMzMThBIC8qIFJ1YnlGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRERCRjhEQUUyQUI1MUZDMTAwQjMzMThB
IC8qIFJ1YnlGb3JtYXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUREQzhFOTU2MkEzREU2MDQwMEZGOEVDRiAvKiBMb2dpY2Fs
RmxleEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEREQzhFOTU1MkEzREU2MDQwMEZGOEVDRiAvKiBMb2dpY2FsRmxleEl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEREQ1MTdFQzJBOUZDNTQ0
MDA2OUFGODEgLyogTGluZUxheW91dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRERENTE3RUIyQTlGQzU0NDAwNjlBRjgxIC8qIExpbmVMYXlv
dXRSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTI1ODUsNyArMTI1ODUsNyBAQAogCQk2RjZERjM2RTI2NDcyMkVBMDA5M0U4MzQgLyog
QmxvY2tNYXJnaW5Db2xsYXBzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja01hcmdpbkNvbGxhcHNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNkVF
NzQxMjZENDRFRTIwMDM3NENEQSAvKiBJbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWdu
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY2RUU3NDQyNkQ0NEYwMzAwMzc0
Q0RBIC8qIElubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyog
RmxleEZvcm1hdHRpbmdVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGlu
Z1V0aWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3MzkxOEMyMTA2Q0VE
RDAwNkFGMjYyIC8qIExheW91dFVuaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0I4Q0VDMjM2MjZFNjYwMEM5RkYxNSAv
KiBJbmxpbmVJdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUl0ZW0uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5
b3V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEyNjMyLDkgKzEyNjMyLDcgQEAKIAkJNkZCMjQwMDMyM0RGRjEyNzAw
Nzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5saW5lTGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI1RTIx
MjIyMUYyNDQ3MDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RkI3RDJENzI1MEZEN0U1MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZGQjdEMkQ4MjUwRkQ3RUYwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0
dGluZ1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nU3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI3RDJEOTI1MEZEN0ZDMDAwMjA3QUEg
LyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQjkxMDVCMjgzMEJDOEEwMDAwNDkyOSAvKiBGbGV4
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4UmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9y
bWF0dGluZ0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdHRpbmdHZW9tZXRy
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzNGOTQ1MjUxNjc1NjYwMEE0
OUJFQSAvKiBJbmxpbmVEaXNwbGF5Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElubGluZURpc3BsYXlCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
NjU2LDcgKzEyNjU0LDcgQEAKIAkJNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElubGluZUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIyMjExMDM1MDA0QzUwODIgLyogQ29u
dGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlvdXRQaGFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RkY5MTFG
NjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRjkxMUY2MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9y
bWF0dGluZ1V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsZXhGb3Jt
YXR0aW5nVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGOUYxQkUyNDZE
OTY2QzAwNDM1MDgzIC8qIFRhYmxlTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxl
TGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGREM0M0UyMTJFRkYx
NjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGbG9hdEF2b2lkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RkZEQzQ0MDIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0QXZvaWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg3MjYsNiArMTg3MjQsNyBAQAogCQlEREEzRDVDRTJBN0Q4NDREMDAwRUNF
RTEgLyogVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUREQTNENUQwMkE3RDg0N0UwMDBFQ0VFMSAvKiBUZXh0T25seVNpbXBsZUxp
bmVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEREIwNEYzOTI3OEU1NTMxMDA4
RDM2NzggLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBwYXRoID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCUREQjg1MDlGMkI3MkJFQTAwMEU3MDBFOSAvKiBGbGV4Q29u
dGVudENhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsZXhDb250ZW50
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERCRjhEQUUyQUI1MUZDMTAw
QjMzMThBIC8qIFJ1YnlGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRERCRjhEQjAyQUI1MUZEMTAwQjMzMThBIC8qIFJ1YnlGb3JtYXR0aW5nQ29udGV4
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEREM4RTk1NTJBM0RFNjA0MDBGRjhFQ0YgLyogTG9n
aWNhbEZsZXhJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2ljYWxG
bGV4SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc3NjksMTMgKzI3NzY4
LDEyIEBACiAJCTZGQjdEMkQ1MjUwRkQ3QjUwMDAyMDdBQSAvKiBmbGV4ICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEREI4NTA5RjJCNzJCRUEwMDBFNzAw
RTkgLyogRmxleENvbnRlbnRDYWNoZS5oICovLAogCQkJCTZGQjE3NDc1MjgzQThGRjQwMDY3RDhD
QSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmggKi8sCiAJCQkJNkZCN0QyRDcyNTBGRDdF
NTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNkZCN0QyRDky
NTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oICovLAotCQkJCTZGNzBE
RUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcCAqLywKLQkJ
CQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICov
LAotCQkJCTZGQjdEMkQ4MjUwRkQ3RUYwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNw
cCAqLywKLQkJCQk2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0
ZS5oICovLAorCQkJCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGluZ1V0
aWxzLmNwcCAqLywKKwkJCQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRp
bmdVdGlscy5oICovLAogCQkJCTZGMDQ3QTkwMjg0NTNFRDIwMEMyNUVFNyAvKiBGbGV4TGF5b3V0
LmNwcCAqLywKIAkJCQk2RjA0N0E5MTI4NDUzRURCMDBDMjVFRTcgLyogRmxleExheW91dC5oICov
LAogCQkJCTZGQjkxMDVCMjgzMEJDOEEwMDAwNDkyOSAvKiBGbGV4UmVjdC5oICovLApAQCAtMzkw
MzAsMTAgKzM5MDI4LDEwIEBACiAJCQkJNzI3MkQzMzcyOTJGODE4RTAwRjc0RDk5IC8qIEZpbHRl
clN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyog
RmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGMDRGMEExNTRGMDkwMDBBNDIz
NCAvKiBGaXhlZFRhYmxlTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEREI4NTBBMDJCNzJC
RUEwMDBFNzAwRTkgLyogRmxleENvbnRlbnRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZC
MTc0NzYyODNBOEZGNDAwNjdEOENBIC8qIEZsZXhGb3JtYXR0aW5nQ29uc3RyYWludHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQjdEMkREMjUwRkQ4MjgwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAv
KiBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkI3RDJERTI1
MEZEODJFMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNkZGOTExRjcyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nVXRpbHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGMDQ3QTkyMjg0NTNFREIwMEMyNUVFNyAvKiBGbGV4TGF5b3V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkI5MTA1QzI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2
b2lkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
Y3BwCmluZGV4IDZlMzUwNTI2NDFlMC4uMDMyNmJiZjY4MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuY3BwCkBAIC0yOCw5ICsyOCw2IEBACiAKICNpbmNsdWRlICJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCIK
LSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0
dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1
ZGUgIkxheW91dEVsZW1lbnRCb3guaCIKQEAgLTkxLDExICs4OCw2IEBAIHN0ZDo6dW5pcXVlX3B0
cjxGb3JtYXR0aW5nQ29udGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRl
eHQoY29uc3QKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QmxvY2tGb3JtYXR0aW5nQ29udGV4
dD4oZm9ybWF0dGluZ0NvbnRleHRSb290LCBibG9ja0Zvcm1hdHRpbmdTdGF0ZSk7CiAgICAgfQog
Ci0gICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5n
Q29udGV4dCgpKSB7Ci0gICAgICAgIGF1dG8mIGZsZXhGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRT
dGF0ZS5lbnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Ci0g
ICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEZsZXhGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGlu
Z0NvbnRleHRSb290LCBmbGV4Rm9ybWF0dGluZ1N0YXRlKTsKLSAgICB9Ci0KICAgICBpZiAoZm9y
bWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKSB7
CiAgICAgICAgIGF1dG8mIHRhYmxlRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZW5zdXJl
VGFibGVGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWU8VGFibGVGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGluZ0NvbnRleHRS
b290LCB0YWJsZUZvcm1hdHRpbmdTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRl
LmNwcAppbmRleCA1ZDk3MGM5Y2ZjMmIuLjA3ZTYyZjIzMjcwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0U3Rh
dGUuaCIKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiRmxl
eEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZsZXhDb250ZW50Q2FjaGUuaCIKICNpbmNs
dWRlICJJbmxpbmVDb250ZW50Q2FjaGUuaCIKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgpAQCAtODksOSArODksNyBAQCBCb3hHZW9tZXRyeSYg
TGF5b3V0U3RhdGU6OmVuc3VyZUdlb21ldHJ5Rm9yQm94U2xvdyhjb25zdCBCb3gmIGxheW91dEJv
eCkKIGJvb2wgTGF5b3V0U3RhdGU6Omhhc0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVtZW50Qm94
JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiBt
X2Jsb2NrRm9ybWF0dGluZ1N0YXRlcy5jb250YWlucygmZm9ybWF0dGluZ0NvbnRleHRSb290KQot
ICAgICAgICB8fCBtX3RhYmxlRm9ybWF0dGluZ1N0YXRlcy5jb250YWlucygmZm9ybWF0dGluZ0Nv
bnRleHRSb290KQotICAgICAgICB8fCBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5zKCZm
b3JtYXR0aW5nQ29udGV4dFJvb3QpOworICAgIHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRl
cy5jb250YWlucygmZm9ybWF0dGluZ0NvbnRleHRSb290KSB8fCBtX3RhYmxlRm9ybWF0dGluZ1N0
YXRlcy5jb250YWlucygmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAogRm9ybWF0dGluZ1N0
YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQoY29u
c3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdApAQCAtMTE5LDEwICsx
MTcsMTAgQEAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3Rh
dGVGb3JUYWJsZUZvcm1hdHRpbmdDb250ZXh0KGNvbnMKICAgICByZXR1cm4gKm1fdGFibGVGb3Jt
YXR0aW5nU3RhdGVzLmdldCgmdGFibGVGb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQogCi1GbGV4
Rm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRmxleEZvcm1h
dHRpbmdDb250ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhGb3JtYXR0aW5nQ29udGV4dFJvb3Qp
IGNvbnN0CitGbGV4Q29udGVudENhY2hlJiBMYXlvdXRTdGF0ZTo6ZmxleENvbnRlbnRDYWNoZShj
b25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7Ci0gICAgQVNTRVJUKGZs
ZXhGb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQo
KSk7Ci0gICAgcmV0dXJuICptX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmdldCgmZmxleEZvcm1hdHRp
bmdDb250ZXh0Um9vdCk7CisgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxp
c2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fZmxleENvbnRlbnRD
YWNoZXMuZW5zdXJlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QsIFsmXSB7IHJldHVybiBtYWtlVW5p
cXVlPEZsZXhDb250ZW50Q2FjaGU+KCk7IH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KIAogSW5saW5l
Q29udGVudENhY2hlJiBMYXlvdXRTdGF0ZTo6aW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1l
bnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKQEAgLTE0MywxOCArMTQxLDE4IEBAIFRhYmxl
Rm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlVGFibGVGb3JtYXR0aW5nU3RhdGUo
Y29uc3QgRWxlbWVudEJveCYKICAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmVu
c3VyZSgmZm9ybWF0dGluZ0NvbnRleHRSb290LCBbJl0geyByZXR1cm4gbWFrZVVuaXF1ZTxUYWJs
ZUZvcm1hdHRpbmdTdGF0ZT4oKnRoaXMsIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7IH0pLml0ZXJh
dG9yLT52YWx1ZTsKIH0KIAotRmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3Vy
ZUZsZXhGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRS
b290KQotewotICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4
Rm9ybWF0dGluZ0NvbnRleHQoKSk7Ci0gICAgcmV0dXJuICptX2ZsZXhGb3JtYXR0aW5nU3RhdGVz
LmVuc3VyZSgmZm9ybWF0dGluZ0NvbnRleHRSb290LCBbJl0geyByZXR1cm4gbWFrZVVuaXF1ZTxG
bGV4Rm9ybWF0dGluZ1N0YXRlPigqdGhpcyk7IH0pLml0ZXJhdG9yLT52YWx1ZTsKLX0KLQogdm9p
ZCBMYXlvdXRTdGF0ZTo6ZGVzdHJveUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRl
eHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBtX2Jsb2Nr
Rm9ybWF0dGluZ1N0YXRlcy5yZW1vdmUoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKK3Zv
aWQgTGF5b3V0U3RhdGU6OmRlc3Ryb3lGbGV4Q29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRCb3gm
IGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKK3sKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRS
b290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOworICAgIG1fZmxleENvbnRl
bnRDYWNoZXMucmVtb3ZlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworfQorCiB2b2lkIExheW91
dFN0YXRlOjpkZXN0cm95SW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVz
dGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRTdGF0ZS5oCmluZGV4IDVhODU4YjU2NThmNi4uMzA3MzkxMmZjMTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0U3RhdGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsK
IAogY2xhc3MgQmxvY2tGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBCb3hHZW9tZXRyeTsKLWNsYXNz
IEZsZXhGb3JtYXR0aW5nU3RhdGU7CitjbGFzcyBGbGV4Q29udGVudENhY2hlOwogY2xhc3MgRm9y
bWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBJbmxpbmVDb250
ZW50Q2FjaGU7CkBAIC01NCwxOSArNTQsMTkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUXVp
cmtzTW9kZShjb25zdCBEb2N1bWVudCYpOwogCiAgICAgSW5saW5lQ29udGVudENhY2hlJiBpbmxp
bmVDb250ZW50Q2FjaGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsK
KyAgICBGbGV4Q29udGVudENhY2hlJiBmbGV4Q29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRCb3gm
IGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZW5z
dXJlQmxvY2tGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRl
eHRSb290KTsKICAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlVGFibGVGb3JtYXR0aW5n
U3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKLSAgICBGbGV4
Rm9ybWF0dGluZ1N0YXRlJiBlbnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYg
Zm9ybWF0dGluZ1N0YXRlRm9yQmxvY2tGb3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94
JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7CiAgICAgVGFibGVGb3JtYXR0aW5n
U3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxl
bWVudEJveCYgdGFibGVGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OwotICAgIEZsZXhGb3Jt
YXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckZsZXhGb3JtYXR0aW5nQ29udGV4dChjb25z
dCBFbGVtZW50Qm94JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKIAogICAgIEZv
cm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQoY29uc3Qg
RWxlbWVudEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0OwogCiAgICAgdm9pZCBkZXN0cm95Qmxv
Y2tGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290
KTsKICAgICB2b2lkIGRlc3Ryb3lJbmxpbmVDb250ZW50Q2FjaGUoY29uc3QgRWxlbWVudEJveCYg
Zm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICB2b2lkIGRlc3Ryb3lGbGV4Q29udGVudENhY2hl
KGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKICAgICBib29sIGhh
c0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nUm9vdCkgY29uc3Q7
CiAKQEAgLTkzLDEyICs5MywxMCBAQCBwcml2YXRlOgogICAgIEJveEdlb21ldHJ5JiBlbnN1cmVH
ZW9tZXRyeUZvckJveFNsb3coY29uc3QgQm94Jik7CiAKICAgICBIYXNoTWFwPGNvbnN0IEVsZW1l
bnRCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lQ29udGVudENhY2hlPj4gbV9pbmxpbmVDb250
ZW50Q2FjaGVzOworICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudEJveCosIHN0ZDo6dW5pcXVlX3B0
cjxGbGV4Q29udGVudENhY2hlPj4gbV9mbGV4Q29udGVudENhY2hlczsKKwogICAgIEhhc2hNYXA8
Y29uc3QgRWxlbWVudEJveCosIHN0ZDo6dW5pcXVlX3B0cjxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4+
IG1fYmxvY2tGb3JtYXR0aW5nU3RhdGVzOwogICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudEJveCos
IHN0ZDo6dW5pcXVlX3B0cjxUYWJsZUZvcm1hdHRpbmdTdGF0ZT4+IG1fdGFibGVGb3JtYXR0aW5n
U3RhdGVzOwotICAgIEhhc2hNYXA8Y29uc3QgRWxlbWVudEJveCosIHN0ZDo6dW5pcXVlX3B0cjxG
bGV4Rm9ybWF0dGluZ1N0YXRlPj4gbV9mbGV4Rm9ybWF0dGluZ1N0YXRlczsKLQotICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbmxpbmVDb250ZW50Q2FjaGU+IG1fcm9vdElubGluZUNvbnRlbnRDYWNoZUZv
ckludGVncmF0aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxGbGV4Rm9ybWF0dGluZ1N0YXRlPiBt
X3Jvb3RGbGV4Rm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgSGFzaFNldDxjb25zdCBGb3JtYXR0aW5nQ29udGV4dCo+IG1fZm9ybWF0dGluZ0NvbnRl
eHRMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmluZGV4IDQ0NWRhNWJjNzE1Mi4u
OWNlMzkyODAzYmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0yNyw3ICsy
Nyw2IEBACiAjaW5jbHVkZSAiRm9ybWF0dGluZ0dlb21ldHJ5LmgiCiAKICNpbmNsdWRlICJCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIkZsb2F0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvcm1hdHRpbmdRdWlya3Mu
aCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRp
bmdHZW9tZXRyeS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuaAppbmRleCA4Zjk1NjQyYTI2NzQuLjcyMTZjNWUwMWYxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0
aW5nR2VvbWV0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oCkBAIC04Nyw3ICs4Nyw2IEBAIHB1YmxpYzoKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVkV2lkdGgoY29uc3QgQm94JiwgTGF5b3V0
VW5pdCBjb250YWluaW5nQmxvY2tXaWR0aCkgY29uc3Q7CiAKICAgICBib29sIGlzQmxvY2tGb3Jt
YXR0aW5nR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmlzQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCgpOyB9Ci0gICAgYm9vbCBpc0ZsZXhGb3JtYXR0aW5nR2VvbWV0
cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmlzRmxleEZvcm1hdHRpbmdD
b250ZXh0KCk7IH0KICAgICBib29sIGlzVGFibGVGb3JtYXR0aW5nR2VvbWV0cnkoKSBjb25zdCB7
IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmlzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpOyB9
CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Q29udGVudENhY2hlLmgKc2ltaWxh
cml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3RhdGUuY3BwCnJlbmFtZSB0byBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleENvbnRlbnRDYWNoZS5o
CmluZGV4IDNiM2MxNDFhOTVkYS4uNzZlMTZlYTE3ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0Zs
ZXhDb250ZW50Q2FjaGUuaApAQCAtMjMsMjQgKzIzLDIyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZs
ZXhGb3JtYXR0aW5nU3RhdGUuaCIKKyNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoRmxleEZvcm1hdHRpbmdTdGF0ZSk7CisvLyBGbGV4Q29udGVudENhY2hlIGlzIHVzZWQgdG8g
Y2FjaGUgY29udGVudCBmb3Igc3Vic2VxdWVudCBsYXlvdXRzLgorY2xhc3MgRmxleENvbnRlbnRD
YWNoZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTkxJTkUoRmxleENvbnRlbnRDYWNo
ZSk7CitwdWJsaWM6CiAKLUZsZXhGb3JtYXR0aW5nU3RhdGU6OkZsZXhGb3JtYXR0aW5nU3RhdGUo
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQotICAgIDogRm9ybWF0dGluZ1N0YXRlKFR5cGU6OkZs
ZXgsIGxheW91dFN0YXRlKQotewotfQotCi1GbGV4Rm9ybWF0dGluZ1N0YXRlOjp+RmxleEZvcm1h
dHRpbmdTdGF0ZSgpCi17Ci19Citwcml2YXRlOgorfTsKIAogfQogfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDVjNWUxMjFiNTRlNi4uMmEyMjJm
ODkxMzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcApA
QCAtMjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsZXhGb3Jt
YXR0aW5nQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIgot
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJGbGV4Rm9ybWF0dGlu
Z1V0aWxzLmgiCiAjaW5jbHVkZSAiRmxleFJlY3QuaCIKICNpbmNsdWRlICJJbmxpbmVSZWN0Lmgi
CiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKQEAgLTQzLDExICs0MiwxMCBAQCBuYW1l
c3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZsZXhGb3JtYXR0
aW5nQ29udGV4dCk7CiAKLUZsZXhGb3JtYXR0aW5nQ29udGV4dDo6RmxleEZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgRmxleEZvcm1hdHRp
bmdTdGF0ZSYgZmxleEZvcm1hdHRpbmdTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdDb250ZXh0KGZv
cm1hdHRpbmdDb250ZXh0Um9vdCwgZmxleEZvcm1hdHRpbmdTdGF0ZS5sYXlvdXRTdGF0ZSgpKQot
ICAgICwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlKGZsZXhGb3JtYXR0aW5nU3RhdGUpCi0gICAgLCBt
X2ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoKnRoaXMpCi0gICAgLCBtX2ZsZXhGb3JtYXR0aW5nUXVp
cmtzKCp0aGlzKQorRmxleEZvcm1hdHRpbmdDb250ZXh0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgRWxlbWVudEJveCYgZmxleEJveCwgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQorICAg
IDogbV9mbGV4Qm94KGZsZXhCb3gpCisgICAgLCBtX2xheW91dFN0YXRlKGxheW91dFN0YXRlKQor
ICAgICwgbV9mbGV4Rm9ybWF0dGluZ1V0aWxzKCp0aGlzKQogewogfQogCkBAIC04NSwxNCArODMs
MTQgQEAgRmxleExheW91dDo6TG9naWNhbEZsZXhJdGVtcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6
OmNvbnZlcnRGbGV4SXRlbXNUb0xvZ2ljYWxTcGEKIAogICAgIFZlY3RvcjxGbGV4SXRlbT4gZmxl
eEl0ZW1MaXN0OwogICAgIGF1dG8gZmxleEl0ZW1zTmVlZFJlb3JkZXJpbmcgPSBmYWxzZTsKLSAg
ICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSB0aGlzLT5mb3JtYXR0aW5nU3RhdGUoKTsKKyAgICBh
dXRvJiBsYXlvdXRTdGF0ZSA9IHRoaXMtPmxheW91dFN0YXRlKCk7CiAKICAgICBhdXRvIGNvbnZl
cnRWaXN1YWxUb0xvZ2ljYWwgPSBbJl0gewogICAgICAgICBhdXRvIGRpcmVjdGlvbiA9IHJvb3Qo
KS5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKICAgICAgICAgYXV0byBwcmV2aW91c0xvZ2ljYWxP
cmRlciA9IHN0ZDo6b3B0aW9uYWw8aW50PiB7IH07CiAKICAgICAgICAgZm9yIChhdXRvKiBmbGV4
SXRlbSA9IHJvb3QoKS5maXJzdEluRmxvd0NoaWxkKCk7IGZsZXhJdGVtOyBmbGV4SXRlbSA9IGZs
ZXhJdGVtLT5uZXh0SW5GbG93U2libGluZygpKSB7Ci0gICAgICAgICAgICBhdXRvJiBmbGV4SXRl
bUdlb21ldHJ5ID0gZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KCpmbGV4SXRlbSk7CisgICAg
ICAgICAgICBhdXRvJiBmbGV4SXRlbUdlb21ldHJ5ID0gbGF5b3V0U3RhdGUuZ2VvbWV0cnlGb3JC
b3goKmZsZXhJdGVtKTsKICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gZmxleEl0ZW0tPnN0eWxl
KCk7CiAgICAgICAgICAgICBhdXRvIG1haW5BeGlzID0gTG9naWNhbEZsZXhJdGVtOjpNYWluQXhp
c0dlb21ldHJ5IHsgfTsKICAgICAgICAgICAgIGF1dG8gY3Jvc3NBeGlzID0gTG9naWNhbEZsZXhJ
dGVtOjpDcm9zc0F4aXNHZW9tZXRyeSB7IH07CkBAIC0xNzUsMTEgKzE3MywxMCBAQCBGbGV4TGF5
b3V0OjpMb2dpY2FsRmxleEl0ZW1zIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Y29udmVydEZsZXhJ
dGVtc1RvTG9naWNhbFNwYQogCiB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0
ZW1zR2VvbWV0cnkoY29uc3QgRmxleExheW91dDo6TG9naWNhbEZsZXhJdGVtcyYgbG9naWNhbEZs
ZXhJdGVtTGlzdCwgY29uc3QgRmxleExheW91dDo6TG9naWNhbEZsZXhJdGVtUmVjdHMmIGxvZ2lj
YWxSZWN0cywgY29uc3QgQ29uc3RyYWludHNGb3JGbGV4Q29udGVudCYgY29uc3RyYWludHMpCiB7
Ci0gICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7CiAg
ICAgYXV0byBsb2dpY2FsV2lkdGggPSBsb2dpY2FsUmVjdHMubGFzdCgpLnJpZ2h0KCkgLSBsb2dp
Y2FsUmVjdHMuZmlyc3QoKS5sZWZ0KCk7CiAgICAgYXV0byYgZmxleEJveFN0eWxlID0gcm9vdCgp
LnN0eWxlKCk7CiAgICAgYXV0byBmbGV4RGlyZWN0aW9uID0gZmxleEJveFN0eWxlLmZsZXhEaXJl
Y3Rpb24oKTsKLSAgICBhdXRvIGlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzID0gRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeTo6aXNNYWluQXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMocm9v
dCgpKTsKKyAgICBhdXRvIGlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzID0gRmxleEZv
cm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMocm9vdCgpKTsK
ICAgICBhdXRvIGZsZXhCb3hMb2dpY2FsSGVpZ2h0Rm9yV2FycFJlc2VydmUgPSBbJl0oKSAtPiBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsKICAgICAgICAgaWYgKGZsZXhCb3hTdHlsZS5mbGV4
V3JhcCgpICE9IEZsZXhXcmFwOjpSZXZlcnNlKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTE5NCw3ICsxOTEsNyBAQCB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1z
R2VvbWV0cnkoY29uc3QgRmxleExheW91dDo6TG9naWNhbEZsZXhJdAogCiAgICAgZm9yIChzaXpl
X3QgaW5kZXggPSAwOyBpbmRleCA8IGxvZ2ljYWxGbGV4SXRlbUxpc3Quc2l6ZSgpOyArK2luZGV4
KSB7CiAgICAgICAgIGF1dG8mIGxvZ2ljYWxGbGV4SXRlbSA9IGxvZ2ljYWxGbGV4SXRlbUxpc3Rb
aW5kZXhdOwotICAgICAgICBhdXRvJiBmbGV4SXRlbUdlb21ldHJ5ID0gZm9ybWF0dGluZ1N0YXRl
LmJveEdlb21ldHJ5KGxvZ2ljYWxGbGV4SXRlbS5sYXlvdXRCb3goKSk7CisgICAgICAgIGF1dG8m
IGZsZXhJdGVtR2VvbWV0cnkgPSBnZW9tZXRyeUZvckZsZXhJdGVtKGxvZ2ljYWxGbGV4SXRlbS5s
YXlvdXRCb3goKSk7CiAgICAgICAgIGF1dG8gYm9yZGVyQm94VG9wTGVmdCA9IExheW91dFBvaW50
IHsgfTsKICAgICAgICAgYXV0byBsb2dpY2FsUmVjdCA9IGxvZ2ljYWxSZWN0c1tpbmRleF07CiAg
ICAgICAgIGF1dG8gYWRqdXN0ZWRMb2dpY2FsVG9wID0gIWZsZXhCb3hMb2dpY2FsSGVpZ2h0Rm9y
V2FycFJlc2VydmUgPyBsb2dpY2FsUmVjdC50b3AoKSA6ICpmbGV4Qm94TG9naWNhbEhlaWdodEZv
cldhcnBSZXNlcnZlIC0gbG9naWNhbFJlY3QuYm90dG9tKCk7CkBAIC0yMzQsNSArMjMxLDE4IEBA
IHZvaWQgRmxleEZvcm1hdHRpbmdDb250ZXh0OjpzZXRGbGV4SXRlbXNHZW9tZXRyeShjb25zdCBG
bGV4TGF5b3V0OjpMb2dpY2FsRmxleEl0CiAgICAgfQogfQogCitjb25zdCBCb3hHZW9tZXRyeSYg
RmxleEZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeUZvckZsZXhJdGVtKGNvbnN0IEJveCYgZmxl
eEl0ZW0pIGNvbnN0Cit7CisgICAgQVNTRVJUKGZsZXhJdGVtLmlzRmxleEl0ZW0oKSk7CisgICAg
cmV0dXJuIG1fbGF5b3V0U3RhdGUuZ2VvbWV0cnlGb3JCb3goZmxleEl0ZW0pOworfQorCitCb3hH
ZW9tZXRyeSYgRmxleEZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeUZvckZsZXhJdGVtKGNvbnN0
IEJveCYgZmxleEl0ZW0pCit7CisgICAgQVNTRVJUKGZsZXhJdGVtLmlzRmxleEl0ZW0oKSk7Cisg
ICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUuZW5zdXJlR2VvbWV0cnlGb3JCb3goZmxleEl0ZW0pOwor
fQorCisKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaAppbmRl
eCBhY2YwOWQ5MDljMmUuLjQzYTA1MjVlZTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuaApAQCAtMjYsMTEgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0
aW5nR2VvbWV0cnkuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVk
ZSAiRmxleEZvcm1hdHRpbmdVdGlscy5oIgogI2luY2x1ZGUgIkZsZXhMYXlvdXQuaCIKICNpbmNs
dWRlICJGbGV4UmVjdC5oIgotI2luY2x1ZGUgIkZvcm1hdHRpbmdRdWlya3MuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszNiwy
MiBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBs
YXlvdXQgbG9naWMgZm9yIGZsZXggZm9ybWF0dGluZyBjb250ZXh0cy4KIC8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9jc3MtZmxleGJveC0xLwotY2xhc3MgRmxleEZvcm1hdHRpbmdDb250ZXh0IGZp
bmFsIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0IHsKK2NsYXNzIEZsZXhGb3JtYXR0aW5nQ29u
dGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGbGV4Rm9ybWF0dGluZ0NvbnRleHQp
OwogcHVibGljOgotICAgIEZsZXhGb3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QsIEZsZXhGb3JtYXR0aW5nU3RhdGUmKTsKKyAgICBGbGV4Rm9y
bWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJveCYgZmxleEJveCwgTGF5b3V0U3RhdGUmKTsK
IAogICAgIHZvaWQgbGF5b3V0KGNvbnN0IENvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQmKTsKICAg
ICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cygpOwogCi0gICAgY29uc3QgRmxleEZvcm1hdHRpbmdHZW9tZXRyeSYgZm9ybWF0dGluZ0dl
b21ldHJ5KCkgY29uc3QgeyByZXR1cm4gbV9mbGV4Rm9ybWF0dGluZ0dlb21ldHJ5OyB9Ci0gICAg
Y29uc3QgRm9ybWF0dGluZ1F1aXJrcyYgZm9ybWF0dGluZ1F1aXJrcygpIGNvbnN0IHsgcmV0dXJu
IG1fZmxleEZvcm1hdHRpbmdRdWlya3M7IH0KKyAgICBjb25zdCBFbGVtZW50Qm94JiByb290KCkg
Y29uc3QgeyByZXR1cm4gbV9mbGV4Qm94OyB9CisgICAgY29uc3QgRmxleEZvcm1hdHRpbmdVdGls
cyYgZm9ybWF0dGluZ1V0aWxzKCkgY29uc3QgeyByZXR1cm4gbV9mbGV4Rm9ybWF0dGluZ1V0aWxz
OyB9CisKKyAgICBjb25zdCBCb3hHZW9tZXRyeSYgZ2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBC
b3gmKSBjb25zdDsKKyAgICBCb3hHZW9tZXRyeSYgZ2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBC
b3gmKTsKKworICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0U3RhdGU7IH0KKyAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJl
dHVybiBtX2xheW91dFN0YXRlOyB9CiAKIHByaXZhdGU6CiAgICAgRmxleExheW91dDo6TG9naWNh
bEZsZXhJdGVtcyBjb252ZXJ0RmxleEl0ZW1zVG9Mb2dpY2FsU3BhY2UoY29uc3QgQ29uc3RyYWlu
dHNGb3JGbGV4Q29udGVudCYpOwpAQCAtNTUsMTcgKzU5LDEyIEBAIHByaXZhdGU6CiAKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVkQXV0b01hcmdpblZhbHVlRm9yRmxleEl0
ZW1zKGNvbnN0IENvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQmKTsKIAotICAgIGNvbnN0IEZsZXhG
b3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZv
cm1hdHRpbmdTdGF0ZTsgfQotICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0
ZSgpIHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdTdGF0ZTsgfQotCiBwcml2YXRlOgotICAgIEZs
ZXhGb3JtYXR0aW5nU3RhdGUmIG1fZmxleEZvcm1hdHRpbmdTdGF0ZTsKLSAgICBjb25zdCBGbGV4
Rm9ybWF0dGluZ0dlb21ldHJ5IG1fZmxleEZvcm1hdHRpbmdHZW9tZXRyeTsKLSAgICBjb25zdCBG
b3JtYXR0aW5nUXVpcmtzIG1fZmxleEZvcm1hdHRpbmdRdWlya3M7CisgICAgY29uc3QgRWxlbWVu
dEJveCYgbV9mbGV4Qm94OworICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOworICAgIGNv
bnN0IEZsZXhGb3JtYXR0aW5nVXRpbHMgbV9mbGV4Rm9ybWF0dGluZ1V0aWxzOwogfTsKIAogfQog
fQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQoRmxl
eEZvcm1hdHRpbmdDb250ZXh0LCBpc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZkNjkwMmNiMTk5MC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21ldHJ5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIgotCi0jaW5j
bHVkZSAiRmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5o
IgotI2luY2x1ZGUgIlJlbmRlclN0eWxlSW5saW5lcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6RmxleEZvcm1h
dHRpbmdHZW9tZXRyeShjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIGZsZXhGb3JtYXR0aW5n
Q29udGV4dCkKLSAgICA6IEZvcm1hdHRpbmdHZW9tZXRyeShmbGV4Rm9ybWF0dGluZ0NvbnRleHQp
Ci17Ci19Ci0KLWJvb2wgRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aXNNYWluQXhpc1BhcmFsbGVs
V2l0aElubGluZUF4aXMoY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKLXsKLSAgICBBU1NFUlQo
ZmxleEJveC5pc0ZsZXhCb3goKSk7Ci0gICAgYXV0byBmbGV4RGlyZWN0aW9uID0gZmxleEJveC5z
dHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKLSAgICByZXR1cm4gZmxleERpcmVjdGlvbiA9PSBGbGV4
RGlyZWN0aW9uOjpSb3cgfHwgZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKSA9PSBGbGV4
RGlyZWN0aW9uOjpSb3dSZXZlcnNlOwotfQotCi1ib29sIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6
OmlzUmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24oY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkK
LXsKLSAgICBBU1NFUlQoZmxleEJveC5pc0ZsZXhCb3goKSk7Ci0gICAgYXV0byBmbGV4RGlyZWN0
aW9uID0gZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKLSAgICByZXR1cm4gZmxleERp
cmVjdGlvbiA9PSBGbGV4RGlyZWN0aW9uOjpSb3dSZXZlcnNlIHx8IGZsZXhEaXJlY3Rpb24gPT0g
RmxleERpcmVjdGlvbjo6Q29sdW1uUmV2ZXJzZTsKLX0KLQotSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cyBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5OjppbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGNv
bnN0IEVsZW1lbnRCb3gmIGZsZXhJdGVtKSBjb25zdAotewotICAgIGF1dG8gZml4ZWRNYXJnaW5C
b3JkZXJBbmRQYWRkaW5nID0gWyZdKGF1dG8mIGxheW91dEJveCkgewotICAgICAgICBhdXRvJiBz
dHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAgICAgICByZXR1cm4gZml4ZWRWYWx1ZShzdHls
ZS5tYXJnaW5TdGFydCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBMYXlvdXRVbml0IHsg
c3R5bGUuYm9yZGVyTGVmdFdpZHRoKCkgfQotICAgICAgICAgICAgKyBmaXhlZFZhbHVlKHN0eWxl
LnBhZGRpbmdMZWZ0KCkpLnZhbHVlX29yKDApCi0gICAgICAgICAgICArIGZpeGVkVmFsdWUoc3R5
bGUucGFkZGluZ1JpZ2h0KCkpLnZhbHVlX29yKDApCi0gICAgICAgICAgICArIExheW91dFVuaXQg
eyBzdHlsZS5ib3JkZXJSaWdodFdpZHRoKCkgfQotICAgICAgICAgICAgKyBmaXhlZFZhbHVlKHN0
eWxlLm1hcmdpbkVuZCgpKS52YWx1ZV9vcigwKTsKLSAgICB9OwotCi0gICAgYXV0byBjb21wdXRl
ZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBbJl0oKSAtPiBJbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzIHsKLSAgICAgICAgYXV0byBsb2dpY2FsV2lkdGggPSBmbGV4SXRlbS5zdHlsZSgpLmxv
Z2ljYWxXaWR0aCgpOwotICAgICAgICAvLyBNaW5pbXVtL21heGltdW0gd2lkdGggY2FuJ3QgYmUg
ZGVwZW5kaW5nIG9uIHRoZSBjb250YWluaW5nIGJsb2NrJ3Mgd2lkdGguCi0gICAgICAgIGF1dG8g
bmVlZHNSZXNvbHZlZENvbnRhaW5pbmdCbG9ja1dpZHRoID0gbG9naWNhbFdpZHRoLmlzQ2FsY3Vs
YXRlZCgpIHx8IGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSB8fCBsb2dpY2FsV2lkdGguaXNSZWxh
dGl2ZSgpOwotICAgICAgICBpZiAobmVlZHNSZXNvbHZlZENvbnRhaW5pbmdCbG9ja1dpZHRoKQot
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGZpeGVk
VmFsdWUobG9naWNhbFdpZHRoKSkKLSAgICAgICAgICAgIHJldHVybiB7ICp3aWR0aCwgKndpZHRo
IH07Ci0KLSAgICAgICAgQVNTRVJUKGZsZXhJdGVtLmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRl
eHQoKSk7Ci0gICAgICAgIGF1dG8mIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsK
LSAgICAgICAgYXV0byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gTGF5b3V0Q29udGV4dDo6
Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZmxleEl0ZW0sIGNvbnN0X2Nhc3Q8TGF5b3V0U3RhdGUm
PihsYXlvdXRTdGF0ZSkpLT5jb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKTsKLSAg
ICAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc01pbkNvbnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVy
biB7IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWluaW11bSwgaW50cmluc2ljV2lkdGhDb25z
dHJhaW50cy5taW5pbXVtIH07Ci0gICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNNYXhDb250ZW50
KCkpCi0gICAgICAgICAgICByZXR1cm4geyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGlt
dW0sIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWF4aW11bSB9OwotICAgICAgICByZXR1cm4g
aW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKLSAgICB9OwotICAgIGF1dG8gaW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyA9IGNvbnN0cmFpbkJ5TWluTWF4V2lkdGgoZmxleEl0ZW0sIGNvbXB1dGVk
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpKTsKLSAgICBpbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzLmV4cGFuZChmaXhlZE1hcmdpbkJvcmRlckFuZFBhZGRpbmcoZmxleEl0ZW0pKTsKLSAgICBy
ZXR1cm4gaW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKLX0KLQotfQotfQotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1h
dHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9m
bGV4L0ZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjElCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9y
bWF0dGluZ1N0YXRlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcAppbmRleCAyYzc3MzFlYzFjOTku
LmIyNmMyMTM5NTI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAK
QEAgLTIzLDMwICsyMywzNSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNwcmFnbWEgb25jZQorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsZXhG
b3JtYXR0aW5nVXRpbHMuaCIKIAotI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1
ZGUgIklubGluZVJlY3QuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSAi
RmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgorI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1l
c3BhY2UgTGF5b3V0IHsKIAotY2xhc3MgRmxleEZvcm1hdHRpbmdTdGF0ZSA6IHB1YmxpYyBGb3Jt
YXR0aW5nU3RhdGUgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdT
dGF0ZSk7Ci1wdWJsaWM6Ci0gICAgRmxleEZvcm1hdHRpbmdTdGF0ZShMYXlvdXRTdGF0ZSYpOwot
ICAgIH5GbGV4Rm9ybWF0dGluZ1N0YXRlKCk7CitGbGV4Rm9ybWF0dGluZ1V0aWxzOjpGbGV4Rm9y
bWF0dGluZ1V0aWxzKGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZmxleEZvcm1hdHRpbmdD
b250ZXh0KQorICAgIDogbV9mbGV4Rm9ybWF0dGluZ0NvbnRleHQoZmxleEZvcm1hdHRpbmdDb250
ZXh0KQoreworfQogCi0gICAgY29uc3QgYXV0byYgbGluZXMoKSBjb25zdCB7IHJldHVybiBtX2xp
bmVzOyB9Ci0gICAgdm9pZCBhZGRMaW5lKGNvbnN0IElubGluZVJlY3QmIGxpbmUpIHsgbV9saW5l
cy5hcHBlbmQobGluZSk7IH0KK2Jvb2wgRmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1Bh
cmFsbGVsV2l0aElubGluZUF4aXMoY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKK3sKKyAgICBB
U1NFUlQoZmxleEJveC5pc0ZsZXhCb3goKSk7CisgICAgYXV0byBmbGV4RGlyZWN0aW9uID0gZmxl
eEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gZmxleERpcmVjdGlvbiA9
PSBGbGV4RGlyZWN0aW9uOjpSb3cgfHwgZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKSA9
PSBGbGV4RGlyZWN0aW9uOjpSb3dSZXZlcnNlOworfQogCi1wcml2YXRlOgotICAgIFZlY3RvcjxJ
bmxpbmVSZWN0PiBtX2xpbmVzOwotfTsKK2Jvb2wgRmxleEZvcm1hdHRpbmdVdGlsczo6aXNSZXZl
cnNlZFRvQ29udGVudERpcmVjdGlvbihjb25zdCBFbGVtZW50Qm94JiBmbGV4Qm94KQoreworICAg
IEFTU0VSVChmbGV4Qm94LmlzRmxleEJveCgpKTsKKyAgICBhdXRvIGZsZXhEaXJlY3Rpb24gPSBm
bGV4Qm94LnN0eWxlKCkuZmxleERpcmVjdGlvbigpOworICAgIHJldHVybiBmbGV4RGlyZWN0aW9u
ID09IEZsZXhEaXJlY3Rpb246OlJvd1JldmVyc2UgfHwgZmxleERpcmVjdGlvbiA9PSBGbGV4RGly
ZWN0aW9uOjpDb2x1bW5SZXZlcnNlOworfQogCiB9CiB9CiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfTEFZT1VUX0ZPUk1BVFRJTkdfU1RBVEUoRmxleEZvcm1hdHRpbmdTdGF0ZSwgaXNGbGV4Rm9y
bWF0dGluZ1N0YXRlKCkpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5o
CnNpbWlsYXJpdHkgaW5kZXggNzUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgKcmVuYW1lIHRv
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0
dGluZ1V0aWxzLmgKaW5kZXggMzhiZTNjMTJkMzE5Li5iNzcwM2ZhZWJmOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0
dGluZ0dlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRpbHMuaApAQCAtMzIsMjQgKzMyLDE4IEBAIG5hbWVz
cGFjZSBMYXlvdXQgewogCiBjbGFzcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ7CiAKLWNsYXNzIEZs
ZXhGb3JtYXR0aW5nQ29udGV4dDsKLQotLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHBvc2l0aW9u
aW5nIGFuZCBzaXppbmcgZm9yIGZsZXggaXRlbXMuCi1jbGFzcyBGbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5IDogcHVibGljIEZvcm1hdHRpbmdHZW9tZXRyeSB7CisvLyBIZWxwZXIgY2xhc3MgZm9yIGZs
ZXggbGF5b3V0LgorY2xhc3MgRmxleEZvcm1hdHRpbmdVdGlscyB7CiBwdWJsaWM6Ci0gICAgRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeShjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmKTsKLQotICAg
IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhjb25z
dCBFbGVtZW50Qm94JikgY29uc3Q7CisgICAgRmxleEZvcm1hdHRpbmdVdGlscyhjb25zdCBGbGV4
Rm9ybWF0dGluZ0NvbnRleHQmKTsKIAogICAgIHN0YXRpYyBib29sIGlzTWFpbkF4aXNQYXJhbGxl
bFdpdGhJbmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpOwogICAgIHN0YXRpYyBi
b29sIGlzUmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24oY29uc3QgRWxlbWVudEJveCYgZmxleEJv
eCk7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEZsZXhGb3JtYXR0aW5nQ29udGV4
dD4oRm9ybWF0dGluZ0dlb21ldHJ5Ojpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQorICAgIGNvbnN0
IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgbV9mbGV4Rm9ybWF0dGluZ0NvbnRleHQ7CiB9OwogCiB9
CiB9CiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZPUk1BVFRJTkdfR0VPTUVUUlko
RmxleEZvcm1hdHRpbmdHZW9tZXRyeSwgaXNGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5KCkpCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4TGF5b3V0LmNwcAppbmRleCAzNzY0MjNlNTA1OWIuLjczZTU1YWNjNDRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0Zs
ZXhMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4TGF5b3V0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkZsZXhM
YXlvdXQuaCIKIAogI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUg
IkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKKyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1V0aWxz
LmgiCiAjaW5jbHVkZSAiRmxleFJlY3QuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlU2V0dGVycy5oIgpAQCAtNjM0LDcgKzYzNCw3
IEBAIEZsZXhMYXlvdXQ6OlBvc2l0aW9uQW5kTWFyZ2luc0xpc3QgRmxleExheW91dDo6aGFuZGxl
TWFpbkF4aXNBbGlnbm1lbnQoTGF5b3V0VW5pCiAKICAgICAgICAgICAgICAgICBhdXRvIHBvc2l0
aW9uYWxBbGlnbm1lbnQgPSBbJl0gewogICAgICAgICAgICAgICAgICAgICBhdXRvIHBvc2l0aW9u
YWxBbGlnbm1lbnRWYWx1ZSA9IGp1c3RpZnlDb250ZW50VmFsdWUucG9zaXRpb24oKTsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCFGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojppc01haW5BeGlzUGFy
YWxsZWxXaXRoSW5saW5lQXhpcyhmbGV4Q29udGFpbmVyKCkpICYmIChwb3NpdGlvbmFsQWxpZ25t
ZW50VmFsdWUgPT0gQ29udGVudFBvc2l0aW9uOjpMZWZ0IHx8IHBvc2l0aW9uYWxBbGlnbm1lbnRW
YWx1ZSA9PSBDb250ZW50UG9zaXRpb246OlJpZ2h0KSkKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyhm
bGV4Q29udGFpbmVyKCkpICYmIChwb3NpdGlvbmFsQWxpZ25tZW50VmFsdWUgPT0gQ29udGVudFBv
c2l0aW9uOjpMZWZ0IHx8IHBvc2l0aW9uYWxBbGlnbm1lbnRWYWx1ZSA9PSBDb250ZW50UG9zaXRp
b246OlJpZ2h0KSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uYWxBbGlnbm1lbnRW
YWx1ZSA9IENvbnRlbnRQb3NpdGlvbjo6U3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBwb3NpdGlvbmFsQWxpZ25tZW50VmFsdWU7CiAgICAgICAgICAgICAgICAgfTsKQEAgLTY1MSwx
MiArNjUxLDEyIEBAIEZsZXhMYXlvdXQ6OlBvc2l0aW9uQW5kTWFyZ2luc0xpc3QgRmxleExheW91
dDo6aGFuZGxlTWFpbkF4aXNBbGlnbm1lbnQoTGF5b3V0VW5pCiAgICAgICAgICAgICAgICAgLy8g
bm9uLWxvZ2ljYWwgYWxpZ25tZW50cwogICAgICAgICAgICAgICAgIGNhc2UgQ29udGVudFBvc2l0
aW9uOjpMZWZ0OgogICAgICAgICAgICAgICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoK
LSAgICAgICAgICAgICAgICAgICAgaWYgKEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzUmV2ZXJz
ZWRUb0NvbnRlbnREaXJlY3Rpb24oZmxleENvbnRhaW5lcigpKSkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKEZsZXhGb3JtYXR0aW5nVXRpbHM6OmlzUmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24o
ZmxleENvbnRhaW5lcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFi
bGVNYWluU3BhY2UgLSBsaW5lQ29udGVudE91dGVyTWFpblNpemU7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBMYXlvdXRVbml0IHsgfTsKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6UmlnaHQ6CiAgICAgICAgICAgICAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkVu
ZDoKLSAgICAgICAgICAgICAgICAgICAgaWYgKEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzUmV2
ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24oZmxleENvbnRhaW5lcigpKSkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKEZsZXhGb3JtYXR0aW5nVXRpbHM6OmlzUmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rp
b24oZmxleENvbnRhaW5lcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXlv
dXRVbml0IHsgfTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZU1haW5TcGFj
ZSAtIGxpbmVDb250ZW50T3V0ZXJNYWluU2l6ZTsKICAgICAgICAgICAgICAgICBkZWZhdWx0Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4TGF5b3V0LmgKaW5kZXggYmRiOWNkYjI0YmVmLi5jNDhkODIxMWE1MWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9m
bGV4L0ZsZXhMYXlvdXQuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJGbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRp
bmdTdGF0ZS5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiTG9naWNhbEZsZXhJ
dGVtLmgiCiAjaW5jbHVkZSA8d3RmL1JhbmdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRp
b25GbGV4TGF5b3V0LmNwcAppbmRleCAxNzdjODk1YjYzMzQuLmQxOTdhZDYzNDg4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdy
YXRpb25GbGV4TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuY3BwCkBAIC00MywxMCArNDMsMTUg
QEAgbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIEZsZXhMYXlvdXQ6OkZsZXhMYXlvdXQo
UmVuZGVyRmxleGlibGVCb3gmIGZsZXhCb3hSZW5kZXJlcikKICAgICA6IG1fYm94VHJlZShmbGV4
Qm94UmVuZGVyZXIpCiAgICAgLCBtX2xheW91dFN0YXRlKGZsZXhCb3hSZW5kZXJlci52aWV3KCku
bGF5b3V0U3RhdGUoKSkKLSAgICAsIG1fZmxleEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRTdGF0ZSgp
LmVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUoZmxleEJveCgpKSkKKyAgICAsIG1fZmxleENvbnRl
bnRDYWNoZShsYXlvdXRTdGF0ZSgpLmZsZXhDb250ZW50Q2FjaGUoZmxleEJveCgpKSkKIHsKIH0K
IAorRmxleExheW91dDo6fkZsZXhMYXlvdXQoKQoreworICAgIGxheW91dFN0YXRlKCkuZGVzdHJv
eUZsZXhDb250ZW50Q2FjaGUoZmxleEJveCgpKTsKK30KKwogLy8gRklYTUU6IE1lcmdlIHRoZXNl
IHdpdGggdGhlIG90aGVyIGludGVncmF0aW9uIGxheW91dCBmdW5jdGlvbnMuCiBzdGF0aWMgaW5s
aW5lIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGZsZXhCb3hMb2dpY2FsQm9yZGVyKGNvbnN0
IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwgYm9vbCBpc0xlZnRUb1JpZ2h0SW5saW5l
RGlyZWN0aW9uLCBCbG9ja0Zsb3dEaXJlY3Rpb24gYmxvY2tGbG93RGlyZWN0aW9uKQogewpAQCAt
ODksMTIgKzk0LDkgQEAgdm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVGb3JtYXR0aW5nUm9vdEdlb21l
dHJ5QW5kSW52YWxpZGF0ZSgpCiAgICAgICAgIHJvb3Quc2V0VmVydGljYWxNYXJnaW4oeyB9KTsK
ICAgICB9OwogICAgIHVwZGF0ZUdlb21ldHJ5KGxheW91dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlG
b3JCb3goZmxleEJveCgpKSk7Ci0KLSAgICBmb3IgKGF1dG8mIGZsZXhJdGVtIDogTGF5b3V0Ojpj
aGlsZHJlbk9mVHlwZTxMYXlvdXQ6OkJveD4oZmxleEJveCgpKSkKLSAgICAgICAgbV9mbGV4Rm9y
bWF0dGluZ1N0YXRlLmNsZWFySW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhmbGV4SXRlbSk7CiB9
CiAKLXZvaWQgRmxleExheW91dDo6dXBkYXRlRmxleEl0ZW1EaW1lbnNpb25zKGNvbnN0IFJlbmRl
ckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCBtaW5pbXVtQ29udGVudFNpemUsIExheW91dFVu
aXQgbWF4aW11bUNvbnRlbnRTaXplKQordm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVGbGV4SXRlbURp
bWVuc2lvbnMoY29uc3QgUmVuZGVyQmxvY2smIGZsZXhJdGVtLCBMYXlvdXRVbml0LCBMYXlvdXRV
bml0KQogewogICAgIGF1dG8mIHJvb3RHZW9tZXRyeSA9IGxheW91dFN0YXRlKCkuZ2VvbWV0cnlG
b3JCb3goZmxleEJveCgpKTsKICAgICBhdXRvJiBsYXlvdXRCb3ggPSBtX2JveFRyZWUubGF5b3V0
Qm94Rm9yUmVuZGVyZXIoZmxleEl0ZW0pOwpAQCAtMTE5LDggKzEyMSw2IEBAIHZvaWQgRmxleExh
eW91dDo6dXBkYXRlRmxleEl0ZW1EaW1lbnNpb25zKGNvbnN0IFJlbmRlckJsb2NrJiBmbGV4SXRl
bSwgTGF5b3V0VW5pCiAgICAgICAgICAgICBoZWlnaHRWYWx1ZSA9IHN0ZDo6bWF4KDBfbHUsIGhl
aWdodFZhbHVlIC0gYm94R2VvbWV0cnkudmVydGljYWxCb3JkZXJBbmRQYWRkaW5nKCkpOwogICAg
ICAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94SGVpZ2h0KGhlaWdodFZhbHVlKTsKICAgICB9
Ci0KLSAgICBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUuc2V0SW50cmluc2ljV2lkdGhDb25zdHJhaW50
c0ZvckJveChsYXlvdXRCb3gsIHsgbWluaW11bUNvbnRlbnRTaXplLCBtYXhpbXVtQ29udGVudFNp
emUgfSk7CiB9CiAKIHZvaWQgRmxleExheW91dDo6dXBkYXRlU3R5bGUoY29uc3QgUmVuZGVyQmxv
Y2smLCBjb25zdCBSZW5kZXJTdHlsZSYpCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBGbGV4TGF5
b3V0Ojp1cGRhdGVTdHlsZShjb25zdCBSZW5kZXJCbG9jayYsIGNvbnN0IFJlbmRlclN0eWxlJikK
IAogc3RkOjpwYWlyPExheW91dFVuaXQsIExheW91dFVuaXQ+IEZsZXhMYXlvdXQ6OmNvbXB1dGVJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkKIHsKLSAgICBhdXRvIGZsZXhGb3JtYXR0aW5nQ29u
dGV4dCA9IExheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBtX2ZsZXhG
b3JtYXR0aW5nU3RhdGUgfTsKKyAgICBhdXRvIGZsZXhGb3JtYXR0aW5nQ29udGV4dCA9IExheW91
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBsYXlvdXRTdGF0ZSgpIH07CiAg
ICAgYXV0byBjb25zdHJhaW50cyA9IGZsZXhGb3JtYXR0aW5nQ29udGV4dC5jb21wdXRlZEludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMoKTsKIAogICAgIHJldHVybiB7IGNvbnN0cmFpbnRzLm1pbmlt
dW0sIGNvbnN0cmFpbnRzLm1heGltdW0gfTsKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIEZsZXhM
YXlvdXQ6OmxheW91dCgpCiAgICAgfTsKICAgICBhdXRvIFthdmFpbGFibGVWZXJ0aWNhbFNwYWNl
LCBtaW5pbXVtVmVydGljYWxTcGFjZV0gPSB2ZXJ0aWNhbFNwYWNlRm9yRmxleEl0ZW1zKCk7CiAg
ICAgYXV0byBjb25zdHJhaW50cyA9IExheW91dDo6Q29uc3RyYWludHNGb3JGbGV4Q29udGVudCB7
IHsgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCByb290R2VvbWV0cnkuY29udGVudEJveFRvcCgpIH0s
IGF2YWlsYWJsZVZlcnRpY2FsU3BhY2UsIG1pbmltdW1WZXJ0aWNhbFNwYWNlIH07Ci0gICAgYXV0
byBmbGV4Rm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7
IGZsZXhCb3goKSwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlIH07CisgICAgYXV0byBmbGV4Rm9ybWF0
dGluZ0NvbnRleHQgPSBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwg
bGF5b3V0U3RhdGUoKSB9OwogICAgIGZsZXhGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXQoY29uc3Ry
YWludHMpOwogCiAgICAgdXBkYXRlUmVuZGVyZXJzKCk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9p
ZCBGbGV4TGF5b3V0OjpsYXlvdXQoKQogICAgICAgICBmb3IgKGF1dG8mIHJlbmRlck9iamVjdCA6
IG1fYm94VHJlZS5yZW5kZXJlcnMoKSkgewogICAgICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBk
b3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJPYmplY3QpOwogICAgICAgICAgICAgYXV0byYgbGF5
b3V0Qm94ID0gKnJlbmRlcmVyLmxheW91dEJveCgpOwotICAgICAgICAgICAgYXV0byBib3JkZXJC
b3ggPSBMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hSZWN0KG1fZmxleEZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpKTsKKyAgICAgICAgICAgIGF1dG8gYm9yZGVyQm94
ID0gTGF5b3V0OjpCb3hHZW9tZXRyeTo6Ym9yZGVyQm94UmVjdChsYXlvdXRTdGF0ZSgpLmdlb21l
dHJ5Rm9yQm94KGxheW91dEJveCkpOwogCiAgICAgICAgICAgICByZW5kZXJlci5zZXRXaWR0aChM
YXlvdXRVbml0IHsgfSk7CiAgICAgICAgICAgICByZW5kZXJlci5zZXRIZWlnaHQoTGF5b3V0VW5p
dCB7IH0pOwpAQCAtMTg2LDEyICsxODYsMTIgQEAgdm9pZCBGbGV4TGF5b3V0OjpsYXlvdXQoKQog
ICAgIHJlbGF5b3V0RmxleEl0ZW1zKCk7CiB9CiAKLXZvaWQgRmxleExheW91dDo6dXBkYXRlUmVu
ZGVyZXJzKCkgY29uc3QKK3ZvaWQgRmxleExheW91dDo6dXBkYXRlUmVuZGVyZXJzKCkKIHsKICAg
ICBmb3IgKGF1dG8mIHJlbmRlck9iamVjdCA6IG1fYm94VHJlZS5yZW5kZXJlcnMoKSkgewogICAg
ICAgICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlck9iamVjdCk7
CiAgICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpyZW5kZXJlci5sYXlvdXRCb3goKTsKLSAgICAg
ICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IG1fZmxleEZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9t
ZXRyeShsYXlvdXRCb3gpOworICAgICAgICBhdXRvJiBmbGV4SXRlbUdlb21ldHJ5ID0gbGF5b3V0
U3RhdGUoKS5lbnN1cmVHZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwogICAgICAgICBhdXRvIGJv
cmRlckJveCA9IExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3QoZmxleEl0ZW1HZW9t
ZXRyeSk7CiAgICAgICAgIHJlbmRlcmVyLnNldExvY2F0aW9uKGJvcmRlckJveC50b3BMZWZ0KCkp
OwogICAgICAgICByZW5kZXJlci5zZXRXaWR0aChib3JkZXJCb3gud2lkdGgoKSk7CkBAIC0yMTks
NyArMjE5LDcgQEAgdm9pZCBGbGV4TGF5b3V0Ojpjb2xsZWN0T3ZlcmZsb3coKQogCiBMYXlvdXRV
bml0IEZsZXhMYXlvdXQ6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQgeyBmbGV4Qm94KCksIG1fZmxleEZvcm1h
dHRpbmdTdGF0ZSB9LnVzZWRDb250ZW50SGVpZ2h0KCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5
b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaAppbmRleCBjNmUwMzExYzc1
NDIuLmZmOTRmNjU1NTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGbGV4Rm9y
bWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRmxleENvbnRlbnRDYWNoZS5oIgogI2luY2x1ZGUg
IkxheW91dEludGVncmF0aW9uQm94VHJlZS5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0RW51bXMuaCIKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRmxl
eExheW91dCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgRmxleExheW91dChSZW5kZXJGbGV4aWJsZUJveCYpOwor
ICAgIH5GbGV4TGF5b3V0KCk7CiAKICAgICB2b2lkIHVwZGF0ZUZvcm1hdHRpbmdSb290R2VvbWV0
cnlBbmRJbnZhbGlkYXRlKCk7CiAgICAgdm9pZCB1cGRhdGVGbGV4SXRlbURpbWVuc2lvbnMoY29u
c3QgUmVuZGVyQmxvY2smIGZsZXhJdGVtLCBMYXlvdXRVbml0IG1pbmltdW1Db250ZW50U2l6ZSwg
TGF5b3V0VW5pdCBtYXhpbXVtQ29udGVudFNpemUpOwpAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIHZvaWQgdXBkYXRlUmVuZGVyZXJzKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVSZW5k
ZXJlcnMoKTsKIAogICAgIGNvbnN0IExheW91dDo6RWxlbWVudEJveCYgZmxleEJveCgpIGNvbnN0
IHsgcmV0dXJuIG1fYm94VHJlZS5yb290TGF5b3V0Qm94KCk7IH0KICAgICBMYXlvdXQ6OkVsZW1l
bnRCb3gmIGZsZXhCb3goKSB7IHJldHVybiBtX2JveFRyZWUucm9vdExheW91dEJveCgpOyB9CkBA
IC03MSwxMCArNzIsMTEgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJGbGV4aWJsZUJveCYgZmxleEJv
eFJlbmRlcmVyKCkgeyByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRmxleGlibGVCb3g+KG1fYm94VHJl
ZS5yb290UmVuZGVyZXIoKSk7IH0KIAogICAgIExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0
YXRlKCkgeyByZXR1cm4gKm1fbGF5b3V0U3RhdGU7IH0KKyAgICBjb25zdCBMYXlvdXQ6OkxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CiAK
ICAgICBCb3hUcmVlIG1fYm94VHJlZTsKICAgICBXZWFrUHRyPExheW91dDo6TGF5b3V0U3RhdGU+
IG1fbGF5b3V0U3RhdGU7Ci0gICAgTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1N0YXRlJiBtX2ZsZXhG
b3JtYXR0aW5nU3RhdGU7CisgICAgTGF5b3V0OjpGbGV4Q29udGVudENhY2hlJiBtX2ZsZXhDb250
ZW50Q2FjaGU7CiB9OwogCiB9Cg==
</data>
<flag name="commit-queue"
          id="496154"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469757</attachid>
            <date>2024-02-06 19:47:52 -0800</date>
            <delta_ts>2024-02-07 07:35:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268885-20240206194751.patch</filename>
            <type>text/plain</type>
            <size>53033</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhNDI2Mzc4OGUxMjhkZTQwOGJjMGRjNzQ4OGYyNzQ3NWI5ZjQyYzQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgNiBGZWIgMjAyNCAxOToxNDowMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtGRkNdIEZs
ZXggRm9ybWF0dGluZyBDb250ZXh0IHNob3VsZCBmb2xsb3cgSUZDJ3MgaW50ZWdyYXRpb24KIGNv
ZGVwYXRoIGRlc2lnbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4
ODg1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCjEuIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBpcyBubyBsb25nZXIgZGVyaXZlZCBmcm9tIEZvcm1hdHRpbmdDb250ZXh0CjIuIEdlb21ldHJ5
IGNsYXNzIC0+IFV0aWwgKHNpbWlsYXIgdG8gSW5saW5lRm9ybWF0dGluZ1V0aWxzKQozLiBTdGF0
ZSAtPiBGbGV4Q29udGVudENhY2hlIChzaW1pbGFyIHRvIElubGluZUNvbnRlbnRDYWNoZSkKNC4g
UGFzcyBpbiBMYXlvdXRTdGF0ZSB0byBGbGV4Rm9ybWF0dGluZ0NvbnRleHQgdG8gcmVhZCBib3gg
Z2VvbWV0cnkuCgoqIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0OgoqIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6aGFzRm9ybWF0dGluZ1N0YXRl
IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZGVzdHJveUZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRmxleEZv
cm1hdHRpbmdDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
U3RhdGU6OmVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oOgooV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2FjaGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRl
LmNwcC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdD
b250ZXh0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9y
bWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRGbGV4SXRlbXNUb0xvZ2ljYWxTcGFjZSk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkpOgoo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yRmxleEl0
ZW0gY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21l
dHJ5Rm9yRmxleEl0ZW0pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZv
cm1hdHRpbmdDb250ZXh0Ojpyb290IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1h
dHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nVXRpbHMgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpG
bGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRTdGF0ZSk6CigpOiBEZWxldGVkLgoqIFNv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmNwcDogUmVtb3ZlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdT
dGF0ZS5oLgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1V0aWxzOjpGbGV4Rm9ybWF0
dGluZ1V0aWxzKToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWlu
QXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0
dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKToKKiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhM
YXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6RmxleExheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6fkZsZXhMYXlvdXQpOgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZUZvcm1hdHRpbmdS
b290R2VvbWV0cnlBbmRJbnZhbGlkYXRlKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpG
bGV4TGF5b3V0Ojp1cGRhdGVGbGV4SXRlbURpbWVuc2lvbnMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkZsZXhMYXlvdXQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0OjpsYXlvdXQpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJlbmRlcmVycyk6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6Y29udGVudExvZ2ljYWxIZWlnaHQg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJl
bmRlcmVycyBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0Lmg6CihXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6RmxleExheW91dDo6bGF5b3V0U3RhdGUgY29uc3QpOgotLS0KIFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogLi4uL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgMjIgKystLS0KIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCAgICAgICB8ICA4IC0tCiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwICAgICAgICAgfCAyNCArKystLQogU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmggICAgICAgICAgIHwgMTIgKy0tCiAuLi4vZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgfCAgMSAtCiAuLi4vZm9ybWF0dGluZ0Nv
bnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oICAgfCAgMSAtCiAuLi5Gb3JtYXR0aW5nU3RhdGUu
Y3BwID0+IEZsZXhDb250ZW50Q2FjaGUuaH0gfCAyMCArKy0tCiAuLi4vZmxleC9GbGV4Rm9ybWF0
dGluZ0NvbnRleHQuY3BwICAgICAgICAgICAgfCAzNCArKysrLS0tCiAuLi4vZmxleC9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuaCAgICAgICAgICAgICAgfCAyOSArKystLS0KIC4uLi9mbGV4L0ZsZXhG
b3JtYXR0aW5nR2VvbWV0cnkuY3BwICAgICAgICAgICB8IDkzIC0tLS0tLS0tLS0tLS0tLS0tLS0K
IC4uLm1hdHRpbmdTdGF0ZS5oID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwfSB8IDM3ICsrKyst
LS0tCiAuLi5hdHRpbmdHZW9tZXRyeS5oID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuaH0gfCAxNCAr
LS0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmNwcCAgICB8ICA4ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5oICAgICAgfCAgMSAtCiAu
Li4vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuY3BwICAgICAgfCAyNiArKystLS0K
IC4uLi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oICAgICAgICB8ICA4ICstCiAx
OCBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjIzIGRlbGV0aW9ucygtKQogcmVu
YW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZv
cm1hdHRpbmdTdGF0ZS5jcHAgPT4gRmxleENvbnRlbnRDYWNoZS5ofSAoODQlKQogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcAogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZvcm1hdHRpbmdTdGF0ZS5oID0+IEZsZXhGb3Jt
YXR0aW5nVXRpbHMuY3BwfSAoNjElKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oID0+IEZsZXhGb3Jt
YXR0aW5nVXRpbHMuaH0gKDc1JSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4MGU4MTc5N2E0NWEu
LmU1ZWU2MmFhZDhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzE0LDggKzEzMTQsOCBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29uc3RyYWludHMuaAogICAgIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAogCisgICAgbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2FjaGUuaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgKLSAgICBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5oCiAgICAgbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9Mb2dpY2FsRmxleEl0ZW0uaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDNkM2UxMmY3YTMx
OS4uOThhYjg4N2MzOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTcyOSw5ICsxNzI5LDggQEAgbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFw
c2UuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJs
ZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtz
LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4
dC5jcHAKLWxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuY3BwCi1s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAKK2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcAogbGF5
b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4
dC5jcHAKIGxheW91dC9mbG9hdHMvUGxhY2VkRmxvYXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQyNTNmZGJmYmYwOS4u
N2U5ZTFhZTczYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yNjU4LDcgKzI2NTgsNiBAQAogCQk2RkIyNDAwNTIzREZGMTI4
MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVC
b3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
RkI1RTIxNDIyMUYyNDUzMDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI1RTIxMjIyMUYyNDQ3
MDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZCN0QyREQyNTBGRDgyODAwMDIwN0FBIC8q
IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTZGQjdEMkRFMjUwRkQ4MkUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI3RDJEQTI1MEZE
N0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjkxMDVDMjgzMEJDOEEwMDAwNDkyOSAv
KiBGbGV4UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkZCOTEwNUIyODMwQkM4QTAwMDA0OTI5IC8qIEZsZXhSZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5
QkVBIC8qIElubGluZURpc3BsYXlCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1NjYwMEE0OUJFQSAvKiBJbmxpbmVEaXNwbGF5
Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkZDQkRCOTcyNjVERjJDODAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
Q0JEQjk1MjY1REYyQzcwMDIxRUE3QiAvKiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI2NjgsNyArMjY2Nyw3IEBACiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVD
b250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFNjM2
RTgyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZVF1aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFNjM2RTcyNjQ3OTYyOTAwRjA5NTFFIC8qIElu
bGluZVF1aXJrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU3Q0ZBMDIxNzdFRUYxMDA1
QjE1NzMgLyogSW5saW5lSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZGRjkxMUY3
MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ1V0aWxzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYg
LyogRmxleEZvcm1hdHRpbmdVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2b2lk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRkRD
NDQwMjEyRUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMg
LyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRDIC8qIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MTAyNUVDRDFGOTlGMENFMDA0QTI1MEMgLyogQW5pbWF0aW9uVGltZWxpbmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMDI1RUM3MUY5
OUYwOTYwMDRBMjUwQyAvKiBBbmltYXRpb25UaW1lbGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01Mzg1LDYgKzUzODQsNyBAQAogCQlEREEy
MTBFQTI5RkM0NkVFMDBDNzEyQzMgLyogSW5saW5lTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREQTIxMEU5MjlGQzQ2RUQwMEM3MTJD
MyAvKiBJbmxpbmVMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUREQTNENUNGMkE3RDg0NEQwMDBFQ0VFMSAvKiBUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEREEzRDVDRTJBN0Q4NDREMDAwRUNFRTEgLyogVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUREQjA0RjNBMjc4RTU1MzkwMDhEMzY3OCAvKiBsaWJXVEYuYSBpbiBQcm9kdWN0IERlcGVuZGVu
Y2llcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEREIwNEYzOTI3OEU1NTMx
MDA4RDM2NzggLyogbGliV1RGLmEgKi87IH07CisJCUREQjg1MEEwMkI3MkJFQTAwMEU3MDBFOSAv
KiBGbGV4Q29udGVudENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEREI4NTA5RjJCNzJCRUEwMDBFNzAwRTkgLyogRmxleENvbnRlbnRDYWNoZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUREQkY4
REFGMkFCNTFGQzEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREQkY4REFFMkFCNTFGQzEwMEIz
MzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEREM4RTk1NjJBM0RFNjA0MDBGRjhFQ0YgLyogTG9n
aWNhbEZsZXhJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEREM4RTk1NTJBM0RFNjA0MDBGRjhFQ0YgLyogTG9naWNhbEZsZXhJdGVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRERENTE3RUMyQTlG
QzU0NDAwNjlBRjgxIC8qIExpbmVMYXlvdXRSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERERDUxN0VCMkE5RkM1NDQwMDY5QUY4MSAvKiBMaW5l
TGF5b3V0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEyNTg1LDcgKzEyNTg1LDcgQEAKIAkJNkY2REYzNkUyNjQ3MjJFQTAwOTNFODM0
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmxvY2tNYXJnaW5Db2xsYXBzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjZFRTc0MTI2RDQ0RUUyMDAzNzRDREEgLyogSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lQm94VmVydGljYWxB
bGlnbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNkVFNzQ0MjZENDRGMDMw
MDM3NENEQSAvKiBJbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY3MERFREQyNTExMjZGMzAwRjBGQzc4
IC8qIEZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxleEZvcm1h
dHRpbmdVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNzM5MThDMjEw
NkNFREQwMDZBRjI2MiAvKiBMYXlvdXRVbml0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRVbml0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdCOENFQzIzNjI2RTY2MDBDOUZG
MTUgLyogSW5saW5lSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVJdGVtLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3Q0EzQzQyMDhDMjk1NjAwMkYyOUFCIC8q
IExheW91dFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjYzMiw5ICsxMjYzMiw3IEBACiAJCTZGQjI0MDAzMjNERkYx
MjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElubGluZUxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZC
NUUyMTIyMjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZCN0QyRDcyNTBGRDdFNTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZv
cm1hdHRpbmdTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCN0QyRDkyNTBGRDdGQzAwMDIw
N0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleEZvcm1hdHRpbmdTdGF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyog
RmxleFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8q
IEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkMzRjk0NTI1MTY3NTY2
MDBBNDlCRUEgLyogSW5saW5lRGlzcGxheUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmxpbmVEaXNwbGF5Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjY1Niw3ICsxMjY1NCw3IEBACiAJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxp
bmVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFOUYwOTIyMjIxMTAzNTAwNEM1MDgyIC8q
IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkVGRTgxRDIyRjlEMjJBMDAxMTQ5MjcgLyogTGF5b3V0UGhhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0UGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkZG
OTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxl
eEZvcm1hdHRpbmdVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4
Rm9ybWF0dGluZ1V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRjlGMUJF
MjQ2RDk2NkMwMDQzNTA4MyAvKiBUYWJsZUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWJsZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRkRDNDNFMjEy
RUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmxvYXRBdm9pZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZGREM0NDAyMTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdEF2b2lkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE4NzI2LDYgKzE4NzI0LDcgQEAKIAkJRERBM0Q1Q0UyQTdEODQ0RDAw
MEVDRUUxIC8qIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEREEzRDVEMDJBN0Q4NDdFMDAwRUNFRTEgLyogVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0T25seVNpbXBsZUxpbmVC
dWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERCMDRGMzkyNzhFNTUz
MTAwOEQzNjc4IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlEREI4NTA5RjJCNzJCRUEwMDBFNzAwRTkgLyogRmxl
eENvbnRlbnRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Q29u
dGVudENhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREQkY4REFFMkFCNTFG
QzEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUREQkY4REIwMkFCNTFGRDEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0Nv
bnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERDOEU5NTUyQTNERTYwNDAwRkY4RUNGIC8q
IExvZ2ljYWxGbGV4SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dp
Y2FsRmxleEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzY5LDEzICsy
Nzc2OCwxMiBAQAogCQk2RkI3RDJENTI1MEZEN0I1MDAwMjA3QUEgLyogZmxleCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRERCODUwOUYyQjcyQkVBMDAw
RTcwMEU5IC8qIEZsZXhDb250ZW50Q2FjaGUuaCAqLywKIAkJCQk2RkIxNzQ3NTI4M0E4RkY0MDA2
N0Q4Q0EgLyogRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oICovLAogCQkJCTZGQjdEMkQ3MjUw
RkQ3RTUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGQjdE
MkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLywKLQkJCQk2
RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgKi8s
Ci0JCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
aCAqLywKLQkJCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0
ZS5jcHAgKi8sCi0JCQkJNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
U3RhdGUuaCAqLywKKwkJCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRp
bmdVdGlscy5jcHAgKi8sCisJCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3Jt
YXR0aW5nVXRpbHMuaCAqLywKIAkJCQk2RjA0N0E5MDI4NDUzRUQyMDBDMjVFRTcgLyogRmxleExh
eW91dC5jcHAgKi8sCiAJCQkJNkYwNDdBOTEyODQ1M0VEQjAwQzI1RUU3IC8qIEZsZXhMYXlvdXQu
aCAqLywKIAkJCQk2RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCAqLywKQEAg
LTM5MDMwLDEwICszOTAyOCwxMCBAQAogCQkJCTcyNzJEMzM3MjkyRjgxOEUwMEY3NEQ5OSAvKiBG
aWx0ZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQzAwRDkxMjk2MTlGODAwNUM5NTc1
IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA0RjBBMTU0RjA5MDAw
QTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRERCODUwQTAy
QjcyQkVBMDAwRTcwMEU5IC8qIEZsZXhDb250ZW50Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZGQjE3NDc2MjgzQThGRjQwMDY3RDhDQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1h
dHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIx
REYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZCN0Qy
REUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ1V0aWxzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjA0N0E5MjI4NDUzRURCMDBDMjVFRTcgLyogRmxleExheW91
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCOTEwNUMyODMwQkM4QTAwMDA0OTI5IC8qIEZsZXhS
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZEQzQ0MjIxMkVGRjE3MDBBOUNBOTEgLyogRmxv
YXRBdm9pZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250
ZXh0LmNwcAppbmRleCA2ZTM1MDUyNjQxZTAuLjAzMjZiYmY2ODJhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMjgsOSArMjgsNiBAQAogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRl
LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiRmxleEZv
cm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNp
bmNsdWRlICJMYXlvdXRFbGVtZW50Qm94LmgiCkBAIC05MSwxMSArODgsNiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdD
b250ZXh0KGNvbnN0CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgYmxvY2tGb3JtYXR0aW5nU3RhdGUpOwogICAg
IH0KIAotICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4Rm9ybWF0
dGluZ0NvbnRleHQoKSkgewotICAgICAgICBhdXRvJiBmbGV4Rm9ybWF0dGluZ1N0YXRlID0gbGF5
b3V0U3RhdGUuZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3Qp
OwotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxGbGV4Rm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgZmxleEZvcm1hdHRpbmdTdGF0ZSk7Ci0gICAgfQotCiAgICAgaWYg
KGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQo
KSkgewogICAgICAgICBhdXRvJiB0YWJsZUZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmVu
c3VyZVRhYmxlRm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1hdHRpbmdDb250
ZXh0Um9vdCwgdGFibGVGb3JtYXR0aW5nU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5jcHAKaW5kZXggNWQ5NzBjOWNmYzJiLi4wN2U2MmYyMzI3MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkxheW91
dFN0YXRlLmgiCiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUg
IkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJGbGV4Q29udGVudENhY2hlLmgiCiAj
aW5jbHVkZSAiSW5saW5lQ29udGVudENhY2hlLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKQEAgLTg5LDkgKzg5LDcgQEAgQm94R2VvbWV0
cnkmIExheW91dFN0YXRlOjplbnN1cmVHZW9tZXRyeUZvckJveFNsb3coY29uc3QgQm94JiBsYXlv
dXRCb3gpCiBib29sIExheW91dFN0YXRlOjpoYXNGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVu
dEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdAogewogICAgIEFTU0VSVChmb3JtYXR0
aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICByZXR1
cm4gbV9ibG9ja0Zvcm1hdHRpbmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9v
dCkKLSAgICAgICAgfHwgbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRp
bmdDb250ZXh0Um9vdCkKLSAgICAgICAgfHwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5jb250YWlu
cygmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdT
dGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCkgfHwgbV90YWJsZUZvcm1hdHRp
bmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKIEZvcm1hdHRp
bmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0
KGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKQEAgLTExOSwx
MCArMTE3LDEwIEBAIFRhYmxlRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGlu
Z1N0YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dChjb25zCiAgICAgcmV0dXJuICptX3RhYmxl
Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJnRhYmxlRm9ybWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAot
RmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZsZXhG
b3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHRS
b290KSBjb25zdAorRmxleENvbnRlbnRDYWNoZSYgTGF5b3V0U3RhdGU6OmZsZXhDb250ZW50Q2Fj
aGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogewotICAgIEFTU0VS
VChmbGV4Rm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250
ZXh0KCkpOwotICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZsZXhGb3Jt
YXR0aW5nQ29udGV4dFJvb3QpOworICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0
YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgcmV0dXJuICptX2ZsZXhDb250
ZW50Q2FjaGVzLmVuc3VyZSgmZm9ybWF0dGluZ0NvbnRleHRSb290LCBbJl0geyByZXR1cm4gbWFr
ZVVuaXF1ZTxGbGV4Q29udGVudENhY2hlPigpOyB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAKIElu
bGluZUNvbnRlbnRDYWNoZSYgTGF5b3V0U3RhdGU6OmlubGluZUNvbnRlbnRDYWNoZShjb25zdCBF
bGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCkBAIC0xNDMsMTggKzE0MSwxOCBAQCBU
YWJsZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3VyZVRhYmxlRm9ybWF0dGluZ1N0
YXRlKGNvbnN0IEVsZW1lbnRCb3gmCiAgICAgcmV0dXJuICptX3RhYmxlRm9ybWF0dGluZ1N0YXRl
cy5lbnN1cmUoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCwgWyZdIHsgcmV0dXJuIG1ha2VVbmlxdWU8
VGFibGVGb3JtYXR0aW5nU3RhdGU+KCp0aGlzLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOyB9KS5p
dGVyYXRvci0+dmFsdWU7CiB9CiAKLUZsZXhGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
bnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCkKLXsKLSAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVz
RmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0
YXRlcy5lbnN1cmUoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCwgWyZdIHsgcmV0dXJuIG1ha2VVbmlx
dWU8RmxleEZvcm1hdHRpbmdTdGF0ZT4oKnRoaXMpOyB9KS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0K
IHZvaWQgTGF5b3V0U3RhdGU6OmRlc3Ryb3lCbG9ja0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVt
ZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgbV9i
bG9ja0Zvcm1hdHRpbmdTdGF0ZXMucmVtb3ZlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQog
Cit2b2lkIExheW91dFN0YXRlOjpkZXN0cm95RmxleENvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCit7CisgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250
ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICBtX2ZsZXhD
b250ZW50Q2FjaGVzLnJlbW92ZSgmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKK30KKwogdm9pZCBM
YXlvdXRTdGF0ZTo6ZGVzdHJveUlubGluZUNvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50Qm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9v
dC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
TGF5b3V0U3RhdGUuaAppbmRleCA1YTg1OGI1NjU4ZjYuLjMwNzM5MTJmYzE0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIExheW91
dCB7CiAKIGNsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgQm94R2VvbWV0cnk7Ci1j
bGFzcyBGbGV4Rm9ybWF0dGluZ1N0YXRlOworY2xhc3MgRmxleENvbnRlbnRDYWNoZTsKIGNsYXNz
IEZvcm1hdHRpbmdDb250ZXh0OwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgSW5saW5l
Q29udGVudENhY2hlOwpAQCAtNTQsMTkgKzU0LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVF1aXJrc01vZGUoY29uc3QgRG9jdW1lbnQmKTsKIAogICAgIElubGluZUNvbnRlbnRDYWNoZSYg
aW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCk7CisgICAgRmxleENvbnRlbnRDYWNoZSYgZmxleENvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUm
IGVuc3VyZUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdD
b250ZXh0Um9vdCk7CiAgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGVuc3VyZVRhYmxlRm9ybWF0
dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Ci0gICAg
RmxleEZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVt
ZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgQmxvY2tGb3JtYXR0aW5nU3Rh
dGUmIGZvcm1hdHRpbmdTdGF0ZUZvckJsb2NrRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVu
dEJveCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OwogICAgIFRhYmxlRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JUYWJsZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0
IEVsZW1lbnRCb3gmIHRhYmxlRm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKLSAgICBGbGV4
Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JGbGV4Rm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgRWxlbWVudEJveCYgZmxleEZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7CiAKICAg
ICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGNv
bnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdSb290KSBjb25zdDsKIAogICAgIHZvaWQgZGVzdHJv
eUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCk7CiAgICAgdm9pZCBkZXN0cm95SW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAgdm9pZCBkZXN0cm95RmxleENvbnRlbnRD
YWNoZShjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgYm9v
bCBoYXNGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNv
bnN0OwogCkBAIC05MywxMiArOTMsMTAgQEAgcHJpdmF0ZToKICAgICBCb3hHZW9tZXRyeSYgZW5z
dXJlR2VvbWV0cnlGb3JCb3hTbG93KGNvbnN0IEJveCYpOwogCiAgICAgSGFzaE1hcDxjb25zdCBF
bGVtZW50Qm94Kiwgc3RkOjp1bmlxdWVfcHRyPElubGluZUNvbnRlbnRDYWNoZT4+IG1faW5saW5l
Q29udGVudENhY2hlczsKKyAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1
ZV9wdHI8RmxleENvbnRlbnRDYWNoZT4+IG1fZmxleENvbnRlbnRDYWNoZXM7CisKICAgICBIYXNo
TWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8QmxvY2tGb3JtYXR0aW5nU3Rh
dGU+PiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlczsKICAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRC
b3gqLCBzdGQ6OnVuaXF1ZV9wdHI8VGFibGVGb3JtYXR0aW5nU3RhdGU+PiBtX3RhYmxlRm9ybWF0
dGluZ1N0YXRlczsKLSAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1ZV9w
dHI8RmxleEZvcm1hdHRpbmdTdGF0ZT4+IG1fZmxleEZvcm1hdHRpbmdTdGF0ZXM7Ci0KLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW5saW5lQ29udGVudENhY2hlPiBtX3Jvb3RJbmxpbmVDb250ZW50Q2Fj
aGVGb3JJbnRlZ3JhdGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmxleEZvcm1hdHRpbmdTdGF0
ZT4gbV9yb290RmxleEZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uOwogCiAjaWZuZGVmIE5E
RUJVRwogICAgIEhhc2hTZXQ8Y29uc3QgRm9ybWF0dGluZ0NvbnRleHQqPiBtX2Zvcm1hdHRpbmdD
b250ZXh0TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAppbmRleCA0NDVkYTViYzcx
NTIuLjljZTM5MjgwM2JkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApAQCAtMjcs
NyArMjcsNiBAQAogI2luY2x1ZGUgIkZvcm1hdHRpbmdHZW9tZXRyeS5oIgogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUu
aCIKICNpbmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGb3JtYXR0aW5nUXVp
cmtzLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3Jt
YXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmgKaW5kZXggOGY5NTY0MmEyNjc0Li43MjE2YzVlMDFmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9y
bWF0dGluZ0dlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtODcsNyArODcsNiBAQCBwdWJsaWM6CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZFdpZHRoKGNvbnN0IEJveCYsIExh
eW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgpIGNvbnN0OwogCiAgICAgYm9vbCBpc0Jsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5p
c0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKTsgfQotICAgIGJvb2wgaXNGbGV4Rm9ybWF0dGluZ0dl
b21ldHJ5KCkgY29uc3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5pc0ZsZXhGb3JtYXR0
aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1RhYmxlRm9ybWF0dGluZ0dlb21ldHJ5KCkgY29u
c3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5pc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQo
KTsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleENvbnRlbnRDYWNoZS5oCnNp
bWlsYXJpdHkgaW5kZXggODQlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2Fj
aGUuaAppbmRleCAzYjNjMTQxYTk1ZGEuLjc2ZTE2ZWExN2VmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3Rh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4Q29udGVudENhY2hlLmgKQEAgLTIzLDI0ICsyMywyMiBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEZsZXhGb3JtYXR0aW5nU3RhdGUpOworLy8gRmxleENvbnRlbnRDYWNoZSBpcyB1c2Vk
IHRvIGNhY2hlIGNvbnRlbnQgZm9yIHN1YnNlcXVlbnQgbGF5b3V0cy4KK2NsYXNzIEZsZXhDb250
ZW50Q2FjaGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKEZsZXhDb250ZW50
Q2FjaGUpOworcHVibGljOgogCi1GbGV4Rm9ybWF0dGluZ1N0YXRlOjpGbGV4Rm9ybWF0dGluZ1N0
YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShUeXBl
OjpGbGV4LCBsYXlvdXRTdGF0ZSkKLXsKLX0KLQotRmxleEZvcm1hdHRpbmdTdGF0ZTo6fkZsZXhG
b3JtYXR0aW5nU3RhdGUoKQotewotfQorcHJpdmF0ZToKK307CiAKIH0KIH0KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1YzVlMTIxYjU0ZTYuLjJh
MjIyZjg5MTMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI2LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbGV4
Rm9ybWF0dGluZ0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
aCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRmxleEZvcm1h
dHRpbmdVdGlscy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lUmVj
dC5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCkBAIC00MywxMSArNDIsMTAgQEAg
bmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbGV4Rm9y
bWF0dGluZ0NvbnRleHQpOwogCi1GbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OkZsZXhGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEZsZXhGb3Jt
YXR0aW5nU3RhdGUmIGZsZXhGb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4
dChmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGZsZXhGb3JtYXR0aW5nU3RhdGUubGF5b3V0U3RhdGUo
KSkKLSAgICAsIG1fZmxleEZvcm1hdHRpbmdTdGF0ZShmbGV4Rm9ybWF0dGluZ1N0YXRlKQotICAg
ICwgbV9mbGV4Rm9ybWF0dGluZ0dlb21ldHJ5KCp0aGlzKQotICAgICwgbV9mbGV4Rm9ybWF0dGlu
Z1F1aXJrcygqdGhpcykKK0ZsZXhGb3JtYXR0aW5nQ29udGV4dDo6RmxleEZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkK
KyAgICA6IG1fZmxleEJveChmbGV4Qm94KQorICAgICwgbV9sYXlvdXRTdGF0ZShsYXlvdXRTdGF0
ZSkKKyAgICAsIG1fZmxleEZvcm1hdHRpbmdVdGlscygqdGhpcykKIHsKIH0KIApAQCAtODUsMTQg
KzgzLDE0IEBAIEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMgRmxleEZvcm1hdHRpbmdDb250
ZXh0Ojpjb252ZXJ0RmxleEl0ZW1zVG9Mb2dpY2FsU3BhCiAKICAgICBWZWN0b3I8RmxleEl0ZW0+
IGZsZXhJdGVtTGlzdDsKICAgICBhdXRvIGZsZXhJdGVtc05lZWRSZW9yZGVyaW5nID0gZmFsc2U7
Ci0gICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7Cisg
ICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwogCiAgICAgYXV0byBj
b252ZXJ0VmlzdWFsVG9Mb2dpY2FsID0gWyZdIHsKICAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBy
b290KCkuc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7CiAgICAgICAgIGF1dG8gcHJldmlvdXNMb2dp
Y2FsT3JkZXIgPSBzdGQ6Om9wdGlvbmFsPGludD4geyB9OwogCiAgICAgICAgIGZvciAoYXV0byog
ZmxleEl0ZW0gPSByb290KCkuZmlyc3RJbkZsb3dDaGlsZCgpOyBmbGV4SXRlbTsgZmxleEl0ZW0g
PSBmbGV4SXRlbS0+bmV4dEluRmxvd1NpYmxpbmcoKSkgewotICAgICAgICAgICAgYXV0byYgZmxl
eEl0ZW1HZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeSgqZmxleEl0ZW0pOwor
ICAgICAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGxheW91dFN0YXRlLmdlb21ldHJ5
Rm9yQm94KCpmbGV4SXRlbSk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGZsZXhJdGVtLT5z
dHlsZSgpOwogICAgICAgICAgICAgYXV0byBtYWluQXhpcyA9IExvZ2ljYWxGbGV4SXRlbTo6TWFp
bkF4aXNHZW9tZXRyeSB7IH07CiAgICAgICAgICAgICBhdXRvIGNyb3NzQXhpcyA9IExvZ2ljYWxG
bGV4SXRlbTo6Q3Jvc3NBeGlzR2VvbWV0cnkgeyB9OwpAQCAtMTc1LDExICsxNzMsMTAgQEAgRmxl
eExheW91dDo6TG9naWNhbEZsZXhJdGVtcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRG
bGV4SXRlbXNUb0xvZ2ljYWxTcGEKIAogdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZs
ZXhJdGVtc0dlb21ldHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMmIGxvZ2lj
YWxGbGV4SXRlbUxpc3QsIGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbVJlY3RzJiBs
b2dpY2FsUmVjdHMsIGNvbnN0IENvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQmIGNvbnN0cmFpbnRz
KQogewotICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgp
OwogICAgIGF1dG8gbG9naWNhbFdpZHRoID0gbG9naWNhbFJlY3RzLmxhc3QoKS5yaWdodCgpIC0g
bG9naWNhbFJlY3RzLmZpcnN0KCkubGVmdCgpOwogICAgIGF1dG8mIGZsZXhCb3hTdHlsZSA9IHJv
b3QoKS5zdHlsZSgpOwogICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhCb3hTdHlsZS5mbGV4
RGlyZWN0aW9uKCk7Ci0gICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9
IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlz
KHJvb3QoKSk7CisgICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9IEZs
ZXhGb3JtYXR0aW5nVXRpbHM6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKHJvb3Qo
KSk7CiAgICAgYXV0byBmbGV4Qm94TG9naWNhbEhlaWdodEZvcldhcnBSZXNlcnZlID0gWyZdKCkg
LT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7CiAgICAgICAgIGlmIChmbGV4Qm94U3R5bGUu
ZmxleFdyYXAoKSAhPSBGbGV4V3JhcDo6UmV2ZXJzZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CkBAIC0xOTQsNyArMTkxLDcgQEAgdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZsZXhJ
dGVtc0dlb21ldHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXQKIAogICAgIGZvciAo
c2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBsb2dpY2FsRmxleEl0ZW1MaXN0LnNpemUoKTsgKytp
bmRleCkgewogICAgICAgICBhdXRvJiBsb2dpY2FsRmxleEl0ZW0gPSBsb2dpY2FsRmxleEl0ZW1M
aXN0W2luZGV4XTsKLSAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShsb2dpY2FsRmxleEl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICBh
dXRvJiBmbGV4SXRlbUdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JGbGV4SXRlbShsb2dpY2FsRmxleEl0
ZW0ubGF5b3V0Qm94KCkpOwogICAgICAgICBhdXRvIGJvcmRlckJveFRvcExlZnQgPSBMYXlvdXRQ
b2ludCB7IH07CiAgICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdHNbaW5kZXhd
OwogICAgICAgICBhdXRvIGFkanVzdGVkTG9naWNhbFRvcCA9ICFmbGV4Qm94TG9naWNhbEhlaWdo
dEZvcldhcnBSZXNlcnZlID8gbG9naWNhbFJlY3QudG9wKCkgOiAqZmxleEJveExvZ2ljYWxIZWln
aHRGb3JXYXJwUmVzZXJ2ZSAtIGxvZ2ljYWxSZWN0LmJvdHRvbSgpOwpAQCAtMjM0LDUgKzIzMSwx
OCBAQCB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkoY29u
c3QgRmxleExheW91dDo6TG9naWNhbEZsZXhJdAogICAgIH0KIH0KIAorY29uc3QgQm94R2VvbWV0
cnkmIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBCb3gm
IGZsZXhJdGVtKSBjb25zdAoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkpOwor
ICAgIHJldHVybiBtX2xheW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KGZsZXhJdGVtKTsKK30KKwor
Qm94R2VvbWV0cnkmIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShj
b25zdCBCb3gmIGZsZXhJdGVtKQoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkp
OworICAgIHJldHVybiBtX2xheW91dFN0YXRlLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGZsZXhJdGVt
KTsKK30KKworCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmgK
aW5kZXggYWNmMDlkOTA5YzJlLi40M2EwNTI1ZWU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTI2LDExICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlICJGbGV4Rm9y
bWF0dGluZ0dlb21ldHJ5LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2lu
Y2x1ZGUgIkZsZXhGb3JtYXR0aW5nVXRpbHMuaCIKICNpbmNsdWRlICJGbGV4TGF5b3V0LmgiCiAj
aW5jbHVkZSAiRmxleFJlY3QuaCIKLSNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiAr
MzYsMjIgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0
aGUgbGF5b3V0IGxvZ2ljIGZvciBmbGV4IGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBodHRwczov
L3d3dy53My5vcmcvVFIvY3NzLWZsZXhib3gtMS8KLWNsYXNzIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBmaW5hbCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7CitjbGFzcyBGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdDb250
ZXh0KTsKIHB1YmxpYzoKLSAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBGbGV4Rm9ybWF0dGluZ1N0YXRlJik7CisgICAgRmxl
eEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRl
Jik7CiAKICAgICB2b2lkIGxheW91dChjb25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7
CiAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMoKTsKIAotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkmIGZvcm1hdHRp
bmdHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdHZW9tZXRyeTsgfQot
ICAgIGNvbnN0IEZvcm1hdHRpbmdRdWlya3MmIGZvcm1hdHRpbmdRdWlya3MoKSBjb25zdCB7IHJl
dHVybiBtX2ZsZXhGb3JtYXR0aW5nUXVpcmtzOyB9CisgICAgY29uc3QgRWxlbWVudEJveCYgcm9v
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEJveDsgfQorICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5n
VXRpbHMmIGZvcm1hdHRpbmdVdGlscygpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdV
dGlsczsgfQorCisgICAgY29uc3QgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29u
c3QgQm94JikgY29uc3Q7CisgICAgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29u
c3QgQm94Jik7CisKKyAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX2xheW91dFN0YXRlOyB9CisgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkg
eyByZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCiBwcml2YXRlOgogICAgIEZsZXhMYXlvdXQ6Okxv
Z2ljYWxGbGV4SXRlbXMgY29udmVydEZsZXhJdGVtc1RvTG9naWNhbFNwYWNlKGNvbnN0IENvbnN0
cmFpbnRzRm9yRmxleENvbnRlbnQmKTsKQEAgLTU1LDE3ICs1OSwxMiBAQCBwcml2YXRlOgogCiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZEF1dG9NYXJnaW5WYWx1ZUZvckZs
ZXhJdGVtcyhjb25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7CiAKLSAgICBjb25zdCBG
bGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zs
ZXhGb3JtYXR0aW5nU3RhdGU7IH0KLSAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5n
U3RhdGUoKSB7IHJldHVybiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7IH0KLQogcHJpdmF0ZToKLSAg
ICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7Ci0gICAgY29uc3Qg
RmxleEZvcm1hdHRpbmdHZW9tZXRyeSBtX2ZsZXhGb3JtYXR0aW5nR2VvbWV0cnk7Ci0gICAgY29u
c3QgRm9ybWF0dGluZ1F1aXJrcyBtX2ZsZXhGb3JtYXR0aW5nUXVpcmtzOworICAgIGNvbnN0IEVs
ZW1lbnRCb3gmIG1fZmxleEJveDsKKyAgICBMYXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsKKyAg
ICBjb25zdCBGbGV4Rm9ybWF0dGluZ1V0aWxzIG1fZmxleEZvcm1hdHRpbmdVdGlsczsKIH07CiAK
IH0KIH0KIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19DT05URVhU
KEZsZXhGb3JtYXR0aW5nQ29udGV4dCwgaXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSkKLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0Zs
ZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZDY5MDJjYjE5OTAuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9t
ZXRyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKLQot
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRl
eHQuaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLUZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OkZsZXhG
b3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0JiBmbGV4Rm9ybWF0
dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5nR2VvbWV0cnkoZmxleEZvcm1hdHRpbmdDb250
ZXh0KQotewotfQotCi1ib29sIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJh
bGxlbFdpdGhJbmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCi17Ci0gICAgQVNT
RVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhC
b3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZsZXhEaXJlY3Rpb24gPT0g
RmxleERpcmVjdGlvbjo6Um93IHx8IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCkgPT0g
RmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZTsKLX0KLQotYm9vbCBGbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5Ojppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhC
b3gpCi17Ci0gICAgQVNTRVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERp
cmVjdGlvbiA9IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZs
ZXhEaXJlY3Rpb24gPT0gRmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZSB8fCBmbGV4RGlyZWN0aW9u
ID09IEZsZXhEaXJlY3Rpb246OkNvbHVtblJldmVyc2U7Ci19Ci0KLUludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyhjb25zdCBFbGVtZW50Qm94JiBmbGV4SXRlbSkgY29uc3QKLXsKLSAgICBhdXRvIGZpeGVkTWFy
Z2luQm9yZGVyQW5kUGFkZGluZyA9IFsmXShhdXRvJiBsYXlvdXRCb3gpIHsKLSAgICAgICAgYXV0
byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKLSAgICAgICAgcmV0dXJuIGZpeGVkVmFsdWUo
c3R5bGUubWFyZ2luU3RhcnQoKSkudmFsdWVfb3IoMCkKLSAgICAgICAgICAgICsgTGF5b3V0VW5p
dCB7IHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1ZShz
dHlsZS5wYWRkaW5nTGVmdCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBmaXhlZFZhbHVl
KHN0eWxlLnBhZGRpbmdSaWdodCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBMYXlvdXRV
bml0IHsgc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1
ZShzdHlsZS5tYXJnaW5FbmQoKSkudmFsdWVfb3IoMCk7Ci0gICAgfTsKLQotICAgIGF1dG8gY29t
cHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gWyZdKCkgLT4gSW50cmluc2ljV2lkdGhD
b25zdHJhaW50cyB7Ci0gICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gZmxleEl0ZW0uc3R5bGUo
KS5sb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgLy8gTWluaW11bS9tYXhpbXVtIHdpZHRoIGNhbid0
IGJlIGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmluZyBibG9jaydzIHdpZHRoLgotICAgICAgICBh
dXRvIG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0aCA9IGxvZ2ljYWxXaWR0aC5pc0Nh
bGN1bGF0ZWQoKSB8fCBsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgbG9naWNhbFdpZHRoLmlz
UmVsYXRpdmUoKTsKLSAgICAgICAgaWYgKG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0
aCkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0KLSAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBm
aXhlZFZhbHVlKGxvZ2ljYWxXaWR0aCkpCi0gICAgICAgICAgICByZXR1cm4geyAqd2lkdGgsICp3
aWR0aCB9OwotCi0gICAgICAgIEFTU0VSVChmbGV4SXRlbS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpOwotICAgICAgICBhdXRvJiBsYXlvdXRTdGF0ZSA9IHRoaXMtPmxheW91dFN0YXRl
KCk7Ci0gICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IExheW91dENvbnRl
eHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGZsZXhJdGVtLCBjb25zdF9jYXN0PExheW91dFN0
YXRlJj4obGF5b3V0U3RhdGUpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7
Ci0gICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNNaW5Db250ZW50KCkpCi0gICAgICAgICAgICBy
ZXR1cm4geyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGludHJpbnNpY1dpZHRo
Q29uc3RyYWludHMubWluaW11bSB9OwotICAgICAgICBpZiAobG9naWNhbFdpZHRoLmlzTWF4Q29u
dGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIHsgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5t
YXhpbXVtLCBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0gfTsKLSAgICAgICAgcmV0
dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Ci0gICAgfTsKLSAgICBhdXRvIGludHJpbnNp
Y1dpZHRoQ29uc3RyYWludHMgPSBjb25zdHJhaW5CeU1pbk1heFdpZHRoKGZsZXhJdGVtLCBjb21w
dXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSk7Ci0gICAgaW50cmluc2ljV2lkdGhDb25z
dHJhaW50cy5leHBhbmQoZml4ZWRNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKGZsZXhJdGVtKSk7Ci0g
ICAgcmV0dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Ci19Ci0KLX0KLX0KLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhG
b3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcApzaW1pbGFyaXR5IGluZGV4IDYxJQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdTdGF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAKaW5kZXggMmM3NzMxZWMx
Yzk5Li5iMjZjMjEzOTUyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRpbHMu
Y3BwCkBAIC0yMywzMCArMjMsMzUgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jcHJhZ21hIG9uY2UKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
bGV4Rm9ybWF0dGluZ1V0aWxzLmgiCiAKLSNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKLSNp
bmNsdWRlICJJbmxpbmVSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgIkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIK
KyNpbmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIExheW91dCB7CiAKLWNsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGUgOiBwdWJsaWMg
Rm9ybWF0dGluZ1N0YXRlIHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZsZXhGb3JtYXR0
aW5nU3RhdGUpOwotcHVibGljOgotICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUoTGF5b3V0U3RhdGUm
KTsKLSAgICB+RmxleEZvcm1hdHRpbmdTdGF0ZSgpOworRmxleEZvcm1hdHRpbmdVdGlsczo6Rmxl
eEZvcm1hdHRpbmdVdGlscyhjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIGZsZXhGb3JtYXR0
aW5nQ29udGV4dCkKKyAgICA6IG1fZmxleEZvcm1hdHRpbmdDb250ZXh0KGZsZXhGb3JtYXR0aW5n
Q29udGV4dCkKK3sKK30KIAotICAgIGNvbnN0IGF1dG8mIGxpbmVzKCkgY29uc3QgeyByZXR1cm4g
bV9saW5lczsgfQotICAgIHZvaWQgYWRkTGluZShjb25zdCBJbmxpbmVSZWN0JiBsaW5lKSB7IG1f
bGluZXMuYXBwZW5kKGxpbmUpOyB9Citib29sIEZsZXhGb3JtYXR0aW5nVXRpbHM6OmlzTWFpbkF4
aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCit7Cisg
ICAgQVNTRVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOworICAgIGF1dG8gZmxleERpcmVjdGlvbiA9
IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIGZsZXhEaXJlY3Rp
b24gPT0gRmxleERpcmVjdGlvbjo6Um93IHx8IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9u
KCkgPT0gRmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZTsKK30KIAotcHJpdmF0ZToKLSAgICBWZWN0
b3I8SW5saW5lUmVjdD4gbV9saW5lczsKLX07Citib29sIEZsZXhGb3JtYXR0aW5nVXRpbHM6Omlz
UmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24oY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKK3sK
KyAgICBBU1NFUlQoZmxleEJveC5pc0ZsZXhCb3goKSk7CisgICAgYXV0byBmbGV4RGlyZWN0aW9u
ID0gZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gZmxleERpcmVj
dGlvbiA9PSBGbGV4RGlyZWN0aW9uOjpSb3dSZXZlcnNlIHx8IGZsZXhEaXJlY3Rpb24gPT0gRmxl
eERpcmVjdGlvbjo6Q29sdW1uUmV2ZXJzZTsKK30KIAogfQogfQogCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX1NUQVRFKEZsZXhGb3JtYXR0aW5nU3RhdGUsIGlzRmxl
eEZvcm1hdHRpbmdTdGF0ZSgpKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRp
bHMuaApzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oCnJlbmFt
ZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdVdGlscy5oCmluZGV4IDM4YmUzYzEyZDMxOS4uYjc3MDNmYWViZjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmgKQEAgLTMyLDI0ICszMiwxOCBAQCBu
YW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgRmxleEZvcm1hdHRpbmdDb250ZXh0OwogCi1jbGFz
cyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ7Ci0KLS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBwb3Np
dGlvbmluZyBhbmQgc2l6aW5nIGZvciBmbGV4IGl0ZW1zLgotY2xhc3MgRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nR2VvbWV0cnkgeworLy8gSGVscGVyIGNsYXNzIGZv
ciBmbGV4IGxheW91dC4KK2NsYXNzIEZsZXhGb3JtYXR0aW5nVXRpbHMgewogcHVibGljOgotICAg
IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7Ci0K
LSAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMo
Y29uc3QgRWxlbWVudEJveCYpIGNvbnN0OworICAgIEZsZXhGb3JtYXR0aW5nVXRpbHMoY29uc3Qg
RmxleEZvcm1hdHRpbmdDb250ZXh0Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc01haW5BeGlzUGFy
YWxsZWxXaXRoSW5saW5lQXhpcyhjb25zdCBFbGVtZW50Qm94JiBmbGV4Qm94KTsKICAgICBzdGF0
aWMgYm9vbCBpc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gmIGZs
ZXhCb3gpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQ+KEZvcm1hdHRpbmdHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAgICBj
b25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIG1fZmxleEZvcm1hdHRpbmdDb250ZXh0OwogfTsK
IAogfQogfQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX0dFT01F
VFJZKEZsZXhGb3JtYXR0aW5nR2VvbWV0cnksIGlzRmxleEZvcm1hdHRpbmdHZW9tZXRyeSgpKQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Zs
ZXgvRmxleExheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleExheW91dC5jcHAKaW5kZXggMzc2NDIzZTUwNTliLi43M2U1NWFjYzQ0ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleExheW91dC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJG
bGV4TGF5b3V0LmgiCiAKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKLSNpbmNs
dWRlICJGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdV
dGlscy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZVNldHRlcnMuaCIKQEAgLTYzNCw3ICs2
MzQsNyBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZsZXhMYXlvdXQ6Omhh
bmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogCiAgICAgICAgICAgICAgICAgYXV0byBw
b3NpdGlvbmFsQWxpZ25tZW50ID0gWyZdIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBwb3Np
dGlvbmFsQWxpZ25tZW50VmFsdWUgPSBqdXN0aWZ5Q29udGVudFZhbHVlLnBvc2l0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aXNNYWluQXhp
c1BhcmFsbGVsV2l0aElubGluZUF4aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25hbEFs
aWdubWVudFZhbHVlID09IENvbnRlbnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxpZ25t
ZW50VmFsdWUgPT0gQ29udGVudFBvc2l0aW9uOjpSaWdodCkpCisgICAgICAgICAgICAgICAgICAg
IGlmICghRmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1BhcmFsbGVsV2l0aElubGluZUF4
aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25hbEFsaWdubWVudFZhbHVlID09IENvbnRl
bnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxpZ25tZW50VmFsdWUgPT0gQ29udGVudFBv
c2l0aW9uOjpSaWdodCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmFsQWxpZ25t
ZW50VmFsdWUgPSBDb250ZW50UG9zaXRpb246OlN0YXJ0OwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcG9zaXRpb25hbEFsaWdubWVudFZhbHVlOwogICAgICAgICAgICAgICAgIH07CkBAIC02
NTEsMTIgKzY1MSwxMiBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZsZXhM
YXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogICAgICAgICAgICAgICAg
IC8vIG5vbi1sb2dpY2FsIGFsaWdubWVudHMKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6TGVmdDoKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6U3Rh
cnQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojppc1Jl
dmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAgICAgICAg
ICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0
aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZh
aWxhYmxlTWFpblNwYWNlIC0gbGluZUNvbnRlbnRPdXRlck1haW5TaXplOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgY2FzZSBDb250
ZW50UG9zaXRpb246OlJpZ2h0OgogICAgICAgICAgICAgICAgIGNhc2UgQ29udGVudFBvc2l0aW9u
OjpFbmQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojpp
c1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAgICAg
ICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGly
ZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVNYWlu
U3BhY2UgLSBsaW5lQ29udGVudE91dGVyTWFpblNpemU7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleExheW91dC5oCmluZGV4IGJkYjljZGIyNGJlZi4uYzQ4ZDgyMTFhNTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgv
RmxleExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4TGF5b3V0LmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgIkZsZXhGb3Jt
YXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJGbGV4UmVjdC5oIgogI2luY2x1ZGUgIkxvZ2ljYWxG
bGV4SXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9SYW5nZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVn
cmF0aW9uRmxleExheW91dC5jcHAKaW5kZXggMTc3Yzg5NWI2MzM0Li5kMTk3YWQ2MzQ4ODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dElu
dGVncmF0aW9uRmxleExheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcApAQCAtNDMsMTAgKzQz
LDE1IEBAIG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiBGbGV4TGF5b3V0OjpGbGV4TGF5
b3V0KFJlbmRlckZsZXhpYmxlQm94JiBmbGV4Qm94UmVuZGVyZXIpCiAgICAgOiBtX2JveFRyZWUo
ZmxleEJveFJlbmRlcmVyKQogICAgICwgbV9sYXlvdXRTdGF0ZShmbGV4Qm94UmVuZGVyZXIudmll
dygpLmxheW91dFN0YXRlKCkpCi0gICAgLCBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUobGF5b3V0U3Rh
dGUoKS5lbnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGZsZXhCb3goKSkpCisgICAgLCBtX2ZsZXhD
b250ZW50Q2FjaGUobGF5b3V0U3RhdGUoKS5mbGV4Q29udGVudENhY2hlKGZsZXhCb3goKSkpCiB7
CiB9CiAKK0ZsZXhMYXlvdXQ6On5GbGV4TGF5b3V0KCkKK3sKKyAgICBsYXlvdXRTdGF0ZSgpLmRl
c3Ryb3lGbGV4Q29udGVudENhY2hlKGZsZXhCb3goKSk7Cit9CisKIC8vIEZJWE1FOiBNZXJnZSB0
aGVzZSB3aXRoIHRoZSBvdGhlciBpbnRlZ3JhdGlvbiBsYXlvdXQgZnVuY3Rpb25zLgogc3RhdGlj
IGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBmbGV4Qm94TG9naWNhbEJvcmRlcihj
b25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIsIGJvb2wgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgQmxvY2tGbG93RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlvbikKIHsK
QEAgLTg5LDEyICs5NCw5IEBAIHZvaWQgRmxleExheW91dDo6dXBkYXRlRm9ybWF0dGluZ1Jvb3RH
ZW9tZXRyeUFuZEludmFsaWRhdGUoKQogICAgICAgICByb290LnNldFZlcnRpY2FsTWFyZ2luKHsg
fSk7CiAgICAgfTsKICAgICB1cGRhdGVHZW9tZXRyeShsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21l
dHJ5Rm9yQm94KGZsZXhCb3goKSkpOwotCi0gICAgZm9yIChhdXRvJiBmbGV4SXRlbSA6IExheW91
dDo6Y2hpbGRyZW5PZlR5cGU8TGF5b3V0OjpCb3g+KGZsZXhCb3goKSkpCi0gICAgICAgIG1fZmxl
eEZvcm1hdHRpbmdTdGF0ZS5jbGVhckludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoZmxleEl0ZW0p
OwogfQogCi12b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyhjb25zdCBS
ZW5kZXJCbG9jayYgZmxleEl0ZW0sIExheW91dFVuaXQgbWluaW11bUNvbnRlbnRTaXplLCBMYXlv
dXRVbml0IG1heGltdW1Db250ZW50U2l6ZSkKK3ZvaWQgRmxleExheW91dDo6dXBkYXRlRmxleEl0
ZW1EaW1lbnNpb25zKGNvbnN0IFJlbmRlckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCwgTGF5
b3V0VW5pdCkKIHsKICAgICBhdXRvJiByb290R2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmdlb21l
dHJ5Rm9yQm94KGZsZXhCb3goKSk7CiAgICAgYXV0byYgbGF5b3V0Qm94ID0gbV9ib3hUcmVlLmxh
eW91dEJveEZvclJlbmRlcmVyKGZsZXhJdGVtKTsKQEAgLTExOSw4ICsxMjEsNiBAQCB2b2lkIEZs
ZXhMYXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyhjb25zdCBSZW5kZXJCbG9jayYgZmxl
eEl0ZW0sIExheW91dFVuaQogICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSBzdGQ6Om1heCgwX2x1
LCBoZWlnaHRWYWx1ZSAtIGJveEdlb21ldHJ5LnZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZygpKTsK
ICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodChoZWlnaHRWYWx1ZSk7CiAg
ICAgfQotCi0gICAgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlLnNldEludHJpbnNpY1dpZHRoQ29uc3Ry
YWludHNGb3JCb3gobGF5b3V0Qm94LCB7IG1pbmltdW1Db250ZW50U2l6ZSwgbWF4aW11bUNvbnRl
bnRTaXplIH0pOwogfQogCiB2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZVN0eWxlKGNvbnN0IFJlbmRl
ckJsb2NrJiwgY29uc3QgUmVuZGVyU3R5bGUmKQpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgRmxl
eExheW91dDo6dXBkYXRlU3R5bGUoY29uc3QgUmVuZGVyQmxvY2smLCBjb25zdCBSZW5kZXJTdHls
ZSYpCiAKIHN0ZDo6cGFpcjxMYXlvdXRVbml0LCBMYXlvdXRVbml0PiBGbGV4TGF5b3V0Ojpjb21w
dXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpCiB7Ci0gICAgYXV0byBmbGV4Rm9ybWF0dGlu
Z0NvbnRleHQgPSBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwgbV9m
bGV4Rm9ybWF0dGluZ1N0YXRlIH07CisgICAgYXV0byBmbGV4Rm9ybWF0dGluZ0NvbnRleHQgPSBM
YXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwgbGF5b3V0U3RhdGUoKSB9
OwogICAgIGF1dG8gY29uc3RyYWludHMgPSBmbGV4Rm9ybWF0dGluZ0NvbnRleHQuY29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CiAKICAgICByZXR1cm4geyBjb25zdHJhaW50cy5t
aW5pbXVtLCBjb25zdHJhaW50cy5tYXhpbXVtIH07CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBG
bGV4TGF5b3V0OjpsYXlvdXQoKQogICAgIH07CiAgICAgYXV0byBbYXZhaWxhYmxlVmVydGljYWxT
cGFjZSwgbWluaW11bVZlcnRpY2FsU3BhY2VdID0gdmVydGljYWxTcGFjZUZvckZsZXhJdGVtcygp
OwogICAgIGF1dG8gY29uc3RyYWludHMgPSBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9yRmxleENvbnRl
bnQgeyB7IGhvcml6b250YWxDb25zdHJhaW50cywgcm9vdEdlb21ldHJ5LmNvbnRlbnRCb3hUb3Ao
KSB9LCBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlLCBtaW5pbXVtVmVydGljYWxTcGFjZSB9OwotICAg
IGF1dG8gZmxleEZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQgeyBmbGV4Qm94KCksIG1fZmxleEZvcm1hdHRpbmdTdGF0ZSB9OworICAgIGF1dG8gZmxleEZv
cm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQgeyBmbGV4Qm94
KCksIGxheW91dFN0YXRlKCkgfTsKICAgICBmbGV4Rm9ybWF0dGluZ0NvbnRleHQubGF5b3V0KGNv
bnN0cmFpbnRzKTsKIAogICAgIHVwZGF0ZVJlbmRlcmVycygpOwpAQCAtMTY3LDcgKzE2Nyw3IEBA
IHZvaWQgRmxleExheW91dDo6bGF5b3V0KCkKICAgICAgICAgZm9yIChhdXRvJiByZW5kZXJPYmpl
Y3QgOiBtX2JveFRyZWUucmVuZGVyZXJzKCkpIHsKICAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVy
ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyT2JqZWN0KTsKICAgICAgICAgICAgIGF1dG8m
IGxheW91dEJveCA9ICpyZW5kZXJlci5sYXlvdXRCb3goKTsKLSAgICAgICAgICAgIGF1dG8gYm9y
ZGVyQm94ID0gTGF5b3V0OjpCb3hHZW9tZXRyeTo6Ym9yZGVyQm94UmVjdChtX2ZsZXhGb3JtYXR0
aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KSk7CisgICAgICAgICAgICBhdXRvIGJvcmRl
ckJveCA9IExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3QobGF5b3V0U3RhdGUoKS5n
ZW9tZXRyeUZvckJveChsYXlvdXRCb3gpKTsKIAogICAgICAgICAgICAgcmVuZGVyZXIuc2V0V2lk
dGgoTGF5b3V0VW5pdCB7IH0pOwogICAgICAgICAgICAgcmVuZGVyZXIuc2V0SGVpZ2h0KExheW91
dFVuaXQgeyB9KTsKQEAgLTE4NiwxMiArMTg2LDEyIEBAIHZvaWQgRmxleExheW91dDo6bGF5b3V0
KCkKICAgICByZWxheW91dEZsZXhJdGVtcygpOwogfQogCi12b2lkIEZsZXhMYXlvdXQ6OnVwZGF0
ZVJlbmRlcmVycygpIGNvbnN0Cit2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZVJlbmRlcmVycygpCiB7
CiAgICAgZm9yIChhdXRvJiByZW5kZXJPYmplY3QgOiBtX2JveFRyZWUucmVuZGVyZXJzKCkpIHsK
ICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJPYmpl
Y3QpOwogICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqcmVuZGVyZXIubGF5b3V0Qm94KCk7Ci0g
ICAgICAgIGF1dG8mIGZsZXhJdGVtR2VvbWV0cnkgPSBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUuYm94
R2VvbWV0cnkobGF5b3V0Qm94KTsKKyAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGxh
eW91dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICAgICAgYXV0
byBib3JkZXJCb3ggPSBMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hSZWN0KGZsZXhJdGVt
R2VvbWV0cnkpOwogICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbihib3JkZXJCb3gudG9wTGVm
dCgpKTsKICAgICAgICAgcmVuZGVyZXIuc2V0V2lkdGgoYm9yZGVyQm94LndpZHRoKCkpOwpAQCAt
MjE5LDcgKzIxOSw3IEBAIHZvaWQgRmxleExheW91dDo6Y29sbGVjdE92ZXJmbG93KCkKIAogTGF5
b3V0VW5pdCBGbGV4TGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIExheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBtX2ZsZXhG
b3JtYXR0aW5nU3RhdGUgfS51c2VkQ29udGVudEhlaWdodCgpOworICAgIHJldHVybiB7IH07CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4
L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgKaW5kZXggYzZlMDMx
MWM3NTQyLi5mZjk0ZjY1NTU1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExh
eW91dC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRmxl
eEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZsZXhDb250ZW50Q2FjaGUuaCIKICNpbmNs
dWRlICJMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNz
IEZsZXhMYXlvdXQgOiBwdWJsaWMgQ2FuTWFrZUNoZWNrZWRQdHIgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEZsZXhMYXlvdXQoUmVuZGVyRmxleGlibGVCb3gm
KTsKKyAgICB+RmxleExheW91dCgpOwogCiAgICAgdm9pZCB1cGRhdGVGb3JtYXR0aW5nUm9vdEdl
b21ldHJ5QW5kSW52YWxpZGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlRmxleEl0ZW1EaW1lbnNpb25z
KGNvbnN0IFJlbmRlckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCBtaW5pbXVtQ29udGVudFNp
emUsIExheW91dFVuaXQgbWF4aW11bUNvbnRlbnRTaXplKTsKQEAgLTYyLDcgKzYzLDcgQEAgcHVi
bGljOgogICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICB2b2lkIHVwZGF0ZVJlbmRlcmVycygpIGNvbnN0OworICAgIHZvaWQgdXBkYXRl
UmVuZGVyZXJzKCk7CiAKICAgICBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGZsZXhCb3goKSBj
b25zdCB7IHJldHVybiBtX2JveFRyZWUucm9vdExheW91dEJveCgpOyB9CiAgICAgTGF5b3V0OjpF
bGVtZW50Qm94JiBmbGV4Qm94KCkgeyByZXR1cm4gbV9ib3hUcmVlLnJvb3RMYXlvdXRCb3goKTsg
fQpAQCAtNzEsMTAgKzcyLDExIEBAIHByaXZhdGU6CiAgICAgUmVuZGVyRmxleGlibGVCb3gmIGZs
ZXhCb3hSZW5kZXJlcigpIHsgcmV0dXJuIGRvd25jYXN0PFJlbmRlckZsZXhpYmxlQm94PihtX2Jv
eFRyZWUucm9vdFJlbmRlcmVyKCkpOyB9CiAKICAgICBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CisgICAgY29uc3QgTGF5b3V0OjpM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRTdGF0ZTsg
fQogCiAgICAgQm94VHJlZSBtX2JveFRyZWU7CiAgICAgV2Vha1B0cjxMYXlvdXQ6OkxheW91dFN0
YXRlPiBtX2xheW91dFN0YXRlOwotICAgIExheW91dDo6RmxleEZvcm1hdHRpbmdTdGF0ZSYgbV9m
bGV4Rm9ybWF0dGluZ1N0YXRlOworICAgIExheW91dDo6RmxleENvbnRlbnRDYWNoZSYgbV9mbGV4
Q29udGVudENhY2hlOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469759</attachid>
            <date>2024-02-07 07:35:02 -0800</date>
            <delta_ts>2024-02-08 07:09:14 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-268885-20240207073501.patch</filename>
            <type>text/plain</type>
            <size>53027</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0MjY3MTc0Mzk2OTQwNTA2NGE1NGMyZWNhNDYwMzE3OWI5YTMxODdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgNiBGZWIgMjAyNCAxOToxNDowMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtGRkNdIEZs
ZXggRm9ybWF0dGluZyBDb250ZXh0IHNob3VsZCBmb2xsb3cgSUZDJ3MgaW50ZWdyYXRpb24KIGNv
ZGVwYXRoIGRlc2lnbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4
ODg1CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCjEuIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBpcyBubyBsb25nZXIgZGVyaXZlZCBmcm9tIEZvcm1hdHRpbmdDb250ZXh0CjIuIEdlb21ldHJ5
IGNsYXNzIC0+IFV0aWwgKHNpbWlsYXIgdG8gSW5saW5lRm9ybWF0dGluZ1V0aWxzKQozLiBTdGF0
ZSAtPiBGbGV4Q29udGVudENhY2hlIChzaW1pbGFyIHRvIElubGluZUNvbnRlbnRDYWNoZSkKNC4g
UGFzcyBpbiBMYXlvdXRTdGF0ZSB0byBGbGV4Rm9ybWF0dGluZ0NvbnRleHQgdG8gcmVhZCBib3gg
Z2VvbWV0cnkuCgoqIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0OgoqIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6aGFzRm9ybWF0dGluZ1N0YXRl
IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZGVzdHJveUZsZXhDb250ZW50Q2FjaGUp
OgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRmxleEZv
cm1hdHRpbmdDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
U3RhdGU6OmVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oOgooV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmlzRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2FjaGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRl
LmNwcC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdD
b250ZXh0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9y
bWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRGbGV4SXRlbXNUb0xvZ2ljYWxTcGFjZSk6CihXZWJDb3Jl
OjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkpOgoo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yRmxleEl0
ZW0gY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21l
dHJ5Rm9yRmxleEl0ZW0pOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaDoKKFdlYkNvcmU6OkxheW91dDo6RmxleEZv
cm1hdHRpbmdDb250ZXh0Ojpyb290IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1h
dHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nVXRpbHMgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpG
bGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlIGNvbnN0KToKKFdlYkNvcmU6OkxheW91
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRTdGF0ZSk6CigpOiBEZWxldGVkLgoqIFNv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmNwcDogUmVtb3ZlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdT
dGF0ZS5oLgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1V0aWxzOjpGbGV4Rm9ybWF0
dGluZ1V0aWxzKToKKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWlu
QXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0
dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKToKKiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4
L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhM
YXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6RmxleExheW91dCk6
CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6fkZsZXhMYXlvdXQpOgoo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZUZvcm1hdHRpbmdS
b290R2VvbWV0cnlBbmRJbnZhbGlkYXRlKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpG
bGV4TGF5b3V0Ojp1cGRhdGVGbGV4SXRlbURpbWVuc2lvbnMpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkZsZXhMYXlvdXQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKToK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0OjpsYXlvdXQpOgooV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJlbmRlcmVycyk6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6Y29udGVudExvZ2ljYWxIZWlnaHQg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OnVwZGF0ZVJl
bmRlcmVycyBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0Lmg6CihXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6RmxleExheW91dDo6bGF5b3V0U3RhdGUgY29uc3QpOgotLS0KIFNvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogLi4uL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgMjIgKystLS0KIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCAgICAgICB8ICA4IC0tCiBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwICAgICAgICAgfCAyNCArKystLQogU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmggICAgICAgICAgIHwgMTIgKy0tCiAuLi4vZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgfCAgMSAtCiAuLi4vZm9ybWF0dGluZ0Nv
bnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oICAgfCAgMSAtCiAuLi5Gb3JtYXR0aW5nU3RhdGUu
Y3BwID0+IEZsZXhDb250ZW50Q2FjaGUuaH0gfCAyMCArKy0tCiAuLi4vZmxleC9GbGV4Rm9ybWF0
dGluZ0NvbnRleHQuY3BwICAgICAgICAgICAgfCAzNCArKysrLS0tCiAuLi4vZmxleC9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuaCAgICAgICAgICAgICAgfCAyOSArKystLS0KIC4uLi9mbGV4L0ZsZXhG
b3JtYXR0aW5nR2VvbWV0cnkuY3BwICAgICAgICAgICB8IDkzIC0tLS0tLS0tLS0tLS0tLS0tLS0K
IC4uLm1hdHRpbmdTdGF0ZS5oID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwfSB8IDM3ICsrKyst
LS0tCiAuLi5hdHRpbmdHZW9tZXRyeS5oID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuaH0gfCAxNCAr
LS0KIC4uLi9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmNwcCAgICB8ICA4ICst
CiAuLi4vZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5oICAgICAgfCAgMSAtCiAu
Li4vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuY3BwICAgICAgfCAyNiArKystLS0K
IC4uLi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oICAgICAgICB8ICA4ICstCiAx
OCBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjIzIGRlbGV0aW9ucygtKQogcmVu
YW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZv
cm1hdHRpbmdTdGF0ZS5jcHAgPT4gRmxleENvbnRlbnRDYWNoZS5ofSAoODQlKQogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcAogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZvcm1hdHRpbmdTdGF0ZS5oID0+IEZsZXhGb3Jt
YXR0aW5nVXRpbHMuY3BwfSAoNjElKQogcmVuYW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC97RmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oID0+IEZsZXhGb3Jt
YXR0aW5nVXRpbHMuaH0gKDc1JSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4MGU4MTc5N2E0NWEu
LmU1ZWU2MmFhZDhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzE0LDggKzEzMTQsOCBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29uc3RyYWludHMuaAogICAgIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAogCisgICAgbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2FjaGUuaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgKLSAgICBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5oCiAgICAgbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9Mb2dpY2FsRmxleEl0ZW0uaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDNkM2UxMmY3YTMx
OS4uOThhYjg4N2MzOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTcyOSw5ICsxNzI5LDggQEAgbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFw
c2UuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJs
ZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtz
LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4
dC5jcHAKLWxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuY3BwCi1s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAKK2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcAogbGF5
b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4
dC5jcHAKIGxheW91dC9mbG9hdHMvUGxhY2VkRmxvYXRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQyNTNmZGJmYmYwOS4u
N2U5ZTFhZTczYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yNjU4LDcgKzI2NTgsNiBAQAogCQk2RkIyNDAwNTIzREZGMTI4
MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVC
b3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
RkI1RTIxNDIyMUYyNDUzMDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI1RTIxMjIyMUYyNDQ3
MDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZCN0QyREQyNTBGRDgyODAwMDIwN0FBIC8q
IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTZGQjdEMkRFMjUwRkQ4MkUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI3RDJEQTI1MEZE
N0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjkxMDVDMjgzMEJDOEEwMDAwNDkyOSAv
KiBGbGV4UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkZCOTEwNUIyODMwQkM4QTAwMDA0OTI5IC8qIEZsZXhSZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5
QkVBIC8qIElubGluZURpc3BsYXlCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1NjYwMEE0OUJFQSAvKiBJbmxpbmVEaXNwbGF5
Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkZDQkRCOTcyNjVERjJDODAwMjFFQTdCIC8qIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
Q0JEQjk1MjY1REYyQzcwMDIxRUE3QiAvKiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI2NjgsNyArMjY2Nyw3IEBACiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVD
b250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFNjM2
RTgyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZVF1aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFNjM2RTcyNjQ3OTYyOTAwRjA5NTFFIC8qIElu
bGluZVF1aXJrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU3Q0ZBMDIxNzdFRUYxMDA1
QjE1NzMgLyogSW5saW5lSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZGRjkxMUY3
MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ1V0aWxzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYg
LyogRmxleEZvcm1hdHRpbmdVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2b2lk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRkRD
NDQwMjEyRUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMg
LyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRDIC8qIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MTAyNUVDRDFGOTlGMENFMDA0QTI1MEMgLyogQW5pbWF0aW9uVGltZWxpbmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMDI1RUM3MUY5
OUYwOTYwMDRBMjUwQyAvKiBBbmltYXRpb25UaW1lbGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01Mzg1LDYgKzUzODQsNyBAQAogCQlEREEy
MTBFQTI5RkM0NkVFMDBDNzEyQzMgLyogSW5saW5lTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREQTIxMEU5MjlGQzQ2RUQwMEM3MTJD
MyAvKiBJbmxpbmVMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUREQTNENUNGMkE3RDg0NEQwMDBFQ0VFMSAvKiBUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEREEzRDVDRTJBN0Q4NDREMDAwRUNFRTEgLyogVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUREQjA0RjNBMjc4RTU1MzkwMDhEMzY3OCAvKiBsaWJXVEYuYSBpbiBQcm9kdWN0IERlcGVuZGVu
Y2llcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEREIwNEYzOTI3OEU1NTMx
MDA4RDM2NzggLyogbGliV1RGLmEgKi87IH07CisJCUREQjg1MEEwMkI3MkJFQTAwMEU3MDBFOSAv
KiBGbGV4Q29udGVudENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEREI4NTA5RjJCNzJCRUEwMDBFNzAwRTkgLyogRmxleENvbnRlbnRDYWNoZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUREQkY4
REFGMkFCNTFGQzEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREQkY4REFFMkFCNTFGQzEwMEIz
MzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEREM4RTk1NjJBM0RFNjA0MDBGRjhFQ0YgLyogTG9n
aWNhbEZsZXhJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEREM4RTk1NTJBM0RFNjA0MDBGRjhFQ0YgLyogTG9naWNhbEZsZXhJdGVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRERENTE3RUMyQTlG
QzU0NDAwNjlBRjgxIC8qIExpbmVMYXlvdXRSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERERDUxN0VCMkE5RkM1NDQwMDY5QUY4MSAvKiBMaW5l
TGF5b3V0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEyNTg1LDcgKzEyNTg1LDcgQEAKIAkJNkY2REYzNkUyNjQ3MjJFQTAwOTNFODM0
IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmxvY2tNYXJnaW5Db2xsYXBzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjZFRTc0MTI2RDQ0RUUyMDAzNzRDREEgLyogSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lQm94VmVydGljYWxB
bGlnbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNkVFNzQ0MjZENDRGMDMw
MDM3NENEQSAvKiBJbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY3MERFREQyNTExMjZGMzAwRjBGQzc4
IC8qIEZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxleEZvcm1h
dHRpbmdVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNzM5MThDMjEw
NkNFREQwMDZBRjI2MiAvKiBMYXlvdXRVbml0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRVbml0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdCOENFQzIzNjI2RTY2MDBDOUZG
MTUgLyogSW5saW5lSXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVJdGVtLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3Q0EzQzQyMDhDMjk1NjAwMkYyOUFCIC8q
IExheW91dFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjYzMiw5ICsxMjYzMiw3IEBACiAJCTZGQjI0MDAzMjNERkYx
MjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElubGluZUxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZC
NUUyMTIyMjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZCN0QyRDcyNTBGRDdFNTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZv
cm1hdHRpbmdTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCN0QyRDkyNTBGRDdGQzAwMDIw
N0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleEZvcm1hdHRpbmdTdGF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyog
RmxleFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8q
IEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkMzRjk0NTI1MTY3NTY2
MDBBNDlCRUEgLyogSW5saW5lRGlzcGxheUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmxpbmVEaXNwbGF5Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjY1Niw3ICsxMjY1NCw3IEBACiAJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxp
bmVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFOUYwOTIyMjIxMTAzNTAwNEM1MDgyIC8q
IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkVGRTgxRDIyRjlEMjJBMDAxMTQ5MjcgLyogTGF5b3V0UGhhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0UGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkZG
OTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxl
eEZvcm1hdHRpbmdVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4
Rm9ybWF0dGluZ1V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRjlGMUJF
MjQ2RDk2NkMwMDQzNTA4MyAvKiBUYWJsZUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
YWJsZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRkRDNDNFMjEy
RUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRmxvYXRBdm9pZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZGREM0NDAyMTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdEF2b2lkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE4NzI2LDYgKzE4NzI0LDcgQEAKIAkJRERBM0Q1Q0UyQTdEODQ0RDAw
MEVDRUUxIC8qIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEREEzRDVEMDJBN0Q4NDdFMDAwRUNFRTEgLyogVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0T25seVNpbXBsZUxpbmVC
dWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERCMDRGMzkyNzhFNTUz
MTAwOEQzNjc4IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlEREI4NTA5RjJCNzJCRUEwMDBFNzAwRTkgLyogRmxl
eENvbnRlbnRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Q29u
dGVudENhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREQkY4REFFMkFCNTFG
QzEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUREQkY4REIwMkFCNTFGRDEwMEIzMzE4QSAvKiBSdWJ5Rm9ybWF0dGluZ0Nv
bnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRERDOEU5NTUyQTNERTYwNDAwRkY4RUNGIC8q
IExvZ2ljYWxGbGV4SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dp
Y2FsRmxleEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzY5LDEzICsy
Nzc2OCwxMiBAQAogCQk2RkI3RDJENTI1MEZEN0I1MDAwMjA3QUEgLyogZmxleCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRERCODUwOUYyQjcyQkVBMDAw
RTcwMEU5IC8qIEZsZXhDb250ZW50Q2FjaGUuaCAqLywKIAkJCQk2RkIxNzQ3NTI4M0E4RkY0MDA2
N0Q4Q0EgLyogRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oICovLAogCQkJCTZGQjdEMkQ3MjUw
RkQ3RTUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGQjdE
MkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLywKLQkJCQk2
RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgKi8s
Ci0JCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
aCAqLywKLQkJCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0
ZS5jcHAgKi8sCi0JCQkJNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
U3RhdGUuaCAqLywKKwkJCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRp
bmdVdGlscy5jcHAgKi8sCisJCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3Jt
YXR0aW5nVXRpbHMuaCAqLywKIAkJCQk2RjA0N0E5MDI4NDUzRUQyMDBDMjVFRTcgLyogRmxleExh
eW91dC5jcHAgKi8sCiAJCQkJNkYwNDdBOTEyODQ1M0VEQjAwQzI1RUU3IC8qIEZsZXhMYXlvdXQu
aCAqLywKIAkJCQk2RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCAqLywKQEAg
LTM5MDMwLDEwICszOTAyOCwxMCBAQAogCQkJCTcyNzJEMzM3MjkyRjgxOEUwMEY3NEQ5OSAvKiBG
aWx0ZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcyQzAwRDkxMjk2MTlGODAwNUM5NTc1
IC8qIEZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA0RjBBMTU0RjA5MDAw
QTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRERCODUwQTAy
QjcyQkVBMDAwRTcwMEU5IC8qIEZsZXhDb250ZW50Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZGQjE3NDc2MjgzQThGRjQwMDY3RDhDQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnN0cmFpbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1h
dHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIx
REYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZCN0Qy
REUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0dGluZ1V0aWxzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RjA0N0E5MjI4NDUzRURCMDBDMjVFRTcgLyogRmxleExheW91
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCOTEwNUMyODMwQkM4QTAwMDA0OTI5IC8qIEZsZXhS
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZEQzQ0MjIxMkVGRjE3MDBBOUNBOTEgLyogRmxv
YXRBdm9pZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250
ZXh0LmNwcAppbmRleCA2ZTM1MDUyNjQxZTAuLjAzMjZiYmY2ODJhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMjgsOSArMjgsNiBAQAogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRl
LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAiRmxleEZv
cm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNp
bmNsdWRlICJMYXlvdXRFbGVtZW50Qm94LmgiCkBAIC05MSwxMSArODgsNiBAQCBzdGQ6OnVuaXF1
ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdD
b250ZXh0KGNvbnN0CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgYmxvY2tGb3JtYXR0aW5nU3RhdGUpOwogICAg
IH0KIAotICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4Rm9ybWF0
dGluZ0NvbnRleHQoKSkgewotICAgICAgICBhdXRvJiBmbGV4Rm9ybWF0dGluZ1N0YXRlID0gbGF5
b3V0U3RhdGUuZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3Qp
OwotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxGbGV4Rm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgZmxleEZvcm1hdHRpbmdTdGF0ZSk7Ci0gICAgfQotCiAgICAgaWYg
KGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQo
KSkgewogICAgICAgICBhdXRvJiB0YWJsZUZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmVu
c3VyZVRhYmxlRm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1hdHRpbmdDb250
ZXh0Um9vdCwgdGFibGVGb3JtYXR0aW5nU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5jcHAKaW5kZXggNWQ5NzBjOWNmYzJiLi4wN2U2MmYyMzI3MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkxheW91
dFN0YXRlLmgiCiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgotI2luY2x1ZGUg
IkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJGbGV4Q29udGVudENhY2hlLmgiCiAj
aW5jbHVkZSAiSW5saW5lQ29udGVudENhY2hlLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKQEAgLTg5LDkgKzg5LDcgQEAgQm94R2VvbWV0
cnkmIExheW91dFN0YXRlOjplbnN1cmVHZW9tZXRyeUZvckJveFNsb3coY29uc3QgQm94JiBsYXlv
dXRCb3gpCiBib29sIExheW91dFN0YXRlOjpoYXNGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVu
dEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdAogewogICAgIEFTU0VSVChmb3JtYXR0
aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICByZXR1
cm4gbV9ibG9ja0Zvcm1hdHRpbmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9v
dCkKLSAgICAgICAgfHwgbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRp
bmdDb250ZXh0Um9vdCkKLSAgICAgICAgfHwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5jb250YWlu
cygmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdT
dGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCkgfHwgbV90YWJsZUZvcm1hdHRp
bmdTdGF0ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKIEZvcm1hdHRp
bmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0
KGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKQEAgLTExOSwx
MCArMTE3LDEwIEBAIFRhYmxlRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGlu
Z1N0YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dChjb25zCiAgICAgcmV0dXJuICptX3RhYmxl
Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJnRhYmxlRm9ybWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAot
RmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZsZXhG
b3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHRS
b290KSBjb25zdAorRmxleENvbnRlbnRDYWNoZSYgTGF5b3V0U3RhdGU6OmZsZXhDb250ZW50Q2Fj
aGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogewotICAgIEFTU0VS
VChmbGV4Rm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250
ZXh0KCkpOwotICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZsZXhGb3Jt
YXR0aW5nQ29udGV4dFJvb3QpOworICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0
YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgcmV0dXJuICptX2ZsZXhDb250
ZW50Q2FjaGVzLmVuc3VyZSgmZm9ybWF0dGluZ0NvbnRleHRSb290LCBbJl0geyByZXR1cm4gbWFr
ZVVuaXF1ZTxGbGV4Q29udGVudENhY2hlPigpOyB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAKIElu
bGluZUNvbnRlbnRDYWNoZSYgTGF5b3V0U3RhdGU6OmlubGluZUNvbnRlbnRDYWNoZShjb25zdCBF
bGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCkBAIC0xNDMsMTggKzE0MSwxOCBAQCBU
YWJsZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3VyZVRhYmxlRm9ybWF0dGluZ1N0
YXRlKGNvbnN0IEVsZW1lbnRCb3gmCiAgICAgcmV0dXJuICptX3RhYmxlRm9ybWF0dGluZ1N0YXRl
cy5lbnN1cmUoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCwgWyZdIHsgcmV0dXJuIG1ha2VVbmlxdWU8
VGFibGVGb3JtYXR0aW5nU3RhdGU+KCp0aGlzLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOyB9KS5p
dGVyYXRvci0+dmFsdWU7CiB9CiAKLUZsZXhGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
bnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCkKLXsKLSAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVz
RmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0
YXRlcy5lbnN1cmUoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCwgWyZdIHsgcmV0dXJuIG1ha2VVbmlx
dWU8RmxleEZvcm1hdHRpbmdTdGF0ZT4oKnRoaXMpOyB9KS5pdGVyYXRvci0+dmFsdWU7Ci19Ci0K
IHZvaWQgTGF5b3V0U3RhdGU6OmRlc3Ryb3lCbG9ja0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVt
ZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgbV9i
bG9ja0Zvcm1hdHRpbmdTdGF0ZXMucmVtb3ZlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQog
Cit2b2lkIExheW91dFN0YXRlOjpkZXN0cm95RmxleENvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCit7CisgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250
ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICBtX2ZsZXhD
b250ZW50Q2FjaGVzLnJlbW92ZSgmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKK30KKwogdm9pZCBM
YXlvdXRTdGF0ZTo6ZGVzdHJveUlubGluZUNvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50Qm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QpCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9v
dC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
TGF5b3V0U3RhdGUuaAppbmRleCA1YTg1OGI1NjU4ZjYuLjMwNzM5MTJmYzE0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIExheW91
dCB7CiAKIGNsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgQm94R2VvbWV0cnk7Ci1j
bGFzcyBGbGV4Rm9ybWF0dGluZ1N0YXRlOworY2xhc3MgRmxleENvbnRlbnRDYWNoZTsKIGNsYXNz
IEZvcm1hdHRpbmdDb250ZXh0OwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgSW5saW5l
Q29udGVudENhY2hlOwpAQCAtNTQsMTkgKzU0LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVF1aXJrc01vZGUoY29uc3QgRG9jdW1lbnQmKTsKIAogICAgIElubGluZUNvbnRlbnRDYWNoZSYg
aW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCk7CisgICAgRmxleENvbnRlbnRDYWNoZSYgZmxleENvbnRlbnRDYWNoZShjb25zdCBFbGVtZW50
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUm
IGVuc3VyZUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdD
b250ZXh0Um9vdCk7CiAgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGVuc3VyZVRhYmxlRm9ybWF0
dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Ci0gICAg
RmxleEZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVt
ZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgQmxvY2tGb3JtYXR0aW5nU3Rh
dGUmIGZvcm1hdHRpbmdTdGF0ZUZvckJsb2NrRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVu
dEJveCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OwogICAgIFRhYmxlRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JUYWJsZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0
IEVsZW1lbnRCb3gmIHRhYmxlRm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKLSAgICBGbGV4
Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JGbGV4Rm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgRWxlbWVudEJveCYgZmxleEZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7CiAKICAg
ICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGNv
bnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdSb290KSBjb25zdDsKIAogICAgIHZvaWQgZGVzdHJv
eUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCk7CiAgICAgdm9pZCBkZXN0cm95SW5saW5lQ29udGVudENhY2hlKGNvbnN0IEVsZW1lbnRC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAgdm9pZCBkZXN0cm95RmxleENvbnRlbnRD
YWNoZShjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgYm9v
bCBoYXNGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNv
bnN0OwogCkBAIC05MywxMiArOTMsMTAgQEAgcHJpdmF0ZToKICAgICBCb3hHZW9tZXRyeSYgZW5z
dXJlR2VvbWV0cnlGb3JCb3hTbG93KGNvbnN0IEJveCYpOwogCiAgICAgSGFzaE1hcDxjb25zdCBF
bGVtZW50Qm94Kiwgc3RkOjp1bmlxdWVfcHRyPElubGluZUNvbnRlbnRDYWNoZT4+IG1faW5saW5l
Q29udGVudENhY2hlczsKKyAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1
ZV9wdHI8RmxleENvbnRlbnRDYWNoZT4+IG1fZmxleENvbnRlbnRDYWNoZXM7CisKICAgICBIYXNo
TWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8QmxvY2tGb3JtYXR0aW5nU3Rh
dGU+PiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlczsKICAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRC
b3gqLCBzdGQ6OnVuaXF1ZV9wdHI8VGFibGVGb3JtYXR0aW5nU3RhdGU+PiBtX3RhYmxlRm9ybWF0
dGluZ1N0YXRlczsKLSAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRCb3gqLCBzdGQ6OnVuaXF1ZV9w
dHI8RmxleEZvcm1hdHRpbmdTdGF0ZT4+IG1fZmxleEZvcm1hdHRpbmdTdGF0ZXM7Ci0KLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW5saW5lQ29udGVudENhY2hlPiBtX3Jvb3RJbmxpbmVDb250ZW50Q2Fj
aGVGb3JJbnRlZ3JhdGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RmxleEZvcm1hdHRpbmdTdGF0
ZT4gbV9yb290RmxleEZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uOwogCiAjaWZuZGVmIE5E
RUJVRwogICAgIEhhc2hTZXQ8Y29uc3QgRm9ybWF0dGluZ0NvbnRleHQqPiBtX2Zvcm1hdHRpbmdD
b250ZXh0TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAppbmRleCA0NDVkYTViYzcx
NTIuLjljZTM5MjgwM2JkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApAQCAtMjcs
NyArMjcsNiBAQAogI2luY2x1ZGUgIkZvcm1hdHRpbmdHZW9tZXRyeS5oIgogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUu
aCIKICNpbmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGb3JtYXR0aW5nUXVp
cmtzLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3Jt
YXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmgKaW5kZXggOGY5NTY0MmEyNjc0Li43MjE2YzVlMDFmMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9y
bWF0dGluZ0dlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtODcsNyArODcsNiBAQCBwdWJsaWM6CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZFdpZHRoKGNvbnN0IEJveCYsIExh
eW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgpIGNvbnN0OwogCiAgICAgYm9vbCBpc0Jsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5p
c0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKTsgfQotICAgIGJvb2wgaXNGbGV4Rm9ybWF0dGluZ0dl
b21ldHJ5KCkgY29uc3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5pc0ZsZXhGb3JtYXR0
aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1RhYmxlRm9ybWF0dGluZ0dlb21ldHJ5KCkgY29u
c3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5pc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQo
KTsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleENvbnRlbnRDYWNoZS5oCnNp
bWlsYXJpdHkgaW5kZXggODQlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhDb250ZW50Q2Fj
aGUuaAppbmRleCAzYjNjMTQxYTk1ZGEuLjc2ZTE2ZWExN2VmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3Rh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4Q29udGVudENhY2hlLmgKQEAgLTIzLDI0ICsyMywyMiBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEZsZXhGb3JtYXR0aW5nU3RhdGUpOworLy8gRmxleENvbnRlbnRDYWNoZSBpcyB1c2Vk
IHRvIGNhY2hlIGNvbnRlbnQgZm9yIHN1YnNlcXVlbnQgbGF5b3V0cy4KK2NsYXNzIEZsZXhDb250
ZW50Q2FjaGUgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKEZsZXhDb250ZW50
Q2FjaGUpOworcHVibGljOgogCi1GbGV4Rm9ybWF0dGluZ1N0YXRlOjpGbGV4Rm9ybWF0dGluZ1N0
YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShUeXBl
OjpGbGV4LCBsYXlvdXRTdGF0ZSkKLXsKLX0KLQotRmxleEZvcm1hdHRpbmdTdGF0ZTo6fkZsZXhG
b3JtYXR0aW5nU3RhdGUoKQotewotfQorcHJpdmF0ZToKK307CiAKIH0KIH0KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1YzVlMTIxYjU0ZTYuLjJh
MjIyZjg5MTMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI2LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbGV4
Rm9ybWF0dGluZ0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
aCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRmxleEZvcm1h
dHRpbmdVdGlscy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lUmVj
dC5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCkBAIC00MywxMSArNDIsMTAgQEAg
bmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbGV4Rm9y
bWF0dGluZ0NvbnRleHQpOwogCi1GbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OkZsZXhGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEZsZXhGb3Jt
YXR0aW5nU3RhdGUmIGZsZXhGb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4
dChmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGZsZXhGb3JtYXR0aW5nU3RhdGUubGF5b3V0U3RhdGUo
KSkKLSAgICAsIG1fZmxleEZvcm1hdHRpbmdTdGF0ZShmbGV4Rm9ybWF0dGluZ1N0YXRlKQotICAg
ICwgbV9mbGV4Rm9ybWF0dGluZ0dlb21ldHJ5KCp0aGlzKQotICAgICwgbV9mbGV4Rm9ybWF0dGlu
Z1F1aXJrcygqdGhpcykKK0ZsZXhGb3JtYXR0aW5nQ29udGV4dDo6RmxleEZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkK
KyAgICA6IG1fZmxleEJveChmbGV4Qm94KQorICAgICwgbV9sYXlvdXRTdGF0ZShsYXlvdXRTdGF0
ZSkKKyAgICAsIG1fZmxleEZvcm1hdHRpbmdVdGlscygqdGhpcykKIHsKIH0KIApAQCAtODUsMTQg
KzgzLDE0IEBAIEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMgRmxleEZvcm1hdHRpbmdDb250
ZXh0Ojpjb252ZXJ0RmxleEl0ZW1zVG9Mb2dpY2FsU3BhCiAKICAgICBWZWN0b3I8RmxleEl0ZW0+
IGZsZXhJdGVtTGlzdDsKICAgICBhdXRvIGZsZXhJdGVtc05lZWRSZW9yZGVyaW5nID0gZmFsc2U7
Ci0gICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7Cisg
ICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwogCiAgICAgYXV0byBj
b252ZXJ0VmlzdWFsVG9Mb2dpY2FsID0gWyZdIHsKICAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBy
b290KCkuc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7CiAgICAgICAgIGF1dG8gcHJldmlvdXNMb2dp
Y2FsT3JkZXIgPSBzdGQ6Om9wdGlvbmFsPGludD4geyB9OwogCiAgICAgICAgIGZvciAoYXV0byog
ZmxleEl0ZW0gPSByb290KCkuZmlyc3RJbkZsb3dDaGlsZCgpOyBmbGV4SXRlbTsgZmxleEl0ZW0g
PSBmbGV4SXRlbS0+bmV4dEluRmxvd1NpYmxpbmcoKSkgewotICAgICAgICAgICAgYXV0byYgZmxl
eEl0ZW1HZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeSgqZmxleEl0ZW0pOwor
ICAgICAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGxheW91dFN0YXRlLmdlb21ldHJ5
Rm9yQm94KCpmbGV4SXRlbSk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGZsZXhJdGVtLT5z
dHlsZSgpOwogICAgICAgICAgICAgYXV0byBtYWluQXhpcyA9IExvZ2ljYWxGbGV4SXRlbTo6TWFp
bkF4aXNHZW9tZXRyeSB7IH07CiAgICAgICAgICAgICBhdXRvIGNyb3NzQXhpcyA9IExvZ2ljYWxG
bGV4SXRlbTo6Q3Jvc3NBeGlzR2VvbWV0cnkgeyB9OwpAQCAtMTc1LDExICsxNzMsMTAgQEAgRmxl
eExheW91dDo6TG9naWNhbEZsZXhJdGVtcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRG
bGV4SXRlbXNUb0xvZ2ljYWxTcGEKIAogdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZs
ZXhJdGVtc0dlb21ldHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMmIGxvZ2lj
YWxGbGV4SXRlbUxpc3QsIGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbVJlY3RzJiBs
b2dpY2FsUmVjdHMsIGNvbnN0IENvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQmIGNvbnN0cmFpbnRz
KQogewotICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgp
OwogICAgIGF1dG8gbG9naWNhbFdpZHRoID0gbG9naWNhbFJlY3RzLmxhc3QoKS5yaWdodCgpIC0g
bG9naWNhbFJlY3RzLmZpcnN0KCkubGVmdCgpOwogICAgIGF1dG8mIGZsZXhCb3hTdHlsZSA9IHJv
b3QoKS5zdHlsZSgpOwogICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhCb3hTdHlsZS5mbGV4
RGlyZWN0aW9uKCk7Ci0gICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9
IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlz
KHJvb3QoKSk7CisgICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9IEZs
ZXhGb3JtYXR0aW5nVXRpbHM6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKHJvb3Qo
KSk7CiAgICAgYXV0byBmbGV4Qm94TG9naWNhbEhlaWdodEZvcldhcnBSZXNlcnZlID0gWyZdKCkg
LT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7CiAgICAgICAgIGlmIChmbGV4Qm94U3R5bGUu
ZmxleFdyYXAoKSAhPSBGbGV4V3JhcDo6UmV2ZXJzZSkKICAgICAgICAgICAgIHJldHVybiB7IH07
CkBAIC0xOTQsNyArMTkxLDcgQEAgdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZsZXhJ
dGVtc0dlb21ldHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXQKIAogICAgIGZvciAo
c2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBsb2dpY2FsRmxleEl0ZW1MaXN0LnNpemUoKTsgKytp
bmRleCkgewogICAgICAgICBhdXRvJiBsb2dpY2FsRmxleEl0ZW0gPSBsb2dpY2FsRmxleEl0ZW1M
aXN0W2luZGV4XTsKLSAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGZvcm1hdHRpbmdT
dGF0ZS5ib3hHZW9tZXRyeShsb2dpY2FsRmxleEl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICBh
dXRvJiBmbGV4SXRlbUdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JGbGV4SXRlbShsb2dpY2FsRmxleEl0
ZW0ubGF5b3V0Qm94KCkpOwogICAgICAgICBhdXRvIGJvcmRlckJveFRvcExlZnQgPSBMYXlvdXRQ
b2ludCB7IH07CiAgICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdHNbaW5kZXhd
OwogICAgICAgICBhdXRvIGFkanVzdGVkTG9naWNhbFRvcCA9ICFmbGV4Qm94TG9naWNhbEhlaWdo
dEZvcldhcnBSZXNlcnZlID8gbG9naWNhbFJlY3QudG9wKCkgOiAqZmxleEJveExvZ2ljYWxIZWln
aHRGb3JXYXJwUmVzZXJ2ZSAtIGxvZ2ljYWxSZWN0LmJvdHRvbSgpOwpAQCAtMjM0LDUgKzIzMSwx
OCBAQCB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkoY29u
c3QgRmxleExheW91dDo6TG9naWNhbEZsZXhJdAogICAgIH0KIH0KIAorY29uc3QgQm94R2VvbWV0
cnkmIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBCb3gm
IGZsZXhJdGVtKSBjb25zdAoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkpOwor
ICAgIHJldHVybiBtX2xheW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KGZsZXhJdGVtKTsKK30KKwor
Qm94R2VvbWV0cnkmIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShj
b25zdCBCb3gmIGZsZXhJdGVtKQoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkp
OworICAgIHJldHVybiBtX2xheW91dFN0YXRlLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGZsZXhJdGVt
KTsKK30KKworCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmgK
aW5kZXggYWNmMDlkOTA5YzJlLi40M2EwNTI1ZWU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTI2LDExICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlICJGbGV4Rm9y
bWF0dGluZ0dlb21ldHJ5LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2lu
Y2x1ZGUgIkZsZXhGb3JtYXR0aW5nVXRpbHMuaCIKICNpbmNsdWRlICJGbGV4TGF5b3V0LmgiCiAj
aW5jbHVkZSAiRmxleFJlY3QuaCIKLSNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiAr
MzYsMjIgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0
aGUgbGF5b3V0IGxvZ2ljIGZvciBmbGV4IGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBodHRwczov
L3d3dy53My5vcmcvVFIvY3NzLWZsZXhib3gtMS8KLWNsYXNzIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBmaW5hbCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7CitjbGFzcyBGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdDb250
ZXh0KTsKIHB1YmxpYzoKLSAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBGbGV4Rm9ybWF0dGluZ1N0YXRlJik7CisgICAgRmxl
eEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRl
Jik7CiAKICAgICB2b2lkIGxheW91dChjb25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7
CiAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMoKTsKIAotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkmIGZvcm1hdHRp
bmdHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdHZW9tZXRyeTsgfQot
ICAgIGNvbnN0IEZvcm1hdHRpbmdRdWlya3MmIGZvcm1hdHRpbmdRdWlya3MoKSBjb25zdCB7IHJl
dHVybiBtX2ZsZXhGb3JtYXR0aW5nUXVpcmtzOyB9CisgICAgY29uc3QgRWxlbWVudEJveCYgcm9v
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEJveDsgfQorICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5n
VXRpbHMmIGZvcm1hdHRpbmdVdGlscygpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdV
dGlsczsgfQorCisgICAgY29uc3QgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29u
c3QgQm94JikgY29uc3Q7CisgICAgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29u
c3QgQm94Jik7CisKKyAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX2xheW91dFN0YXRlOyB9CisgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkg
eyByZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCiBwcml2YXRlOgogICAgIEZsZXhMYXlvdXQ6Okxv
Z2ljYWxGbGV4SXRlbXMgY29udmVydEZsZXhJdGVtc1RvTG9naWNhbFNwYWNlKGNvbnN0IENvbnN0
cmFpbnRzRm9yRmxleENvbnRlbnQmKTsKQEAgLTU1LDE3ICs1OSwxMiBAQCBwcml2YXRlOgogCiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZEF1dG9NYXJnaW5WYWx1ZUZvckZs
ZXhJdGVtcyhjb25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7CiAKLSAgICBjb25zdCBG
bGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zs
ZXhGb3JtYXR0aW5nU3RhdGU7IH0KLSAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5n
U3RhdGUoKSB7IHJldHVybiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7IH0KLQogcHJpdmF0ZToKLSAg
ICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7Ci0gICAgY29uc3Qg
RmxleEZvcm1hdHRpbmdHZW9tZXRyeSBtX2ZsZXhGb3JtYXR0aW5nR2VvbWV0cnk7Ci0gICAgY29u
c3QgRm9ybWF0dGluZ1F1aXJrcyBtX2ZsZXhGb3JtYXR0aW5nUXVpcmtzOworICAgIGNvbnN0IEVs
ZW1lbnRCb3gmIG1fZmxleEJveDsKKyAgICBMYXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsKKyAg
ICBjb25zdCBGbGV4Rm9ybWF0dGluZ1V0aWxzIG1fZmxleEZvcm1hdHRpbmdVdGlsczsKIH07CiAK
IH0KIH0KIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19DT05URVhU
KEZsZXhGb3JtYXR0aW5nQ29udGV4dCwgaXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSkKLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0Zs
ZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmZDY5MDJjYjE5OTAuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9t
ZXRyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKLQot
I2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRl
eHQuaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLUZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OkZsZXhG
b3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0JiBmbGV4Rm9ybWF0
dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5nR2VvbWV0cnkoZmxleEZvcm1hdHRpbmdDb250
ZXh0KQotewotfQotCi1ib29sIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJh
bGxlbFdpdGhJbmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCi17Ci0gICAgQVNT
RVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhC
b3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZsZXhEaXJlY3Rpb24gPT0g
RmxleERpcmVjdGlvbjo6Um93IHx8IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCkgPT0g
RmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZTsKLX0KLQotYm9vbCBGbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5Ojppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhC
b3gpCi17Ci0gICAgQVNTRVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERp
cmVjdGlvbiA9IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZs
ZXhEaXJlY3Rpb24gPT0gRmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZSB8fCBmbGV4RGlyZWN0aW9u
ID09IEZsZXhEaXJlY3Rpb246OkNvbHVtblJldmVyc2U7Ci19Ci0KLUludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyhjb25zdCBFbGVtZW50Qm94JiBmbGV4SXRlbSkgY29uc3QKLXsKLSAgICBhdXRvIGZpeGVkTWFy
Z2luQm9yZGVyQW5kUGFkZGluZyA9IFsmXShhdXRvJiBsYXlvdXRCb3gpIHsKLSAgICAgICAgYXV0
byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKLSAgICAgICAgcmV0dXJuIGZpeGVkVmFsdWUo
c3R5bGUubWFyZ2luU3RhcnQoKSkudmFsdWVfb3IoMCkKLSAgICAgICAgICAgICsgTGF5b3V0VW5p
dCB7IHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1ZShz
dHlsZS5wYWRkaW5nTGVmdCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBmaXhlZFZhbHVl
KHN0eWxlLnBhZGRpbmdSaWdodCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBMYXlvdXRV
bml0IHsgc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1
ZShzdHlsZS5tYXJnaW5FbmQoKSkudmFsdWVfb3IoMCk7Ci0gICAgfTsKLQotICAgIGF1dG8gY29t
cHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gWyZdKCkgLT4gSW50cmluc2ljV2lkdGhD
b25zdHJhaW50cyB7Ci0gICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gZmxleEl0ZW0uc3R5bGUo
KS5sb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgLy8gTWluaW11bS9tYXhpbXVtIHdpZHRoIGNhbid0
IGJlIGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmluZyBibG9jaydzIHdpZHRoLgotICAgICAgICBh
dXRvIG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0aCA9IGxvZ2ljYWxXaWR0aC5pc0Nh
bGN1bGF0ZWQoKSB8fCBsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgbG9naWNhbFdpZHRoLmlz
UmVsYXRpdmUoKTsKLSAgICAgICAgaWYgKG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0
aCkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0KLSAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBm
aXhlZFZhbHVlKGxvZ2ljYWxXaWR0aCkpCi0gICAgICAgICAgICByZXR1cm4geyAqd2lkdGgsICp3
aWR0aCB9OwotCi0gICAgICAgIEFTU0VSVChmbGV4SXRlbS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpOwotICAgICAgICBhdXRvJiBsYXlvdXRTdGF0ZSA9IHRoaXMtPmxheW91dFN0YXRl
KCk7Ci0gICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IExheW91dENvbnRl
eHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGZsZXhJdGVtLCBjb25zdF9jYXN0PExheW91dFN0
YXRlJj4obGF5b3V0U3RhdGUpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7
Ci0gICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNNaW5Db250ZW50KCkpCi0gICAgICAgICAgICBy
ZXR1cm4geyBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGludHJpbnNpY1dpZHRo
Q29uc3RyYWludHMubWluaW11bSB9OwotICAgICAgICBpZiAobG9naWNhbFdpZHRoLmlzTWF4Q29u
dGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIHsgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5t
YXhpbXVtLCBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0gfTsKLSAgICAgICAgcmV0
dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Ci0gICAgfTsKLSAgICBhdXRvIGludHJpbnNp
Y1dpZHRoQ29uc3RyYWludHMgPSBjb25zdHJhaW5CeU1pbk1heFdpZHRoKGZsZXhJdGVtLCBjb21w
dXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSk7Ci0gICAgaW50cmluc2ljV2lkdGhDb25z
dHJhaW50cy5leHBhbmQoZml4ZWRNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKGZsZXhJdGVtKSk7Ci0g
ICAgcmV0dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Ci19Ci0KLX0KLX0KLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhG
b3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcApzaW1pbGFyaXR5IGluZGV4IDYxJQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdTdGF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAKaW5kZXggMmM3NzMxZWMx
Yzk5Li5iMjZjMjEzOTUyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRpbHMu
Y3BwCkBAIC0yMywzMCArMjMsMzUgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jcHJhZ21hIG9uY2UKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
bGV4Rm9ybWF0dGluZ1V0aWxzLmgiCiAKLSNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKLSNp
bmNsdWRlICJJbmxpbmVSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgIkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIK
KyNpbmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIExheW91dCB7CiAKLWNsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGUgOiBwdWJsaWMg
Rm9ybWF0dGluZ1N0YXRlIHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZsZXhGb3JtYXR0
aW5nU3RhdGUpOwotcHVibGljOgotICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUoTGF5b3V0U3RhdGUm
KTsKLSAgICB+RmxleEZvcm1hdHRpbmdTdGF0ZSgpOworRmxleEZvcm1hdHRpbmdVdGlsczo6Rmxl
eEZvcm1hdHRpbmdVdGlscyhjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIGZsZXhGb3JtYXR0
aW5nQ29udGV4dCkKKyAgICA6IG1fZmxleEZvcm1hdHRpbmdDb250ZXh0KGZsZXhGb3JtYXR0aW5n
Q29udGV4dCkKK3sKK30KIAotICAgIGNvbnN0IGF1dG8mIGxpbmVzKCkgY29uc3QgeyByZXR1cm4g
bV9saW5lczsgfQotICAgIHZvaWQgYWRkTGluZShjb25zdCBJbmxpbmVSZWN0JiBsaW5lKSB7IG1f
bGluZXMuYXBwZW5kKGxpbmUpOyB9Citib29sIEZsZXhGb3JtYXR0aW5nVXRpbHM6OmlzTWFpbkF4
aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCit7Cisg
ICAgQVNTRVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOworICAgIGF1dG8gZmxleERpcmVjdGlvbiA9
IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIGZsZXhEaXJlY3Rp
b24gPT0gRmxleERpcmVjdGlvbjo6Um93IHx8IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9u
KCkgPT0gRmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZTsKK30KIAotcHJpdmF0ZToKLSAgICBWZWN0
b3I8SW5saW5lUmVjdD4gbV9saW5lczsKLX07Citib29sIEZsZXhGb3JtYXR0aW5nVXRpbHM6Omlz
UmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24oY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKK3sK
KyAgICBBU1NFUlQoZmxleEJveC5pc0ZsZXhCb3goKSk7CisgICAgYXV0byBmbGV4RGlyZWN0aW9u
ID0gZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gZmxleERpcmVj
dGlvbiA9PSBGbGV4RGlyZWN0aW9uOjpSb3dSZXZlcnNlIHx8IGZsZXhEaXJlY3Rpb24gPT0gRmxl
eERpcmVjdGlvbjo6Q29sdW1uUmV2ZXJzZTsKK30KIAogfQogfQogCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX1NUQVRFKEZsZXhGb3JtYXR0aW5nU3RhdGUsIGlzRmxl
eEZvcm1hdHRpbmdTdGF0ZSgpKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nVXRp
bHMuaApzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oCnJlbmFt
ZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdVdGlscy5oCmluZGV4IDM4YmUzYzEyZDMxOS4uYjc3MDNmYWViZjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmgKQEAgLTMyLDI0ICszMiwxOCBAQCBu
YW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgRmxleEZvcm1hdHRpbmdDb250ZXh0OwogCi1jbGFz
cyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ7Ci0KLS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBwb3Np
dGlvbmluZyBhbmQgc2l6aW5nIGZvciBmbGV4IGl0ZW1zLgotY2xhc3MgRmxleEZvcm1hdHRpbmdH
ZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nR2VvbWV0cnkgeworLy8gSGVscGVyIGNsYXNzIGZv
ciBmbGV4IGxheW91dC4KK2NsYXNzIEZsZXhGb3JtYXR0aW5nVXRpbHMgewogcHVibGljOgotICAg
IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7Ci0K
LSAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMo
Y29uc3QgRWxlbWVudEJveCYpIGNvbnN0OworICAgIEZsZXhGb3JtYXR0aW5nVXRpbHMoY29uc3Qg
RmxleEZvcm1hdHRpbmdDb250ZXh0Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc01haW5BeGlzUGFy
YWxsZWxXaXRoSW5saW5lQXhpcyhjb25zdCBFbGVtZW50Qm94JiBmbGV4Qm94KTsKICAgICBzdGF0
aWMgYm9vbCBpc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gmIGZs
ZXhCb3gpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQ+KEZvcm1hdHRpbmdHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAgICBj
b25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIG1fZmxleEZvcm1hdHRpbmdDb250ZXh0OwogfTsK
IAogfQogfQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX0dFT01F
VFJZKEZsZXhGb3JtYXR0aW5nR2VvbWV0cnksIGlzRmxleEZvcm1hdHRpbmdHZW9tZXRyeSgpKQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Zs
ZXgvRmxleExheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleExheW91dC5jcHAKaW5kZXggMzc2NDIzZTUwNTliLi43M2U1NWFjYzQ0ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxl
eC9GbGV4TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleExheW91dC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJG
bGV4TGF5b3V0LmgiCiAKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKLSNpbmNs
dWRlICJGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdV
dGlscy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZVNldHRlcnMuaCIKQEAgLTYzNCw3ICs2
MzQsNyBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZsZXhMYXlvdXQ6Omhh
bmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogCiAgICAgICAgICAgICAgICAgYXV0byBw
b3NpdGlvbmFsQWxpZ25tZW50ID0gWyZdIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBwb3Np
dGlvbmFsQWxpZ25tZW50VmFsdWUgPSBqdXN0aWZ5Q29udGVudFZhbHVlLnBvc2l0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aXNNYWluQXhp
c1BhcmFsbGVsV2l0aElubGluZUF4aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25hbEFs
aWdubWVudFZhbHVlID09IENvbnRlbnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxpZ25t
ZW50VmFsdWUgPT0gQ29udGVudFBvc2l0aW9uOjpSaWdodCkpCisgICAgICAgICAgICAgICAgICAg
IGlmICghRmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1BhcmFsbGVsV2l0aElubGluZUF4
aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25hbEFsaWdubWVudFZhbHVlID09IENvbnRl
bnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxpZ25tZW50VmFsdWUgPT0gQ29udGVudFBv
c2l0aW9uOjpSaWdodCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmFsQWxpZ25t
ZW50VmFsdWUgPSBDb250ZW50UG9zaXRpb246OlN0YXJ0OwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcG9zaXRpb25hbEFsaWdubWVudFZhbHVlOwogICAgICAgICAgICAgICAgIH07CkBAIC02
NTEsMTIgKzY1MSwxMiBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZsZXhM
YXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogICAgICAgICAgICAgICAg
IC8vIG5vbi1sb2dpY2FsIGFsaWdubWVudHMKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6TGVmdDoKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6U3Rh
cnQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojppc1Jl
dmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAgICAgICAg
ICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0
aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZh
aWxhYmxlTWFpblNwYWNlIC0gbGluZUNvbnRlbnRPdXRlck1haW5TaXplOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgY2FzZSBDb250
ZW50UG9zaXRpb246OlJpZ2h0OgogICAgICAgICAgICAgICAgIGNhc2UgQ29udGVudFBvc2l0aW9u
OjpFbmQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojpp
c1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAgICAg
ICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGly
ZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVNYWlu
U3BhY2UgLSBsaW5lQ29udGVudE91dGVyTWFpblNpemU7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleExheW91dC5oCmluZGV4IGJkYjljZGIyNGJlZi4uYzQ4ZDgyMTFhNTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgv
RmxleExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4TGF5b3V0LmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgIkZsZXhGb3Jt
YXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJGbGV4UmVjdC5oIgogI2luY2x1ZGUgIkxvZ2ljYWxG
bGV4SXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9SYW5nZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVn
cmF0aW9uRmxleExheW91dC5jcHAKaW5kZXggMTc3Yzg5NWI2MzM0Li5jZTI4NzA0NTk4OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dElu
dGVncmF0aW9uRmxleExheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcApAQCAtNDMsMTAgKzQz
LDE1IEBAIG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiBGbGV4TGF5b3V0OjpGbGV4TGF5
b3V0KFJlbmRlckZsZXhpYmxlQm94JiBmbGV4Qm94UmVuZGVyZXIpCiAgICAgOiBtX2JveFRyZWUo
ZmxleEJveFJlbmRlcmVyKQogICAgICwgbV9sYXlvdXRTdGF0ZShmbGV4Qm94UmVuZGVyZXIudmll
dygpLmxheW91dFN0YXRlKCkpCi0gICAgLCBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUobGF5b3V0U3Rh
dGUoKS5lbnN1cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGZsZXhCb3goKSkpCisgICAgLCBtX2ZsZXhD
b250ZW50Q2FjaGUobGF5b3V0U3RhdGUoKS5mbGV4Q29udGVudENhY2hlKGZsZXhCb3goKSkpCiB7
CiB9CiAKK0ZsZXhMYXlvdXQ6On5GbGV4TGF5b3V0KCkKK3sKKyAgICBsYXlvdXRTdGF0ZSgpLmRl
c3Ryb3lGbGV4Q29udGVudENhY2hlKGZsZXhCb3goKSk7Cit9CisKIC8vIEZJWE1FOiBNZXJnZSB0
aGVzZSB3aXRoIHRoZSBvdGhlciBpbnRlZ3JhdGlvbiBsYXlvdXQgZnVuY3Rpb25zLgogc3RhdGlj
IGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBmbGV4Qm94TG9naWNhbEJvcmRlcihj
b25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmVuZGVyZXIsIGJvb2wgaXNMZWZ0VG9SaWdodElu
bGluZURpcmVjdGlvbiwgQmxvY2tGbG93RGlyZWN0aW9uIGJsb2NrRmxvd0RpcmVjdGlvbikKIHsK
QEAgLTg5LDEyICs5NCw5IEBAIHZvaWQgRmxleExheW91dDo6dXBkYXRlRm9ybWF0dGluZ1Jvb3RH
ZW9tZXRyeUFuZEludmFsaWRhdGUoKQogICAgICAgICByb290LnNldFZlcnRpY2FsTWFyZ2luKHsg
fSk7CiAgICAgfTsKICAgICB1cGRhdGVHZW9tZXRyeShsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21l
dHJ5Rm9yQm94KGZsZXhCb3goKSkpOwotCi0gICAgZm9yIChhdXRvJiBmbGV4SXRlbSA6IExheW91
dDo6Y2hpbGRyZW5PZlR5cGU8TGF5b3V0OjpCb3g+KGZsZXhCb3goKSkpCi0gICAgICAgIG1fZmxl
eEZvcm1hdHRpbmdTdGF0ZS5jbGVhckludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoZmxleEl0ZW0p
OwogfQogCi12b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyhjb25zdCBS
ZW5kZXJCbG9jayYgZmxleEl0ZW0sIExheW91dFVuaXQgbWluaW11bUNvbnRlbnRTaXplLCBMYXlv
dXRVbml0IG1heGltdW1Db250ZW50U2l6ZSkKK3ZvaWQgRmxleExheW91dDo6dXBkYXRlRmxleEl0
ZW1EaW1lbnNpb25zKGNvbnN0IFJlbmRlckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCwgTGF5
b3V0VW5pdCkKIHsKICAgICBhdXRvJiByb290R2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmdlb21l
dHJ5Rm9yQm94KGZsZXhCb3goKSk7CiAgICAgYXV0byYgbGF5b3V0Qm94ID0gbV9ib3hUcmVlLmxh
eW91dEJveEZvclJlbmRlcmVyKGZsZXhJdGVtKTsKQEAgLTExOSw4ICsxMjEsNiBAQCB2b2lkIEZs
ZXhMYXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyhjb25zdCBSZW5kZXJCbG9jayYgZmxl
eEl0ZW0sIExheW91dFVuaQogICAgICAgICAgICAgaGVpZ2h0VmFsdWUgPSBzdGQ6Om1heCgwX2x1
LCBoZWlnaHRWYWx1ZSAtIGJveEdlb21ldHJ5LnZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZygpKTsK
ICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodChoZWlnaHRWYWx1ZSk7CiAg
ICAgfQotCi0gICAgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlLnNldEludHJpbnNpY1dpZHRoQ29uc3Ry
YWludHNGb3JCb3gobGF5b3V0Qm94LCB7IG1pbmltdW1Db250ZW50U2l6ZSwgbWF4aW11bUNvbnRl
bnRTaXplIH0pOwogfQogCiB2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZVN0eWxlKGNvbnN0IFJlbmRl
ckJsb2NrJiwgY29uc3QgUmVuZGVyU3R5bGUmKQpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgRmxl
eExheW91dDo6dXBkYXRlU3R5bGUoY29uc3QgUmVuZGVyQmxvY2smLCBjb25zdCBSZW5kZXJTdHls
ZSYpCiAKIHN0ZDo6cGFpcjxMYXlvdXRVbml0LCBMYXlvdXRVbml0PiBGbGV4TGF5b3V0Ojpjb21w
dXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpCiB7Ci0gICAgYXV0byBmbGV4Rm9ybWF0dGlu
Z0NvbnRleHQgPSBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwgbV9m
bGV4Rm9ybWF0dGluZ1N0YXRlIH07CisgICAgYXV0byBmbGV4Rm9ybWF0dGluZ0NvbnRleHQgPSBM
YXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwgbGF5b3V0U3RhdGUoKSB9
OwogICAgIGF1dG8gY29uc3RyYWludHMgPSBmbGV4Rm9ybWF0dGluZ0NvbnRleHQuY29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CiAKICAgICByZXR1cm4geyBjb25zdHJhaW50cy5t
aW5pbXVtLCBjb25zdHJhaW50cy5tYXhpbXVtIH07CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBG
bGV4TGF5b3V0OjpsYXlvdXQoKQogICAgIH07CiAgICAgYXV0byBbYXZhaWxhYmxlVmVydGljYWxT
cGFjZSwgbWluaW11bVZlcnRpY2FsU3BhY2VdID0gdmVydGljYWxTcGFjZUZvckZsZXhJdGVtcygp
OwogICAgIGF1dG8gY29uc3RyYWludHMgPSBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9yRmxleENvbnRl
bnQgeyB7IGhvcml6b250YWxDb25zdHJhaW50cywgcm9vdEdlb21ldHJ5LmNvbnRlbnRCb3hUb3Ao
KSB9LCBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlLCBtaW5pbXVtVmVydGljYWxTcGFjZSB9OwotICAg
IGF1dG8gZmxleEZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQgeyBmbGV4Qm94KCksIG1fZmxleEZvcm1hdHRpbmdTdGF0ZSB9OworICAgIGF1dG8gZmxleEZv
cm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQgeyBmbGV4Qm94
KCksIGxheW91dFN0YXRlKCkgfTsKICAgICBmbGV4Rm9ybWF0dGluZ0NvbnRleHQubGF5b3V0KGNv
bnN0cmFpbnRzKTsKIAogICAgIHVwZGF0ZVJlbmRlcmVycygpOwpAQCAtMTY3LDcgKzE2Nyw3IEBA
IHZvaWQgRmxleExheW91dDo6bGF5b3V0KCkKICAgICAgICAgZm9yIChhdXRvJiByZW5kZXJPYmpl
Y3QgOiBtX2JveFRyZWUucmVuZGVyZXJzKCkpIHsKICAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVy
ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyT2JqZWN0KTsKICAgICAgICAgICAgIGF1dG8m
IGxheW91dEJveCA9ICpyZW5kZXJlci5sYXlvdXRCb3goKTsKLSAgICAgICAgICAgIGF1dG8gYm9y
ZGVyQm94ID0gTGF5b3V0OjpCb3hHZW9tZXRyeTo6Ym9yZGVyQm94UmVjdChtX2ZsZXhGb3JtYXR0
aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KSk7CisgICAgICAgICAgICBhdXRvIGJvcmRl
ckJveCA9IExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3QobGF5b3V0U3RhdGUoKS5n
ZW9tZXRyeUZvckJveChsYXlvdXRCb3gpKTsKIAogICAgICAgICAgICAgcmVuZGVyZXIuc2V0V2lk
dGgoTGF5b3V0VW5pdCB7IH0pOwogICAgICAgICAgICAgcmVuZGVyZXIuc2V0SGVpZ2h0KExheW91
dFVuaXQgeyB9KTsKQEAgLTE4NiwxMiArMTg2LDEyIEBAIHZvaWQgRmxleExheW91dDo6bGF5b3V0
KCkKICAgICByZWxheW91dEZsZXhJdGVtcygpOwogfQogCi12b2lkIEZsZXhMYXlvdXQ6OnVwZGF0
ZVJlbmRlcmVycygpIGNvbnN0Cit2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZVJlbmRlcmVycygpCiB7
CiAgICAgZm9yIChhdXRvJiByZW5kZXJPYmplY3QgOiBtX2JveFRyZWUucmVuZGVyZXJzKCkpIHsK
ICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJPYmpl
Y3QpOwogICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqcmVuZGVyZXIubGF5b3V0Qm94KCk7Ci0g
ICAgICAgIGF1dG8mIGZsZXhJdGVtR2VvbWV0cnkgPSBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUuYm94
R2VvbWV0cnkobGF5b3V0Qm94KTsKKyAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGxh
eW91dFN0YXRlKCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICAgICAgYXV0byBib3Jk
ZXJCb3ggPSBMYXlvdXQ6OkJveEdlb21ldHJ5Ojpib3JkZXJCb3hSZWN0KGZsZXhJdGVtR2VvbWV0
cnkpOwogICAgICAgICByZW5kZXJlci5zZXRMb2NhdGlvbihib3JkZXJCb3gudG9wTGVmdCgpKTsK
ICAgICAgICAgcmVuZGVyZXIuc2V0V2lkdGgoYm9yZGVyQm94LndpZHRoKCkpOwpAQCAtMjE5LDcg
KzIxOSw3IEBAIHZvaWQgRmxleExheW91dDo6Y29sbGVjdE92ZXJmbG93KCkKIAogTGF5b3V0VW5p
dCBGbGV4TGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IExheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBtX2ZsZXhGb3JtYXR0
aW5nU3RhdGUgfS51c2VkQ29udGVudEhlaWdodCgpOworICAgIHJldHVybiB7IH07CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91
dEludGVncmF0aW9uRmxleExheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgKaW5kZXggYzZlMDMxMWM3NTQy
Li5mZjk0ZjY1NTU1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5o
CkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRmxleEZvcm1h
dHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZsZXhDb250ZW50Q2FjaGUuaCIKICNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIEZsZXhM
YXlvdXQgOiBwdWJsaWMgQ2FuTWFrZUNoZWNrZWRQdHIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIEZsZXhMYXlvdXQoUmVuZGVyRmxleGlibGVCb3gmKTsKKyAg
ICB+RmxleExheW91dCgpOwogCiAgICAgdm9pZCB1cGRhdGVGb3JtYXR0aW5nUm9vdEdlb21ldHJ5
QW5kSW52YWxpZGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlRmxleEl0ZW1EaW1lbnNpb25zKGNvbnN0
IFJlbmRlckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCBtaW5pbXVtQ29udGVudFNpemUsIExh
eW91dFVuaXQgbWF4aW11bUNvbnRlbnRTaXplKTsKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgog
ICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIHVwZGF0ZVJlbmRlcmVycygpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlUmVuZGVy
ZXJzKCk7CiAKICAgICBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGZsZXhCb3goKSBjb25zdCB7
IHJldHVybiBtX2JveFRyZWUucm9vdExheW91dEJveCgpOyB9CiAgICAgTGF5b3V0OjpFbGVtZW50
Qm94JiBmbGV4Qm94KCkgeyByZXR1cm4gbV9ib3hUcmVlLnJvb3RMYXlvdXRCb3goKTsgfQpAQCAt
NzEsMTAgKzcyLDExIEBAIHByaXZhdGU6CiAgICAgUmVuZGVyRmxleGlibGVCb3gmIGZsZXhCb3hS
ZW5kZXJlcigpIHsgcmV0dXJuIGRvd25jYXN0PFJlbmRlckZsZXhpYmxlQm94PihtX2JveFRyZWUu
cm9vdFJlbmRlcmVyKCkpOyB9CiAKICAgICBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0
ZSgpIHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CisgICAgY29uc3QgTGF5b3V0OjpMYXlvdXRT
dGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRTdGF0ZTsgfQogCiAg
ICAgQm94VHJlZSBtX2JveFRyZWU7CiAgICAgV2Vha1B0cjxMYXlvdXQ6OkxheW91dFN0YXRlPiBt
X2xheW91dFN0YXRlOwotICAgIExheW91dDo6RmxleEZvcm1hdHRpbmdTdGF0ZSYgbV9mbGV4Rm9y
bWF0dGluZ1N0YXRlOworICAgIExheW91dDo6RmxleENvbnRlbnRDYWNoZSYgbV9mbGV4Q29udGVu
dENhY2hlOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469771</attachid>
            <date>2024-02-08 07:09:17 -0800</date>
            <delta_ts>2024-02-08 10:47:47 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-268885-20240208070916.patch</filename>
            <type>text/plain</type>
            <size>48872</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhZDQxNzcyZDBiY2ZiZTA1M2IwNDM0YjgzODhhZGQzNzY1ZGUyYmNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgNiBGZWIgMjAyNCAxOToxNDowMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtGRkNdIEZs
ZXggRm9ybWF0dGluZyBDb250ZXh0IHNob3VsZCBmb2xsb3cgSUZDJ3MgaW50ZWdyYXRpb24KIGNv
ZGVwYXRoIGRlc2lnbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4
ODg1CgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCjEuIEZsZXhGb3JtYXR0aW5nQ29udGV4
dCBpcyBubyBsb25nZXIgZGVyaXZlZCBmcm9tIEZvcm1hdHRpbmdDb250ZXh0CjIuIEdlb21ldHJ5
IGNsYXNzIC0+IFV0aWwgKHNpbWlsYXIgdG8gSW5saW5lRm9ybWF0dGluZ1V0aWxzKQozLiBQYXNz
IGluIExheW91dFN0YXRlIHRvIEZsZXhGb3JtYXR0aW5nQ29udGV4dCB0byByZWFkIGJveCBnZW9t
ZXRyeS4KCiogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQ6CiogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6Y3JlYXRl
Rm9ybWF0dGluZ0NvbnRleHQpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5j
cHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpoYXNGb3JtYXR0aW5nU3RhdGUgY29u
c3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZmxleENvbnRlbnRDYWNoZSk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpkZXN0cm95RmxleENvbnRlbnRDYWNoZSk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JGbGV4Rm9ybWF0
dGluZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0
ZTo6ZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZSk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmg6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5Lmg6CihXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdHZW9tZXRyeTo6aXNCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSBjb25zdCk6CihX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdHZW9tZXRyeTo6aXNGbGV4Rm9ybWF0dGluZ0dlb21l
dHJ5IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleENvbnRlbnRDYWNoZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3RhdGUuY3Bw
LgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCk6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0
aW5nQ29udGV4dDo6Y29udmVydEZsZXhJdGVtc1RvTG9naWNhbFNwYWNlKToKKFdlYkNvcmU6Okxh
eW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpzZXRGbGV4SXRlbXNHZW9tZXRyeSk6CihXZWJD
b3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbSBj
b25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlG
b3JGbGV4SXRlbSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9m
bGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0
dGluZ0NvbnRleHQ6OnJvb3QgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQ6OmZvcm1hdHRpbmdVdGlscyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0U3RhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpG
bGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlKToKKCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwOiBSZW1vdmVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRl
LmguCihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nVXRpbHM6OkZsZXhGb3JtYXR0aW5n
VXRpbHMpOgooV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc01haW5BeGlz
UGFyYWxsZWxXaXRoSW5saW5lQXhpcyk6CihXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5n
VXRpbHM6OmlzUmV2ZXJzZWRUb0NvbnRlbnREaXJlY3Rpb24pOgoqIFNvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeS5oLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6RmxleExheW91
dDo6aGFuZGxlTWFpbkF4aXNBbGlnbm1lbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0Lmg6CiogU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcDoK
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0OjpGbGV4TGF5b3V0KToKKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0Ojp+RmxleExheW91dCk6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6dXBkYXRlRm9ybWF0dGluZ1Jvb3RH
ZW9tZXRyeUFuZEludmFsaWRhdGUpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhM
YXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3Jh
dGlvbjo6RmxleExheW91dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOgooV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhMYXlvdXQ6OmxheW91dCk6CihXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6dXBkYXRlUmVuZGVyZXJzKToKKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCBjb25z
dCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6dXBkYXRlUmVuZGVy
ZXJzIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
ZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaDoKKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpGbGV4TGF5b3V0OjpsYXlvdXRTdGF0ZSBjb25zdCk6Ci0tLQogU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSAgICAgICAgICAgICAgICAgIHwgIDEgLQogU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiB8IDE4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcCAgICAgICB8ICA4IC0tCiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuY3BwICAgICAgICAgfCAxNyArLS0tCiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuaCAgICAgICAgICAgfCAgOCArLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0
cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwIHwgIDEgLQogLi4uL2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuaCAgIHwgIDEgLQogLi4uL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250
ZXh0LmNwcCAgICAgICAgICAgIHwgMzQgKysrKy0tLQogLi4uL2ZsZXgvRmxleEZvcm1hdHRpbmdD
b250ZXh0LmggICAgICAgICAgICAgIHwgMjkgKysrLS0tCiAuLi4vZmxleC9GbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmNwcCAgICAgICAgICAgfCA5MyAtLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vZmxl
eC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmggICAgICAgICAgICAgICAgfCA1MiAtLS0tLS0tLS0tLQog
Li4udHRpbmdTdGF0ZS5jcHAgPT4gRmxleEZvcm1hdHRpbmdVdGlscy5jcHB9IHwgMjMgKysrLS0K
IC4uLmF0dGluZ0dlb21ldHJ5LmggPT4gRmxleEZvcm1hdHRpbmdVdGlscy5ofSB8IDE0ICstLQog
Li4uL2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhMYXlvdXQuY3BwICAgIHwgIDggKy0KIC4u
Li9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmggICAgICB8ICAxIC0KIC4uLi9m
bGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAgICAgICB8IDI0ICsrKy0tCiAuLi4v
ZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaCAgICAgICAgfCAgNiArLQogMTggZmls
ZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMjU3IGRlbGV0aW9ucygtKQogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmgK
IHJlbmFtZSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgve0Zs
ZXhGb3JtYXR0aW5nU3RhdGUuY3BwID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuY3BwfSAoNjIlKQog
cmVuYW1lIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC97Rmxl
eEZvcm1hdHRpbmdHZW9tZXRyeS5oID0+IEZsZXhGb3JtYXR0aW5nVXRpbHMuaH0gKDc1JSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBkZTczY2Y0OTA5NzEuLmJhZDlmYzg2MjA3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC0xMzE1LDcgKzEzMTUsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29u
dGV4dC5oCiAKICAgICBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRp
bmdDb25zdHJhaW50cy5oCi0gICAgbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhG
b3JtYXR0aW5nU3RhdGUuaAogICAgIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4
TGF5b3V0LmgKICAgICBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvTG9naWNhbEZsZXhJ
dGVtLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAzYTYwM2E5MTBiZDQuLmYyN2U2NDdhNmNkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTE3MjksOSArMTcyOSw4IEBAIGxheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFw
cGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCi1sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvZmxleC9GbGV4TGF5b3V0LmNwcAotbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3RhdGUuY3BwCitsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAKIGxheW91dC9mbG9hdHMvRmxvYXRBdm9p
ZGVyLmNwcAogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvZmxvYXRz
L1BsYWNlZEZsb2F0cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBkMDJmODQwMmU5ZWMuLjRiOTA3ZDFjM2Q5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjY2NCw3ICsyNjY0LDYgQEAKIAkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8qIElubGluZUxp
bmVCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
QjI0MDAzMjNERkYxMjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZCNUUyMTQyMjFGMjQ1MzAwMzk4
OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCNUUyMTIyMjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRD
aGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTZGQjdEMkREMjUwRkQ4MjgwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdE
MkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2RkI3RDJERTI1MEZEODJF
MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhG
b3JtYXR0aW5nU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk2RkI5MTA1QzI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjkxMDVCMjgzMEJDOEEw
MDAwNDkyOSAvKiBGbGV4UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGQzNGOTQ3MjUxNjc1NjcwMEE0OUJFQSAvKiBJbmxpbmVEaXNwbGF5
Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkMz
Rjk0NTI1MTY3NTY2MDBBNDlCRUEgLyogSW5saW5lRGlzcGxheUJveC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQ0JEQjk3MjY1REYyQzgwMDIx
RUE3QiAvKiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkNCREI5NTI2NURGMkM3MDAyMUVB
N0IgLyogTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNjc0LDcgKzI2NzMsNyBAQAog
CQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTE5ODE1MjE3ODM5
N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRTYzNkU4MjY0Nzk2MjkwMEYwOTUxRSAv
KiBJbmxpbmVRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGRTYzNkU3MjY0Nzk2MjkwMEYwOTUxRSAvKiBJbmxpbmVRdWlya3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkU3Q0ZBMjIxNzdF
RUYyMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElubGluZUl0ZW0u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2RkY5
MTFGNzI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZGOTExRjYyNjQ4N0ZDODAw
MjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2RkY5MTFGNzI2NDg3RkM4MDAyMDIxREYgLyog
RmxleEZvcm1hdHRpbmdVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nVXRp
bHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
RkZEQzQ0MjIxMkVGRjE3MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkZEQzQ0MDIxMkVGRjE2MDBBOUNBOTEg
LyogRmxvYXRBdm9pZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFpbHVy
ZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcw
OUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzEwMjVFQ0QxRjk5
RjBDRTAwNEEyNTBDIC8qIEFuaW1hdGlvblRpbWVsaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTAyNUVDNzFGOTlGMDk2MDA0QTI1MEMgLyogQW5p
bWF0aW9uVGltZWxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTI1OTcsNyArMTI1OTYsNyBAQAogCQk2RjZERjM2RTI2NDcyMkVBMDA5M0U4
MzQgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCbG9ja01hcmdpbkNvbGxhcHNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGNkVFNzQxMjZENDRFRTIwMDM3NENEQSAvKiBJbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVCb3hWZXJ0aWNh
bEFsaWduZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY2RUU3NDQyNkQ0NEYw
MzAwMzc0Q0RBIC8qIElubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTZGNzBERUREMjUxMTI2RjMwMEYwRkM3OCAvKiBGbGV4Rm9ybWF0dGlu
Z0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjcwREVERDI1MTEyNkYzMDBGMEZD
NzggLyogRmxleEZvcm1hdHRpbmdVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9y
bWF0dGluZ1V0aWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3MzkxOEMy
MTA2Q0VERDAwNkFGMjYyIC8qIExheW91dFVuaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVu
aXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0I4Q0VDMjM2MjZFNjYwMEM5
RkYxNSAvKiBJbmxpbmVJdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUl0ZW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDNDIwOEMyOTU2MDAyRjI5QUIg
LyogTGF5b3V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNjQ0LDkgKzEyNjQzLDcgQEAKIAkJNkZCMjQwMDMyM0RG
RjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5saW5lTGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RkI1RTIxMjIyMUYyNDQ3MDAzOTg5Q0YgLyogQ29udGVudENoYW5nZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkI3RDJENzI1MEZEN0U1MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQjdEMkQ4MjUwRkQ3RUYwMDAyMDdBQSAvKiBGbGV4
Rm9ybWF0dGluZ1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nU3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI3RDJEOTI1MEZEN0ZDMDAw
MjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2RkI3RDJEQTI1MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQjkxMDVCMjgzMEJDOEEwMDAwNDkyOSAv
KiBGbGV4UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4UmVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5Mzgg
LyogRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdHRpbmdH
ZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGQzNGOTQ1MjUxNjc1
NjYwMEE0OUJFQSAvKiBJbmxpbmVEaXNwbGF5Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElubGluZURpc3BsYXlCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNjY4LDcgKzEyNjY1LDcgQEAKIAkJNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElu
bGluZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSXRlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkU5RjA5MjIyMjExMDM1MDA0QzUwODIg
LyogQ29udGVudENoYW5nZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZGRUZFODFEMjJGOUQyMkEwMDExNDkyNyAvKiBMYXlvdXRQaGFzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYXlvdXRQaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
RkY5MTFGNjI2NDg3RkM4MDAyMDIxREYgLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRjkxMUY2MjY0ODdGQzgwMDIwMjFERiAvKiBG
bGV4Rm9ybWF0dGluZ1V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZs
ZXhGb3JtYXR0aW5nVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGOUYx
QkUyNDZEOTY2QzAwNDM1MDgzIC8qIFRhYmxlTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRhYmxlTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZGREM0M0Uy
MTJFRkYxNjAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGbG9hdEF2b2lkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkZEQzQ0MDIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0QXZvaWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjc3ODQsMTAgKzI3NzgxLDggQEAKIAkJCQk2RkIxNzQ3NTI4M0E4
RkY0MDA2N0Q4Q0EgLyogRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oICovLAogCQkJCTZGQjdE
MkQ3MjUwRkQ3RTUwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJ
CTZGQjdEMkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLywK
LQkJCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5j
cHAgKi8sCi0JCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nR2Vv
bWV0cnkuaCAqLywKLQkJCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRp
bmdTdGF0ZS5jcHAgKi8sCi0JCQkJNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3Jt
YXR0aW5nU3RhdGUuaCAqLywKKwkJCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZv
cm1hdHRpbmdVdGlscy5jcHAgKi8sCisJCQkJNkZGOTExRjYyNjQ4N0ZDODAwMjAyMURGIC8qIEZs
ZXhGb3JtYXR0aW5nVXRpbHMuaCAqLywKIAkJCQk2RjA0N0E5MDI4NDUzRUQyMDBDMjVFRTcgLyog
RmxleExheW91dC5jcHAgKi8sCiAJCQkJNkYwNDdBOTEyODQ1M0VEQjAwQzI1RUU3IC8qIEZsZXhM
YXlvdXQuaCAqLywKIAkJCQk2RkI5MTA1QjI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCAq
LywKQEAgLTM5MDQ5LDggKzM5MDQ0LDcgQEAKIAkJCQlBOENGRjA0RjBBMTU0RjA5MDAwQTQyMzQg
LyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCMTc0NzYyODNBOEZG
NDAwNjdEOENBIC8qIEZsZXhGb3JtYXR0aW5nQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZGQjdEMkREMjUwRkQ4MjgwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAotCQkJCTZGRjkxMUY3MjY0ODdGQzgwMDIwMjFERiAvKiBGbGV4Rm9ybWF0
dGluZ0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQk2RkI3RDJERTI1MEZEODJFMDAwMjA3
QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZGOTExRjcy
NjQ4N0ZDODAwMjAyMURGIC8qIEZsZXhGb3JtYXR0aW5nVXRpbHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZGMDQ3QTkyMjg0NTNFREIwMEMyNUVFNyAvKiBGbGV4TGF5b3V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RkI5MTA1QzI4MzBCQzhBMDAwMDQ5MjkgLyogRmxleFJlY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCmluZGV4IDZl
MzUwNTI2NDFlMC4uMDMyNmJiZjY4MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENv
bnRleHQuY3BwCkBAIC0yOCw5ICsyOCw2IEBACiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJG
bGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgi
Ci0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXRC
b3guaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dEVs
ZW1lbnRCb3guaCIKQEAgLTkxLDExICs4OCw2IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5n
Q29udGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGlu
Z0NvbnRleHRSb290LCBibG9ja0Zvcm1hdHRpbmdTdGF0ZSk7CiAgICAgfQogCi0gICAgaWYgKGZv
cm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKSB7
Ci0gICAgICAgIGF1dG8mIGZsZXhGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lbnN1cmVG
bGV4Rm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Ci0gICAgICAgIHJldHVy
biBtYWtlVW5pcXVlPEZsZXhGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGluZ0NvbnRleHRSb290
LCBmbGV4Rm9ybWF0dGluZ1N0YXRlKTsKLSAgICB9Ci0KICAgICBpZiAoZm9ybWF0dGluZ0NvbnRl
eHRSb290LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CiAgICAgICAgIGF1
dG8mIHRhYmxlRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZW5zdXJlVGFibGVGb3JtYXR0
aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8VGFibGVGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGluZ0NvbnRleHRSb290LCB0YWJsZUZv
cm1hdHRpbmdTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAppbmRleCA1
ZDk3MGM5Y2ZjMmIuLjA4YzQxZWZhOWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKIAogI2lu
Y2x1ZGUgIkJsb2NrRm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdT
dGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUNvbnRlbnRDYWNoZS5oIgogI2luY2x1ZGUgIkxheW91
dEJveC5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCkBAIC04OSw5ICs4OCw3IEBA
IEJveEdlb21ldHJ5JiBMYXlvdXRTdGF0ZTo6ZW5zdXJlR2VvbWV0cnlGb3JCb3hTbG93KGNvbnN0
IEJveCYgbGF5b3V0Qm94KQogYm9vbCBMYXlvdXRTdGF0ZTo6aGFzRm9ybWF0dGluZ1N0YXRlKGNv
bnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKIHsKICAgICBBU1NF
UlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7
Ci0gICAgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5zKCZmb3JtYXR0aW5n
Q29udGV4dFJvb3QpCi0gICAgICAgIHx8IG1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5z
KCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpCi0gICAgICAgIHx8IG1fZmxleEZvcm1hdHRpbmdTdGF0
ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAgcmV0dXJuIG1fYmxvY2tG
b3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5zKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpIHx8IG1fdGFi
bGVGb3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5zKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQog
CiBGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0
aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0
CkBAIC0xMTksMTIgKzExNiw2IEBAIFRhYmxlRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6
Zm9ybWF0dGluZ1N0YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dChjb25zCiAgICAgcmV0dXJu
ICptX3RhYmxlRm9ybWF0dGluZ1N0YXRlcy5nZXQoJnRhYmxlRm9ybWF0dGluZ0NvbnRleHRSb290
KTsKIH0KIAotRmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0
ZUZvckZsZXhGb3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmbGV4Rm9ybWF0dGlu
Z0NvbnRleHRSb290KSBjb25zdAotewotICAgIEFTU0VSVChmbGV4Rm9ybWF0dGluZ0NvbnRleHRS
b290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiAqbV9m
bGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZsZXhGb3JtYXR0aW5nQ29udGV4dFJvb3QpOwotfQot
CiBJbmxpbmVDb250ZW50Q2FjaGUmIExheW91dFN0YXRlOjppbmxpbmVDb250ZW50Q2FjaGUoY29u
c3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogewogICAgIEFTU0VSVChmb3Jt
YXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsK
QEAgLTE0MywxMiArMTM0LDYgQEAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
bnN1cmVUYWJsZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVtZW50Qm94JgogICAgIHJldHVybiAq
bV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZW5zdXJlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QsIFsm
XSB7IHJldHVybiBtYWtlVW5pcXVlPFRhYmxlRm9ybWF0dGluZ1N0YXRlPigqdGhpcywgZm9ybWF0
dGluZ0NvbnRleHRSb290KTsgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCi1GbGV4Rm9ybWF0dGlu
Z1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBFbGVt
ZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCi17Ci0gICAgQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICByZXR1
cm4gKm1fZmxleEZvcm1hdHRpbmdTdGF0ZXMuZW5zdXJlKCZmb3JtYXR0aW5nQ29udGV4dFJvb3Qs
IFsmXSB7IHJldHVybiBtYWtlVW5pcXVlPEZsZXhGb3JtYXR0aW5nU3RhdGU+KCp0aGlzKTsgfSku
aXRlcmF0b3ItPnZhbHVlOwotfQotCiB2b2lkIExheW91dFN0YXRlOjpkZXN0cm95QmxvY2tGb3Jt
YXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogewog
ICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAppbmRleCA1YTg1OGI1
NjU4ZjYuLjBhOWQwNzk2ZjAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAg
LTM4LDcgKzM4LDYgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIEJsb2NrRm9ybWF0dGlu
Z1N0YXRlOwogY2xhc3MgQm94R2VvbWV0cnk7Ci1jbGFzcyBGbGV4Rm9ybWF0dGluZ1N0YXRlOwog
Y2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBJ
bmxpbmVDb250ZW50Q2FjaGU7CkBAIC01NywxMSArNTYsOSBAQCBwdWJsaWM6CiAKICAgICBCbG9j
a0Zvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlQmxvY2tGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVu
dEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYg
ZW5zdXJlVGFibGVGb3JtYXR0aW5nU3RhdGUoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KTsKLSAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBlbnN1cmVGbGV4Rm9ybWF0dGlu
Z1N0YXRlKGNvbnN0IEVsZW1lbnRCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKICAgICBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dChjb25zdCBFbGVtZW50Qm94JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7
CiAgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0
dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJveCYgdGFibGVGb3JtYXR0aW5nQ29udGV4dFJvb3Qp
IGNvbnN0OwotICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckZsZXhG
b3JtYXR0aW5nQ29udGV4dChjb25zdCBFbGVtZW50Qm94JiBmbGV4Rm9ybWF0dGluZ0NvbnRleHRS
b290KSBjb25zdDsKIAogICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yRm9y
bWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0Owog
CkBAIC05MywxMiArOTAsOSBAQCBwcml2YXRlOgogICAgIEJveEdlb21ldHJ5JiBlbnN1cmVHZW9t
ZXRyeUZvckJveFNsb3coY29uc3QgQm94Jik7CiAKICAgICBIYXNoTWFwPGNvbnN0IEVsZW1lbnRC
b3gqLCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lQ29udGVudENhY2hlPj4gbV9pbmxpbmVDb250ZW50
Q2FjaGVzOworCiAgICAgSGFzaE1hcDxjb25zdCBFbGVtZW50Qm94Kiwgc3RkOjp1bmlxdWVfcHRy
PEJsb2NrRm9ybWF0dGluZ1N0YXRlPj4gbV9ibG9ja0Zvcm1hdHRpbmdTdGF0ZXM7CiAgICAgSGFz
aE1hcDxjb25zdCBFbGVtZW50Qm94Kiwgc3RkOjp1bmlxdWVfcHRyPFRhYmxlRm9ybWF0dGluZ1N0
YXRlPj4gbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXM7Ci0gICAgSGFzaE1hcDxjb25zdCBFbGVtZW50
Qm94Kiwgc3RkOjp1bmlxdWVfcHRyPEZsZXhGb3JtYXR0aW5nU3RhdGU+PiBtX2ZsZXhGb3JtYXR0
aW5nU3RhdGVzOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPElubGluZUNvbnRlbnRDYWNoZT4gbV9y
b290SW5saW5lQ29udGVudENhY2hlRm9ySW50ZWdyYXRpb247Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEZsZXhGb3JtYXR0aW5nU3RhdGU+IG1fcm9vdEZsZXhGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3Jh
dGlvbjsKIAogI2lmbmRlZiBOREVCVUcKICAgICBIYXNoU2V0PGNvbnN0IEZvcm1hdHRpbmdDb250
ZXh0Kj4gbV9mb3JtYXR0aW5nQ29udGV4dExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5j
cHAKaW5kZXggNDQ1ZGE1YmM3MTUyLi45Y2UzOTI4MDNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdH
ZW9tZXRyeS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nR2VvbWV0
cnkuaCIKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJG
bGV4Rm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9j
a0NoYWluSXRlcmF0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oCmluZGV4IDhmOTU2NDJh
MjY3NC4uNzIxNmM1ZTAxZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmgKQEAgLTg3LDcg
Kzg3LDYgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRX
aWR0aChjb25zdCBCb3gmLCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja1dpZHRoKSBjb25zdDsK
IAogICAgIGJvb2wgaXNCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGZv
cm1hdHRpbmdDb250ZXh0KCkuaXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7IH0KLSAgICBib29s
IGlzRmxleEZvcm1hdHRpbmdHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1hdHRpbmdDb250
ZXh0KCkuaXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKTsgfQogICAgIGJvb2wgaXNUYWJsZUZvcm1h
dHRpbmdHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0KCkuaXNUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0KCk7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgv
RmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1YzVlMTIxYjU0ZTYuLjJhMjIyZjg5MTMw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9m
bGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI2
LDggKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQuaCIKIAotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKLSNpbmNs
dWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdVdGls
cy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2lu
Y2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCkBAIC00MywxMSArNDIsMTAgQEAgbmFtZXNwYWNl
IExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQpOwogCi1GbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dChj
b25zdCBFbGVtZW50Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEZsZXhGb3JtYXR0aW5nU3Rh
dGUmIGZsZXhGb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0
aW5nQ29udGV4dFJvb3QsIGZsZXhGb3JtYXR0aW5nU3RhdGUubGF5b3V0U3RhdGUoKSkKLSAgICAs
IG1fZmxleEZvcm1hdHRpbmdTdGF0ZShmbGV4Rm9ybWF0dGluZ1N0YXRlKQotICAgICwgbV9mbGV4
Rm9ybWF0dGluZ0dlb21ldHJ5KCp0aGlzKQotICAgICwgbV9mbGV4Rm9ybWF0dGluZ1F1aXJrcygq
dGhpcykKK0ZsZXhGb3JtYXR0aW5nQ29udGV4dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0
IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKKyAgICA6IG1f
ZmxleEJveChmbGV4Qm94KQorICAgICwgbV9sYXlvdXRTdGF0ZShsYXlvdXRTdGF0ZSkKKyAgICAs
IG1fZmxleEZvcm1hdHRpbmdVdGlscygqdGhpcykKIHsKIH0KIApAQCAtODUsMTQgKzgzLDE0IEBA
IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMgRmxleEZvcm1hdHRpbmdDb250ZXh0Ojpjb252
ZXJ0RmxleEl0ZW1zVG9Mb2dpY2FsU3BhCiAKICAgICBWZWN0b3I8RmxleEl0ZW0+IGZsZXhJdGVt
TGlzdDsKICAgICBhdXRvIGZsZXhJdGVtc05lZWRSZW9yZGVyaW5nID0gZmFsc2U7Ci0gICAgYXV0
byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGluZ1N0YXRlKCk7CisgICAgYXV0byYg
bGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwogCiAgICAgYXV0byBjb252ZXJ0Vmlz
dWFsVG9Mb2dpY2FsID0gWyZdIHsKICAgICAgICAgYXV0byBkaXJlY3Rpb24gPSByb290KCkuc3R5
bGUoKS5mbGV4RGlyZWN0aW9uKCk7CiAgICAgICAgIGF1dG8gcHJldmlvdXNMb2dpY2FsT3JkZXIg
PSBzdGQ6Om9wdGlvbmFsPGludD4geyB9OwogCiAgICAgICAgIGZvciAoYXV0byogZmxleEl0ZW0g
PSByb290KCkuZmlyc3RJbkZsb3dDaGlsZCgpOyBmbGV4SXRlbTsgZmxleEl0ZW0gPSBmbGV4SXRl
bS0+bmV4dEluRmxvd1NpYmxpbmcoKSkgewotICAgICAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9t
ZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeSgqZmxleEl0ZW0pOworICAgICAgICAg
ICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGxheW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KCpm
bGV4SXRlbSk7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGZsZXhJdGVtLT5zdHlsZSgpOwog
ICAgICAgICAgICAgYXV0byBtYWluQXhpcyA9IExvZ2ljYWxGbGV4SXRlbTo6TWFpbkF4aXNHZW9t
ZXRyeSB7IH07CiAgICAgICAgICAgICBhdXRvIGNyb3NzQXhpcyA9IExvZ2ljYWxGbGV4SXRlbTo6
Q3Jvc3NBeGlzR2VvbWV0cnkgeyB9OwpAQCAtMTc1LDExICsxNzMsMTAgQEAgRmxleExheW91dDo6
TG9naWNhbEZsZXhJdGVtcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbnZlcnRGbGV4SXRlbXNU
b0xvZ2ljYWxTcGEKIAogdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZsZXhJdGVtc0dl
b21ldHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbXMmIGxvZ2ljYWxGbGV4SXRl
bUxpc3QsIGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXRlbVJlY3RzJiBsb2dpY2FsUmVj
dHMsIGNvbnN0IENvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQmIGNvbnN0cmFpbnRzKQogewotICAg
IGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIGF1
dG8gbG9naWNhbFdpZHRoID0gbG9naWNhbFJlY3RzLmxhc3QoKS5yaWdodCgpIC0gbG9naWNhbFJl
Y3RzLmZpcnN0KCkubGVmdCgpOwogICAgIGF1dG8mIGZsZXhCb3hTdHlsZSA9IHJvb3QoKS5zdHls
ZSgpOwogICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhCb3hTdHlsZS5mbGV4RGlyZWN0aW9u
KCk7Ci0gICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9IEZsZXhGb3Jt
YXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKHJvb3QoKSk7
CisgICAgYXV0byBpc01haW5BeGlzUGFyYWxsZWxXaXRoSW5saW5lQXhpcyA9IEZsZXhGb3JtYXR0
aW5nVXRpbHM6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKHJvb3QoKSk7CiAgICAg
YXV0byBmbGV4Qm94TG9naWNhbEhlaWdodEZvcldhcnBSZXNlcnZlID0gWyZdKCkgLT4gc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiB7CiAgICAgICAgIGlmIChmbGV4Qm94U3R5bGUuZmxleFdyYXAo
KSAhPSBGbGV4V3JhcDo6UmV2ZXJzZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CkBAIC0xOTQs
NyArMTkxLDcgQEAgdm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNldEZsZXhJdGVtc0dlb21l
dHJ5KGNvbnN0IEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4SXQKIAogICAgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBsb2dpY2FsRmxleEl0ZW1MaXN0LnNpemUoKTsgKytpbmRleCkgewog
ICAgICAgICBhdXRvJiBsb2dpY2FsRmxleEl0ZW0gPSBsb2dpY2FsRmxleEl0ZW1MaXN0W2luZGV4
XTsKLSAgICAgICAgYXV0byYgZmxleEl0ZW1HZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hH
ZW9tZXRyeShsb2dpY2FsRmxleEl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICBhdXRvJiBmbGV4
SXRlbUdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JGbGV4SXRlbShsb2dpY2FsRmxleEl0ZW0ubGF5b3V0
Qm94KCkpOwogICAgICAgICBhdXRvIGJvcmRlckJveFRvcExlZnQgPSBMYXlvdXRQb2ludCB7IH07
CiAgICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdHNbaW5kZXhdOwogICAgICAg
ICBhdXRvIGFkanVzdGVkTG9naWNhbFRvcCA9ICFmbGV4Qm94TG9naWNhbEhlaWdodEZvcldhcnBS
ZXNlcnZlID8gbG9naWNhbFJlY3QudG9wKCkgOiAqZmxleEJveExvZ2ljYWxIZWlnaHRGb3JXYXJw
UmVzZXJ2ZSAtIGxvZ2ljYWxSZWN0LmJvdHRvbSgpOwpAQCAtMjM0LDUgKzIzMSwxOCBAQCB2b2lk
IEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2V0RmxleEl0ZW1zR2VvbWV0cnkoY29uc3QgRmxleExh
eW91dDo6TG9naWNhbEZsZXhJdAogICAgIH0KIH0KIAorY29uc3QgQm94R2VvbWV0cnkmIEZsZXhG
b3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBCb3gmIGZsZXhJdGVt
KSBjb25zdAoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkpOworICAgIHJldHVy
biBtX2xheW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KGZsZXhJdGVtKTsKK30KKworQm94R2VvbWV0
cnkmIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JGbGV4SXRlbShjb25zdCBCb3gm
IGZsZXhJdGVtKQoreworICAgIEFTU0VSVChmbGV4SXRlbS5pc0ZsZXhJdGVtKCkpOworICAgIHJl
dHVybiBtX2xheW91dFN0YXRlLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGZsZXhJdGVtKTsKK30KKwor
CiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYWNm
MDlkOTA5YzJlLi40M2EwNTI1ZWU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRp
bmdDb250ZXh0LmgKQEAgLTI2LDExICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkZsZXhGb3JtYXR0aW5nQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0dl
b21ldHJ5LmgiCi0jaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZs
ZXhGb3JtYXR0aW5nVXRpbHMuaCIKICNpbmNsdWRlICJGbGV4TGF5b3V0LmgiCiAjaW5jbHVkZSAi
RmxleFJlY3QuaCIKLSNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiArMzYsMjIgQEAg
bmFtZXNwYWNlIExheW91dCB7CiAKIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgbGF5b3V0
IGxvZ2ljIGZvciBmbGV4IGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBodHRwczovL3d3dy53My5v
cmcvVFIvY3NzLWZsZXhib3gtMS8KLWNsYXNzIEZsZXhGb3JtYXR0aW5nQ29udGV4dCBmaW5hbCA6
IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7CitjbGFzcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdDb250ZXh0KTsKIHB1
YmxpYzoKLSAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRWxlbWVudEJveCYgZm9ybWF0
dGluZ0NvbnRleHRSb290LCBGbGV4Rm9ybWF0dGluZ1N0YXRlJik7CisgICAgRmxleEZvcm1hdHRp
bmdDb250ZXh0KGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gsIExheW91dFN0YXRlJik7CiAKICAg
ICB2b2lkIGxheW91dChjb25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7CiAgICAgSW50
cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMo
KTsKIAotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkmIGZvcm1hdHRpbmdHZW9tZXRy
eSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdHZW9tZXRyeTsgfQotICAgIGNvbnN0
IEZvcm1hdHRpbmdRdWlya3MmIGZvcm1hdHRpbmdRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX2Zs
ZXhGb3JtYXR0aW5nUXVpcmtzOyB9CisgICAgY29uc3QgRWxlbWVudEJveCYgcm9vdCgpIGNvbnN0
IHsgcmV0dXJuIG1fZmxleEJveDsgfQorICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nVXRpbHMmIGZv
cm1hdHRpbmdVdGlscygpIGNvbnN0IHsgcmV0dXJuIG1fZmxleEZvcm1hdHRpbmdVdGlsczsgfQor
CisgICAgY29uc3QgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29uc3QgQm94Jikg
Y29uc3Q7CisgICAgQm94R2VvbWV0cnkmIGdlb21ldHJ5Rm9yRmxleEl0ZW0oY29uc3QgQm94Jik7
CisKKyAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X2xheW91dFN0YXRlOyB9CisgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyByZXR1cm4g
bV9sYXlvdXRTdGF0ZTsgfQogCiBwcml2YXRlOgogICAgIEZsZXhMYXlvdXQ6OkxvZ2ljYWxGbGV4
SXRlbXMgY29udmVydEZsZXhJdGVtc1RvTG9naWNhbFNwYWNlKGNvbnN0IENvbnN0cmFpbnRzRm9y
RmxleENvbnRlbnQmKTsKQEAgLTU1LDE3ICs1OSwxMiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZEF1dG9NYXJnaW5WYWx1ZUZvckZsZXhJdGVtcyhj
b25zdCBDb25zdHJhaW50c0ZvckZsZXhDb250ZW50Jik7CiAKLSAgICBjb25zdCBGbGV4Rm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2ZsZXhGb3JtYXR0
aW5nU3RhdGU7IH0KLSAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSB7
IHJldHVybiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7IH0KLQogcHJpdmF0ZToKLSAgICBGbGV4Rm9y
bWF0dGluZ1N0YXRlJiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGU7Ci0gICAgY29uc3QgRmxleEZvcm1h
dHRpbmdHZW9tZXRyeSBtX2ZsZXhGb3JtYXR0aW5nR2VvbWV0cnk7Ci0gICAgY29uc3QgRm9ybWF0
dGluZ1F1aXJrcyBtX2ZsZXhGb3JtYXR0aW5nUXVpcmtzOworICAgIGNvbnN0IEVsZW1lbnRCb3gm
IG1fZmxleEJveDsKKyAgICBMYXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsKKyAgICBjb25zdCBG
bGV4Rm9ybWF0dGluZ1V0aWxzIG1fZmxleEZvcm1hdHRpbmdVdGlsczsKIH07CiAKIH0KIH0KIAot
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19DT05URVhUKEZsZXhGb3Jt
YXR0aW5nQ29udGV4dCwgaXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSkKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9mbGV4L0ZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmZDY5MDJjYjE5OTAuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nR2VvbWV0cnkuaCIKLQotI2luY2x1ZGUg
IkZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKLSNp
bmNsdWRlICJSZW5kZXJTdHlsZUlubGluZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFt
ZXNwYWNlIExheW91dCB7Ci0KLUZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OkZsZXhGb3JtYXR0aW5n
R2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0JiBmbGV4Rm9ybWF0dGluZ0NvbnRl
eHQpCi0gICAgOiBGb3JtYXR0aW5nR2VvbWV0cnkoZmxleEZvcm1hdHRpbmdDb250ZXh0KQotewot
fQotCi1ib29sIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnk6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJ
bmxpbmVBeGlzKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCi17Ci0gICAgQVNTRVJUKGZsZXhC
b3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERpcmVjdGlvbiA9IGZsZXhCb3guc3R5bGUo
KS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZsZXhEaXJlY3Rpb24gPT0gRmxleERpcmVj
dGlvbjo6Um93IHx8IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCkgPT0gRmxleERpcmVj
dGlvbjo6Um93UmV2ZXJzZTsKLX0KLQotYm9vbCBGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojppc1Jl
dmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gmIGZsZXhCb3gpCi17Ci0g
ICAgQVNTRVJUKGZsZXhCb3guaXNGbGV4Qm94KCkpOwotICAgIGF1dG8gZmxleERpcmVjdGlvbiA9
IGZsZXhCb3guc3R5bGUoKS5mbGV4RGlyZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGZsZXhEaXJlY3Rp
b24gPT0gRmxleERpcmVjdGlvbjo6Um93UmV2ZXJzZSB8fCBmbGV4RGlyZWN0aW9uID09IEZsZXhE
aXJlY3Rpb246OkNvbHVtblJldmVyc2U7Ci19Ci0KLUludHJpbnNpY1dpZHRoQ29uc3RyYWludHMg
RmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhjb25zdCBF
bGVtZW50Qm94JiBmbGV4SXRlbSkgY29uc3QKLXsKLSAgICBhdXRvIGZpeGVkTWFyZ2luQm9yZGVy
QW5kUGFkZGluZyA9IFsmXShhdXRvJiBsYXlvdXRCb3gpIHsKLSAgICAgICAgYXV0byYgc3R5bGUg
PSBsYXlvdXRCb3guc3R5bGUoKTsKLSAgICAgICAgcmV0dXJuIGZpeGVkVmFsdWUoc3R5bGUubWFy
Z2luU3RhcnQoKSkudmFsdWVfb3IoMCkKLSAgICAgICAgICAgICsgTGF5b3V0VW5pdCB7IHN0eWxl
LmJvcmRlckxlZnRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1ZShzdHlsZS5wYWRk
aW5nTGVmdCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBmaXhlZFZhbHVlKHN0eWxlLnBh
ZGRpbmdSaWdodCgpKS52YWx1ZV9vcigwKQotICAgICAgICAgICAgKyBMYXlvdXRVbml0IHsgc3R5
bGUuYm9yZGVyUmlnaHRXaWR0aCgpIH0KLSAgICAgICAgICAgICsgZml4ZWRWYWx1ZShzdHlsZS5t
YXJnaW5FbmQoKSkudmFsdWVfb3IoMCk7Ci0gICAgfTsKLQotICAgIGF1dG8gY29tcHV0ZWRJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzID0gWyZdKCkgLT4gSW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyB7Ci0gICAgICAgIGF1dG8gbG9naWNhbFdpZHRoID0gZmxleEl0ZW0uc3R5bGUoKS5sb2dpY2Fs
V2lkdGgoKTsKLSAgICAgICAgLy8gTWluaW11bS9tYXhpbXVtIHdpZHRoIGNhbid0IGJlIGRlcGVu
ZGluZyBvbiB0aGUgY29udGFpbmluZyBibG9jaydzIHdpZHRoLgotICAgICAgICBhdXRvIG5lZWRz
UmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0aCA9IGxvZ2ljYWxXaWR0aC5pc0NhbGN1bGF0ZWQo
KSB8fCBsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkgfHwgbG9naWNhbFdpZHRoLmlzUmVsYXRpdmUo
KTsKLSAgICAgICAgaWYgKG5lZWRzUmVzb2x2ZWRDb250YWluaW5nQmxvY2tXaWR0aCkKLSAgICAg
ICAgICAgIHJldHVybiB7IH07Ci0KLSAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBmaXhlZFZhbHVl
KGxvZ2ljYWxXaWR0aCkpCi0gICAgICAgICAgICByZXR1cm4geyAqd2lkdGgsICp3aWR0aCB9Owot
Ci0gICAgICAgIEFTU0VSVChmbGV4SXRlbS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkp
OwotICAgICAgICBhdXRvJiBsYXlvdXRTdGF0ZSA9IHRoaXMtPmxheW91dFN0YXRlKCk7Ci0gICAg
ICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IExheW91dENvbnRleHQ6OmNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGZsZXhJdGVtLCBjb25zdF9jYXN0PExheW91dFN0YXRlJj4obGF5
b3V0U3RhdGUpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7Ci0gICAgICAg
IGlmIChsb2dpY2FsV2lkdGguaXNNaW5Db250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4geyBp
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMubWluaW11bSB9OwotICAgICAgICBpZiAobG9naWNhbFdpZHRoLmlzTWF4Q29udGVudCgpKQot
ICAgICAgICAgICAgcmV0dXJuIHsgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5tYXhpbXVtLCBp
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0gfTsKLSAgICAgICAgcmV0dXJuIGludHJp
bnNpY1dpZHRoQ29uc3RyYWludHM7Ci0gICAgfTsKLSAgICBhdXRvIGludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgPSBjb25zdHJhaW5CeU1pbk1heFdpZHRoKGZsZXhJdGVtLCBjb21wdXRlZEludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMoKSk7Ci0gICAgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5l
eHBhbmQoZml4ZWRNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKGZsZXhJdGVtKSk7Ci0gICAgcmV0dXJu
IGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7Ci19Ci0KLX0KLX0KLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5n
U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9G
bGV4Rm9ybWF0dGluZ1N0YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNzcz
MWVjMWM5OS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGb3Jt
YXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQot
Y2xhc3MgRmxleEZvcm1hdHRpbmdTdGF0ZSA6IHB1YmxpYyBGb3JtYXR0aW5nU3RhdGUgewotICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdTdGF0ZSk7Ci1wdWJsaWM6Ci0g
ICAgRmxleEZvcm1hdHRpbmdTdGF0ZShMYXlvdXRTdGF0ZSYpOwotICAgIH5GbGV4Rm9ybWF0dGlu
Z1N0YXRlKCk7Ci0KLSAgICBjb25zdCBhdXRvJiBsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fbGlu
ZXM7IH0KLSAgICB2b2lkIGFkZExpbmUoY29uc3QgSW5saW5lUmVjdCYgbGluZSkgeyBtX2xpbmVz
LmFwcGVuZChsaW5lKTsgfQotCi1wcml2YXRlOgotICAgIFZlY3RvcjxJbmxpbmVSZWN0PiBtX2xp
bmVzOwotfTsKLQotfQotfQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRU
SU5HX1NUQVRFKEZsZXhGb3JtYXR0aW5nU3RhdGUsIGlzRmxleEZvcm1hdHRpbmdTdGF0ZSgpKQot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Zs
ZXgvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAKc2ltaWxhcml0eSBpbmRl
eCA2MiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9mbGV4L0ZsZXhGb3JtYXR0aW5nU3RhdGUuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdVdGlscy5jcHAKaW5k
ZXggM2IzYzE0MWE5NWRhLi5iMjZjMjEzOTUyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZv
cm1hdHRpbmdVdGlscy5jcHAKQEAgLTI0LDIzICsyNCwzNCBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRmxl
eEZvcm1hdHRpbmdVdGlscy5oIgogCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
KyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRDb250
ZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
RmxleEZvcm1hdHRpbmdTdGF0ZSk7CitGbGV4Rm9ybWF0dGluZ1V0aWxzOjpGbGV4Rm9ybWF0dGlu
Z1V0aWxzKGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYgZmxleEZvcm1hdHRpbmdDb250ZXh0
KQorICAgIDogbV9mbGV4Rm9ybWF0dGluZ0NvbnRleHQoZmxleEZvcm1hdHRpbmdDb250ZXh0KQor
eworfQogCi1GbGV4Rm9ybWF0dGluZ1N0YXRlOjpGbGV4Rm9ybWF0dGluZ1N0YXRlKExheW91dFN0
YXRlJiBsYXlvdXRTdGF0ZSkKLSAgICA6IEZvcm1hdHRpbmdTdGF0ZShUeXBlOjpGbGV4LCBsYXlv
dXRTdGF0ZSkKK2Jvb2wgRmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1BhcmFsbGVsV2l0
aElubGluZUF4aXMoY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKIHsKKyAgICBBU1NFUlQoZmxl
eEJveC5pc0ZsZXhCb3goKSk7CisgICAgYXV0byBmbGV4RGlyZWN0aW9uID0gZmxleEJveC5zdHls
ZSgpLmZsZXhEaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gZmxleERpcmVjdGlvbiA9PSBGbGV4RGly
ZWN0aW9uOjpSb3cgfHwgZmxleEJveC5zdHlsZSgpLmZsZXhEaXJlY3Rpb24oKSA9PSBGbGV4RGly
ZWN0aW9uOjpSb3dSZXZlcnNlOwogfQogCi1GbGV4Rm9ybWF0dGluZ1N0YXRlOjp+RmxleEZvcm1h
dHRpbmdTdGF0ZSgpCitib29sIEZsZXhGb3JtYXR0aW5nVXRpbHM6OmlzUmV2ZXJzZWRUb0NvbnRl
bnREaXJlY3Rpb24oY29uc3QgRWxlbWVudEJveCYgZmxleEJveCkKIHsKKyAgICBBU1NFUlQoZmxl
eEJveC5pc0ZsZXhCb3goKSk7CisgICAgYXV0byBmbGV4RGlyZWN0aW9uID0gZmxleEJveC5zdHls
ZSgpLmZsZXhEaXJlY3Rpb24oKTsKKyAgICByZXR1cm4gZmxleERpcmVjdGlvbiA9PSBGbGV4RGly
ZWN0aW9uOjpSb3dSZXZlcnNlIHx8IGZsZXhEaXJlY3Rpb24gPT0gRmxleERpcmVjdGlvbjo6Q29s
dW1uUmV2ZXJzZTsKIH0KIAogfQogfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9mbGV4L0ZsZXhGb3JtYXR0aW5n
VXRpbHMuaApzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxleEZvcm1hdHRpbmdHZW9tZXRyeS5oCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdVdGlscy5oCmluZGV4IDM4YmUzYzEyZDMxOS4uYjc3MDNmYWViZjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2ZsZXgvRmxl
eEZvcm1hdHRpbmdHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvZmxleC9GbGV4Rm9ybWF0dGluZ1V0aWxzLmgKQEAgLTMyLDI0ICszMiwxOCBA
QCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgRmxleEZvcm1hdHRpbmdDb250ZXh0OwogCi1j
bGFzcyBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ7Ci0KLS8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBw
b3NpdGlvbmluZyBhbmQgc2l6aW5nIGZvciBmbGV4IGl0ZW1zLgotY2xhc3MgRmxleEZvcm1hdHRp
bmdHZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5nR2VvbWV0cnkgeworLy8gSGVscGVyIGNsYXNz
IGZvciBmbGV4IGxheW91dC4KK2NsYXNzIEZsZXhGb3JtYXR0aW5nVXRpbHMgewogcHVibGljOgot
ICAgIEZsZXhGb3JtYXR0aW5nR2VvbWV0cnkoY29uc3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7
Ci0KLSAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMoY29uc3QgRWxlbWVudEJveCYpIGNvbnN0OworICAgIEZsZXhGb3JtYXR0aW5nVXRpbHMoY29u
c3QgRmxleEZvcm1hdHRpbmdDb250ZXh0Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc01haW5BeGlz
UGFyYWxsZWxXaXRoSW5saW5lQXhpcyhjb25zdCBFbGVtZW50Qm94JiBmbGV4Qm94KTsKICAgICBz
dGF0aWMgYm9vbCBpc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGNvbnN0IEVsZW1lbnRCb3gm
IGZsZXhCb3gpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEZsZXhGb3JtYXR0aW5nQ29udGV4dCYg
Zm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQ+KEZvcm1hdHRpbmdHZW9tZXRyeTo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAg
ICBjb25zdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQmIG1fZmxleEZvcm1hdHRpbmdDb250ZXh0Owog
fTsKIAogfQogfQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0xBWU9VVF9GT1JNQVRUSU5HX0dF
T01FVFJZKEZsZXhGb3JtYXR0aW5nR2VvbWV0cnksIGlzRmxleEZvcm1hdHRpbmdHZW9tZXRyeSgp
KQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2ZsZXgvRmxleExheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleExheW91dC5jcHAKaW5kZXggMzc2NDIzZTUwNTliLi43M2U1NWFjYzQ0
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
ZmxleC9GbGV4TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2ZsZXgvRmxleExheW91dC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRl
ICJGbGV4TGF5b3V0LmgiCiAKICNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCIKLSNp
bmNsdWRlICJGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5LmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRp
bmdVdGlscy5oIgogI2luY2x1ZGUgIkZsZXhSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZVNldHRlcnMuaCIKQEAgLTYzNCw3
ICs2MzQsNyBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZsZXhMYXlvdXQ6
OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogCiAgICAgICAgICAgICAgICAgYXV0
byBwb3NpdGlvbmFsQWxpZ25tZW50ID0gWyZdIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBw
b3NpdGlvbmFsQWxpZ25tZW50VmFsdWUgPSBqdXN0aWZ5Q29udGVudFZhbHVlLnBvc2l0aW9uKCk7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICghRmxleEZvcm1hdHRpbmdHZW9tZXRyeTo6aXNNYWlu
QXhpc1BhcmFsbGVsV2l0aElubGluZUF4aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25h
bEFsaWdubWVudFZhbHVlID09IENvbnRlbnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxp
Z25tZW50VmFsdWUgPT0gQ29udGVudFBvc2l0aW9uOjpSaWdodCkpCisgICAgICAgICAgICAgICAg
ICAgIGlmICghRmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhpc1BhcmFsbGVsV2l0aElubGlu
ZUF4aXMoZmxleENvbnRhaW5lcigpKSAmJiAocG9zaXRpb25hbEFsaWdubWVudFZhbHVlID09IENv
bnRlbnRQb3NpdGlvbjo6TGVmdCB8fCBwb3NpdGlvbmFsQWxpZ25tZW50VmFsdWUgPT0gQ29udGVu
dFBvc2l0aW9uOjpSaWdodCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmFsQWxp
Z25tZW50VmFsdWUgPSBDb250ZW50UG9zaXRpb246OlN0YXJ0OwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcG9zaXRpb25hbEFsaWdubWVudFZhbHVlOwogICAgICAgICAgICAgICAgIH07CkBA
IC02NTEsMTIgKzY1MSwxMiBAQCBGbGV4TGF5b3V0OjpQb3NpdGlvbkFuZE1hcmdpbnNMaXN0IEZs
ZXhMYXlvdXQ6OmhhbmRsZU1haW5BeGlzQWxpZ25tZW50KExheW91dFVuaQogICAgICAgICAgICAg
ICAgIC8vIG5vbi1sb2dpY2FsIGFsaWdubWVudHMKICAgICAgICAgICAgICAgICBjYXNlIENvbnRl
bnRQb3NpdGlvbjo6TGVmdDoKICAgICAgICAgICAgICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6
U3RhcnQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5Ojpp
c1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAgICAg
ICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50RGly
ZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
YXZhaWxhYmxlTWFpblNwYWNlIC0gbGluZUNvbnRlbnRPdXRlck1haW5TaXplOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgY2FzZSBD
b250ZW50UG9zaXRpb246OlJpZ2h0OgogICAgICAgICAgICAgICAgIGNhc2UgQ29udGVudFBvc2l0
aW9uOjpFbmQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ0dlb21ldHJ5
Ojppc1JldmVyc2VkVG9Db250ZW50RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCisgICAgICAg
ICAgICAgICAgICAgIGlmIChGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc1JldmVyc2VkVG9Db250ZW50
RGlyZWN0aW9uKGZsZXhDb250YWluZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTGF5b3V0VW5pdCB7IH07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVN
YWluU3BhY2UgLSBsaW5lQ29udGVudE91dGVyTWFpblNpemU7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvZmxleC9GbGV4TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2ZsZXgvRmxleExheW91dC5oCmluZGV4IGJkYjljZGIyNGJlZi4uYzQ4ZDgyMTFhNTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Zs
ZXgvRmxleExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvZmxleC9GbGV4TGF5b3V0LmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb25zdHJhaW50cy5oIgotI2luY2x1ZGUgIkZsZXhG
b3JtYXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJGbGV4UmVjdC5oIgogI2luY2x1ZGUgIkxvZ2lj
YWxGbGV4SXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9SYW5nZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5
b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dElu
dGVncmF0aW9uRmxleExheW91dC5jcHAKaW5kZXggMTc3Yzg5NWI2MzM0Li4wMzYyN2YyNzJiYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91
dEludGVncmF0aW9uRmxleExheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcApAQCAtNDMsNyAr
NDMsMTAgQEAgbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIEZsZXhMYXlvdXQ6OkZsZXhM
YXlvdXQoUmVuZGVyRmxleGlibGVCb3gmIGZsZXhCb3hSZW5kZXJlcikKICAgICA6IG1fYm94VHJl
ZShmbGV4Qm94UmVuZGVyZXIpCiAgICAgLCBtX2xheW91dFN0YXRlKGZsZXhCb3hSZW5kZXJlci52
aWV3KCkubGF5b3V0U3RhdGUoKSkKLSAgICAsIG1fZmxleEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRT
dGF0ZSgpLmVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUoZmxleEJveCgpKSkKK3sKK30KKworRmxl
eExheW91dDo6fkZsZXhMYXlvdXQoKQogewogfQogCkBAIC04OSwxMiArOTIsOSBAQCB2b2lkIEZs
ZXhMYXlvdXQ6OnVwZGF0ZUZvcm1hdHRpbmdSb290R2VvbWV0cnlBbmRJbnZhbGlkYXRlKCkKICAg
ICAgICAgcm9vdC5zZXRWZXJ0aWNhbE1hcmdpbih7IH0pOwogICAgIH07CiAgICAgdXBkYXRlR2Vv
bWV0cnkobGF5b3V0U3RhdGUoKS5lbnN1cmVHZW9tZXRyeUZvckJveChmbGV4Qm94KCkpKTsKLQot
ICAgIGZvciAoYXV0byYgZmxleEl0ZW0gOiBMYXlvdXQ6OmNoaWxkcmVuT2ZUeXBlPExheW91dDo6
Qm94PihmbGV4Qm94KCkpKQotICAgICAgICBtX2ZsZXhGb3JtYXR0aW5nU3RhdGUuY2xlYXJJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzKGZsZXhJdGVtKTsKIH0KIAotdm9pZCBGbGV4TGF5b3V0Ojp1
cGRhdGVGbGV4SXRlbURpbWVuc2lvbnMoY29uc3QgUmVuZGVyQmxvY2smIGZsZXhJdGVtLCBMYXlv
dXRVbml0IG1pbmltdW1Db250ZW50U2l6ZSwgTGF5b3V0VW5pdCBtYXhpbXVtQ29udGVudFNpemUp
Cit2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZUZsZXhJdGVtRGltZW5zaW9ucyhjb25zdCBSZW5kZXJC
bG9jayYgZmxleEl0ZW0sIExheW91dFVuaXQsIExheW91dFVuaXQpCiB7CiAgICAgYXV0byYgcm9v
dEdlb21ldHJ5ID0gbGF5b3V0U3RhdGUoKS5nZW9tZXRyeUZvckJveChmbGV4Qm94KCkpOwogICAg
IGF1dG8mIGxheW91dEJveCA9IG1fYm94VHJlZS5sYXlvdXRCb3hGb3JSZW5kZXJlcihmbGV4SXRl
bSk7CkBAIC0xMTksOCArMTE5LDYgQEAgdm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVGbGV4SXRlbURp
bWVuc2lvbnMoY29uc3QgUmVuZGVyQmxvY2smIGZsZXhJdGVtLCBMYXlvdXRVbmkKICAgICAgICAg
ICAgIGhlaWdodFZhbHVlID0gc3RkOjptYXgoMF9sdSwgaGVpZ2h0VmFsdWUgLSBib3hHZW9tZXRy
eS52ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmcoKSk7CiAgICAgICAgIGJveEdlb21ldHJ5LnNldENv
bnRlbnRCb3hIZWlnaHQoaGVpZ2h0VmFsdWUpOwogICAgIH0KLQotICAgIG1fZmxleEZvcm1hdHRp
bmdTdGF0ZS5zZXRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzRm9yQm94KGxheW91dEJveCwgeyBt
aW5pbXVtQ29udGVudFNpemUsIG1heGltdW1Db250ZW50U2l6ZSB9KTsKIH0KIAogdm9pZCBGbGV4
TGF5b3V0Ojp1cGRhdGVTdHlsZShjb25zdCBSZW5kZXJCbG9jayYsIGNvbnN0IFJlbmRlclN0eWxl
JikKQEAgLTEyOSw3ICsxMjcsNyBAQCB2b2lkIEZsZXhMYXlvdXQ6OnVwZGF0ZVN0eWxlKGNvbnN0
IFJlbmRlckJsb2NrJiwgY29uc3QgUmVuZGVyU3R5bGUmKQogCiBzdGQ6OnBhaXI8TGF5b3V0VW5p
dCwgTGF5b3V0VW5pdD4gRmxleExheW91dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMoKQogewotICAgIGF1dG8gZmxleEZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9y
bWF0dGluZ0NvbnRleHQgeyBmbGV4Qm94KCksIG1fZmxleEZvcm1hdHRpbmdTdGF0ZSB9OworICAg
IGF1dG8gZmxleEZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQgeyBmbGV4Qm94KCksIGxheW91dFN0YXRlKCkgfTsKICAgICBhdXRvIGNvbnN0cmFpbnRzID0g
ZmxleEZvcm1hdHRpbmdDb250ZXh0LmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygp
OwogCiAgICAgcmV0dXJuIHsgY29uc3RyYWludHMubWluaW11bSwgY29uc3RyYWludHMubWF4aW11
bSB9OwpAQCAtMTU2LDcgKzE1NCw3IEBAIHZvaWQgRmxleExheW91dDo6bGF5b3V0KCkKICAgICB9
OwogICAgIGF1dG8gW2F2YWlsYWJsZVZlcnRpY2FsU3BhY2UsIG1pbmltdW1WZXJ0aWNhbFNwYWNl
XSA9IHZlcnRpY2FsU3BhY2VGb3JGbGV4SXRlbXMoKTsKICAgICBhdXRvIGNvbnN0cmFpbnRzID0g
TGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50IHsgeyBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIHJvb3RHZW9tZXRyeS5jb250ZW50Qm94VG9wKCkgfSwgYXZhaWxhYmxlVmVydGljYWxTcGFj
ZSwgbWluaW11bVZlcnRpY2FsU3BhY2UgfTsKLSAgICBhdXRvIGZsZXhGb3JtYXR0aW5nQ29udGV4
dCA9IExheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBtX2ZsZXhGb3Jt
YXR0aW5nU3RhdGUgfTsKKyAgICBhdXRvIGZsZXhGb3JtYXR0aW5nQ29udGV4dCA9IExheW91dDo6
RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBsYXlvdXRTdGF0ZSgpIH07CiAgICAg
ZmxleEZvcm1hdHRpbmdDb250ZXh0LmxheW91dChjb25zdHJhaW50cyk7CiAKICAgICB1cGRhdGVS
ZW5kZXJlcnMoKTsKQEAgLTE2Nyw3ICsxNjUsNyBAQCB2b2lkIEZsZXhMYXlvdXQ6OmxheW91dCgp
CiAgICAgICAgIGZvciAoYXV0byYgcmVuZGVyT2JqZWN0IDogbV9ib3hUcmVlLnJlbmRlcmVycygp
KSB7CiAgICAgICAgICAgICBhdXRvJiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckJveD4oKnJl
bmRlck9iamVjdCk7CiAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqcmVuZGVyZXIubGF5
b3V0Qm94KCk7Ci0gICAgICAgICAgICBhdXRvIGJvcmRlckJveCA9IExheW91dDo6Qm94R2VvbWV0
cnk6OmJvcmRlckJveFJlY3QobV9mbGV4Rm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91
dEJveCkpOworICAgICAgICAgICAgYXV0byBib3JkZXJCb3ggPSBMYXlvdXQ6OkJveEdlb21ldHJ5
Ojpib3JkZXJCb3hSZWN0KGxheW91dFN0YXRlKCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KSk7
CiAKICAgICAgICAgICAgIHJlbmRlcmVyLnNldFdpZHRoKExheW91dFVuaXQgeyB9KTsKICAgICAg
ICAgICAgIHJlbmRlcmVyLnNldEhlaWdodChMYXlvdXRVbml0IHsgfSk7CkBAIC0xODYsMTIgKzE4
NCwxMiBAQCB2b2lkIEZsZXhMYXlvdXQ6OmxheW91dCgpCiAgICAgcmVsYXlvdXRGbGV4SXRlbXMo
KTsKIH0KIAotdm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVSZW5kZXJlcnMoKSBjb25zdAordm9pZCBG
bGV4TGF5b3V0Ojp1cGRhdGVSZW5kZXJlcnMoKQogewogICAgIGZvciAoYXV0byYgcmVuZGVyT2Jq
ZWN0IDogbV9ib3hUcmVlLnJlbmRlcmVycygpKSB7CiAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0g
ZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyT2JqZWN0KTsKICAgICAgICAgYXV0byYgbGF5b3V0
Qm94ID0gKnJlbmRlcmVyLmxheW91dEJveCgpOwotICAgICAgICBhdXRvJiBmbGV4SXRlbUdlb21l
dHJ5ID0gbV9mbGV4Rm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KGxheW91dEJveCk7CisgICAg
ICAgIGF1dG8mIGZsZXhJdGVtR2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmdlb21ldHJ5Rm9yQm94
KGxheW91dEJveCk7CiAgICAgICAgIGF1dG8gYm9yZGVyQm94ID0gTGF5b3V0OjpCb3hHZW9tZXRy
eTo6Ym9yZGVyQm94UmVjdChmbGV4SXRlbUdlb21ldHJ5KTsKICAgICAgICAgcmVuZGVyZXIuc2V0
TG9jYXRpb24oYm9yZGVyQm94LnRvcExlZnQoKSk7CiAgICAgICAgIHJlbmRlcmVyLnNldFdpZHRo
KGJvcmRlckJveC53aWR0aCgpKTsKQEAgLTIxOSw3ICsyMTcsNyBAQCB2b2lkIEZsZXhMYXlvdXQ6
OmNvbGxlY3RPdmVyZmxvdygpCiAKIExheW91dFVuaXQgRmxleExheW91dDo6Y29udGVudExvZ2lj
YWxIZWlnaHQoKSBjb25zdAogewotICAgIHJldHVybiBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29u
dGV4dCB7IGZsZXhCb3goKSwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlIH0udXNlZENvbnRlbnRIZWln
aHQoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9u
RmxleExheW91dC5oCmluZGV4IGM2ZTAzMTFjNzU0Mi4uMzUyNTI5NTk2OWMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vZmxleC9MYXlvdXRJbnRlZ3JhdGlv
bkZsZXhMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vZmxl
eC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaApAQCAtMjUsNyArMjUsNiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCkBAIC00Nyw2ICs0Niw3IEBAIGNsYXNzIEZsZXhM
YXlvdXQgOiBwdWJsaWMgQ2FuTWFrZUNoZWNrZWRQdHIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIEZsZXhMYXlvdXQoUmVuZGVyRmxleGlibGVCb3gmKTsKKyAg
ICB+RmxleExheW91dCgpOwogCiAgICAgdm9pZCB1cGRhdGVGb3JtYXR0aW5nUm9vdEdlb21ldHJ5
QW5kSW52YWxpZGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlRmxleEl0ZW1EaW1lbnNpb25zKGNvbnN0
IFJlbmRlckJsb2NrJiBmbGV4SXRlbSwgTGF5b3V0VW5pdCBtaW5pbXVtQ29udGVudFNpemUsIExh
eW91dFVuaXQgbWF4aW11bUNvbnRlbnRTaXplKTsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgog
ICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIHVwZGF0ZVJlbmRlcmVycygpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlUmVuZGVy
ZXJzKCk7CiAKICAgICBjb25zdCBMYXlvdXQ6OkVsZW1lbnRCb3gmIGZsZXhCb3goKSBjb25zdCB7
IHJldHVybiBtX2JveFRyZWUucm9vdExheW91dEJveCgpOyB9CiAgICAgTGF5b3V0OjpFbGVtZW50
Qm94JiBmbGV4Qm94KCkgeyByZXR1cm4gbV9ib3hUcmVlLnJvb3RMYXlvdXRCb3goKTsgfQpAQCAt
NzEsMTAgKzcxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVuZGVyRmxleGlibGVCb3gmIGZsZXhCb3hS
ZW5kZXJlcigpIHsgcmV0dXJuIGRvd25jYXN0PFJlbmRlckZsZXhpYmxlQm94PihtX2JveFRyZWUu
cm9vdFJlbmRlcmVyKCkpOyB9CiAKICAgICBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0
ZSgpIHsgcmV0dXJuICptX2xheW91dFN0YXRlOyB9CisgICAgY29uc3QgTGF5b3V0OjpMYXlvdXRT
dGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRTdGF0ZTsgfQogCiAg
ICAgQm94VHJlZSBtX2JveFRyZWU7CiAgICAgV2Vha1B0cjxMYXlvdXQ6OkxheW91dFN0YXRlPiBt
X2xheW91dFN0YXRlOwotICAgIExheW91dDo6RmxleEZvcm1hdHRpbmdTdGF0ZSYgbV9mbGV4Rm9y
bWF0dGluZ1N0YXRlOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>