<?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>137086</bug_id>
          
          <creation_ts>2014-09-24 16:36:10 -0700</creation_ts>
          <short_desc>Web Replay: use static Strings instead of AtomicStrings for replay input type tags</short_desc>
          <delta_ts>2014-09-30 12:21:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037083</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-24 16:36:10 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037085</commentid>
    <comment_count>1</comment_count>
      <attachid>238626</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-24 16:37:26 -0700</bug_when>
    <thetext>Created attachment 238626
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037147</commentid>
    <comment_count>2</comment_count>
      <attachid>238626</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-09-24 21:29:20 -0700</bug_when>
    <thetext>Comment on attachment 238626
WIP

Looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037297</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-09-25 14:25:52 -0700</bug_when>
    <thetext>I don&apos;t think it&apos;s a good idea to use NeverDestroyed with AtomicString - is it really that important to be able to do fast compares or would it be enough to just use normal strings here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037299</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-25 14:29:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I don&apos;t think it&apos;s a good idea to use NeverDestroyed with AtomicString - is it really that important to be able to do fast compares or would it be enough to just use normal strings here?

This is not a performance bottleneck, a String would be fine.

(Why is NeverDestroyed&lt;AtomicString&gt; not a good idea? I was ambivalent so I turned to grep, and found about 2x more NeverDestroyed&lt;AtomicString&gt; than NeverDestroyed&lt;String&gt;.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037301</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-09-25 14:39:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I don&apos;t think it&apos;s a good idea to use NeverDestroyed with AtomicString - is it really that important to be able to do fast compares or would it be enough to just use normal strings here?
&gt; 
&gt; This is not a performance bottleneck, a String would be fine.
&gt; 
&gt; (Why is NeverDestroyed&lt;AtomicString&gt; not a good idea? I was ambivalent so I turned to grep, and found about 2x more NeverDestroyed&lt;AtomicString&gt; than NeverDestroyed&lt;String&gt;.)

Creating static AtomicStrings is bad in general since if the function that returns the AtomicString is ever called from more than one thread, you&apos;re going to return a string that is only atomic on one thread (the thread that created it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037432</commentid>
    <comment_count>6</comment_count>
      <attachid>238702</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-26 00:24:52 -0700</bug_when>
    <thetext>Created attachment 238702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037434</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-26 00:27:13 -0700</bug_when>
    <thetext>This patch modifies the WEB_REPLAY inputs generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-input-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037435</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-26 00:27:27 -0700</bug_when>
    <thetext>Attachment 238702 did not pass style-queue:


ERROR: Source/WebCore/replay/SerializationMethods.cpp:171:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/replay/SerializationMethods.cpp:195:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 2 in 29 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038273</commentid>
    <comment_count>9</comment_count>
      <attachid>238702</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-09-30 11:42:00 -0700</bug_when>
    <thetext>Comment on attachment 238702
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038285</commentid>
    <comment_count>10</comment_count>
      <attachid>238702</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 12:21:29 -0700</bug_when>
    <thetext>Comment on attachment 238702
Patch

Clearing flags on attachment: 238702

Committed r174113: &lt;http://trac.webkit.org/changeset/174113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038286</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 12:21:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238626</attachid>
            <date>2014-09-24 16:37:26 -0700</date>
            <delta_ts>2014-09-26 00:24:48 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-137086-20140924163719.patch</filename>
            <type>text/plain</type>
            <size>26179</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MzhlNTUzNjdkM2QwZTg2NWY0NTczMjRmNzU2N2MxMDVjYTdlMWZlLi5hOTNhNTRmNDc0MzIxMjg4
MWViY2Y2YjZmNzQ0MzFmYjU0YjdmYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNC0wOC0yMCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogbW92ZSBhd2F5IGZyb20gdXNpbmcgdGhyZWFk
LWxvY2FsIFJlcGxheUlucHV0VHlwZXMKKyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEp
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0dGVybiBkb2Vzbid0IHdvcmsgd2hlbiB3ZSB3YW50IHRvIGRlZmluZSBzb21lIGlucHV0cyBp
biBXZWJLaXQyLgorICAgICAgICBUaGUgUmVwbGF5SW5wdXRUeXBlcyBjbGFzcyBpcyBnZW5lcmF0
ZWQgZnJvbSBXZWJDb3JlIGlucHV0cyBvbmx5LiBUaGlzCisgICAgICAgIHBhdGNoIG1vdmVzIGFs
bCBpbnB1dCB0cmFpdHMgdG8gdXNlIHN0YXRpYyBsb2NhbCBBdG9taWNTdHJpbmdzIGFzIHR5cGUg
dGFncy4KKworICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1
dHMucHk6IFJlbW92ZSBjb25maWd1cmF0aW9uIG9mIGhvdworICAgICAgICB0eXBlIG5hbWVzIGFy
ZSBnZW5lcmF0ZWQsIHNpbmNlIGFsbCBmcmFtZXdvcmsgdGFyZ2V0cyBub3cgZ2VuZXJhdGUgdGhl
IHNhbWUgY29kZS4KKyAgICAgICAgSW1wcm92ZSB0aGUgaGVhZGVyIGluY2x1ZGVzIGdlbmVyYXRp
b24gdG8gYWNjb3VudCBmb3IgV2ViS2l0MiBhbmQgcGF0aHMgd2l0aAorICAgICAgICBtb3JlIHRo
YW4gb25lIGRpcmVjdG9yeSBjb21wb25lbnQuCisgICAgICAgIChHZW5lcmF0b3IuZ2VuZXJhdGVf
aW5jbHVkZV9zdHJpbmcuY2hvbXBfbGVhZGluZ19wYXRoX2NvbXBvbmVudCk6IEFkZGVkLgorICAg
ICAgICAoR2VuZXJhdG9yLmdlbmVyYXRlX2luY2x1ZGVfc3RyaW5nKToKKyAgICAgICAgKEdlbmVy
YXRvci5nZW5lcmF0ZV9pbnB1dF90cmFpdF9pbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5l
cmF0b3IuZ2VuZXJhdGVfaW5jbHVkZXMpOgorICAgICAgICAoR2VuZXJhdG9yLmdlbmVyYXRlX2lu
cHV0X2VuY29kZV9pbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weTogU2ltcGxpZnkgdGVtcGxhdGVzLgor
CiAyMDE0LTA5LTEzICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAog
ICAgICAgICBXZWIgUmVwbGF5OiBBU1NFUlRJT04gRkFJTEVEOiB3aXRoaW5FdmVudExvb3BJbnB1
dEV4dGVudCAhPSBtX3dpdGhpbkV2ZW50TG9vcElucHV0RXh0ZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA2
M2FhNjdmNmJkYTlkZGIxMWIxYWUzYmNkZmFmZDk3YTVkY2I0MC4uZjEzODhjZWFiMjg5Yzk4ZjQ2
NGJkYTcxNTUxM2QzMzZjZDYxNGFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0
LTA4LTIwICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAg
ICBXZWIgUmVwbGF5OiBtb3ZlIGF3YXkgZnJvbSB1c2luZyB0aHJlYWQtbG9jYWwgUmVwbGF5SW5w
dXRUeXBlcworICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXR0ZXJuIGRvZXNuJ3Qg
d29yayB3aGVuIHdlIHdhbnQgdG8gZGVmaW5lIHNvbWUgaW5wdXRzIGluIFdlYktpdDIsCisgICAg
ICAgIHNpbmNlIHRoZSBSZXBsYXlJbnB1dFR5cGVzIGNsYXNzIGlzIGdlbmVyYXRlZCBmcm9tIFdl
YkNvcmUgaW5wdXRzIG9ubHkuCisKKyAgICAgICAgUmVwbGFjZSB0YWctY2hlY2tpbmcgdXNlcyBv
ZiBSZXBsYXlJbnB1dFR5cGVzIHdpdGggSW5wdXRUcmFpdHM8VD46OnR5cGUoKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSk6CisgICAgICAgICogcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0
YTo6aW5wdXRUeXBlcyk6IERlbGV0ZWQuCisgICAgICAgICogcmVwbGF5L0FsbFJlcGxheUlucHV0
cy5oOgorICAgICAgICAqIHJlcGxheS9FdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRMb29wSW5wdXREaXNwYXRjaGVyOjpkaXNwYXRjaElucHV0KToK
KyAgICAgICAgKiByZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb2l6ZWRET01SZXN1bHRCYXNlOjp0eXBlKToKKyAgICAgICAgKEpTQzo6SW5wdXRUcmFp
dHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6dHlwZSk6CisgICAgICAgICogcmVwbGF5L1JlcGxh
eUlucHV0VHlwZXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlcGxheS9SZXBsYXlJbnB1dFR5
cGVzLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNw
cDoKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFz
ZT46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJt
aW5pc3RpY0lucHV0QmFzZT46OmRlY29kZVZhbHVlKToKKwogMjAxNC0wNy0xNiAgQnJpYW4gSi4g
QnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgW1dJUF0gV2ViIFJlcGxh
eTogRE9NIFRpbWVycyBzaG91bGQgYmUgY3JlYXRlZCBhbmQgZmlyZWQgZGV0ZXJtaW5pc3RpY2Fs
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKaW5kZXggMjAzOWQzMjkyOGQ4Mzhk
NzdhODc1NjQ1NWIxYjYzZmE2MWI5YTk0NS4uMjU2ZTFhNjRiMjQxMjA1ZDZlMGZjMjMwODUyZTVh
NGY0YzJkNDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKQEAgLTcyLDE4
ICs3MiwxNSBAQCBHTE9CQUxfQ09ORklHID0gewogCiAgICAgImltcGxJbmNsdWRlcyI6IFsKICAg
ICAgICAgKFsiV2ViS2l0IiwgIldlYkNvcmUiXSwKLSAgICAgICAgICAgICgiV2ViQ29yZSIsICJy
ZXBsYXkvUmVwbGF5SW5wdXRUeXBlcy5oIikKLSAgICAgICAgKSwKLSAgICAgICAgKFsiV2ViS2l0
IiwgIldlYkNvcmUiXSwKICAgICAgICAgICAgICgiV2ViQ29yZSIsICJyZXBsYXkvU2VyaWFsaXph
dGlvbk1ldGhvZHMuaCIpCiAgICAgICAgICksCiAgICAgICAgIChbIldlYktpdCIsICJXZWJDb3Jl
IiwgIkphdmFTY3JpcHRDb3JlIl0sCiAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImlu
c3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaCIpCiAgICAgICAgICksCi0gICAgICAgIChbIkphdmFT
Y3JpcHRDb3JlIl0sCisgICAgICAgIChbIldlYktpdCIsICJXZWJDb3JlIiwgIkphdmFTY3JpcHRD
b3JlIl0sCiAgICAgICAgICAgICAoIldURiIsICJ3dGYvTmV2ZXJEZXN0cm95ZWQuaCIpCiAgICAg
ICAgICksCi0gICAgICAgIChbIkphdmFTY3JpcHRDb3JlIl0sCisgICAgICAgIChbIldlYktpdCIs
ICJXZWJDb3JlIiwgIkphdmFTY3JpcHRDb3JlIl0sCiAgICAgICAgICAgICAoIldURiIsICJ3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaCIpCiAgICAgICAgICksCiAKQEAgLTExMSwyMyArMTA4LDE5IEBA
IEZSQU1FV09SS19DT05GSUdfTUFQID0gewogICAgICAgICAicHJlZml4IjogIkpTIiwKICAgICAg
ICAgIm5hbWVzcGFjZSI6ICJKU0MiLAogICAgICAgICAiZXhwb3J0TWFjcm8iOiAiSlNfRVhQT1JU
X1BSSVZBVEUiLAotICAgICAgICAiaW5wdXRUeXBlVGVtcGxhdGUiOiBUZW1wbGF0ZXMuSW5wdXRU
eXBlRnJvbVN0YXRpY0xvY2FsLAogICAgIH0sCiAgICAgIldlYkNvcmUiOiB7CiAgICAgICAgICJw
cmVmaXgiOiAiV2ViIiwKICAgICAgICAgIm5hbWVzcGFjZSI6ICJXZWJDb3JlIiwKLSAgICAgICAg
ImlucHV0VHlwZVRlbXBsYXRlIjogVGVtcGxhdGVzLklucHV0VHlwZUZyb21UaHJlYWRMb2NhbCwK
ICAgICB9LAogICAgICJXZWJLaXQiOiB7CiAgICAgICAgICJwcmVmaXgiOiAiV0siLAogICAgICAg
ICAibmFtZXNwYWNlIjogIldlYktpdCIsCi0gICAgICAgICJpbnB1dFR5cGVUZW1wbGF0ZSI6IFRl
bXBsYXRlcy5JbnB1dFR5cGVGcm9tVGhyZWFkTG9jYWwsCiAgICAgfSwKICAgICAjIFVzZWQgZm9y
IGJpbmRpbmdzIHRlc3RzLgogICAgICJUZXN0IjogewogICAgICAgICAicHJlZml4IjogIlRlc3Qi
LAogICAgICAgICAibmFtZXNwYWNlIjogIlRlc3QiLAotICAgICAgICAiaW5wdXRUeXBlVGVtcGxh
dGUiOiBUZW1wbGF0ZXMuSW5wdXRUeXBlRnJvbVN0YXRpY0xvY2FsLAogICAgIH0KIH0KIApAQCAt
NjM5LDEwICs2MzIsMTggQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICByZXR1cm4gVGVtcGxh
dGUoVGVtcGxhdGVzLkNvcHlyaWdodEJsb2NrKS5zdWJzdGl0dXRlKE5vbmUsIGlucHV0RmlsZW5h
bWU9b3MucGF0aC5iYXNlbmFtZShzZWxmLl9pbnB1dF9maWxlcGF0aCkpCiAKICAgICBkZWYgZ2Vu
ZXJhdGVfaW5jbHVkZV9zdHJpbmcoc2VsZiwgZnJhbWV3b3JrX25hbWUsIGhlYWRlcl9wYXRoKToK
KyAgICAgICAgZGVmIGNob21wX2xlYWRpbmdfcGF0aF9jb21wb25lbnQocGF0aCk6CisgICAgICAg
ICAgICBjb21wb25lbnRzID0gW3BhdGhdCisgICAgICAgICAgICB3aGlsZSBjb21wb25lbnRzWzBd
IGlzIG5vdCBvcy5wYXRoLmJhc2VuYW1lKGNvbXBvbmVudHNbMF0pOgorICAgICAgICAgICAgICAg
IChoZWFkLCB0YWlsKSA9IG9zLnBhdGguc3BsaXQoY29tcG9uZW50c1swXSkKKyAgICAgICAgICAg
ICAgICBjb21wb25lbnRzWzA6MV0gPSBbaGVhZCwgdGFpbF0KKworICAgICAgICAgICAgcmV0dXJu
IG9zLnBhdGguam9pbigqY29tcG9uZW50c1sxOl0pCisKICAgICAgICAgaWYgc2VsZi50YXJnZXRf
ZnJhbWV3b3JrLm5hbWUgPT0gZnJhbWV3b3JrX25hbWU6CiAgICAgICAgICAgICByZXR1cm4gIiNp
bmNsdWRlIFwiJXNcIiIgJSBvcy5wYXRoLmJhc2VuYW1lKGhlYWRlcl9wYXRoKQogICAgICAgICBl
bGlmIHNlbGYudGFyZ2V0X2ZyYW1ld29yayBpcyBGcmFtZXdvcmtzLldlYktpdDoKLSAgICAgICAg
ICAgIHJldHVybiAiI2luY2x1ZGUgPCVzLyVzPiIgJSAoZnJhbWV3b3JrX25hbWUsIG9zLnBhdGgu
YmFzZW5hbWUoaGVhZGVyX3BhdGgpKQorICAgICAgICAgICAgcmV0dXJuICIjaW5jbHVkZSA8JXMv
JXM+IiAlIChmcmFtZXdvcmtfbmFtZSwgY2hvbXBfbGVhZGluZ19wYXRoX2NvbXBvbmVudChoZWFk
ZXJfcGF0aCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gIiNpbmNsdWRlIDwl
cz4iICUgaGVhZGVyX3BhdGgKIApAQCAtODg3LDcgKzg4OCw3IEBAIGNsYXNzIEdlbmVyYXRvcjoK
ICAgICBkZWYgZ2VuZXJhdGVfaW5wdXRfdHJhaXRfaW1wbGVtZW50YXRpb24oc2VsZiwgX2lucHV0
KToKICAgICAgICAgdGVtcGxhdGVfYXJndW1lbnRzID0gewogICAgICAgICAgICAgJ2lucHV0c05h
bWVzcGFjZSc6IHNlbGYudGFyZ2V0X2ZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAg
ICAgICAgICAgICdpbnB1dFR5cGVJbXBsZW1lbnRhdGlvbic6IFRlbXBsYXRlKHNlbGYuc2V0dGlu
ZygnaW5wdXRUeXBlVGVtcGxhdGUnKSkuc3Vic3RpdHV0ZShOb25lLCBpbnB1dE5hbWU9X2lucHV0
Lm5hbWUpLAorICAgICAgICAgICAgJ2lucHV0TmFtZVN0cmluZ0xpdGVyYWwnOiAnIiVzIicgJSBf
aW5wdXQubmFtZSwKICAgICAgICAgICAgICdxdWFsaWZpZWRJbnB1dE5hbWUnOiBzZWxmLnF1YWxp
ZmllZF9pbnB1dF9uYW1lKF9pbnB1dCksCiAgICAgICAgICAgICAnY29uc3RydWN0b3JBcmd1bWVu
dHMnOiBzZWxmLmdlbmVyYXRlX2NvbnN0cnVjdG9yX2FyZ3VtZW50c19saXN0KF9pbnB1dCksCiAg
ICAgICAgICAgICAnY29uc3RydWN0b3JGb3JtYWxzTGlzdCc6IHNlbGYuZ2VuZXJhdGVfY29uc3Ry
dWN0b3JfZm9ybWFsc19saXN0KF9pbnB1dCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5w
eSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVw
bGF5SW5wdXRzVGVtcGxhdGVzLnB5CmluZGV4IDEwOTVkZmQ4MWZhMTAyZjkzYzI3ZmJmZDNmMGI4
MWMwYjViODkxNWEuLmY3MjUxM2FiMGQ4ZTY5Y2EwMzE4NmFiMDEwYTQyMjY3NTE4ODA3MWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CkBAIC0x
NTQsNyArMTU0LDggQEAgJHtlbnVtVHJhaXRJbXBsZW1lbnRhdGlvbnN9CiAgICAgSW5wdXRUcmFp
dHNJbXBsZW1lbnRhdGlvbiA9ICgKICAgICAiIiJjb25zdCBBdG9taWNTdHJpbmcmIElucHV0VHJh
aXRzPCR7cXVhbGlmaWVkSW5wdXROYW1lfT46OnR5cGUoKQogewotJGlucHV0VHlwZUltcGxlbWVu
dGF0aW9uCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHlw
ZSgke2lucHV0TmFtZVN0cmluZ0xpdGVyYWx9LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICByZXR1cm4gdHlwZTsKIH0KIAogdm9pZCBJbnB1dFRyYWl0czwke3F1YWxp
ZmllZElucHV0TmFtZX0+OjplbmNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIGNvbnN0
ICR7cXVhbGlmaWVkSW5wdXROYW1lfSYgaW5wdXQpCkBAIC0yMjYsMTIgKzIyNyw2IEBAICR7ZGVj
b2RlQ2FzZXN9CiAgICAgIiIiICAgICAgICBpZiAoZW51bVN0cmluZyA9PSAiJHtlbnVtU3RyaW5n
VmFsdWV9IikKICAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PCR7cXVhbGlmaWVk
RW51bU5hbWV9PihlbnVtVmFsdWUgfCAke3F1YWxpZmllZEVudW1WYWx1ZX0pOyIiIikKIAotICAg
IElucHV0VHlwZUZyb21TdGF0aWNMb2NhbCA9ICgKLSAgICAiIiIgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHlwZSgiJHtpbnB1dE5hbWV9IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0dXJuIHR5cGU7IiIiKQotCi0gICAg
SW5wdXRUeXBlRnJvbVRocmVhZExvY2FsID0gIiAgICByZXR1cm4gV2ViQ29yZTo6aW5wdXRUeXBl
cygpLiR7aW5wdXROYW1lfTsiCi0KICAgICBJbnB1dENsYXNzSW1wbGVtZW50YXRpb24gPSAoCiAg
ICAgIiIiJHtpbnB1dE5hbWV9Ojoke2lucHV0TmFtZX0oJHtjb25zdHJ1Y3RvckZvcm1hbHNMaXN0
fSkKICR7aW5pdGlhbGl6ZXJMaXN0fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxNTE3ZGYzNDAy
NTE3NzY4N2RmZmY4NzMyMzJjZGUxYzY3MTY4ZTkzLi5jMzI3NDNhYzMwZWQ5ZTVhZThmYzUxNzAz
NTU1NmI1NDk2MDQwNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzEyOCw3ICszMTI4LDYg
QEAgaWYgKEVOQUJMRV9XRUJfUkVQTEFZKQogICAgICAgICByZXBsYXkvUmVwbGF5aW5nSW5wdXRD
dXJzb3IuY3BwCiAgICAgICAgIHJlcGxheS9SZXBsYXlJbnB1dENyZWF0aW9uTWV0aG9kcy5jcHAK
ICAgICAgICAgcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcAotICAgICAgICBy
ZXBsYXkvUmVwbGF5SW5wdXRUeXBlcy5jcHAKICAgICAgICAgcmVwbGF5L1JlcGxheVNlc3Npb24u
Y3BwCiAgICAgICAgIHJlcGxheS9SZXBsYXlTZXNzaW9uU2VnbWVudC5jcHAKICAgICAgICAgcmVw
bGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZmIwYjlkZDFkYTQ4YTE0MDFhMGU3
YmQzZmUyYzQxZGUxNDJkNmFmLi43NTEwOTkzMDRkZjBiOWQ0ZjBmNGZjNmNjZjdiOGE4ZGY4M2Nm
MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zNTkzLDggKzM1OTMsNiBAQAogCQk5OENFNDMyNjEyOUUwMEJEMDA1ODIxREMg
LyogTGlua0xvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OENFNDMyNTEyOUUwMEJEMDA1ODIxREMgLyogTGlua0xvYWRlci5jcHAgKi87IH07
CiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1ODIx
REMgLyogTGlua0xvYWRlci5oICovOyB9OwogCQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyog
Tm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk5MEExQTA0MThB
REE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MEExOUY0MThBREE0ODQwMDE4M0ZEMSAvKiBS
ZXBsYXlJbnB1dFR5cGVzLmNwcCAqLzsgfTsKLQkJOTkwQTFBMDUxOEFEQTQ4NDAwMTgzRkQxIC8q
IFJlcGxheUlucHV0VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5MEExOUY1MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmgg
Ki87IH07CiAJCTk5MjAzOTgyMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODAx
OEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAgKi87IH07CiAJCTk5MjAzOTgz
MThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFGOSAvKiBV
c2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5OTYyMzFGMzE4RDE4QUMzMDBDMDNGREEgLyogSW5zcGVjdG9yV2ViQmFja2Vu
ZENvbW1hbmRzLmpzIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTk2MjMxRjExOEQxODlCRDAwQzAzRkRBIC8qIEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5k
cy5qcyAqLzsgfTsKQEAgLTEwNzU2LDggKzEwNzU0LDYgQEAKIAkJOThDRTQzMjUxMjlFMDBCRDAw
NTgyMURDIC8qIExpbmtMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTGlua0xvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4Q0U0
MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExpbmtMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdEltcGxlbWVudGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk5MEExOUY0MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxheUlucHV0VHlw
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTBBMTlGNTE4QURBNDg0MDAx
ODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZXBsYXlJbnB1dFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
MjAzOTgwMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1
dEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VySW5wdXRCcmlk
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2MjMxRjExOEQxODlCRDAwQzAz
RkRBIC8qIEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5kcy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgcGF0aCA9IEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5kcy5qczsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzY1LDggKzE4MzYxLDYgQEAKIAkJCQk5OUND
MEIzRjE4QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5Q29udHJvbGxlci5oICovLAogCQkJCTk5Q0Mw
QjQyMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlJbnB1dENyZWF0aW9uTWV0aG9kcy5jcHAgKi8s
CiAJCQkJOTlDQzBCNDMxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheUlucHV0RGlzcGF0Y2hNZXRo
b2RzLmNwcCAqLywKLQkJCQk5OTBBMTlGNDE4QURBNDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRU
eXBlcy5jcHAgKi8sCi0JCQkJOTkwQTE5RjUxOEFEQTQ4NDAwMTgzRkQxIC8qIFJlcGxheUlucHV0
VHlwZXMuaCAqLywKIAkJCQlDNDk0NzRBQjE5QTNGN0EyMDA5QjNERTggLyogUmVwbGF5Q2xpZW50
LmggKi8sCiAJCQkJOTlDQzBCNDQxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxheVNlc3Npb24uY3Bw
ICovLAogCQkJCTk5Q0MwQjQ1MThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlTZXNzaW9uLmggKi8s
CkBAIC0yNTcyOCw3ICsyNTcyMiw2IEBACiAJCQkJOTMzMDlFMEEwOTlFNjQ5MjAwNTZFNTgxIC8q
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI1NDE4
QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTlDQzBCNTYxOEJFOTg0QTAwNkNFQkNDIC8qIFJlcGxheWluZ0lucHV0Q3Vyc29yLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5OTBBMUEwNTE4QURBNDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRUeXBl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlDQzBCNUExOEJFOTg0QTAwNkNFQkNDIC8qIFJlcGxh
eVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk5Q0MwQjVDMThCRTk4NEEwMDZDRUJDQyAv
KiBSZXBsYXlTZXNzaW9uU2VnbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQzYxM0Y5
RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5MTgzLDcgKzI5MTc2LDYgQEAKIAkJCQk5OUNDMEI1NTE4QkU5ODQ5MDA2Q0VC
Q0MgLyogUmVwbGF5aW5nSW5wdXRDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDQzBC
NTcxOEJFOTg0QTAwNkNFQkNDIC8qIFJlcGxheUlucHV0Q3JlYXRpb25NZXRob2RzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk5Q0MwQjU4MThCRTk4NEEwMDZDRUJDQyAvKiBSZXBsYXlJbnB1dERp
c3BhdGNoTWV0aG9kcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5OTBBMUEwNDE4QURBNDg0MDAx
ODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1
OTE4QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5OUNDMEI1QjE4QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5U2Vzc2lvblNlZ21lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQ0YxMjUxRjEyRDAwM0VGMjY5IC8qIFJlc2V0SW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmNwcAppbmRleCBmZDNkMWI3OThlNDg3MDRlZTc1NDNlOTdkMjQzM2Y5YmVhZmQ5
MGRmLi5iYzU3NzMyMmRhODE0YWIwMmY4NzNjNTQ3YTA1YzEyOTEyMWZhM2RmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApAQCAtNDEsMTAgKzQxLDYg
QEAKICNpbmNsdWRlICJUZXh0Q29kZUNNYWMuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9S
RVBMQVkpCi0jaW5jbHVkZSAiUmVwbGF5SW5wdXRUeXBlcy5oIgotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogVGhyZWFkU3BlY2lmaWM8VGhyZWFkR2xvYmFsRGF0YT4qIFRocmVhZEds
b2JhbERhdGE6OnN0YXRpY0RhdGE7CkBAIC01Niw5ICs1Miw2IEBAIFRocmVhZEdsb2JhbERhdGE6
OlRocmVhZEdsb2JhbERhdGEoKQogICAgIDogbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzKGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKSkKICAgICAs
IG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZlbnROYW1lcykpCiAgICAgLCBtX3RocmVhZFRp
bWVycyhhZG9wdFB0cihuZXcgVGhyZWFkVGltZXJzKSkKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkK
LSAgICAsIG1faW5wdXRUeXBlcyhzdGQ6Om1ha2VfdW5pcXVlPFJlcGxheUlucHV0VHlwZXM+KCkp
Ci0jZW5kaWYKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzTWFpblRocmVhZChpc01haW5UaHJl
YWQoKSkKICNlbmRpZgpAQCAtODcsMTAgKzgwLDYgQEAgdm9pZCBUaHJlYWRHbG9iYWxEYXRhOjpk
ZXN0cm95KCkKIAogICAgIG1fY2FjaGVkQ29udmVydGVySUNVLmNsZWFyKCk7CiAKLSNpZiBFTkFC
TEUoV0VCX1JFUExBWSkKLSAgICBtX2lucHV0VHlwZXMgPSBudWxscHRyOwotI2VuZGlmCi0KICAg
ICBtX2V2ZW50TmFtZXMuY2xlYXIoKTsKICAgICBtX3RocmVhZFRpbWVycy5jbGVhcigpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCmluZGV4IDhmMGIxNDFl
NTk3ZDYwYzNjNzUxOTE3NTY2OWJmZDU0NTYyODY1OWIuLmRhOWM1OWJhMmYyYmEzMmJkYWZjNDRj
ZmJmN2Q1MTc2MTRiNjdjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmgKQEAgLTQwLDcgKzQwLDYgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50TmFtZXM7Ci0gICAgY2xhc3MgUmVw
bGF5SW5wdXRUeXBlczsKICAgICBjbGFzcyBUaHJlYWRUaW1lcnM7CiAKICAgICBzdHJ1Y3QgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsKQEAgLTU3LDkgKzU2LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
JiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyByZXR1cm4gKm1fY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVudE5hbWVzJiBldmVudE5hbWVz
KCkgeyByZXR1cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBUaHJlYWRUaW1lcnMmIHRocmVh
ZFRpbWVycygpIHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQotI2lmIEVOQUJMRShXRUJfUkVQ
TEFZKQotICAgICAgICBSZXBsYXlJbnB1dFR5cGVzJiBpbnB1dFR5cGVzKCkgeyByZXR1cm4gKm1f
aW5wdXRUeXBlczsgfQotI2VuZGlmCiAKICAgICAgICAgSUNVQ29udmVydGVyV3JhcHBlciYgY2Fj
aGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1fY2FjaGVkQ29udmVydGVySUNVOyB9CiAKQEAg
LTc2LDEwICs3Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgT3duUHRyPEV2ZW50
TmFtZXM+IG1fZXZlbnROYW1lczsKICAgICAgICAgT3duUHRyPFRocmVhZFRpbWVycz4gbV90aHJl
YWRUaW1lcnM7CiAKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlcGxheUlucHV0VHlwZXM+IG1faW5wdXRUeXBlczsKLSNlbmRpZgotCiAjaWZuZGVmIE5E
RUJVRwogICAgICAgICBib29sIG1faXNNYWluVGhyZWFkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmgKaW5kZXggMjE1MWMyZTM1MTVmN2RjZDE3MzJiMmQ0MDM0
MjlkNGQ4ODNjNDAyMy4uNjY5YmMyNWY5YTEwYWNlYTY4ZGU5NjljZWIyODM4ZWY1MWZmNWJjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0FsbFJlcGxheUlucHV0cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9BbGxSZXBsYXlJbnB1dHMuaApAQCAtMjksOCArMjksNiBA
QAogLy8gTm90ZSB0aGF0IHRoZXJlIGlzIG5vdCBhbiBleGFjdCBjb3JyZXNwb25kZW5jZSBiZXR3
ZWVuIHRoZSB0d28sIHNpbmNlCiAvLyBTb21lIGlucHV0IHR5cGVzIHJlc2lkZSBpbiB0aGUgc2Ft
ZSBmaWxlLgogCi0vLyBNYWtlIHN1cmUgdGhhdCB0aGlzIHN0YXlzIGluIHN5bmMgd2l0aCBSZXBs
YXlJbnB1dFR5cGVzLmggZm9yIGN1c3RvbSBpbnB1dHMuCi0KICNpZm5kZWYgQWxsUmVwbGF5SW5w
dXRzX2gKICNkZWZpbmUgQWxsUmVwbGF5SW5wdXRzX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCAyODk0MmU0OWUzNjAy
NzBkYTRjMjkxMmFkMDQ2NmY2ZTY1MzFlZGEyLi4zOTkzZWQ3Y2Y0YTFhODI1ZWE1ZGFiY2Q3YjQy
ZTE5YmNkZDZjMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29w
SW5wdXREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29w
SW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzEsMTAgKzMxLDEwIEBACiAjaWYgRU5BQkxFKFdFQl9S
RVBMQVkpCiAKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVwbGF5SW5wdXRUeXBlcy5o
IgogI2luY2x1ZGUgIlJlcGxheUNsaWVudC5oIgogI2luY2x1ZGUgIlJlcGxheUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJSZXBsYXlpbmdJbnB1dEN1cnNvci5oIgorI2luY2x1ZGUgIldlYlJlcGxh
eUlucHV0cy5oIgogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogI2lmICFMT0df
RElTQUJMRUQKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hJbnB1dCgpCiAKICAgICAvLyBOb3RpZnkgY2xpZW50cyB0aGF0IHRoZSBldmVu
dCB3YXMgZGlzcGF0Y2hlZC4KICAgICBtX2NsaWVudC0+ZGlkRGlzcGF0Y2hJbnB1dCgqZGlzcGF0
Y2hlZElucHV0KTsKLSAgICBpZiAoZGlzcGF0Y2hlZElucHV0LT50eXBlKCkgPT0gaW5wdXRUeXBl
cygpLkVuZFNlZ21lbnRTZW50aW5lbCkgeworICAgIGlmIChkaXNwYXRjaGVkSW5wdXQtPnR5cGUo
KSA9PSBJbnB1dFRyYWl0czxFbmRTZWdtZW50U2VudGluZWw+Ojp0eXBlKCkpIHsKICAgICAgICAg
bV9ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgIG1fZGlzcGF0Y2hpbmcgPSBmYWxzZTsKICAgICAg
ICAgbV9jbGllbnQtPmRpZERpc3BhdGNoRmluYWxJbnB1dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9NZW1vaXplZERPTVJlc3VsdC5jcHAKaW5kZXggNWI2MzA5MjI4MGI4ZGIwNTZjMWJiMzA3
YWEwYjJiMDI3N2VlMTdjNS4uYTc2OGI4MGZkZmE1ZmYxMWU4YTgyNzg1MDc0OWYzNWJhOGRjNmIx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuY3BwCkBAIC0y
OSwxNSArMjksMTUgQEAKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogCi0jaW5jbHVkZSAiUmVw
bGF5SW5wdXRUeXBlcy5oIgogI2luY2x1ZGUgIlNlcmlhbGl6YXRpb25NZXRob2RzLmgiCiAjaW5j
bHVkZSAiV2ViUmVwbGF5SW5wdXRzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZW1vaXplZERP
TVJlc3VsdEJhc2U6OnR5cGUoKSBjb25zdAogewotICAgIHJldHVybiBpbnB1dFR5cGVzKCkuTWVt
b2l6ZWRET01SZXN1bHQ7CisgICAgcmV0dXJuIElucHV0VHJhaXRzPE1lbW9pemVkRE9NUmVzdWx0
QmFzZT46OnR5cGUoKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPE1lbW9pemVkRE9NUmVzdWx0QmFz
ZT4gTWVtb2l6ZWRET01SZXN1bHRCYXNlOjpjcmVhdGVGcm9tRW5jb2RlZFJlc3VsdChjb25zdCBT
dHJpbmcmIGF0dHJpYnV0ZSwgRW5jb2RlZENUeXBlIGN0eXBlLCBFbmNvZGVkVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGUpCkBAIC03MSw3ICs3MSw4IEBAIHVz
aW5nIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0eXBlKCkKIHsKLSAgICByZXR1
cm4gV2ViQ29yZTo6aW5wdXRUeXBlcygpLk1lbW9pemVkRE9NUmVzdWx0OworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHR5cGUoIk1lbW9pemVkRE9NUmVzdWx0
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIHR5cGU7
CiB9CiAKIHZvaWQgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZW5jb2RlKEVu
Y29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBjb25zdCBNZW1vaXplZERPTVJlc3VsdEJhc2UmIGlu
cHV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0VHlwZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0VHlwZXMuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTY4MTllNzBlZmVkMmRlYzZjMzBkYTE3YjI2Zjc3MDY2
MWU0ZGMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dFR5cGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBX
YXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcm52ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUyAiQVMKLSAqIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAotICogVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBCi0gKiBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlcGxheUlucHV0VHlwZXMuaCIK
LQotI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNkZWZp
bmUgSU5JVElBTElaRV9JTlBVVF9UWVBFKG5hbWUpIFwKLSAgICAsIG5hbWUoI25hbWUsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCi0KLVJlcGxheUlucHV0VHlwZXM6OlJlcGxh
eUlucHV0VHlwZXMoKQotICAgIDogZHVtbXkoMCkKLUpTX1JFUExBWV9JTlBVVF9OQU1FU19GT1Jf
RUFDSChJTklUSUFMSVpFX0lOUFVUX1RZUEUpCi1XRUJfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9F
QUNIKElOSVRJQUxJWkVfSU5QVVRfVFlQRSkKLUlOSVRJQUxJWkVfSU5QVVRfVFlQRShNZW1vaXpl
ZERPTVJlc3VsdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZHVtbXkpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvUmVwbGF5SW5wdXRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNDEyNmYyZmU3M2I3MDNiYzQ5YjlhMjA1OTQ1YTcwOTFjNjY0MzdjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9S
ZXBsYXlJbnB1dFR5cGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJudmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTCi0gKiBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQKLSAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQQotICogUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBIT0xERVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVwbGF5SW5w
dXRUeXBlc19oCi0jZGVmaW5lIFJlcGxheUlucHV0VHlwZXNfaAotCi0jaWYgRU5BQkxFKFdFQl9S
RVBMQVkpCi0KLSNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCi0jaW5jbHVkZSAiV2ViUmVw
bGF5SW5wdXRzLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXBsYXlJbnB1dHMuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBSZXBsYXlJbnB1dFR5cGVzIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShS
ZXBsYXlJbnB1dFR5cGVzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgaW50IGR1bW15
OyAvLyBOZWVkZWQgdG8gbWFrZSBpbml0aWFsaXphdGlvbiBtYWNybyB3b3JrLgotcHVibGljOgot
ICAgIFJlcGxheUlucHV0VHlwZXMoKTsKLQotI2RlZmluZSBERUNMQVJFX1JFUExBWV9JTlBVVF9U
WVBFUyhuYW1lKSBBdG9taWNTdHJpbmcgbmFtZTsKLSAgICBKU19SRVBMQVlfSU5QVVRfTkFNRVNf
Rk9SX0VBQ0goREVDTEFSRV9SRVBMQVlfSU5QVVRfVFlQRVMpCi0gICAgV0VCX1JFUExBWV9JTlBV
VF9OQU1FU19GT1JfRUFDSChERUNMQVJFX1JFUExBWV9JTlBVVF9UWVBFUykKLSAgICBERUNMQVJF
X1JFUExBWV9JTlBVVF9UWVBFUyhNZW1vaXplZERPTVJlc3VsdCk7Ci0jdW5kZWYgREVDTEFSRV9S
RVBMQVlfSU5QVVRfVFlQRVMKLX07Ci0KLWlubGluZSBSZXBsYXlJbnB1dFR5cGVzJiBpbnB1dFR5
cGVzKCkKLXsKLSAgICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmlucHV0VHlwZXMoKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkp
Ci0KLSNlbmRpZiAvLyBSZXBsYXlJbnB1dFR5cGVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCmluZGV4IDVmNTliMzk5MDA1ZTBiZmU2ODYxNjAz
MGJjOGE4MjE4MTYzYmQxZTcuLjVjOGJlMDFhNDczNGM2ZGYxOGQyN2E2MjY3NTY3Yjk3NDFhOWFk
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9k
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNw
cApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNp
bmNsdWRlICJSZXBsYXlJbnB1dFR5cGVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgog
I2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgpAQCAtODIsNyArODEsNiBAQCB1c2luZyBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU7CiB1c2luZyBXZWJDb3JlOjpTaGFyZWRCdWZmZXI7CiB1c2luZyBXZWJDb3JlOjpTdWJzdGl0
dXRlRGF0YTsKIHVzaW5nIFdlYkNvcmU6OlVSTDsKLXVzaW5nIFdlYkNvcmU6OmlucHV0VHlwZXM7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKIHVzaW5nIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZDsK
QEAgLTM0NSw3ICszNDMsNyBAQCBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJt
aW5pc3RpY0lucHV0QmFzZT46OmVuY29kZVZhbHVlKGNvbnN0IE5vbmRldAogICAgIEVOQ09ERV9U
WVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB0eXBlLCB0eXBlLnN0cmluZygpKTsK
IAogI2RlZmluZSBFTkNPREVfSUZfVFlQRV9UQUdfTUFUQ0hFUyhuYW1lKSBcCi0gICAgaWYgKHR5
cGUgPT0gaW5wdXRUeXBlcygpLm5hbWUpIHsgXAorICAgIGlmICh0eXBlID09IElucHV0VHJhaXRz
PG5hbWU+Ojp0eXBlKCkpIHsgXAogICAgICAgICBJbnB1dFRyYWl0czxuYW1lPjo6ZW5jb2RlKGVu
Y29kZWRWYWx1ZSwgc3RhdGljX2Nhc3Q8Y29uc3QgbmFtZSY+KGlucHV0KSk7IFwKICAgICAgICAg
cmV0dXJuIGVuY29kZWRWYWx1ZTsgXAogICAgIH0gXApAQCAtMzU1LDcgKzM1Myw3IEBAIEVuY29k
ZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2Rl
VmFsdWUoY29uc3QgTm9uZGV0CiAjdW5kZWYgRU5DT0RFX0lGX1RZUEVfVEFHX01BVENIRVMKIAog
ICAgIC8vIFRoZSBtYWNybyB3b24ndCB3b3JrIGhlcmUgYmVjYXVzZSBvZiB0aGUgY2xhc3MgdGVt
cGxhdGUgYXJndW1lbnQuCi0gICAgaWYgKHR5cGUgPT0gaW5wdXRUeXBlcygpLk1lbW9pemVkRE9N
UmVzdWx0KSB7CisgICAgaWYgKHR5cGUgPT0gSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRC
YXNlPjo6dHlwZSgpKSB7CiAgICAgICAgIElucHV0VHJhaXRzPE1lbW9pemVkRE9NUmVzdWx0QmFz
ZT46OmVuY29kZShlbmNvZGVkVmFsdWUsIHN0YXRpY19jYXN0PGNvbnN0IE1lbW9pemVkRE9NUmVz
dWx0QmFzZSY+KGlucHV0KSk7CiAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7CiAgICAgfQpA
QCAtNDU3LDcgKzQ1NSw3IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lu
cHV0QmFzZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlCiAgICAgREVDT0RFX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHR5cGUpOwogCiAjZGVmaW5lIERFQ09E
RV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUpIFwKLSAgICBpZiAodHlwZSA9PSBpbnB1dFR5cGVz
KCkubmFtZSkgeyBcCisgICAgaWYgKHR5cGUgPT0gSW5wdXRUcmFpdHM8bmFtZT46OnR5cGUoKSkg
eyBcCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxuYW1lPiBkZWNvZGVkSW5wdXQ7IFwKICAgICAg
ICAgaWYgKCFJbnB1dFRyYWl0czxuYW1lPjo6ZGVjb2RlKGVuY29kZWRWYWx1ZSwgZGVjb2RlZElu
cHV0KSkgXAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyBcCkBAIC00NzAsNyArNDY4LDcgQEAg
Ym9vbCBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZGVjb2RlVmFs
dWUoRW5jb2RlZFZhbHVlJiBlbmNvZGUKICAgICBXRUJfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9F
QUNIKERFQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKQogI3VuZGVmIERFQ09ERV9JRl9UWVBFX1RB
R19NQVRDSEVTCiAKLSAgICBpZiAodHlwZSA9PSBpbnB1dFR5cGVzKCkuTWVtb2l6ZWRET01SZXN1
bHQpIHsKKyAgICBpZiAodHlwZSA9PSBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+
Ojp0eXBlKCkpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lbW9pemVkRE9NUmVzdWx0QmFz
ZT4gZGVjb2RlZElucHV0OwogICAgICAgICBpZiAoIUlucHV0VHJhaXRzPE1lbW9pemVkRE9NUmVz
dWx0QmFzZT46OmRlY29kZShlbmNvZGVkVmFsdWUsIGRlY29kZWRJbnB1dCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238702</attachid>
            <date>2014-09-26 00:24:52 -0700</date>
            <delta_ts>2014-09-30 12:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137086-20140926002440.patch</filename>
            <type>text/plain</type>
            <size>54514</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ODZmODc3YmJlM2I4ZWQxYTAyYTAwOTgxYmFlODU4YWY2MDk5NTA0Li5mMWY0NGVkMjMyMGM3YTBm
YzA2NDMxODdiOTc4MWM3NmQzMjQ5OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxNC0wOS0yNiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogdXNlIHN0YXRpYyBTdHJpbmdzIGluc3RlYWQg
b2YgQXRvbWljU3RyaW5ncyBmb3IgcmVwbGF5IGlucHV0IHR5cGUgdGFncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXR0ZXJuIGRvZXNuJ3Qg
d29yayB3aGVuIHdlIHdhbnQgdG8gZGVmaW5lIHNvbWUgaW5wdXRzIGluIFdlYktpdDIuCisgICAg
ICAgIFRoZSBSZXBsYXlJbnB1dFR5cGVzIGNsYXNzIHdhcyBnZW5lcmF0ZWQgZnJvbSBXZWJDb3Jl
IGlucHV0cyBvbmx5LiBUaGlzCisgICAgICAgIHBhdGNoIG1vdmVzIGFsbCBpbnB1dCB0cmFpdHMg
dG8gdXNlIHN0YXRpYyBsb2NhbCBTdHJpbmdzIGFzIHR5cGUgdGFncy4KKworICAgICAgICAqIHJl
cGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHk6IFJlbW92ZSBjb25maWd1
cmF0aW9uIG9mIGhvdworICAgICAgICB0eXBlIHRhZ3MgYXJlIGdlbmVyYXRlZCwgc2luY2UgYWxs
IGZyYW1ld29yayB0YXJnZXRzIG5vdyBnZW5lcmF0ZSB0aGUgc2FtZSBjb2RlLgorCisgICAgICAg
ICogcmVwbGF5L05vbmRldGVybWluaXN0aWNJbnB1dC5oOgorICAgICAgICAqIHJlcGxheS9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHk6IFNpbXBsaWZ5IGFuZCByZWJhc2UgdGVz
dCByZXN1bHRzLgorICAgICAgICAoR2VuZXJhdG9yLmdlbmVyYXRlX2lucHV0X3RyYWl0X2ltcGxl
bWVudGF0aW9uKToKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5
SW5wdXRzVGVtcGxhdGVzLnB5OiBTaW1wbGlmeSB0ZW1wbGF0ZXMuCisKKyAgICAgICAgKiByZXBs
YXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMt
d2l0aC1ndWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwOgorICAgICAgICAo
SlNDOjpJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1vdXNlQnV0dG9uPjo6dHlwZSk6CisgICAgICAg
ICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1o
ZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAg
ICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGlu
Zy1oZWxwZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHA6CisgICAgICAgIChKU0M6OklucHV0
VHJhaXRzPFRlc3Q6OlNhdmVkTW91c2VCdXR0b24+Ojp0eXBlKToKKyAgICAgICAgKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNv
bi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHA6
CisgICAgICAgIChKU0M6OklucHV0VHJhaXRzPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+Ojp0eXBl
KToKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVt
LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5q
c29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwOgorICAgICAgICAoSlNDOjpJbnB1dFRyYWl0czxUZXN0
OjpGb3JtQ29tYm8+Ojp0eXBlKToKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5oOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWlucHV0LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SW5wdXRUcmFpdHM8VGVzdDo6R2V0Q3VycmVudFRpbWU+Ojp0eXBlKToKKyAgICAgICAgKEpT
Qzo6SW5wdXRUcmFpdHM8VGVzdDo6U2V0UmFuZG9tU2VlZD46OnR5cGUpOgorICAgICAgICAqIHJl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0LXdpdGgtZ3VhcmQuanNv
bi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3ItbWVtYmVycy5qc29uLVRlc3RSZXBsYXlJ
bnB1dHMuY3BwOgorICAgICAgICAoSlNDOjpJbnB1dFRyYWl0czxUZXN0OjpBcnJheU9mVGhpbmdz
Pjo6dHlwZSk6CisgICAgICAgIChKU0M6OklucHV0VHJhaXRzPFRlc3Q6OlNhdmVkSGlzdG9yeT46
OnR5cGUpOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWlucHV0LXdpdGgtdmVjdG9yLW1lbWJlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAg
ICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgt
ZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAgKEpTQzo6SW5wdXRUcmFp
dHM8VGVzdDo6U2NhbGFySW5wdXQxPjo6dHlwZSk6CisgICAgICAgIChKU0M6OklucHV0VHJhaXRz
PFRlc3Q6OlNjYWxhcklucHV0Mj46OnR5cGUpOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rl
c3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13aXRoLWZsYWdzLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5oOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAg
KEpTQzo6SW5wdXRUcmFpdHM8VGVzdDo6U2NhbGFySW5wdXQ+Ojp0eXBlKToKKyAgICAgICAgKEpT
Qzo6SW5wdXRUcmFpdHM8VGVzdDo6TWFwSW5wdXQ+Ojp0eXBlKToKKyAgICAgICAgKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5oOgorCiAyMDE0LTA5LTI1ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bj
cy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgUmVwbGF5OiBDaGVjayBldmVudCBsb29w
IGlucHV0IGV4dGVudHMgZHVyaW5nIHJlcGxheWluZyB0b28KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkM2QyNzRi
ZjU3Yjg4ODc3YzE1YzMxZTMzNDNmMzBhYWM2OTlkMDVjLi45MGY1ODdmOTVlYjVlMDk4MjUzNjBk
OTkzYTA1NDMxNzFhMGQxMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTQtMDkt
MjYgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgorCisgICAgICAgIFdl
YiBSZXBsYXk6IHVzZSBzdGF0aWMgU3RyaW5ncyBpbnN0ZWFkIG9mIEF0b21pY1N0cmluZ3MgZm9y
IHJlcGxheSBpbnB1dCB0eXBlIHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNzA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0dGVybiBkb2Vzbid0IHdvcmsgd2hlbiB3ZSB3YW50IHRv
IGRlZmluZSBzb21lIGlucHV0cyBpbiBXZWJLaXQyLAorICAgICAgICBzaW5jZSB0aGUgUmVwbGF5
SW5wdXRUeXBlcyBjbGFzcyBpcyBnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlIGlucHV0cyBvbmx5Lgor
CisgICAgICAgIFJlcGxhY2UgdGFnLWNoZWNraW5nIHVzZXMgb2YgUmVwbGF5SW5wdXRUeXBlcyB3
aXRoIElucHV0VHJhaXRzPFQ+Ojp0eXBlKCkuCisgICAgICAgIFJlbW92ZSB0aHJlYWQtbG9jYWwg
aW5wdXQgdHlwZXMsIGFuZCBzd2l0Y2ggdG8gdXNpbmcgYSBwbGFpbiBjb25zdCBTdHJpbmcgaW5z
dGVhZAorICAgICAgICBvZiBjb25zdCBBdG9taWNTdHJpbmcuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBubyBiZWhhdmlvciBjaGFuZ2VkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJp
YWxpemVJbnB1dFRvSlNPTkZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAqIHBsYXRmb3Jt
L1RocmVhZEdsb2JhbERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0
YTo6VGhyZWFkR2xvYmFsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9iYWxEYXRh
OjpkZXN0cm95KToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUaHJlYWRHbG9iYWxEYXRhOjppbnB1dFR5cGVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L0V2ZW50
TG9vcElucHV0Lmg6CisgICAgICAgICogcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNo
SW5wdXQpOgorICAgICAgICAqIHJlcGxheS9NZW1vaXplZERPTVJlc3VsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZW1vaXplZERPTVJlc3VsdEJhc2U6OnR5cGUpOgorICAgICAgICAoSlNDOjpJ
bnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0eXBlKToKKyAgICAgICAgKiByZXBs
YXkvTWVtb2l6ZWRET01SZXN1bHQuaDoKKyAgICAgICAgKiByZXBsYXkvUmVwbGF5SW5wdXRUeXBl
cy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcmVwbGF5L1JlcGxheUlucHV0VHlwZXMuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiByZXBsYXkvUmVwbGF5aW5nSW5wdXRDdXJzb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGF5aW5nSW5wdXRDdXJzb3I6OmxvYWRJbnB1dCk6CisgICAgICAgICog
cmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWdt
ZW50ZWRJbnB1dFN0b3JhZ2U6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVudGVkSW5w
dXRTdG9yYWdlOjpzdG9yZSk6CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2Rz
LmNwcDoKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0
QmFzZT46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8Tm9uZGV0
ZXJtaW5pc3RpY0lucHV0QmFzZT46OmRlY29kZVZhbHVlKToKKwogMjAxNC0wOS0yNSAgQnJpYW4g
Si4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogRnVuY3Rpb25DYWxsIHRpbWVsaW5lIHJlY29yZHMgb21pdCBwcm9maWxlIGRhdGEgaWYgdGhl
IGRlYnVnZ2VyIGhhcyBwYXVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L05vbmRldGVybWluaXN0aWNJbnB1dC5oCmluZGV4IGEyNTZjMmI2MjdkOTViNDgwNDQwMmZm
YTI4NjI1YmIzNzdjY2MzY2UuLmQzZmNlY2YyMTU1ODhhNGJmNzQ2M2M4YjU4NzMzMmRmNWJkN2Nh
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvTm9uZGV0ZXJtaW5p
c3RpY0lucHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9Ob25kZXRlcm1p
bmlzdGljSW5wdXQuaApAQCAtNDcsNyArNDcsNyBAQCBlbnVtIGNsYXNzIElucHV0UXVldWUgewog
dGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRUeXBlPgogc3RydWN0IEpTX0VYUE9SVF9QUklWQVRFIElu
cHV0VHJhaXRzIHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpOwotICAgIHN0YXRpYyBB
dG9taWNTdHJpbmcmIHR5cGUoKTsKKyAgICBzdGF0aWMgU3RyaW5nJiB0eXBlKCk7CiAKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkSW5wdXQsIElucHV0VHlwZSYg
ZGVjb2RlZElucHV0KTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNv
ZGVkSW5wdXQsIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+JiBkZWNvZGVkSW5wdXQpOwpAQCAt
NTksMTMgKzU5LDEzIEBAIHB1YmxpYzoKICAgICBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlKCkg
eyB9CiAgICAgdmlydHVhbCB+Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSgpIHsgfQogCi0gICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnB1dFF1ZXVl
IHF1ZXVlKCkgY29uc3QgPSAwOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5wdXRUeXBlPgog
Y2xhc3MgTm9uZGV0ZXJtaW5pc3RpY0lucHV0IDogcHVibGljIE5vbmRldGVybWluaXN0aWNJbnB1
dEJhc2UgewotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgdHlwZSgpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewogICAgICAgICByZXR1cm4gSW5wdXRUcmFpdHM8SW5wdXRUeXBlPjo6dHlwZSgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKaW5kZXggNmZlYjMyM2UyYTlhYjQ5
NDIyZWZkNmIxNGMwMmQ5YzliZTQ5YTY5MC4uZDk5MzVjMmM0ZmFmOTc2ODA4ZGEwZTcwNTQ0ZDE1
MDg5ZjlmY2U4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKQEAgLTcyLDIw
ICs3MiwxNCBAQCBHTE9CQUxfQ09ORklHID0gewogCiAgICAgImltcGxJbmNsdWRlcyI6IFsKICAg
ICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgKCJXZWJDb3JlIiwgInJlcGxheS9SZXBs
YXlJbnB1dFR5cGVzLmgiKQotICAgICAgICApLAotICAgICAgICAoWyJXZWJDb3JlIl0sCiAgICAg
ICAgICAgICAoIldlYkNvcmUiLCAicmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmgiKQogICAg
ICAgICApLAogICAgICAgICAoWyJXZWJDb3JlIiwgIkphdmFTY3JpcHRDb3JlIl0sCiAgICAgICAg
ICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaCIpCiAg
ICAgICAgICksCi0gICAgICAgIChbIkphdmFTY3JpcHRDb3JlIl0sCisgICAgICAgIChbIldlYkNv
cmUiLCAiSmF2YVNjcmlwdENvcmUiXSwKICAgICAgICAgICAgICgiV1RGIiwgInd0Zi9OZXZlckRl
c3Ryb3llZC5oIikKICAgICAgICAgKSwKLSAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiXSwKLSAg
ICAgICAgICAgICgiV1RGIiwgInd0Zi90ZXh0L0F0b21pY1N0cmluZy5oIikKLSAgICAgICAgKSwK
IAogICAgICAgICAjIFRlc3RpbmcgZml4dHVyZXMuCiAgICAgICAgIChbIlRlc3QiXSwKQEAgLTEx
MSwxOCArMTA1LDE1IEBAIEZSQU1FV09SS19DT05GSUdfTUFQID0gewogICAgICAgICAicHJlZml4
IjogIkpTIiwKICAgICAgICAgIm5hbWVzcGFjZSI6ICJKU0MiLAogICAgICAgICAiZXhwb3J0TWFj
cm8iOiAiSlNfRVhQT1JUX1BSSVZBVEUiLAotICAgICAgICAiaW5wdXRUeXBlVGVtcGxhdGUiOiBU
ZW1wbGF0ZXMuSW5wdXRUeXBlRnJvbVN0YXRpY0xvY2FsLAogICAgIH0sCiAgICAgIldlYkNvcmUi
OiB7CiAgICAgICAgICJwcmVmaXgiOiAiV2ViIiwKICAgICAgICAgIm5hbWVzcGFjZSI6ICJXZWJD
b3JlIiwKLSAgICAgICAgImlucHV0VHlwZVRlbXBsYXRlIjogVGVtcGxhdGVzLklucHV0VHlwZUZy
b21UaHJlYWRMb2NhbCwKICAgICB9LAogICAgICMgVXNlZCBmb3IgYmluZGluZ3MgdGVzdHMuCiAg
ICAgIlRlc3QiOiB7CiAgICAgICAgICJwcmVmaXgiOiAiVGVzdCIsCiAgICAgICAgICJuYW1lc3Bh
Y2UiOiAiVGVzdCIsCi0gICAgICAgICJpbnB1dFR5cGVUZW1wbGF0ZSI6IFRlbXBsYXRlcy5JbnB1
dFR5cGVGcm9tU3RhdGljTG9jYWwsCiAgICAgfQogfQogCkBAIC04NzQsNyArODY1LDcgQEAgY2xh
c3MgR2VuZXJhdG9yOgogICAgIGRlZiBnZW5lcmF0ZV9pbnB1dF90cmFpdF9pbXBsZW1lbnRhdGlv
bihzZWxmLCBfaW5wdXQpOgogICAgICAgICB0ZW1wbGF0ZV9hcmd1bWVudHMgPSB7CiAgICAgICAg
ICAgICAnaW5wdXRzTmFtZXNwYWNlJzogc2VsZi50YXJnZXRfZnJhbWV3b3JrLnNldHRpbmcoJ25h
bWVzcGFjZScpLAotICAgICAgICAgICAgJ2lucHV0VHlwZUltcGxlbWVudGF0aW9uJzogVGVtcGxh
dGUoc2VsZi5zZXR0aW5nKCdpbnB1dFR5cGVUZW1wbGF0ZScpKS5zdWJzdGl0dXRlKE5vbmUsIGlu
cHV0TmFtZT1faW5wdXQubmFtZSksCisgICAgICAgICAgICAnaW5wdXROYW1lU3RyaW5nTGl0ZXJh
bCc6ICciJXMiJyAlIF9pbnB1dC5uYW1lLAogICAgICAgICAgICAgJ3F1YWxpZmllZElucHV0TmFt
ZSc6IHNlbGYucXVhbGlmaWVkX2lucHV0X25hbWUoX2lucHV0KSwKICAgICAgICAgICAgICdjb25z
dHJ1Y3RvckFyZ3VtZW50cyc6IHNlbGYuZ2VuZXJhdGVfY29uc3RydWN0b3JfYXJndW1lbnRzX2xp
c3QoX2lucHV0KSwKICAgICAgICAgICAgICdjb25zdHJ1Y3RvckZvcm1hbHNMaXN0Jzogc2VsZi5n
ZW5lcmF0ZV9jb25zdHJ1Y3Rvcl9mb3JtYWxzX2xpc3QoX2lucHV0KSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzVGVtcGxhdGVzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkKaW5kZXggMTA5NWRmZDgxZmExMDJm
OTNjMjdmYmZkM2YwYjgxYzBiNWI4OTE1YS4uM2I5MTJjYjM3OTViZDUyYWZlM2E0ZTA2NGU5MTVi
ZDAyOGQ1NWU2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1w
bGF0ZXMucHkKQEAgLTk4LDcgKzk4LDcgQEAgJHtmb3JFYWNoTWFjcm99CiAgICAgSW5wdXRUcmFp
dHNEZWNsYXJhdGlvbiA9ICgKICAgICAiIiJ0ZW1wbGF0ZTw+ICR7c3RydWN0T3JDbGFzc30gSW5w
dXRUcmFpdHM8JHtxdWFsaWZpZWRJbnB1dE5hbWV9PiB7CiAgICAgc3RhdGljIElucHV0UXVldWUg
cXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjoke3F1ZXVlVHlwZX07IH0KLSAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgdHlw
ZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgY29uc3Qg
JHtxdWFsaWZpZWRJbnB1dE5hbWV9Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5j
b2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPCR7cXVhbGlmaWVkSW5wdXROYW1lfT4mKTsKQEAg
LTE1Miw5ICsxNTIsMTAgQEAgJHtlbnVtVHJhaXRJbXBsZW1lbnRhdGlvbnN9CiAiIiIpCiAKICAg
ICBJbnB1dFRyYWl0c0ltcGxlbWVudGF0aW9uID0gKAotICAgICIiImNvbnN0IEF0b21pY1N0cmlu
ZyYgSW5wdXRUcmFpdHM8JHtxdWFsaWZpZWRJbnB1dE5hbWV9Pjo6dHlwZSgpCisgICAgIiIiY29u
c3QgU3RyaW5nJiBJbnB1dFRyYWl0czwke3F1YWxpZmllZElucHV0TmFtZX0+Ojp0eXBlKCkKIHsK
LSRpbnB1dFR5cGVJbXBsZW1lbnRhdGlvbgorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBTdHJpbmc+IHR5cGUoQVNDSUlMaXRlcmFsKCR7aW5wdXROYW1lU3RyaW5nTGl0ZXJhbH0pKTsK
KyAgICByZXR1cm4gdHlwZTsKIH0KIAogdm9pZCBJbnB1dFRyYWl0czwke3F1YWxpZmllZElucHV0
TmFtZX0+OjplbmNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIGNvbnN0ICR7cXVhbGlm
aWVkSW5wdXROYW1lfSYgaW5wdXQpCkBAIC0yMjYsMTIgKzIyNyw2IEBAICR7ZGVjb2RlQ2FzZXN9
CiAgICAgIiIiICAgICAgICBpZiAoZW51bVN0cmluZyA9PSAiJHtlbnVtU3RyaW5nVmFsdWV9IikK
ICAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PCR7cXVhbGlmaWVkRW51bU5hbWV9
PihlbnVtVmFsdWUgfCAke3F1YWxpZmllZEVudW1WYWx1ZX0pOyIiIikKIAotICAgIElucHV0VHlw
ZUZyb21TdGF0aWNMb2NhbCA9ICgKLSAgICAiIiIgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gdHlwZSgiJHtpbnB1dE5hbWV9IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0dXJuIHR5cGU7IiIiKQotCi0gICAgSW5wdXRUeXBl
RnJvbVRocmVhZExvY2FsID0gIiAgICByZXR1cm4gV2ViQ29yZTo6aW5wdXRUeXBlcygpLiR7aW5w
dXROYW1lfTsiCi0KICAgICBJbnB1dENsYXNzSW1wbGVtZW50YXRpb24gPSAoCiAgICAgIiIiJHtp
bnB1dE5hbWV9Ojoke2lucHV0TmFtZX0oJHtjb25zdHJ1Y3RvckZvcm1hbHNMaXN0fSkKICR7aW5p
dGlhbGl6ZXJMaXN0fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy13aXRo
LWd1YXJkZWQtdmFsdWVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNv
ZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNw
cAppbmRleCA0OGYxM2ZlNTE0MzdjZDUwYjI2NDQzYmUxMjE5MzNhZWUzY2M4NmFhLi5mNjA1NTlh
ZWI4ZTBmMzZiYjBhZjYxN2QwZThiZGVmMjAwNmEwNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1l
bmNvZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMu
anNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcApAQCAtNDgsOSArNDgsOSBAQCBTYXZlZE1vdXNlQnV0
dG9uOjp+U2F2ZWRNb3VzZUJ1dHRvbigpCiB9IC8vIG5hbWVzcGFjZSBUZXN0CiAKIG5hbWVzcGFj
ZSBKU0MgewotY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1vdXNl
QnV0dG9uPjo6dHlwZSgpCitjb25zdCBTdHJpbmcmIElucHV0VHJhaXRzPFRlc3Q6OlNhdmVkTW91
c2VCdXR0b24+Ojp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiB0eXBlKCJTYXZlZE1vdXNlQnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4g
dHlwZShBU0NJSUxpdGVyYWwoIlNhdmVkTW91c2VCdXR0b24iKSk7CiAgICAgcmV0dXJuIHR5cGU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0aC1ndWFyZGVk
LXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBl
cnMtd2l0aC1ndWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAppbmRleCAxNDkz
N2NkNjI0NzgyMmJjMzRkOTcxYmVjMGMwODgxZmZkMjBlMzY5Li4xNmM2ZDUzNTBhNmI5NmE5YmZk
NTA5NjQwZDgxYjMyMTc1ZjEwODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxw
ZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWVudW0tZW5jb2RpbmctaGVscGVycy13aXRoLWd1YXJkZWQtdmFsdWVzLmpzb24tVGVzdFJlcGxh
eUlucHV0cy5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNhdmVkTW91c2VCdXR0b247CiBuYW1l
c3BhY2UgSlNDIHsKIHRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OlNhdmVkTW91
c2VCdXR0b24+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpIHsgcmV0dXJuIElucHV0
UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBjb25zdCBUZXN0OjpTYXZlZE1vdXNl
QnV0dG9uJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3Rk
Ojp1bmlxdWVfcHRyPFRlc3Q6OlNhdmVkTW91c2VCdXR0b24+Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
ZW51bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51
bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKaW5kZXggNjQwNjk5
NGExMzhmZTMzMTZkMjYyMDlkOTA2M2IyZTY3NDA5NDc3Yi4uYjkyYWU5ZWU0YmZjM2UwMzUxN2E0
NmIyZjA2NDQ4NDFhMmFhNzRhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Jl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVy
cy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBl
cnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcApAQCAtNDksOSArNDksOSBAQCBTYXZlZE1vdXNl
QnV0dG9uOjp+U2F2ZWRNb3VzZUJ1dHRvbigpCiB9IC8vIG5hbWVzcGFjZSBUZXN0CiAKIG5hbWVz
cGFjZSBKU0MgewotY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1v
dXNlQnV0dG9uPjo6dHlwZSgpCitjb25zdCBTdHJpbmcmIElucHV0VHJhaXRzPFRlc3Q6OlNhdmVk
TW91c2VCdXR0b24+Ojp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiB0eXBlKCJTYXZlZE1vdXNlQnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gdHlwZShBU0NJSUxpdGVyYWwoIlNhdmVkTW91c2VCdXR0b24iKSk7CiAgICAgcmV0dXJuIHR5
cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJlcGxh
eUlucHV0cy5oCmluZGV4IDgyNGJiOTM1MzRiNDQyYTc0MGRjMGVlZjA5OWFiMzMyNTlkZmRmNjku
LjJmOTVhM2I2MTIwN2ZhZDJjYzE2MTY4OGQ5NWFlZDc4YjNlZjUyODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0
ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWVudW0tZW5jb2RpbmctaGVscGVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaApAQCAtNTAsNyAr
NTAsNyBAQCBjbGFzcyBTYXZlZE1vdXNlQnV0dG9uOwogbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0
ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1vdXNlQnV0dG9uPiB7CiAgICAgc3Rh
dGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXpl
ZERhdGE7IH0KLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgc3Rh
dGljIGNvbnN0IFN0cmluZyYgdHlwZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEpTQzo6
RW5jb2RlZFZhbHVlJiwgY29uc3QgVGVzdDo6U2F2ZWRNb3VzZUJ1dHRvbiYpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShKU0M6OkVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxUZXN0OjpT
YXZlZE1vdXNlQnV0dG9uPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Jl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29u
LVRlc3RSZXBsYXlJbnB1dHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBs
YXlJbnB1dHMuY3BwCmluZGV4IDVhN2M5MDc5Y2FkZGVkNDliM2M5Zjc1ZmE0YTQyYTkyYjAxYTYx
YjMuLjgzYTQwODE4MGY0MmUyZTM5M2M5N2RiZGM2ZWZlZjliNWQxMmQ4NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
ZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKQEAgLTQ4LDkgKzQ4LDkg
QEAgSGFuZGxlV2hlZWxFdmVudDo6fkhhbmRsZVdoZWVsRXZlbnQoKQogfSAvLyBuYW1lc3BhY2Ug
VGVzdAogCiBuYW1lc3BhY2UgSlNDIHsKLWNvbnN0IEF0b21pY1N0cmluZyYgSW5wdXRUcmFpdHM8
VGVzdDo6SGFuZGxlV2hlZWxFdmVudD46OnR5cGUoKQorY29uc3QgU3RyaW5nJiBJbnB1dFRyYWl0
czxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50Pjo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHlwZSgiSGFuZGxlV2hlZWxFdmVudCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IHR5cGUoQVNDSUlMaXRlcmFsKCJIYW5kbGVXaGVlbEV2ZW50IikpOwog
ICAgIHJldHVybiB0eXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpz
b24tVGVzdFJlcGxheUlucHV0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBs
YXlJbnB1dHMuaAppbmRleCA4MTgyNmE2MGJiZTlhYWRkNzZjN2I1N2YwYmRiMjIwNzAxYTkwODQ2
Li4zNzEyOWM0YjUzOTQyZDY1YTNlNzVhZjI0Y2ZhNDBlNTAxYTUyZTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJh
dGUtZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVt
LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xh
c3MgSGFuZGxlV2hlZWxFdmVudDsKIG5hbWVzcGFjZSBKU0MgewogdGVtcGxhdGU8PiBzdHJ1Y3Qg
SW5wdXRUcmFpdHM8VGVzdDo6SGFuZGxlV2hlZWxFdmVudD4gewogICAgIHN0YXRpYyBJbnB1dFF1
ZXVlIHF1ZXVlKCkgeyByZXR1cm4gSW5wdXRRdWV1ZTo6RXZlbnRMb29wSW5wdXQ7IH0KLSAgICBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgc3RhdGljIGNvbnN0IFN0cmlu
ZyYgdHlwZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwg
Y29uc3QgVGVzdDo6SGFuZGxlV2hlZWxFdmVudCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShK
U0M6OkVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50
PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rl
c3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVz
dFJlcGxheUlucHV0cy5jcHAKaW5kZXggNDM1MDNiNDlmNWE1ZjM4YmM5YTFmMTgxOGZmYWUyMjg4
M2MwNDNlNy4uODIyOGYzZGI2NmJjYTVlMjZhZDkwYjY4OWEyYzA2NGFmNjNmNzQ1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0UmVwbGF5SW5wdXRz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RSZXBsYXlJ
bnB1dHMuY3BwCkBAIC01MCw5ICs1MCw5IEBAIEZvcm1Db21ibzo6fkZvcm1Db21ibygpCiB9IC8v
IG5hbWVzcGFjZSBUZXN0CiAKIG5hbWVzcGFjZSBKU0MgewotY29uc3QgQXRvbWljU3RyaW5nJiBJ
bnB1dFRyYWl0czxUZXN0OjpGb3JtQ29tYm8+Ojp0eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRU
cmFpdHM8VGVzdDo6Rm9ybUNvbWJvPjo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHlwZSgiRm9ybUNvbWJvIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gdHlwZShBU0NJSUxpdGVyYWwoIkZvcm1Db21ibyIpKTsKICAgICByZXR1cm4gdHlwZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rl
c3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RS
ZXBsYXlJbnB1dHMuaAppbmRleCAzN2I0ODQ3YjM0YjgzZjQzNmNiYWY2MWI5N2QxNzkyMzM5YWRk
NWYwLi42YzkzYWQ3ZTRjYWQ1NTE0MGJjNWZjN2FiM2VkMGZkMmUxNzFkMTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQv
Z2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RSZXBsYXlJbnB1dHMu
aApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBGb3JtQ29tYm87CiBuYW1lc3BhY2UgSlNDIHsKIHRl
bXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OkZvcm1Db21ibz4gewogICAgIHN0YXRp
YyBJbnB1dFF1ZXVlIHF1ZXVlKCkgeyByZXR1cm4gSW5wdXRRdWV1ZTo6U2NyaXB0TWVtb2l6ZWRE
YXRhOyB9Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpOworICAgIHN0YXRp
YyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShKU0M6OkVu
Y29kZWRWYWx1ZSYsIGNvbnN0IFRlc3Q6OkZvcm1Db21ibyYpOwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShKU0M6OkVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxUZXN0OjpGb3JtQ29tYm8+
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1
dHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2dlbmVyYXRlLWlucHV0LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcApp
bmRleCAyMzA2ZjIxMmUwYWFhNmMwZTY3NDdmMGMxOGJlYmNjOTM3NWVjZDBhLi45Y2JiN2FmMzNk
ZDE0ZmVkZTIzNWJhMzU4ZWVlM2Q1MjU2OWJmYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0
aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLWd1
YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKQEAgLTYwLDkgKzYwLDkgQEAgU2V0UmFuZG9t
U2VlZDo6flNldFJhbmRvbVNlZWQoKQogCiBuYW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoRFVN
TVlfRkVBVFVSRSkKLWNvbnN0IEF0b21pY1N0cmluZyYgSW5wdXRUcmFpdHM8VGVzdDo6R2V0Q3Vy
cmVudFRpbWU+Ojp0eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRUcmFpdHM8VGVzdDo6R2V0Q3Vy
cmVudFRpbWU+Ojp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bWljU3RyaW5nPiB0eXBlKCJHZXRDdXJyZW50VGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHR5
cGUoQVNDSUlMaXRlcmFsKCJHZXRDdXJyZW50VGltZSIpKTsKICAgICByZXR1cm4gdHlwZTsKIH0K
IApAQCAtODIsOSArODIsOSBAQCBib29sIElucHV0VHJhaXRzPFRlc3Q6OkdldEN1cnJlbnRUaW1l
Pjo6ZGVjb2RlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBzdGQ6OgogfQogI2VuZGlmIC8v
IEVOQUJMRShEVU1NWV9GRUFUVVJFKQogCi1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0VHJhaXRz
PFRlc3Q6OlNldFJhbmRvbVNlZWQ+Ojp0eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRUcmFpdHM8
VGVzdDo6U2V0UmFuZG9tU2VlZD46OnR5cGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9taWNTdHJpbmc+IHR5cGUoIlNldFJhbmRvbVNlZWQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiB0eXBlKEFTQ0lJTGl0ZXJhbCgiU2V0UmFuZG9tU2VlZCIpKTsKICAgICByZXR1cm4g
dHlwZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVw
bGF5SW5wdXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMv
ZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMu
aAppbmRleCBhMGQ3ZDM5MzY3MGMyYjZmNjFhYzhjMTBkN2Y2NzE5MmI1OWFiNzlhLi40ZjE0NWI2
ODJhMWU5YjQ2MWMyNGFkNzY2MTc0ZjIzZTNmY2IyOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQt
d2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC1n
dWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNpZiBFTkFCTEUoRFVNTVlfRkVBVFVSRSkKIHRlbXBsYXRlPD4gc3RydWN0IElucHV0
VHJhaXRzPFRlc3Q6OkdldEN1cnJlbnRUaW1lPiB7CiAgICAgc3RhdGljIElucHV0UXVldWUgcXVl
dWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7IH0KLSAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYg
dHlwZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgY29u
c3QgVGVzdDo6R2V0Q3VycmVudFRpbWUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpF
bmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8VGVzdDo6R2V0Q3VycmVudFRpbWU+Jik7CkBA
IC01Niw3ICs1Niw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OkdldEN1
cnJlbnRUaW1lPiB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OlNldFJh
bmRvbVNlZWQ+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpIHsgcmV0dXJuIElucHV0
UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBjb25zdCBUZXN0OjpTZXRSYW5kb21T
ZWVkJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3RkOjp1
bmlxdWVfcHRyPFRlc3Q6OlNldFJhbmRvbVNlZWQ+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQt
d2l0aC12ZWN0b3ItbWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0
LXdpdGgtdmVjdG9yLW1lbWJlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAppbmRleCBmYjM0
ZTJjNDNlYjU3Y2I0ZmNiODA3ZDI3NjBmMDY2MTJhN2NhZDM1Li5mMmY5NjJhMTkzYjhjOWFjMDBl
ZDFiMDY4NTAxZmI4YmViNDg2NzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3It
bWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLXZl
Y3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKQEAgLTYxLDkgKzYxLDkgQEAg
U2F2ZWRIaXN0b3J5Ojp+U2F2ZWRIaXN0b3J5KCkKIH0gLy8gbmFtZXNwYWNlIFRlc3QKIAogbmFt
ZXNwYWNlIEpTQyB7Ci1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0VHJhaXRzPFRlc3Q6OkFycmF5
T2ZUaGluZ3M+Ojp0eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRUcmFpdHM8VGVzdDo6QXJyYXlP
ZlRoaW5ncz46OnR5cGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
aWNTdHJpbmc+IHR5cGUoIkFycmF5T2ZUaGluZ3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB0eXBl
KEFTQ0lJTGl0ZXJhbCgiQXJyYXlPZlRoaW5ncyIpKTsKICAgICByZXR1cm4gdHlwZTsKIH0KIApA
QCAtOTIsOSArOTIsOSBAQCBib29sIElucHV0VHJhaXRzPFRlc3Q6OkFycmF5T2ZUaGluZ3M+Ojpk
ZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0ZDo6dQogICAgIHJldHVybiB0cnVl
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0VHJhaXRzPFRlc3Q6OlNhdmVkSGlzdG9y
eT46OnR5cGUoKQorY29uc3QgU3RyaW5nJiBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZEhpc3Rvcnk+
Ojp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5n
PiB0eXBlKCJTYXZlZEhpc3RvcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB0eXBlKEFTQ0lJTGl0
ZXJhbCgiU2F2ZWRIaXN0b3J5IikpOwogICAgIHJldHVybiB0eXBlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3ItbWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1pbnB1dC13aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmlu
ZGV4IDI0MmZmODczODRkOGVhZjU5ZjNhZGQ1YjBhMjhkOTk5M2VkYjEyNWUuLmEyNzFlY2I5MjNh
ZTVmNzg1OGIxMDNjNjZhYTkwNTQxZGYxNDI1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRo
LXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13
aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC00OCw3ICs0OCw3
IEBAIGNsYXNzIFNhdmVkSGlzdG9yeTsKIG5hbWVzcGFjZSBKU0MgewogdGVtcGxhdGU8PiBzdHJ1
Y3QgSW5wdXRUcmFpdHM8VGVzdDo6QXJyYXlPZlRoaW5ncz4gewogICAgIHN0YXRpYyBJbnB1dFF1
ZXVlIHF1ZXVlKCkgeyByZXR1cm4gSW5wdXRRdWV1ZTo6U2NyaXB0TWVtb2l6ZWREYXRhOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpOworICAgIHN0YXRpYyBjb25zdCBT
dHJpbmcmIHR5cGUoKTsKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShKU0M6OkVuY29kZWRWYWx1
ZSYsIGNvbnN0IFRlc3Q6OkFycmF5T2ZUaGluZ3MmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SlNDOjpFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8VGVzdDo6QXJyYXlPZlRoaW5ncz4m
KTsKQEAgLTU2LDcgKzU2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVzdDo6
QXJyYXlPZlRoaW5ncz4gewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0OjpT
YXZlZEhpc3Rvcnk+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpIHsgcmV0dXJuIElu
cHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQotICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBjb25zdCBUZXN0OjpTYXZlZEhp
c3RvcnkmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBzdGQ6
OnVuaXF1ZV9wdHI8VGVzdDo6U2F2ZWRIaXN0b3J5PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0
cy13aXRoLWZsYWdzLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgt
ZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAppbmRleCBhNDQ0ZjE1ZmZiOGJlNjc5YTA2
ZTJkZDNlODNhNmNlYmFjMzI3ZTU1Li44MjFmNGQwZmM1MGYxOTM1YmQyZDM5YWMyNGM0YmY4ZTIx
NjMyNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5
SW5wdXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdpdGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmNwcApAQCAtNTcsOSArNTcsOSBAQCBTY2FsYXJJbnB1dDI6On5TY2FsYXJJbnB1dDIoKQog
fSAvLyBuYW1lc3BhY2UgVGVzdAogCiBuYW1lc3BhY2UgSlNDIHsKLWNvbnN0IEF0b21pY1N0cmlu
ZyYgSW5wdXRUcmFpdHM8VGVzdDo6U2NhbGFySW5wdXQxPjo6dHlwZSgpCitjb25zdCBTdHJpbmcm
IElucHV0VHJhaXRzPFRlc3Q6OlNjYWxhcklucHV0MT46OnR5cGUoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHR5cGUoIlNjYWxhcklucHV0MSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBTdHJpbmc+IHR5cGUoQVNDSUlMaXRlcmFsKCJTY2FsYXJJbnB1dDEiKSk7CiAg
ICAgcmV0dXJuIHR5cGU7CiB9CiAKQEAgLTc4LDkgKzc4LDkgQEAgYm9vbCBJbnB1dFRyYWl0czxU
ZXN0OjpTY2FsYXJJbnB1dDE+OjpkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0
ZDo6dW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dFRy
YWl0czxUZXN0OjpTY2FsYXJJbnB1dDI+Ojp0eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRUcmFp
dHM8VGVzdDo6U2NhbGFySW5wdXQyPjo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gdHlwZSgiU2NhbGFySW5wdXQyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IFN0cmluZz4gdHlwZShBU0NJSUxpdGVyYWwoIlNjYWxhcklucHV0MiIpKTsKICAgICByZXR1cm4g
dHlwZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13aXRoLWZsYWdzLmpzb24tVGVzdFJl
cGxheUlucHV0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13aXRoLWZsYWdzLmpzb24tVGVzdFJlcGxheUlucHV0
cy5oCmluZGV4IDY1NjYxMjdlYTMyZTA3ZTUyYzAwYWIzZTI0MDcxNzY3OWE2ZThhOGYuLjhmNGRl
MWIxMzhkMmFkN2NjYzRmZWU2MzM5ZjIyNWRmZGMwOGU1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1
dHMtd2l0aC1mbGFncy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXRzLXdp
dGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3Mg
U2NhbGFySW5wdXQyOwogbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRy
YWl0czxUZXN0OjpTY2FsYXJJbnB1dDE+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgp
IHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQotICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBl
KCk7CiAKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBjb25zdCBU
ZXN0OjpTY2FsYXJJbnB1dDEmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpFbmNvZGVk
VmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8VGVzdDo6U2NhbGFySW5wdXQxPiYpOwpAQCAtNTIsNyAr
NTIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0OjpTY2FsYXJJbnB1dDE+
IHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVzdDo6U2NhbGFySW5wdXQyPiB7
CiAgICAgc3RhdGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3Jp
cHRNZW1vaXplZERhdGE7IH0KLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7
CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgdHlwZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgY29uc3QgVGVzdDo6U2NhbGFySW5wdXQyJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFRl
c3Q6OlNjYWxhcklucHV0Mj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVz
Lmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6ZWQtdHlwZS1tb2Rlcy5qc29u
LVRlc3RSZXBsYXlJbnB1dHMuY3BwCmluZGV4IDAyNWNmMDY0YWZmYTJhYjE1ODI5MjUyN2YzOTRi
ZDY1Y2IzZGE3MTMuLjBiZTkyMDZkOGEwYzc1NjFkY2IzYjVjNDZlN2Y3YTE3NWY1NjRlMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2dlbmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNw
cApAQCAtNTcsOSArNTcsOSBAQCBNYXBJbnB1dDo6fk1hcElucHV0KCkKIH0gLy8gbmFtZXNwYWNl
IFRlc3QKIAogbmFtZXNwYWNlIEpTQyB7Ci1jb25zdCBBdG9taWNTdHJpbmcmIElucHV0VHJhaXRz
PFRlc3Q6OlNjYWxhcklucHV0Pjo6dHlwZSgpCitjb25zdCBTdHJpbmcmIElucHV0VHJhaXRzPFRl
c3Q6OlNjYWxhcklucHV0Pjo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gdHlwZSgiU2NhbGFySW5wdXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiB0eXBlKEFTQ0lJTGl0ZXJhbCgiU2NhbGFySW5wdXQiKSk7CiAgICAgcmV0dXJuIHR5cGU7CiB9
CiAKQEAgLTc4LDkgKzc4LDkgQEAgYm9vbCBJbnB1dFRyYWl0czxUZXN0OjpTY2FsYXJJbnB1dD46
OmRlY29kZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgc3RkOjp1bmkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dFRyYWl0czxUZXN0OjpNYXBJbnB1
dD46OnR5cGUoKQorY29uc3QgU3RyaW5nJiBJbnB1dFRyYWl0czxUZXN0OjpNYXBJbnB1dD46OnR5
cGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHR5
cGUoIk1hcElucHV0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdHlwZShBU0NJSUxpdGVyYWwoIk1h
cElucHV0IikpOwogICAgIHJldHVybiB0eXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtbWVtb2l6
ZWQtdHlwZS1tb2Rlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBl
LW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmluZGV4IGU0OGIwYzRkOGJlNjA1YTRlZjJh
ODAzYjFmNjUxMjQ5MmIzZGRiNGYuLjQzYzM5ZmNlMDEwNmNhYzhjYTE1MjQ5YmRmZmZkMjIwNTA5
MzdlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxh
eUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIE1hcElucHV0OwogbmFtZXNwYWNlIEpTQyB7
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0OjpTY2FsYXJJbnB1dD4gewogICAg
IHN0YXRpYyBJbnB1dFF1ZXVlIHF1ZXVlKCkgeyByZXR1cm4gSW5wdXRRdWV1ZTo6U2NyaXB0TWVt
b2l6ZWREYXRhOyB9Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpOworICAg
IHN0YXRpYyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShK
U0M6OkVuY29kZWRWYWx1ZSYsIGNvbnN0IFRlc3Q6OlNjYWxhcklucHV0Jik7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFRlc3Q6OlNj
YWxhcklucHV0PiYpOwpAQCAtNTIsNyArNTIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRy
YWl0czxUZXN0OjpTY2FsYXJJbnB1dD4gewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0
czxUZXN0OjpNYXBJbnB1dD4gewogICAgIHN0YXRpYyBJbnB1dFF1ZXVlIHF1ZXVlKCkgeyByZXR1
cm4gSW5wdXRRdWV1ZTo6U2NyaXB0TWVtb2l6ZWREYXRhOyB9Ci0gICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSgpOworICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIAog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShKU0M6OkVuY29kZWRWYWx1ZSYsIGNvbnN0IFRlc3Q6Ok1h
cElucHV0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3Rk
Ojp1bmlxdWVfcHRyPFRlc3Q6Ok1hcElucHV0PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4
ZGI3ZDdkMTkzYTNjZDlmMTNkNzc5NDg0ZDIxM2JiOGFmYmNkMDczLi5lN2M0ZTcxOGIwNDY0NWFm
N2JhNjViMzdmOTYwNDNmZTI5NDIwNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzEyOCw3
ICszMTI4LDYgQEAgaWYgKEVOQUJMRV9XRUJfUkVQTEFZKQogICAgICAgICByZXBsYXkvUmVwbGF5
aW5nSW5wdXRDdXJzb3IuY3BwCiAgICAgICAgIHJlcGxheS9SZXBsYXlJbnB1dENyZWF0aW9uTWV0
aG9kcy5jcHAKICAgICAgICAgcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcAot
ICAgICAgICByZXBsYXkvUmVwbGF5SW5wdXRUeXBlcy5jcHAKICAgICAgICAgcmVwbGF5L1JlcGxh
eVNlc3Npb24uY3BwCiAgICAgICAgIHJlcGxheS9SZXBsYXlTZXNzaW9uU2VnbWVudC5jcHAKICAg
ICAgICAgcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNjllOTZjMzYwZTRi
OTA0OTQ5MDFhMDc5ODJhMjcyZTRiZTRkYzhlLi4yM2ExNzRmOTQxMjY1YzBiMmZkOWRiZTAxNTRm
YmMwOTFkNzE4YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zNTk0LDggKzM1OTQsNiBAQAogCQk5OENFNDMyNjEyOUUwMEJE
MDA1ODIxREMgLyogTGlua0xvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyNTEyOUUwMEJEMDA1ODIxREMgLyogTGlua0xvYWRlci5j
cHAgKi87IH07CiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEyOUUw
MEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICovOyB9OwogCQk5OEVCMUY5NTEzMTNGRTA1MDBE
MEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRl
ZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk5
MEExQTA0MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MEExOUY0MThBREE0ODQwMDE4
M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmNwcCAqLzsgfTsKLQkJOTkwQTFBMDUxOEFEQTQ4NDAw
MTgzRkQxIC8qIFJlcGxheUlucHV0VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5MEExOUY1MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1
dFR5cGVzLmggKi87IH07CiAJCTk5MjAzOTgyMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRC
cmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTkyMDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAgKi87IH07CiAJ
CTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIz
OUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5OTYyMzFGMzE4RDE4QUMzMDBDMDNGREEgLyogSW5zcGVjdG9y
V2ViQmFja2VuZENvbW1hbmRzLmpzIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk2MjMxRjExOEQxODlCRDAwQzAzRkRBIC8qIEluc3BlY3RvcldlYkJhY2tl
bmRDb21tYW5kcy5qcyAqLzsgfTsKQEAgLTEwNzUwLDggKzEwNzQ4LDYgQEAKIAkJOThDRTQzMjUx
MjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGlua0xvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk4Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdEltcGxlbWVudGVkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MEExOUY0MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJ
bnB1dFR5cGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxh
eUlucHV0VHlwZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTBBMTlGNTE4
QURBNDg0MDAxODNGRDEgLyogUmVwbGF5SW5wdXRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYXlJbnB1dFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5MjAzOTgwMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
SW5wdXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2MjMxRjExOEQx
ODlCRDAwQzAzRkRBIC8qIEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5kcy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5k
cy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzU0LDggKzE4MzUwLDYgQEAK
IAkJCQk5OUNDMEI0MTE4QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5aW5nSW5wdXRDdXJzb3IuaCAq
LywKIAkJCQk5OUNDMEI0MjE4QkU5ODQ5MDA2Q0VCQ0MgLyogUmVwbGF5SW5wdXRDcmVhdGlvbk1l
dGhvZHMuY3BwICovLAogCQkJCTk5Q0MwQjQzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlJbnB1
dERpc3BhdGNoTWV0aG9kcy5jcHAgKi8sCi0JCQkJOTkwQTE5RjQxOEFEQTQ4NDAwMTgzRkQxIC8q
IFJlcGxheUlucHV0VHlwZXMuY3BwICovLAotCQkJCTk5MEExOUY1MThBREE0ODQwMDE4M0ZEMSAv
KiBSZXBsYXlJbnB1dFR5cGVzLmggKi8sCiAJCQkJOTlDQzBCNDQxOEJFOTg0OTAwNkNFQkNDIC8q
IFJlcGxheVNlc3Npb24uY3BwICovLAogCQkJCTk5Q0MwQjQ1MThCRTk4NDkwMDZDRUJDQyAvKiBS
ZXBsYXlTZXNzaW9uLmggKi8sCiAJCQkJOTlDQzBCNDYxOEJFOTg0OTAwNkNFQkNDIC8qIFJlcGxh
eVNlc3Npb25TZWdtZW50LmNwcCAqLywKQEAgLTI1NzA2LDcgKzI1NzAwLDYgQEAKIAkJCQk5MzMw
OUUwQTA5OUU2NDkyMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk5Q0MwQjU0MThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI1NjE4QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5
aW5nSW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5MEExQTA1MThBREE0ODQwMDE4
M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI1QTE4
QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlD
QzBCNUMxOEJFOTg0QTAwNkNFQkNDIC8qIFJlcGxheVNlc3Npb25TZWdtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0OTk4QUVDNjEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjkxNTcsNyArMjkxNTAsNiBAQAogCQkJ
CTk5Q0MwQjU1MThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlpbmdJbnB1dEN1cnNvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5OUNDMEI1NzE4QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5SW5wdXRD
cmVhdGlvbk1ldGhvZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDQzBCNTgxOEJFOTg0QTAw
NkNFQkNDIC8qIFJlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTk5MEExQTA0MThBREE0ODQwMDE4M0ZEMSAvKiBSZXBsYXlJbnB1dFR5cGVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk5Q0MwQjU5MThCRTk4NEEwMDZDRUJDQyAvKiBSZXBsYXlTZXNzaW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5Q0MwQjVCMThCRTk4NEEwMDZDRUJDQyAvKiBSZXBs
YXlTZXNzaW9uU2VnbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDRjEyNTFGMTJE
MDAzRUYyNjkgLyogUmVzZXRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcAppbmRleCBlYzRh
NGJhMjRiNjg3Y2Y0ZjY5MDU1M2I0YmQzMDM0YTY3MzY5NDg4Li42OGJlMDdiZTA2NzJkMzhmNWE4
NDUzOGIxNWQxNDliYTUzYTMwZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIG9wZXJhdG9yKCkoc2l6ZV90IGluZGV4LCBjb25zdCBOb25kZXRlcm1pbmlzdGlj
SW5wdXRCYXNlKiBpbnB1dCkKICAgICB7Ci0gICAgICAgIExPRyhXZWJSZXBsYXksICIlLTI1cyBX
cml0aW5nICU1enU6ICVzXG4iLCAiW1NlcmlhbGl6ZUlucHV0XSIsIGluZGV4LCBpbnB1dC0+dHlw
ZSgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKFdlYlJlcGxheSwgIiUt
MjVzIFdyaXRpbmcgJTV6dTogJXNcbiIsICJbU2VyaWFsaXplSW5wdXRdIiwgaW5kZXgsIGlucHV0
LT50eXBlKCkuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAgICAgIGlmIChSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UmVwbGF5OjpSZXBsYXlJbnB1dD4gc2VyaWFsaXplZElucHV0ID0gYnVpbGRJ
bnNwZWN0b3JPYmplY3RGb3JJbnB1dCgqaW5wdXQsIGluZGV4KSkKICAgICAgICAgICAgIG1faW5w
dXRzLT5hZGRJdGVtKHNlcmlhbGl6ZWRJbnB1dC5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAppbmRleCBmZDNkMWI3OThlNDg3MDRlZTc1
NDNlOTdkMjQzM2Y5YmVhZmQ5MGRmLi5iYzU3NzMyMmRhODE0YWIwMmY4NzNjNTQ3YTA1YzEyOTEy
MWZhM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNw
cApAQCAtNDEsMTAgKzQxLDYgQEAKICNpbmNsdWRlICJUZXh0Q29kZUNNYWMuaCIKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQl9SRVBMQVkpCi0jaW5jbHVkZSAiUmVwbGF5SW5wdXRUeXBlcy5oIgot
I2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVGhyZWFkU3BlY2lmaWM8VGhyZWFkR2xv
YmFsRGF0YT4qIFRocmVhZEdsb2JhbERhdGE6OnN0YXRpY0RhdGE7CkBAIC01Niw5ICs1Miw2IEBA
IFRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEoKQogICAgIDogbV9jYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzKSkKICAgICAsIG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZlbnROYW1lcykp
CiAgICAgLCBtX3RocmVhZFRpbWVycyhhZG9wdFB0cihuZXcgVGhyZWFkVGltZXJzKSkKLSNpZiBF
TkFCTEUoV0VCX1JFUExBWSkKLSAgICAsIG1faW5wdXRUeXBlcyhzdGQ6Om1ha2VfdW5pcXVlPFJl
cGxheUlucHV0VHlwZXM+KCkpCi0jZW5kaWYKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2lzTWFp
blRocmVhZChpc01haW5UaHJlYWQoKSkKICNlbmRpZgpAQCAtODcsMTAgKzgwLDYgQEAgdm9pZCBU
aHJlYWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKIAogICAgIG1fY2FjaGVkQ29udmVydGVySUNVLmNs
ZWFyKCk7CiAKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKLSAgICBtX2lucHV0VHlwZXMgPSBudWxs
cHRyOwotI2VuZGlmCi0KICAgICBtX2V2ZW50TmFtZXMuY2xlYXIoKTsKICAgICBtX3RocmVhZFRp
bWVycy5jbGVhcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0
YS5oCmluZGV4IDhmMGIxNDFlNTk3ZDYwYzNjNzUxOTE3NTY2OWJmZDU0NTYyODY1OWIuLmRhOWM1
OWJhMmYyYmEzMmJkYWZjNDRjZmJmN2Q1MTc2MTRiNjdjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKQEAgLTQwLDcgKzQwLDYgQEAgdXNpbmcgV1RGOjpU
aHJlYWRTcGVjaWZpYzsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50TmFt
ZXM7Ci0gICAgY2xhc3MgUmVwbGF5SW5wdXRUeXBlczsKICAgICBjbGFzcyBUaHJlYWRUaW1lcnM7
CiAKICAgICBzdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsKQEAgLTU3LDkg
KzU2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzJiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyBy
ZXR1cm4gKm1fY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVu
dE5hbWVzJiBldmVudE5hbWVzKCkgeyByZXR1cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBU
aHJlYWRUaW1lcnMmIHRocmVhZFRpbWVycygpIHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQot
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQotICAgICAgICBSZXBsYXlJbnB1dFR5cGVzJiBpbnB1dFR5
cGVzKCkgeyByZXR1cm4gKm1faW5wdXRUeXBlczsgfQotI2VuZGlmCiAKICAgICAgICAgSUNVQ29u
dmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1fY2FjaGVkQ29u
dmVydGVySUNVOyB9CiAKQEAgLTc2LDEwICs3Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgT3duUHRyPEV2ZW50TmFtZXM+IG1fZXZlbnROYW1lczsKICAgICAgICAgT3duUHRyPFRo
cmVhZFRpbWVycz4gbV90aHJlYWRUaW1lcnM7CiAKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlcGxheUlucHV0VHlwZXM+IG1faW5wdXRUeXBlczsKLSNl
bmRpZgotCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBib29sIG1faXNNYWluVGhyZWFkOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmgKaW5kZXggMjE1MWMyZTM1
MTVmN2RjZDE3MzJiMmQ0MDM0MjlkNGQ4ODNjNDAyMy4uNjY5YmMyNWY5YTEwYWNlYTY4ZGU5Njlj
ZWIyODM4ZWY1MWZmNWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0FsbFJl
cGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9BbGxSZXBsYXlJbnB1dHMu
aApAQCAtMjksOCArMjksNiBAQAogLy8gTm90ZSB0aGF0IHRoZXJlIGlzIG5vdCBhbiBleGFjdCBj
b3JyZXNwb25kZW5jZSBiZXR3ZWVuIHRoZSB0d28sIHNpbmNlCiAvLyBTb21lIGlucHV0IHR5cGVz
IHJlc2lkZSBpbiB0aGUgc2FtZSBmaWxlLgogCi0vLyBNYWtlIHN1cmUgdGhhdCB0aGlzIHN0YXlz
IGluIHN5bmMgd2l0aCBSZXBsYXlJbnB1dFR5cGVzLmggZm9yIGN1c3RvbSBpbnB1dHMuCi0KICNp
Zm5kZWYgQWxsUmVwbGF5SW5wdXRzX2gKICNkZWZpbmUgQWxsUmVwbGF5SW5wdXRzX2gKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXQuaAppbmRleCAxMDgxYWMwOWM4ZTk0OWRlMmFm
NzQzMmUyOGI3N2VjYmQzYzBjNzQ1Li5jYjM3NWU3ZGY2MDYyNTYzMjhkM2VjZWViN2QxY2VmMjZm
NGVhYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXQuaApAQCAtNjQsNyAr
NjQsNyBAQCBwdWJsaWM6CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBJbnB1dFR5cGU+CiBjbGFzcyBF
dmVudExvb3BJbnB1dCA6IHB1YmxpYyBFdmVudExvb3BJbnB1dEJhc2UgewotICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwKKyAgICB2aXJ0
dWFsIGNvbnN0IFN0cmluZyYgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsCiAgICAgewogICAg
ICAgICByZXR1cm4gSW5wdXRUcmFpdHM8SW5wdXRUeXBlPjo6dHlwZSgpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9FdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAKaW5k
ZXggN2YyM2ExNThlNmI5NjkwN2EyMWJhNzA4ZTIwNzRhMGUxZjJkMGQ3OC4uNmFlNDgyZTExZGFj
ZmIzNzU3NjYwMzg5MWE3MWIyNzRjYWU1M2JjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNp
ZiBFTkFCTEUoV0VCX1JFUExBWSkKIAogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZXBs
YXlJbnB1dFR5cGVzLmgiCiAjaW5jbHVkZSAiUmVwbGF5aW5nSW5wdXRDdXJzb3IuaCIKKyNpbmNs
dWRlICJXZWJSZXBsYXlJbnB1dHMuaCIKICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+
CiAKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBFdmVudExvb3BJ
bnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQoKQogICAgIFN0cmluZyBqc29uU3RyaW5nID0g
ZW5jb2RlZElucHV0LmFzT2JqZWN0KCktPnRvSlNPTlN0cmluZygpOwogCiAgICAgTE9HKFdlYlJl
cGxheSwgIiUtMjBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0iLCAiUmVwbGF5RXZlbnRzIik7Ci0gICAgTE9HKFdlYlJlcGxheSwgIiUtMjBzID5ESVNQQVRD
SDogJXMgJXNcbiIsICJSZXBsYXlFdmVudHMiLCBtX2N1cnJlbnRXb3JrLmlucHV0LT50eXBlKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwganNvblN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBM
T0coV2ViUmVwbGF5LCAiJS0yMHMgPkRJU1BBVENIOiAlcyAlc1xuIiwgIlJlcGxheUV2ZW50cyIs
IG1fY3VycmVudFdvcmsuaW5wdXQtPnR5cGUoKS51dGY4KCkuZGF0YSgpLCBqc29uU3RyaW5nLnV0
ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAKICAgICBtX2NsaWVudC0+d2lsbERpc3BhdGNoSW5wdXQo
Km1fY3VycmVudFdvcmsuaW5wdXQpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgRXZlbnRMb29w
SW5wdXREaXNwYXRjaGVyOjpkaXNwYXRjaElucHV0KCkKIAogICAgIC8vIE5vdGlmeSBjbGllbnRz
IHRoYXQgdGhlIGV2ZW50IHdhcyBkaXNwYXRjaGVkLgogICAgIG1fY2xpZW50LT5kaWREaXNwYXRj
aElucHV0KCpkaXNwYXRjaGVkSW5wdXQpOwotICAgIGlmIChkaXNwYXRjaGVkSW5wdXQtPnR5cGUo
KSA9PSBpbnB1dFR5cGVzKCkuRW5kU2VnbWVudFNlbnRpbmVsKSB7CisgICAgaWYgKGRpc3BhdGNo
ZWRJbnB1dC0+dHlwZSgpID09IElucHV0VHJhaXRzPEVuZFNlZ21lbnRTZW50aW5lbD46OnR5cGUo
KSkgewogICAgICAgICBtX3J1bm5pbmcgPSBmYWxzZTsKICAgICAgICAgbV9kaXNwYXRjaGluZyA9
IGZhbHNlOwogICAgICAgICBtX2NsaWVudC0+ZGlkRGlzcGF0Y2hGaW5hbElucHV0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmNwcAppbmRleCA1YjYzMDkyMjgw
YjhkYjA1NmMxYmIzMDdhYTBiMmIwMjc3ZWUxN2M1Li5kMmI1NzRhYWZjZjZlNjJiN2FjNDU5ZmFm
ZGFiOWU2Y2Q0MDdjYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6
ZWRET01SZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9NZW1vaXplZERPTVJl
c3VsdC5jcHAKQEAgLTI5LDE1ICsyOSwxNSBAQAogCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAK
LSNpbmNsdWRlICJSZXBsYXlJbnB1dFR5cGVzLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXphdGlvbk1l
dGhvZHMuaCIKICNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dHMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBBdG9taWNTdHJp
bmcmIE1lbW9pemVkRE9NUmVzdWx0QmFzZTo6dHlwZSgpIGNvbnN0Citjb25zdCBTdHJpbmcmIE1l
bW9pemVkRE9NUmVzdWx0QmFzZTo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlucHV0VHlw
ZXMoKS5NZW1vaXplZERPTVJlc3VsdDsKKyAgICByZXR1cm4gSW5wdXRUcmFpdHM8TWVtb2l6ZWRE
T01SZXN1bHRCYXNlPjo6dHlwZSgpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVtb2l6ZWRET01S
ZXN1bHRCYXNlPiBNZW1vaXplZERPTVJlc3VsdEJhc2U6OmNyZWF0ZUZyb21FbmNvZGVkUmVzdWx0
KGNvbnN0IFN0cmluZyYgYXR0cmlidXRlLCBFbmNvZGVkQ1R5cGUgY3R5cGUsIEVuY29kZWRWYWx1
ZSBlbmNvZGVkVmFsdWUsIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZSkKQEAgLTY5LDkgKzY5
LDEwIEBAIHVzaW5nIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU7CiB1c2luZyBXZWJDb3JlOjpNZW1v
aXplZERPTVJlc3VsdDsKIHVzaW5nIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAot
Y29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0
eXBlKCkKK2NvbnN0IFN0cmluZyYgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6
dHlwZSgpCiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlucHV0VHlwZXMoKS5NZW1vaXplZERPTVJl
c3VsdDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB0eXBlKEFTQ0lJ
TGl0ZXJhbCgiTWVtb2l6ZWRET01SZXN1bHQiKSk7CisgICAgcmV0dXJuIHR5cGU7CiB9CiAKIHZv
aWQgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZW5jb2RlKEVuY29kZWRWYWx1
ZSYgZW5jb2RlZFZhbHVlLCBjb25zdCBNZW1vaXplZERPTVJlc3VsdEJhc2UmIGlucHV0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L01lbW9pemVkRE9NUmVzdWx0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQuaAppbmRleCA2NWJjZWU2MGQ4NTJm
OWE1NDg1MjczNGI5ZjcwYmIwYjQxOTRmMGYwLi42YmEwZjVkN2FjMWI0ZWViMzk3ZTQ3MmZhMTc1
ZjIxYmRmOGEzNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRE
T01SZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQu
aApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEVuY29kZWRWYWx1ZSBl
bmNvZGVkUmVzdWx0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW5wdXRRdWV1ZSBxdWV1ZSgp
IGNvbnN0IGZpbmFsIG92ZXJyaWRlIHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVk
RGF0YTsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3QgZmlu
YWwgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCBmaW5h
bCBvdmVycmlkZTsKIAogICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGU7IH0KICAgICBFbmNvZGVkQ1R5cGUgY3R5cGUoKSBjb25zdCB7IHJldHVy
biBtX2N0eXBlOyB9CkBAIC0xNDYsNyArMTQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0
ZTw+CiBzdHJ1Y3QgSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPiB7CiAgICAgc3Rh
dGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXpl
ZERhdGE7IH0KLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCk7CisgICAgc3Rh
dGljIGNvbnN0IFN0cmluZyYgdHlwZSgpOwogCiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZWRWYWx1ZSYsIGNvbnN0IE1lbW9pemVkRE9NUmVzdWx0QmFzZSYgaW5wdXQpOwogICAgIHN0YXRp
YyBib29sIGRlY29kZShFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb2l6ZWRET01S
ZXN1bHRCYXNlPiYgaW5wdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Jl
cGxheUlucHV0VHlwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlucHV0VHlw
ZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTY4MTllNzBlZmVkMmRlYzZj
MzBkYTE3YjI2Zjc3MDY2MWU0ZGMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dFR5cGVzLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
VW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcm52ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKLSAqIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAotICogVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
Ci0gKiBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlcGxh
eUlucHV0VHlwZXMuaCIKLQotI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLSNkZWZpbmUgSU5JVElBTElaRV9JTlBVVF9UWVBFKG5hbWUpIFwKLSAgICAsIG5h
bWUoI25hbWUsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCi0KLVJlcGxheUlu
cHV0VHlwZXM6OlJlcGxheUlucHV0VHlwZXMoKQotICAgIDogZHVtbXkoMCkKLUpTX1JFUExBWV9J
TlBVVF9OQU1FU19GT1JfRUFDSChJTklUSUFMSVpFX0lOUFVUX1RZUEUpCi1XRUJfUkVQTEFZX0lO
UFVUX05BTUVTX0ZPUl9FQUNIKElOSVRJQUxJWkVfSU5QVVRfVFlQRSkKLUlOSVRJQUxJWkVfSU5Q
VVRfVFlQRShNZW1vaXplZERPTVJlc3VsdCkKLXsKLSAgICBVTlVTRURfUEFSQU0oZHVtbXkpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExB
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dFR5cGVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXRUeXBlcy5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNDEyNmYyZmU3M2I3MDNiYzQ5YjlhMjA1OTQ1YTcwOTFjNjY0Mzdj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dFR5cGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJudmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgIkFTCi0gKiBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQKLSAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQotICogUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBIT0xE
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgUmVwbGF5SW5wdXRUeXBlc19oCi0jZGVmaW5lIFJlcGxheUlucHV0VHlwZXNfaAotCi0j
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCi0KLSNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCi0j
aW5jbHVkZSAiV2ViUmVwbGF5SW5wdXRzLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNS
ZXBsYXlJbnB1dHMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXBsYXlJbnB1dFR5cGVzIHsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShSZXBsYXlJbnB1dFR5cGVzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci0gICAgaW50IGR1bW15OyAvLyBOZWVkZWQgdG8gbWFrZSBpbml0aWFsaXphdGlvbiBtYWNybyB3
b3JrLgotcHVibGljOgotICAgIFJlcGxheUlucHV0VHlwZXMoKTsKLQotI2RlZmluZSBERUNMQVJF
X1JFUExBWV9JTlBVVF9UWVBFUyhuYW1lKSBBdG9taWNTdHJpbmcgbmFtZTsKLSAgICBKU19SRVBM
QVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0goREVDTEFSRV9SRVBMQVlfSU5QVVRfVFlQRVMpCi0gICAg
V0VCX1JFUExBWV9JTlBVVF9OQU1FU19GT1JfRUFDSChERUNMQVJFX1JFUExBWV9JTlBVVF9UWVBF
UykKLSAgICBERUNMQVJFX1JFUExBWV9JTlBVVF9UWVBFUyhNZW1vaXplZERPTVJlc3VsdCk7Ci0j
dW5kZWYgREVDTEFSRV9SRVBMQVlfSU5QVVRfVFlQRVMKLX07Ci0KLWlubGluZSBSZXBsYXlJbnB1
dFR5cGVzJiBpbnB1dFR5cGVzKCkKLXsKLSAgICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmlu
cHV0VHlwZXMoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQl9SRVBMQVkpCi0KLSNlbmRpZiAvLyBSZXBsYXlJbnB1dFR5cGVzX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlpbmdJbnB1dEN1cnNvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5aW5nSW5wdXRDdXJzb3IuY3BwCmluZGV4IDFiMThjMDI2
OTQyMDM0NWQxZWI0M2M2ZmVjNjhiNWFkMzM0MDU3MDAuLjg4MjJlZTU0ZTA1NzgxZTVkM2Q0MDVh
MGRiZGZhYmU0MGU0ZWQxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBs
YXlpbmdJbnB1dEN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWlu
Z0lucHV0Q3Vyc29yLmNwcApAQCAtNjcsNyArNjcsNyBAQCBOb25kZXRlcm1pbmlzdGljSW5wdXRC
YXNlKiBSZXBsYXlpbmdJbnB1dEN1cnNvcjo6bG9hZElucHV0KElucHV0UXVldWUgcXVldWUsIGNv
bgogICAgIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UqIGlucHV0ID0gdW5jaGVja2VkTG9hZElu
cHV0KHF1ZXVlKTsKIAogICAgIGlmIChpbnB1dC0+dHlwZSgpICE9IHR5cGUpIHsKLSAgICAgICAg
TE9HX0VSUk9SKCIlLTI1cyBFUlJPUjogRXhwZWN0ZWQgcmVwbGF5IGlucHV0IG9mIHR5cGUgJXMs
IGJ1dCBnb3QgdHlwZSAlc1xuIiwgIltSZXBsYXlpbmdJbnB1dEN1cnNvcl0iLCB0eXBlLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpLCBpbnB1dC0+dHlwZSgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgp
KTsKKyAgICAgICAgTE9HX0VSUk9SKCIlLTI1cyBFUlJPUjogRXhwZWN0ZWQgcmVwbGF5IGlucHV0
IG9mIHR5cGUgJXMsIGJ1dCBnb3QgdHlwZSAlc1xuIiwgIltSZXBsYXlpbmdJbnB1dEN1cnNvcl0i
LCB0eXBlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBpbnB1dC0+dHlwZSgpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3BwCmluZGV4IDQ2NWJiZjEyOWI3MDBj
MGY1MjAwOTAwZWNiMzVjMGRlNThkMzJiMjQuLjkzZmVlOGNiYWUzZDAyZDllN2FlOTJhMjkzZjQx
Mjg3ZmNhYzZiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJ
bnB1dFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1
dFN0b3JhZ2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2Uq
IFNlZ21lbnRlZElucHV0U3RvcmFnZTo6bG9hZChJbnB1dFF1ZXVlIGlucHV0UXVldWUsIHNpCiAg
ICAgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSogaW5wdXQgPSBxdWV1ZShpbnB1dFF1ZXVlKS5h
dChvZmZzZXQpLmdldCgpOwogICAgIEFTU0VSVChpbnB1dCk7CiAKLSAgICBMT0coV2ViUmVwbGF5
LCAiJS0yMHMgJXM6ICVzICVzXG4iLCAiUmVwbGF5RXZlbnRzIiwgcXVldWVUeXBlVG9Mb2dQcmVm
aXgoaW5wdXRRdWV1ZSwgdHJ1ZSksIGlucHV0LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwganNvblN0cmluZ0ZvcklucHV0KCppbnB1dCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKFdl
YlJlcGxheSwgIiUtMjBzICVzOiAlcyAlc1xuIiwgIlJlcGxheUV2ZW50cyIsIHF1ZXVlVHlwZVRv
TG9nUHJlZml4KGlucHV0UXVldWUsIHRydWUpLCBpbnB1dC0+dHlwZSgpLnV0ZjgoKS5kYXRhKCks
IGpzb25TdHJpbmdGb3JJbnB1dCgqaW5wdXQpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgcmV0dXJu
IGlucHV0OwogfQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgU2VnbWVudGVkSW5wdXRTdG9yYWdl
OjpzdG9yZShzdGQ6OnVuaXF1ZV9wdHI8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT4gaW5wCiAg
ICAgQVNTRVJUKGlucHV0KTsKICAgICBBU1NFUlQoaW5wdXQtPnF1ZXVlKCkgPCBJbnB1dFF1ZXVl
OjpDb3VudCk7CiAKLSAgICBMT0coV2ViUmVwbGF5LCAiJS0xNHMjJS01dSAlczogJXMgJXNcbiIs
ICJSZXBsYXlFdmVudHMiLCBtX2lucHV0Q291bnQrKywgcXVldWVUeXBlVG9Mb2dQcmVmaXgoaW5w
dXQtPnF1ZXVlKCksIGZhbHNlKSwgaW5wdXQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBqc29uU3RyaW5nRm9ySW5wdXQoKmlucHV0KS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coV2Vi
UmVwbGF5LCAiJS0xNHMjJS01dSAlczogJXMgJXNcbiIsICJSZXBsYXlFdmVudHMiLCBtX2lucHV0
Q291bnQrKywgcXVldWVUeXBlVG9Mb2dQcmVmaXgoaW5wdXQtPnF1ZXVlKCksIGZhbHNlKSwgaW5w
dXQtPnR5cGUoKS51dGY4KCkuZGF0YSgpLCBqc29uU3RyaW5nRm9ySW5wdXQoKmlucHV0KS51dGY4
KCkuZGF0YSgpKTsKIAogICAgIG1fcXVldWVzLmF0KG9mZnNldEZvcklucHV0UXVldWUoaW5wdXQt
PnF1ZXVlKCkpKS0+YXBwZW5kKFdURjo6bW92ZShpbnB1dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggNmE5ZDJjMGZhYTc3ODMy
MmNmYWE3Yzc3NDg5M2UwY2U0ZDA4YTAwMC4uNmEyZTQ3MzdmNzI3MTExM2RiNzAzZDQxNDVmYWVm
ZWMwMDIzZWVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRp
b25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0
YS5oIgotI2luY2x1ZGUgIlJlcGxheUlucHV0VHlwZXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgpA
QCAtNTcsNyArNTYsNiBAQCB1c2luZyBXZWJDb3JlOjpQbHVnaW5EYXRhOwogdXNpbmcgV2ViQ29y
ZTo6UGx1Z2luSW5mbzsKIHVzaW5nIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOwogdXNpbmcgV2Vi
Q29yZTo6VVJMOwotdXNpbmcgV2ViQ29yZTo6aW5wdXRUeXBlczsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogdXNpbmcgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kOwpAQCAtMTY3LDEyICsxNjUsMTAg
QEAgYm9vbCBFbmNvZGluZ1RyYWl0czxNaW1lQ2xhc3NJbmZvPjo6ZGVjb2RlVmFsdWUoRW5jb2Rl
ZFZhbHVlJiBlbmNvZGVkRGF0YSwgTWltZUMKIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxO
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgTm9uZGV0ZXJtaW5p
c3RpY0lucHV0QmFzZSYgaW5wdXQpCiB7CiAgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZSA9
IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlID0gaW5wdXQudHlwZSgpOwotCi0gICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBTdHJpbmcsIHR5cGUsIHR5cGUuc3RyaW5nKCkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhf
S0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB0eXBlLCBpbnB1dC50eXBlKCkpOwogCiAjZGVmaW5l
IEVOQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUpIFwKLSAgICBpZiAodHlwZSA9PSBpbnB1
dFR5cGVzKCkubmFtZSkgeyBcCisgICAgaWYgKGlucHV0LnR5cGUoKSA9PSBJbnB1dFRyYWl0czxu
YW1lPjo6dHlwZSgpKSB7IFwKICAgICAgICAgSW5wdXRUcmFpdHM8bmFtZT46OmVuY29kZShlbmNv
ZGVkVmFsdWUsIHN0YXRpY19jYXN0PGNvbnN0IG5hbWUmPihpbnB1dCkpOyBcCiAgICAgICAgIHJl
dHVybiBlbmNvZGVkVmFsdWU7IFwKICAgICB9IFwKQEAgLTE4Miw3ICsxNzgsNyBAQCBFbmNvZGVk
VmFsdWUgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT46OmVuY29kZVZh
bHVlKGNvbnN0IE5vbmRldAogI3VuZGVmIEVOQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTCiAKICAg
ICAvLyBUaGUgbWFjcm8gd29uJ3Qgd29yayBoZXJlIGJlY2F1c2Ugb2YgdGhlIGNsYXNzIHRlbXBs
YXRlIGFyZ3VtZW50LgotICAgIGlmICh0eXBlID09IGlucHV0VHlwZXMoKS5NZW1vaXplZERPTVJl
c3VsdCkgeworICAgIGlmIChpbnB1dC50eXBlKCkgPT0gSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01S
ZXN1bHRCYXNlPjo6dHlwZSgpKSB7CiAgICAgICAgIElucHV0VHJhaXRzPE1lbW9pemVkRE9NUmVz
dWx0QmFzZT46OmVuY29kZShlbmNvZGVkVmFsdWUsIHN0YXRpY19jYXN0PGNvbnN0IE1lbW9pemVk
RE9NUmVzdWx0QmFzZSY+KGlucHV0KSk7CiAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7CiAg
ICAgfQpAQCAtMTk2LDcgKzE5Miw3IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5p
c3RpY0lucHV0QmFzZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlCiAgICAgREVD
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHR5cGUpOwogCiAjZGVmaW5l
IERFQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUpIFwKLSAgICBpZiAodHlwZSA9PSBpbnB1
dFR5cGVzKCkubmFtZSkgeyBcCisgICAgaWYgKHR5cGUgPT0gSW5wdXRUcmFpdHM8bmFtZT46OnR5
cGUoKSkgeyBcCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxuYW1lPiBkZWNvZGVkSW5wdXQ7IFwK
ICAgICAgICAgaWYgKCFJbnB1dFRyYWl0czxuYW1lPjo6ZGVjb2RlKGVuY29kZWRWYWx1ZSwgZGVj
b2RlZElucHV0KSkgXAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyBcCkBAIC0yMDksNyArMjA1
LDcgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGUKICAgICBXRUJfUkVQTEFZX0lOUFVUX05BTUVT
X0ZPUl9FQUNIKERFQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKQogI3VuZGVmIERFQ09ERV9JRl9U
WVBFX1RBR19NQVRDSEVTCiAKLSAgICBpZiAodHlwZSA9PSBpbnB1dFR5cGVzKCkuTWVtb2l6ZWRE
T01SZXN1bHQpIHsKKyAgICBpZiAodHlwZSA9PSBJbnB1dFRyYWl0czxNZW1vaXplZERPTVJlc3Vs
dEJhc2U+Ojp0eXBlKCkpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lbW9pemVkRE9NUmVz
dWx0QmFzZT4gZGVjb2RlZElucHV0OwogICAgICAgICBpZiAoIUlucHV0VHJhaXRzPE1lbW9pemVk
RE9NUmVzdWx0QmFzZT46OmRlY29kZShlbmNvZGVkVmFsdWUsIGRlY29kZWRJbnB1dCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>