<?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>221677</bug_id>
          
          <creation_ts>2021-02-10 08:47:04 -0800</creation_ts>
          <short_desc>Rework RGB color types to be more declarative to reduce code duplication and make progress toward better automatic conversion</short_desc>
          <delta_ts>2021-02-11 08:37:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727553</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-10 08:47:04 -0800</bug_when>
    <thetext>Rework RGB color types to be more declarative to reduce code duplication and make progress toward better automatic conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727647</commentid>
    <comment_count>1</comment_count>
      <attachid>419869</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-10 11:14:10 -0800</bug_when>
    <thetext>Created attachment 419869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727891</commentid>
    <comment_count>2</comment_count>
      <attachid>419927</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-10 17:20:05 -0800</bug_when>
    <thetext>Created attachment 419927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728094</commentid>
    <comment_count>3</comment_count>
      <attachid>419927</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-11 08:15:52 -0800</bug_when>
    <thetext>Comment on attachment 419927
Patch

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

&gt; Source/WebCore/ChangeLog:48
&gt; +        more places now, and the deduction guides we had been using don&apos;t work, so we must explicitly specify

A little sad to lose the deduction guides.

&gt; Source/WebCore/ChangeLog:54
&gt; +        intend to remove in a previous patch, but I am not actual sure is necessary. While I work that out, 

Even though I am the one who pointed it out, I think it’s not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728102</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-11 08:31:58 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 419927 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419927&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:48
&gt; &gt; +        more places now, and the deduction guides we had been using don&apos;t work, so we must explicitly specify
&gt; 
&gt; A little sad to lose the deduction guides.

Me too, though I think it is the right tradeoff for the time being. I believe c++20 fixes this. Interestingly, it is the same paper that fixes the inherited constructor issue I noted in a previous patch - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1021r5.html

(I seem to running up against the limits of modern c++ :) ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728106</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-11 08:36:36 -0800</bug_when>
    <thetext>Committed r272731: &lt;https://commits.webkit.org/r272731&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419927.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728107</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-11 08:37:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74235403&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419869</attachid>
            <date>2021-02-10 11:14:10 -0800</date>
            <delta_ts>2021-02-10 17:20:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221677-20210210111409.patch</filename>
            <type>text/plain</type>
            <size>75170</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjY2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzNiBAQAorMjAyMS0wMi0xMCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV3b3JrIFJHQiBjb2xvciB0eXBl
cyB0byBiZSBtb3JlIGRlY2xhcmF0aXZlIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uIGFuZCBt
YWtlIHByb2dyZXNzIHRvd2FyZCBiZXR0ZXIgYXV0b21hdGljIGNvbnZlcnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTY3NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSAiUkdCIiBmYW1pbHkg
b2YgY29sb3JzICh0aG9zZSBpbmhlcml0aW5nIGZyb20gUkdCVHlwZSkgYWxsIHNoYXJlIGEgY29t
bW9uIHN0cnVjdHVyZQorICAgICAgICBjYW4gYmUgZ2VuZXJhbGl6ZWQgdG8gc2ltcGxpZnkgdGhl
aXIgY29udmVyc2lvbnMgYW5kIGNlbnRyYWxpemUgdGhlaXIgZGVmaW5pdGlvbnMuCisgICAgICAg
IAorICAgICAgICBUbyBkbyB0aGlzLCBlYWNoIFJHQiBjb2xvciB0eXBlIG5vdyBkZWZpbmVzIGEg
IkRlc2NyaXB0b3IiIHR5cGUgKGUuZy4gU1JHQkRlc2NyaXB0b3IgZm9yIAorICAgICAgICBTUkdC
QSkgd2hpY2ggaW5jbHVkZXM6CisgICAgICAgICAgICAtIFdoYXQgdHJhbnNmZXIgZnVuY3Rpb24g
aXQgdXNlcyAoZS5nLiBTUkdCVHJhbnNmZXJGdW5jdGlvbikKKyAgICAgICAgICAgIC0gV2hhdCB3
aGl0ZVBvaW50IGl0IGlzIGRlZmluZWQgZm9yIChlLmcuIFdoaXRlUG9pbnQ6OkQ2NSkKKyAgICAg
ICAgICAgIC0gV2hhdCBtYXRyaWNlcyBpdCB1c2VzIHRvIGNvbnZlcnQgZnJvbSBsaW5lYXIgdG8g
eHl6IGFuZCBmcm9tIHh5eiB0byBsaW5lYXIuCisKKyAgICAgICAgVGhlbiB1c2luZyB0eXBlIGFs
aWFzZXMsIHRoZSBjb2xvciB0eXBlIGlzIGRlZmluZWQgdXNpbmcgdGhlIGRlc2NyaXB0b3IgYW5k
IG9uZSBvZiB0aGUgZm91cgorICAgICAgICBiYXNlIHR5cGVzOiBCb3VuZGVkR2FtbWFFbmNvZGVk
LCBCb3VuZGVkTGluZWFyRW5jb2RlZCwgRXh0ZW5kZWRHYW1tYUVuY29kZWQsIGFuZCBFeHRlbmRl
ZExpbmVhckVuY29kZWQuCisgICAgICAgIFNvLCBmb3IgdGhlIFNSR0JBIGZhbWlseSBvZiBjb2xv
ciB0eXBlcywgdGhleSBhcmUgZGVmaW5lZCBhczoKKyAgICAgICAgCisgICAgICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBTUkdCQSA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgU1JH
QkFEZXNjcmlwdG9yPFQ+PjsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5n
IExpbmVhclNSR0JBID0gQm91bmRlZExpbmVhckVuY29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+
PjsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkU1JHQkEg
PSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworICAgICAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyRXh0ZW5kZWRTUkdCQSA9IEV4dGVu
ZGVkTGluZWFyRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworCisgICAgICAgIEJ5IHVz
aW5nIHR5cGUgYWxpYXNlcyBsaWtlIHRoaXMsIHdlIGdhaW4gdGhlIGFiaWxpdHkgdG8gZWFzaWx5
IHNldCB1cCByZWxhdGlvbnNoaXBzIGJldHdlZW4KKyAgICAgICAgdGhlIHR5cGVzLiBGb3IgaW5z
dGFuY2UsIHRoZSBCb3VuZGVkR2FtbWFFbmNvZGVkIHR5cGUgaGFzIHRoZSBmb2xsb3dpbmcgbWVt
YmVyczoKKworICAgICAgICAgICAgdXNpbmcgTGluZWFyQ291bnRlcnBhcnQgPSBCb3VuZGVkTGlu
ZWFyRW5jb2RlZDxULCBEPjsKKyAgICAgICAgICAgIHVzaW5nIEV4dGVuZGVkQ291bnRlcnBhcnQg
PSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBEPjsKKworICAgICAgICBXaGVyZSBEIGlzIHRoZSAi
RGVzY3JpcHRvciIgaXQgd2FzIG1hZGUgd2l0aC4gVGhpcyBhbGxvd3MgaGVscGVyIGZ1bmN0aW9u
cyBzdWNoIGFzIHRoZSBjb252ZXJzaW9uCisgICAgICAgIGZ1bmN0aW9ucyB0byBhdXRvbWF0aWNh
bGx5IGtub3cgd2hhdCBjb3VudGVycGFydCB0byB1c2Ugd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUg
c3BlY2lhbGl6ZWQgdmVyc2lvbnMKKyAgICAgICAgZm9yIGVhY2ggcGFpci4gVGhpcyB3aWxsIGFp
ZCBpbiB1bmlmeWluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmdXJ0aGVyLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGFsc28gcmVtb3ZlcyB0aGUgWFlaUmVmZXJlbmNlIG1lbWJlciBvZiB0aGUgY29s
b3IgdHlwZXMsIHJlcGxhY2luZyBpdCB3aXRoIHRoZQorICAgICAgICBXaGl0ZVBvaW50LCB3aGlj
aCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIFhZWlJlZmVyZW5jZSBhcyBpcyBkb25lIGJ5
IHRoZSBuZXcgWFlaRm9yPD4gYWxpYXMuCisgICAgICAgIFRoaXMgd2lsbCBhbGxvdyBmb3Igc3Ry
YWlndGhmb3J3YXJkIGNvbXBhcmlzb25zIHdoZW4gd2Ugc3RvcCBhbHdheXMgY29udmVydGluZyB0
aHJvdWdoIFhZWkEuCisKKyAgICAgICAgQXMgYSByZXN1bHQgb2YgbW92aW5nIHRoZSBtYXRyaWNl
cyB0byB0aGUgY29sb3IgdHlwZSBkZXNjcmlwdG9ycywgd2UgY2FuIG5vdyBzaW1wbGlmeSBhbGwg
dGhlCisgICAgICAgIGxpbmVhciB0byB4eXogYW5kIHh5eiB0byBsaW5lYXIgY29udmVyc2lvbnMg
dG8gdXNlIGdlbmVyaWMgZnVuY3Rpb25zIChjYWxsZWQgbGluZWFyVG9YWVogYW5kIAorICAgICAg
ICB4eXpUb0xpbmVhciBub3Qgc3VwcmlzaW5nbHkpIGFuZCBzaW5jZSB0aGUgZGVzY3JpcHRvcnMg
YWxzbyBpbmNsdWRlIHRoZSB0cmFuc2ZlciBmdW5jdGlvbiB3ZQorICAgICAgICBjYW4gZnVydGhl
ciBzaW1wbGlmeSB0aGUgZ2FtbWEgY29udmVyc2lvbiBmdW5jdGlvbnMgdG8gbm8gbG9uZ2VyIGV4
cGxpY2l0bHkgcGFzc2luZyB0aGUgdHJhbnNmZXIKKyAgICAgICAgZnVuY3Rpb24uCisKKyAgICAg
ICAgVHdvIGNvbnNlcXVlbmVzIG9mIHVzaW5nIGNvbXBsZXggdHlwZSBhbGlhc2VzIGZvciB0aGUg
Y29sb3IgdHlwZXMsIHJhdGhlciB0aGFuIGRpcmVjdCBzdHJ1Y3RzLCBpcyAKKyAgICAgICAgdGhh
dCB3ZSBjYW4gbm8gbG9uZ2VyIGVhc2lseSBmb3J3YXJkIGRlY2xhcmUgdGhlIGNvbG9yIHR5cGVz
LCBzbyBDb2xvclR5cGVzLmggaXMgaW5jbHVkZWQgaW4gYSBmZXcKKyAgICAgICAgbW9yZSBwbGFj
ZXMgbm93LCBhbmQgdGhlIGRlZHVjdGlvbiBndWlkZXMgd2UgaGFkIGJlZW4gdXNpbmcgZG9uJ3Qg
d29yaywgc28gd2UgbXVzdCBleHBsaWNpdGx5IHNwZWNpZnkKKyAgICAgICAgdGhlIHR5cGUgaW4g
YSBmZXcgcGxhY2VzLiBXZSBzaG91bGQgYmUgYWJsZSB0byByZWR1Y2UgdGhlIGFtb3VudCBpbmNs
dWRlZCBpbiBtb3N0IHBsYWNlcyBieSBzcGxpdHRpbmcKKyAgICAgICAgdXAgdGhlIGNvbG9yIHR5
cGVzIGludG8gdGhlaXIgb3duIGhlYWRlcnMsIGFuZCBvbmx5IGluY2x1ZGluZyB0aGUgbmVlZGVk
IGNvbG9yIHR5cGUsIG9ubHkgU1JHQkEgaW4KKyAgICAgICAgcHJhY3RpY2UuCisKKyAgICAgICAg
VGhpcyBhbHNvIGFkZHMgYmFjayBhIG1pc3NpbmcgY2xhbXAgdG8gdGhlIGNvbnZlcnNpb24gZnJv
bSBTUkdCQTxmbG9hdD4gdG8gU1JHQkE8dWludDhfdD4gdGhhdCBJIGRpZG4ndAorICAgICAgICBp
bnRlbmQgdG8gcmVtb3ZlIGluIGEgcHJldmlvdXMgcGF0Y2gsIGJ1dCBJIGFtIG5vdCBhY3R1YWwg
c3VyZSBpcyBuZWNlc3NhcnkuIFdoaWxlIEkgd29yayB0aGF0IG91dCwgCisgICAgICAgIGJldHRl
ciB0byBhZGQgaXQgYmFjay4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6bGlnaHRl
bmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpkYXJrZW5lZCBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb21wb25lbnRzLmg6CisgICAgICAgIChX
ZWJDb3JlOjptYXBDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0xpbmVhcik6CisgICAg
ICAgIChXZWJDb3JlOjp0b0dhbW1hRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBOThSR0I8
ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJBOThSR0I8ZmxvYXQ+
Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVy
dCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVydCk6
CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNSR0JBPGZs
b2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6
Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6CisgICAgICAgIChXZWJD
b3JlOjpsaW5lYXJUb1hZWik6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGluZWFyQTk4UkdC
PGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFla
Rm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYWI8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8
TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8
ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxm
bG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRTUkdC
QTxmbG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpIU0xBPGZsb2F0Pj46OmNv
bnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPEhTTEE8ZmxvYXQ+Pj46OmNvbnZlcnQp
OgorICAgICAgICAoV2ViQ29yZTo6SFdCQTxmbG9hdD4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxDSEE8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TENIQTxm
bG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8UHJvUGhvdG9SR0I8
ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8Zmxv
YXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+
Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVy
ZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyRGlz
cGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29u
dmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9h
dD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252
ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxhYjxmbG9hdD46OlJlZmVyZW5jZVhZ
Wj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QTk4UkdCPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhTTEE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpj
b252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhXQkE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxDSEE8ZmxvYXQ+
OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBy
b1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNv
bnZlcnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJzaW9uOjpjb252ZXJ0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgIChXZWJDb3Jl
Ojphc0NvbG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
YWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpibGVu
ZFBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpwaXhlbFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlU2ltcGxlQ29s
b3JGcm9tQVJHQkNGQXJyYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRBbmRDbGFtcFRvU1JHQkFMb3NzeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjptYWtlU2ltcGxlQ29sb3JGcm9tTlNDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0NvbG9ySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGcm9tVUlDb2xvcik6CisKIDIw
MjEtMDItMTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW0ludGVncmF0aW9uXSBQYWludCBpbnZhbGlkYXRpb24gZm9yIGlubGluZSBlbGVtZW50IHN0
eWxlIGNoYW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAkocmV2
aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbG9yVHlwZXMuaCIKICNpbmNsdWRlICJXcml0aW5n
TW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNDIsNyArNDMsNiBAQCBjbGFzcyBTdHlsZVJ1bGVCYXNlOwogY2xhc3Mg
U3R5bGVSdWxlS2V5ZnJhbWU7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBjbGFzcyBSZW5k
ZXJTdHlsZTsKLXRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKIG5hbWVzcGFjZSBD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMgewogc3RydWN0IEZvbnRSYXc7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmgJKHJldmlzaW9uIDI3
MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMyBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJDb2xv
clR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NWYWx1ZTsKIAotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsK
LQogc3RydWN0IENTU1BhcnNlckNvbnRleHQ7CiAKIGNsYXNzIENTU1BhcnNlckZhc3RQYXRocyB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZp
c2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgQ29sb3IgQ29sb3I6OmxpZ2h0ZW5l
ZCgpIGNvbnN0CiAKICAgICBmbG9hdCBtdWx0aXBsaWVyID0gc3RkOjptaW4oMS4wZiwgdiArIDAu
MzNmKSAvIHY7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdC
QSB7IG11bHRpcGxpZXIgKiByLCBtdWx0aXBsaWVyICogZywgbXVsdGlwbGllciAqIGIsIGEgfSk7
CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsg
bXVsdGlwbGllciAqIHIsIG11bHRpcGxpZXIgKiBnLCBtdWx0aXBsaWVyICogYiwgYSB9KTsKIH0K
IAogQ29sb3IgQ29sb3I6OmRhcmtlbmVkKCkgY29uc3QKQEAgLTEwNSw3ICsxMDUsNyBAQCBDb2xv
ciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogICAgIGZsb2F0IHYgPSBzdGQ6Om1heCh7IHIsIGcs
IGIgfSk7CiAgICAgZmxvYXQgbXVsdGlwbGllciA9IHN0ZDo6bWF4KDAuMGYsICh2IC0gMC4zM2Yp
IC8gdik7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7
IG11bHRpcGxpZXIgKiByLCBtdWx0aXBsaWVyICogZywgbXVsdGlwbGllciAqIGIsIGEgfSk7Cisg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsgbXVs
dGlwbGllciAqIHIsIG11bHRpcGxpZXIgKiBnLCBtdWx0aXBsaWVyICogYiwgYSB9KTsKIH0KIAog
ZmxvYXQgQ29sb3I6OmxpZ2h0bmVzcygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAkocmV2aXNpb24gMjcyNjU1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb21wb25lbnRzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgY29uc3RleHByIGF1dG8gbWFwQ29sb3JD
b21wb25lbnRzKEYmJiBmdQogICAgIHN0YXRpY19hc3NlcnQoc3RkOjpjb25qdW5jdGlvbl92PHN0
ZDo6Ym9vbF9jb25zdGFudDxUczo6U2l6ZSA9PSBUOjpTaXplPi4uLj4sICJBbGwgQ29sb3JDb21w
b25lbnRzIHBhc3NlZCB0byBtYXBDb2xvckNvbXBvbmVudHMgbXVzdCBoYXZlIHRoZSBzYW1lIHNp
emUiKTsKIAogICAgIENvbG9yQ29tcG9uZW50czxkZWNsdHlwZShmdW5jdGlvbihjb21wb25lbnRb
MF0sIGNvbXBvbmVudHNbMF0uLi4pKT4gcmVzdWx0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgVDo6U2l6ZTsgKytpKQorICAgIGZvciAoc3RkOjpyZW1vdmVfY29uc3RfdDxkZWNsdHlwZShU
OjpTaXplKT4gaSA9IDA7IGkgPCBUOjpTaXplOyArK2kpCiAgICAgICAgIHJlc3VsdFtpXSA9IGZ1
bmN0aW9uKGNvbXBvbmVudFtpXSwgY29tcG9uZW50c1tpXS4uLik7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsOTMgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3JDb252
ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJDb2xvckNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJDb2xv
ck1hdHJpeC5oIgotI2luY2x1ZGUgIkNvbG9yVHJhbnNmZXJGdW5jdGlvbnMuaCIKICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEE5OFJHQiBN
YXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3It
Y29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IHh5elRv
TGluZWFyQTk4UkdCTWF0cml4IHsKLSAgICAgMi40OTM0OTY5MTE5NDE0MjVmLCAgLTAuOTMxMzgz
NjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4NDQ1MDcxNjhmLAotICAgIC0wLjgyOTQ4ODk2OTU2MTU3
NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYzZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCi0gICAgIDAu
MDM1ODQ1ODMwMjQzNzg0NWYsIC0wLjA3NjE3MjM4OTI2ODA0MThmLCAgMC45NTY4ODQ1MjQwMDc2
ODcyZgotfTsKLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3It
Y29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVh
ckE5OFJHQlRvWFlaTWF0cml4IHsKLSAgICAwLjU3NjY2OTA0MjkxMDEzMDVmLCAgIDAuMTg1NTU4
MjM3OTA2NTQ2M2YsICAgMC4xODgyMjg2NDYyMzQ5OTQ3ZiwKLSAgICAwLjI5NzM0NDk3NTI1MDUz
NjA1ZiwgIDAuNjI3MzYzNTY2MjU1NDY2MWYsICAgMC4wNzUyOTE0NTg0OTM5OTc4OGYsCi0gICAg
MC4wMjcwMzEzNjEzODY0MTIzNGYsICAwLjA3MDY4ODg1MjUzNTgyNzIzZiwgIDAuOTkxMzM3NTM2
ODM3NjM4OGYKLX07Ci0KLS8vIERpc3BsYXlQMyBNYXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29u
c3RleHByIENvbG9yTWF0cml4PDMsIDM+IHh5elRvTGluZWFyRGlzcGxheVAzTWF0cml4IHsKLSAg
ICAgMi40OTM0OTY5MTE5NDE0MjVmLCAgLTAuOTMxMzgzNjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4
NDQ1MDcxNjhmLAotICAgIC0wLjgyOTQ4ODk2OTU2MTU3NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYz
ZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCi0gICAgIDAuMDM1ODQ1ODMwMjQzNzg0NWYsIC0wLjA3
NjE3MjM4OTI2ODA0MThmLCAgMC45NTY4ODQ1MjQwMDc2ODcyZgotfTsKLQotLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMg
Y29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhckRpc3BsYXlQM1RvWFlaTWF0cml4IHsK
LSAgICAwLjQ4NjU3MDk0ODY0ODIxNjJmLCAwLjI2NTY2NzY5MzE2OTA5MzFmLCAwLjE5ODIxNzI4
NTIzNDM2M2YsCi0gICAgMC4yMjg5NzQ1NjQwNjk3NDg4ZiwgMC42OTE3Mzg1MjE4MzY1MDY0Ziwg
MC4wNzkyODY5MTQwOTM3NDVmLAotICAgIDAuMGYsICAgICAgICAgICAgICAgIDAuMDQ1MTEzMzgx
ODU4OTAyNmYsIDEuMDQzOTQ0MzY4OTAwOTc2ZgotfTsKLQotLy8gUHJvUGhvdG9SR0IgTWF0cmlj
ZXMuCi0KLS8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3IvI2NvbG9yLWNvbnZl
cnNpb24tY29kZQotc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVh
clByb1Bob3RvUkdCTWF0cml4IHsKLSAgICAgMS4zNDU3OTg5NzMxMDI4MjgxZiwgIC0wLjI1NTU4
MDEwMDA3OTk3NTM0ZiwgIC0wLjA1MTEwNjI4NTA2NzUzNDAxZiwKLSAgICAtMC41NDQ2MjI0OTM5
MDI4MzQ3ZiwgICAxLjUwODIzMjc0MTMxMzI3ODFmLCAgICAwLjAyMDUzNjAzMjM5MTQ3OTczZiwK
LSAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAwLjBmLCAgICAgICAgICAgICAgICAgICAxLjIx
MTk2NzU0NTYzODk0NTRmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8
MywgMz4gbGluZWFyUHJvUGhvdG9SR0JUb1hZWk1hdHJpeCB7Ci0gICAgMC43OTc3NjA0ODk2NzIz
MDI3ZiwgIDAuMTM1MTg1ODM3MTc1NzQwMzFmLCAgMC4wMzEzNDkzNDk1ODE1MjQ4ZiwKLSAgICAw
LjI4ODA3MTEyODIyOTI5MzRmLCAgMC43MTE4NDMyMTc4MTAxMDE0ZiwgICAwLjAwMDA4NTY1Mzk2
MDYwNTI1OTAyZiwKLSAgICAwLjBmLCAgICAgICAgICAgICAgICAgMC4wZiwgICAgICAgICAgICAg
ICAgICAwLjgyNTEwNDYwMjUxMDQ2MDFmCi19OwotCi0vLyBSZWMyMDIwIE1hdHJpY2VzLgotCi0v
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1jb252ZXJzaW9uLWNv
ZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4geHl6VG9MaW5lYXJSZWMyMDIw
TWF0cml4IHsKLSAgICAgMS43MTY2NTExODc5NzEyNjc0ZiwgICAtMC4zNTU2NzA3ODM3NzYzOTIz
M2YsIC0wLjI1MzM2NjI4MTM3MzY1OTc0ZiwKLSAgICAtMC42NjY2ODQzNTE4MzI0ODkyZiwgICAg
MS42MTY0ODEyMzY2MzQ5Mzk1ZiwgICAwLjAxNTc2ODU0NTgxMzkxMTEzZiwKLSAgICAgMC4wMTc2
Mzk4NTc0NDUzMTA3ODNmLCAtMC4wNDI3NzA2MTMyNTc4MDg1MjRmLCAwLjk0MjEwMzEyMTIzNTQ3
MzhmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1j
b252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gbGluZWFy
UmVjMjAyMFRvWFlaTWF0cml4IHsKLSAgICAwLjYzNjk1ODA0ODMwMTI5MTRmLCAwLjE0NDYxNjkw
MzU4NjIwODMyZiwgIDAuMTY4ODgwOTc1MTY0MTcyMWYsCi0gICAgMC4yNjI3MDAyMTIwMTEyNjcx
ZiwgMC42Nzc5OTgwNzE1MTg4NzA4ZiwgICAwLjA1OTMwMTcxNjQ2OTg2MTk2ZiwKLSAgICAwLjAw
MDAwMDAwMDAwMDAwMGYsICAwLjAyODA3MjY5MzA0OTA4NzQyOGYsIDEuMDYwOTg1MDU3NzEwNzkx
ZgotfTsKLQotLy8gc1JHQiBNYXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9y
TWF0cml4PDMsIDM+IHh5elRvTGluZWFyU1JHQk1hdHJpeCB7Ci0gICAgIDMuMjQwOTY5OTQxOTA0
NTIyNmYsICAtMS41MzczODMxNzc1NzAwOTRmLCAgIC0wLjQ5ODYxMDc2MDI5MzAwMzRmLAotICAg
IC0wLjk2OTI0MzYzNjI4MDg3OTZmLCAgIDEuODc1OTY3NTAxNTA3NzIwMmYsICAgMC4wNDE1NTUw
NTc0MDcxNzU1OWYsCi0gICAgIDAuMDU1NjMwMDc5Njk2OTkzNjZmLCAtMC4yMDM5NzY5NTg4ODg5
NzY1MmYsICAxLjA1Njk3MTUxNDI0Mjg3ODZmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIg
Q29sb3JNYXRyaXg8MywgMz4gbGluZWFyU1JHQlRvWFlaTWF0cml4IHsKLSAgICAwLjQxMjM5MDc5
OTI2NTk1OTM0ZiwgMC4zNTc1ODQzMzkzODM4NzhmLCAgIDAuMTgwNDgwNzg4NDAxODM0M2YsCi0g
ICAgMC4yMTI2MzkwMDU4NzE1MTAyN2YsIDAuNzE1MTY4Njc4NzY3NzU2ZiwgICAwLjA3MjE5MjMx
NTM2MDczMzcxZiwKLSAgICAwLjAxOTMzMDgxODcxNTU5MTgyZiwgMC4xMTkxOTQ3Nzk3OTQ2MjU5
OGYsIDAuOTUwNTMyMTUyMjQ5NjYwN2YKLX07Ci0KIC8vIENocm9tYXRpYyBBZGFwdGF0aW9uIE1h
dHJpY2VzLgogCiAvLyBodHRwOi8vd3d3LmJydWNlbGluZGJsb29tLmNvbS9pbmRleC5odG1sP0Vx
bl9DaHJvbUFkYXB0Lmh0bWwKQEAgLTE0MywxNjIgKzYwLDE3MiBAQCBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+IENvbG9yQ29udmVyCiAKIC8vIE1BUks6IEdhbW1hIGNvbnZlcnNpb25zLgog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUcmFuc2ZlckZ1bmN0aW9uLCB0eXBlbmFtZSBDb2xvclR5cGU+
IHN0YXRpYyBhdXRvIHRvTGluZWFyKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1l
IENvbG9yVHlwZTo6TGluZWFyQ291bnRlcnBhcnQKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIoY29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5h
bWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydAogewogICAgIGF1dG8gW2MxLCBjMiwgYzMs
IGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IFRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFy
KGMxKSwgVHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzIpLCBUcmFuc2ZlckZ1bmN0aW9uOjp0
b0xpbmVhcihjMyksIGFscGhhIH07CisgICAgcmV0dXJuIHsgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMSksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5l
YXIoYzIpLCBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMzKSwgYWxwaGEg
fTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVHJhbnNmZXJGdW5jdGlvbiwgdHlwZW5hbWUgQ29s
b3JUeXBlPiBzdGF0aWMgYXV0byB0b0dhbW1hRW5jb2RlZChjb25zdCBDb2xvclR5cGUmIGNvbG9y
KSAtPiB0eXBlbmFtZSBDb2xvclR5cGU6OkdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0YXRpYyBhdXRvIHRvR2FtbWFFbmNvZGVkKGNvbnN0IENv
bG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6R2FtbWFFbmNvZGVkQ291bnRl
cnBhcnQKIHsKICAgICBhdXRvIFtjMSwgYzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKLSAgICByZXR1
cm4geyBUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1hRW5jb2RlZChjMSksIFRyYW5zZmVyRnVuY3Rp
b246OnRvR2FtbWFFbmNvZGVkKGMyKSwgVHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQo
YzMpLCBhbHBoYSB9OworICAgIHJldHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6
dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvR2FtbWFF
bmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1hRW5jb2RlZChj
MyksIGFscGhhIH07CiB9CiAKIC8vIEE5OFJHQiA8LT4gTGluZWFyQTk4UkdCIGNvbnZlcnNpb25z
LgogCiBMaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8Zmxv
YXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+JiBjb2xvcikK
IHsKLSAgICByZXR1cm4gdG9MaW5lYXI8QTk4UkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwgVHJh
bnNmZXJGdW5jdGlvbk1vZGU6OkNsYW1wZWQ+Pihjb2xvcik7CisgICAgcmV0dXJuIHRvTGluZWFy
KGNvbG9yKTsKIH0KIAogQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0
PiwgTGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0
PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkPEE5OFJHQlRyYW5zZmVyRnVu
Y3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAg
IHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8vIERpc3BsYXlQMyA8LT4gTGlu
ZWFyRGlzcGxheVAzIGNvbnZlcnNpb25zLgogCiBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5l
YXI8U1JHQlRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFt
cGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0xpbmVhcihjb2xvcik7CiB9CiAKIERpc3BsYXlQ
MzxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9hdD4sIExpbmVhckRpc3BsYXlQ
MzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQog
ewotICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZDxTUkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwg
VHJhbnNmZXJGdW5jdGlvbk1vZGU6OkNsYW1wZWQ+Pihjb2xvcik7CisgICAgcmV0dXJuIHRvR2Ft
bWFFbmNvZGVkKGNvbG9yKTsKIH0KIAogLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5k
ZWRTUkdCQSBjb252ZXJzaW9ucy4KIAogTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JD
b252ZXJzaW9uPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0
Pj46OmNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQogewotICAgIHJl
dHVybiB0b0xpbmVhcjxTUkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwgVHJhbnNmZXJGdW5jdGlv
bk1vZGU6OlVuY2xhbXBlZD4+KGNvbG9yKTsKKyAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwog
fQogCiBFeHRlbmRlZFNSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxm
bG9hdD4sIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJF
eHRlbmRlZFNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
PFNSR0JUcmFuc2ZlckZ1bmN0aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6VW5jbGFt
cGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8v
IFByb1Bob3RvUkdCIDwtPiBMaW5lYXJQcm9QaG90b1JHQiBjb252ZXJzaW9ucy4KIAogTGluZWFy
UHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9h
dD4sIFByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8UHJvUGhvdG9SR0JUcmFuc2ZlckZ1bmN0
aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBlZD4+KGNvbG9yKTsKKyAgICBy
ZXR1cm4gdG9MaW5lYXIoY29sb3IpOwogfQogCiBQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPFByb1Bob3RvUkdCPGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVy
biB0b0dhbW1hRW5jb2RlZDxQcm9QaG90b1JHQlRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5z
ZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5j
b2RlZChjb2xvcik7CiB9CiAKIC8vIFJlYzIwMjAgPC0+IExpbmVhclJlYzIwMjAgY29udmVyc2lv
bnMuCiAKIExpbmVhclJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJSZWMyMDIw
PGZsb2F0PiwgUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFJlYzIwMjA8ZmxvYXQ+JiBj
b2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8UmVjMjAyMFRyYW5zZmVyRnVuY3Rpb248Zmxv
YXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAgIHJldHVybiB0
b0xpbmVhcihjb2xvcik7CiB9CiAKIFJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxSZWMy
MDIwPGZsb2F0PiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJl
YzIwMjA8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQ8UmVjMjAy
MFRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4o
Y29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8vIFNSR0JB
IDwtPiBMaW5lYXJTUkdCQSBjb252ZXJzaW9ucy4KIAogTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29u
c3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8U1JHQlRyYW5z
ZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3Ip
OworICAgIHJldHVybiB0b0xpbmVhcihjb2xvcik7CiB9CiAKIFNSR0JBPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0
IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
PFNSR0JUcmFuc2ZlckZ1bmN0aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBl
ZD4+KGNvbG9yKTsKKyAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwogfQogCiAvLyBN
QVJLOiBNYXRyaXggY29udmVyc2lvbnMgKHRvIGFuZCBmcm9tIFhZWiBmb3IgYWxsIGxpbmVhciBj
b2xvciB0eXBlcykuCiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8g
eHl6VG9MaW5lYXIoY29uc3QgWFlaRm9yPENvbG9yVHlwZT4mIGNvbG9yKSAtPiBDb2xvclR5cGUK
K3sKKyAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxDb2xv
clR5cGU+KENvbG9yVHlwZTo6eHl6VG9MaW5lYXIudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gc3RhdGljIGF1dG8gbGluZWFyVG9YWVooY29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4g
WFlaRm9yPENvbG9yVHlwZT4KK3sKKyAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBp
bmdFeGNlcHRBbHBoYTxYWVpGb3I8Q29sb3JUeXBlPj4oQ29sb3JUeXBlOjpsaW5lYXJUb1hZWi50
cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30K
KwogLy8gLSBMaW5lYXJBOThSR0IgbWF0cml4IGNvbnZlcnNpb25zLgogCi1MaW5lYXJBOThSR0I8
ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD46
OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lv
bjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252
ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0
dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyQTk4UkdCPGZs
b2F0Pj4oeHl6VG9MaW5lYXJBOThSR0JNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVh
ckE5OFJHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyQTk4UkdCPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVos
IExpbmVhckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD4m
IGNvbG9yKQorWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4sIExpbmVhckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhckE5OFJHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNv
bXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPExpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVyZW5j
ZVhZWj4obGluZWFyQTk4UkdCVG9YWVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVh
ckE5OFJHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAogLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4
IGNvbnZlcnNpb25zLgogCi1MaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VY
WVo+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiYg
Y29sb3IpCitMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNv
bnN0IFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJu
IG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4oeHl6VG9MaW5lYXJEaXNwbGF5UDNNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVu
dHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFyPExp
bmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyRGlzcGxheVAzPGZsb2F0
Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVosIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+
IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4sIExpbmVhckRp
c3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mIGNv
bG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhh
PExpbmVhckRpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4obGluZWFyRGlzcGxheVAzVG9Y
WVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29s
b3IpKSk7CisgICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNv
bG9yKTsKIH0KIAogLy8gLSBMaW5lYXJFeHRlbmRlZFNSR0JBIG1hdHJpeCBjb252ZXJzaW9ucy4K
IAotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
JiBjb2xvcikKK0xpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYgY29s
b3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KHh5elRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zv
cm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1
cm4geHl6VG9MaW5lYXI8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKTsKIH0KIAot
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFyRXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBj
b2xvcikKK1hZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiYgY29sb3Ip
CiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGlu
ZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj4obGluZWFyU1JHQlRvWFlaTWF0
cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkp
OworICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29s
b3IpOwogfQogCiAvLyAtIExpbmVhclByb1Bob3RvUkdCIG1hdHJpeCBjb252ZXJzaW9ucy4KIAot
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JH
QjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVy
dChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0
IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+JiBjb2xvcikKIHsKLSAgICByZXR1cm4g
bWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxMaW5lYXJQcm9QaG90b1JHQjxm
bG9hdD4+KHh5elRvTGluZWFyUHJvUGhvdG9SR0JNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBv
bmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFy
PExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4oY29sb3IpOwogfQogCi1MaW5lYXJQcm9QaG90b1JH
QjxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQo
Y29uc3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKK1hZWkZvcjxMaW5lYXJQcm9Q
aG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQ
cm9QaG90b1JHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZ0V4Y2VwdEFscGhhPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaPihsaW5lYXJQcm9QaG90b1JHQlRvWFlaTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25l
bnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworICAgIHJldHVybiBsaW5lYXJUb1hZWjxM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAogLy8gLSBMaW5lYXJSZWMyMDIw
IG1hdHJpeCBjb252ZXJzaW9ucy4KIAotTGluZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJz
aW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaPjo6Y29udmVydChjb25zdCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJiBj
b2xvcikKK0xpbmVhclJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJSZWMyMDIw
PGZsb2F0PiwgWFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFla
Rm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9t
Q29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyUmVjMjAyMDxmbG9hdD4+KHh5elRv
TGluZWFyUmVjMjAyME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29t
cG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUmVjMjAyMDxm
bG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiBD
b2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFy
UmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xv
cikKK1hZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxM
aW5lYXJSZWMyMDIwPGZsb2F0Pj4sIExpbmVhclJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25z
dCBMaW5lYXJSZWMyMDIwPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29t
cG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5j
ZVhZWj4obGluZWFyUmVjMjAyMFRvWFlaTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRz
KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5l
YXJSZWMyMDIwPGZsb2F0Pj4oY29sb3IpOwogfQogCiAvLyAtIExpbmVhclNSR0JBIG1hdHJpeCBj
b252ZXJzaW9ucy4KIAotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJT
UkdCQTxmbG9hdD4sIExpbmVhclNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydChj
b25zdCBMaW5lYXJTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMaW5lYXJTUkdC
QTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVh
clNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRB
bHBoYTxMaW5lYXJTUkdCQTxmbG9hdD4+KHh5elRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zvcm1l
ZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4g
eHl6VG9MaW5lYXI8TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcik7CiB9CiAKLUxpbmVhclNSR0JB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJT
UkdCQTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252
ZXJzaW9uPFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1h
a2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyU1JHQkE8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVo+KGxpbmVhclNSR0JUb1hZWk1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9u
ZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4gbGluZWFyVG9YWVo8
TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcik7CiB9CiAKIC8vIE1BUks6IEhTTCBjb252ZXJzaW9u
cy4KQEAgLTQ1NCw3ICszODEsNyBAQCBzdGF0aWMgY29uc3RleHByIGZsb2F0IExBQmUgPSAyMTYu
MGYgLyAyCiBzdGF0aWMgY29uc3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOwog
c3RhdGljIGNvbnN0ZXhwciBmbG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4w
ZiwgMC44MjUyMWYgfTsKIAotTGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lv
bjxMYWI8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExh
YjxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExhYjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGFiPGZsb2F0Pj4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQogewogICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4w
ZjsKICAgICBmbG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDg0LDcgKzQx
MSw3IEBAIExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb24KICAgICByZXR1
cm4geyB4LCB5LCB6LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMYWI8ZmxvYXQ+LCBMYWI8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0
IExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMYWI8ZmxvYXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZv
cjxMYWI8ZmxvYXQ+PiYgY29sb3IpCiB7CiAgICAgZmxvYXQgeCA9IGNvbG9yLnggLyBENTBXaGl0
ZVZhbHVlc1swXTsKICAgICBmbG9hdCB5ID0gY29sb3IueSAvIEQ1MFdoaXRlVmFsdWVzWzFdOwpA
QCAtNTM4LDEwOCArNDY1LDEwOCBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8Zmxv
YXQ+LCBMCiAKIC8vIC0gQTk4UkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KIAotQTk4UkdCPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9y
KQorWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8QTk4UkdCPGZs
b2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9y
KQogewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFla
Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExpbmVhckE5
OFJHQjxmbG9hdD4+KGNvbG9yKSk7CiB9CiAKLUE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9u
PEE5OFJHQjxmbG9hdD4sIEE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29u
c3QgQTk4UkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJiBjb2xvcikKK0E5OFJHQjxmbG9hdD4gQ29s
b3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD4sIFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZl
cnQoY29uc3QgWFlaRm9yPEE5OFJHQjxmbG9hdD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29u
dmVydENvbG9yPEE5OFJHQjxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCiAvLyAtIERpc3BsYXlQMyBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCiAK
LURpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248RGlzcGxheVAz
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBE
aXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKK1hZWkZvcjxEaXNwbGF5UDM8ZmxvYXQ+PiBDb2xvckNv
bnZlcnNpb248WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+LCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVy
dENvbG9yPERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29udmVydENvbG9yPExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpG
b3I8RGlzcGxheVAzPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1EaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxEaXNwbGF5
UDM8ZmxvYXQ+LCBEaXNwbGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0
IERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitEaXNwbGF5UDM8ZmxvYXQ+
IENvbG9yQ29udmVyc2lvbjxEaXNwbGF5UDM8ZmxvYXQ+LCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0
Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCiB7CiAg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxEaXNwbGF5UDM8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGlu
ZWFyRGlzcGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKIH0KIAogLy8gLSBFeHRlbmRlZFNSR0IgY29t
YmluYXRpb24gZnVuY3Rpb25zLgogCi1FeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
IENvbG9yQ29udmVyc2lvbjxFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBFeHRl
bmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNv
bG9yKQorWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9y
PEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENv
bG9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+KGNvbnZlcnRDb2xvcjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4gY29udmVydENvbG9y
PFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKIH0KIAotRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JD
b252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVm
ZXJlbmNlWFlaPjo6Y29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaJiBjb2xvcikKK0V4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxFeHRlbmRl
ZFNSR0JBPGZsb2F0PiwgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29u
c3QgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYgY29sb3IpCiB7CiAgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIEhTTEEgY29tYmluYXRpb24gZnVu
Y3Rpb25zLgogCi1IU0xBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxIU0xB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBIU0xBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgSFNMQTxm
bG9hdD4mIGNvbG9yKQorWFlaRm9yPEhTTEE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9y
PEhTTEE8ZmxvYXQ+PiwgSFNMQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEhTTEE8ZmxvYXQ+JiBj
b2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEhTTEE8ZmxvYXQ+OjpSZWZlcmVuY2VY
WVo+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxYWVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihj
b2xvcikpOwogfQogCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIEhT
TEE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IEhTTEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVomIGNvbG9yKQorSFNMQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+
LCBYWVpGb3I8SFNMQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8SFNMQTxmbG9hdD4+
JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVydENvbG9yPEhTTEE8ZmxvYXQ+Pihjb252ZXJ0
Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIEhXQkEgY29tYmluYXRpb24g
ZnVuY3Rpb25zLgogCi1IV0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxI
V0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBIV0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgSFdC
QTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPEhXQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEhXQkE8ZmxvYXQ+PiwgSFdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEhXQkE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFdCQTxmbG9hdD4s
IEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVomIGNvbG9yKQorSFdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPEhXQkE8Zmxv
YXQ+LCBYWVpGb3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8SFdCQTxmbG9h
dD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVydENvbG9yPEhXQkE8ZmxvYXQ+Pihjb252
ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIExDSEEgY29tYmluYXRp
b24gZnVuY3Rpb25zLgogCi1MQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lv
bjxMQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMQ0hBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3Qg
TENIQTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExDSEE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248
WFlaRm9yPExDSEE8ZmxvYXQ+PiwgTENIQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExDSEE8Zmxv
YXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPExDSEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVo+KGNvbnZlcnRDb2xvcjxMYWI8ZmxvYXQ+Pihjb2xvcikpOworICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8WFlaRm9yPExDSEE8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExhYjxmbG9hdD4+
KGNvbG9yKSk7CiB9CiAKLUxDSEE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMQ0hBPGZsb2F0Piwg
TENIQTxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29uc3QgTENIQTxmbG9hdD46OlJl
ZmVyZW5jZVhZWiYgY29sb3IpCitMQ0hBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TENIQTxmbG9h
dD4sIFhZWkZvcjxMQ0hBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMQ0hBPGZsb2F0
Pj4mIGNvbG9yKQogewogICAgIHJldHVybiBjb252ZXJ0Q29sb3I8TENIQTxmbG9hdD4+KGNvbnZl
cnRDb2xvcjxMYWI8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIFByb1Bob3RvUkdCIGNvbWJp
bmF0aW9uIGZ1bmN0aW9ucy4KIAotUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogQ29s
b3JDb252ZXJzaW9uPFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBQcm9QaG90b1JH
QjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCitYWVpG
b3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPFByb1Bob3RvUkdC
PGZsb2F0Pj4sIFByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8
ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPFByb1Bob3RvUkdCPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaPihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+
Pihjb2xvcikpOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdCPGZs
b2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7CiB9
CiAKLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+
LCBQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29uc3QgUHJvUGhv
dG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomIGNvbG9yKQorUHJvUGhvdG9SR0I8ZmxvYXQ+IENv
bG9yQ29udmVyc2lvbjxQcm9QaG90b1JHQjxmbG9hdD4sIFhZWkZvcjxQcm9QaG90b1JHQjxmbG9h
dD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYgY29sb3IpCiB7
CiAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxQcm9QaG90b1JHQjxmbG9hdD4+KGNvbnZlcnRDb2xv
cjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7CiB9CiAKIC8vIC0gUmVjMjAyMCBj
b21iaW5hdGlvbiBmdW5jdGlvbnMuCiAKLVJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogQ29s
b3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIFJlYzIwMjA8ZmxvYXQ+
Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0PiYgY29sb3IpCitYWVpGb3I8UmVjMjAyMDxm
bG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBSZWMyMDIwPGZs
b2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29udmVydENvbG9y
PExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8
WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1SZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UmVjMjAyMDxm
bG9hdD4sIFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IFJlYzIw
MjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomIGNvbG9yKQorUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChj
b25zdCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVy
dENvbG9yPFJlYzIwMjA8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+
KGNvbG9yKSk7CiB9CiAKIC8vIC0gU1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCiAKLVNSR0JB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD46OlJlZmVy
ZW5jZVhZWiwgU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9y
KQorWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxmbG9h
dD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3IpCiB7
Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29u
dmVydENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4gY29udmVy
dENvbG9yPFhZWkZvcjxTUkdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8Zmxv
YXQ+Pihjb2xvcikpOwogfQogCi1TUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZs
b2F0PiwgU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaJiBjb2xvcikKK1NSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248
U1JHQkE8ZmxvYXQ+LCBYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9y
PFNSR0JBPGZsb2F0Pj4mIGNvbG9yKQogewogICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8
ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQpAQCAt
NjU2LDcgKzU4Myw3IEBAIFNSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQK
IFNSR0JBPHVpbnQ4X3Q+IENvbG9yQ29udmVyc2lvbjxTUkdCQTx1aW50OF90PiwgU1JHQkE8Zmxv
YXQ+Pjo6Y29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIHJldHVybiBt
YWtlRnJvbUNvbXBvbmVudHM8U1JHQkE8dWludDhfdD4+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9y
KS5tYXAoW10oZmxvYXQgdmFsdWUpIC0+IHVpbnQ4X3QgewotICAgICAgICByZXR1cm4gc3RkOjps
cm91bmQodmFsdWUgKiAyNTUuMGYpOworICAgICAgICByZXR1cm4gc3RkOjpjbGFtcChzdGQ6Omxy
b3VuZCh2YWx1ZSAqIDI1NS4wZiksIDBsLCAyNTVsKTsKICAgICB9KSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5o
CShyZXZpc2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTcgKzMyLDE4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gQWxsIGNvbG9yIHR5cGVzIG11c3QgYXQgbGVhc3QgaW1wbGVt
ZW50IHRoZSBmb2xsb3dpbmcgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gdGhlaXIgcmVmZXJlbmNl
IFhZWiBjb2xvciBzcGFjZQogLy8KLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVy
c2lvbjxgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZVhZWiwgYENvbG9yVHlwZWA8ZmxvYXQ+
PiB7Ci0vLyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29uc3QgYENvbG9yVHlwZWA8ZmxvYXQ+Jik7CisvLyAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBDb2xvclR5cGVgPGZsb2F0
Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4geworLy8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IGBDb2xvclR5cGVgPGZs
b2F0PiYpOwogLy8gICAgfTsKIC8vICAgIAotLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPGBDb2xvclR5cGVgPGZsb2F0PiwgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+IHsKLS8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8Zmxv
YXQ+IGNvbnZlcnQoY29uc3QgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKKy8v
ICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBlYDxmbG9hdD4s
IFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7CisvLyAgICAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxgQ29sb3JUeXBl
YDxmbG9hdD4+Jik7CiAvLyAgICB9OwogLy8KIC8vIEFueSBhZGRpdGlvbmFsIGNvbnZlcnNpb25z
IGNhbiBiZSB0aG91Z2h0IG9mIGFzIG9wdGltaXphdGlvbnMsIHNob3J0Y3V0dGluZyB1bm5lY2Vz
c2FyeSBzdGVwcywgdGhvdWdoCiAvLyBzb21lIG1heSBiZSBpbnRlZ3JhbCB0byB0aGUgYmFzZSBj
b252ZXJzaW9uLgogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHVzaW5nIFhZWkZvciA9
IFhZWkE8dHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlLCBDb2xvclR5cGU6OndoaXRl
UG9pbnQ+OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPdXRwdXQsIHR5cGVuYW1lIElucHV0PiBzdHJ1
Y3QgQ29sb3JDb252ZXJzaW9uOwogCkBAIC01MSwxNCArNTIsMTMgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dAogICAgIHJldHVybiBDb2xvckNvbnZlcnNpb248T3V0
cHV0LCBJbnB1dD46OmNvbnZlcnQoY29sb3IpOwogfQogCi0KIC8vIEE5OFJHQgotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiwgQTk4
UkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBOThSR0I8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVogY29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPEE5OFJHQjxmbG9hdD4+LCBBOThSR0I8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxBOThSR0I8ZmxvYXQ+PiBjb252
ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQTk4UkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IEE5
OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEE5OFJHQjxmbG9hdD4sIFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4geworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEE5OFJH
QjxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTY4LDEyICs2OCwxMiBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gRGlzcGxheVAzCi10
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaLCBEaXNwbGF5UDM8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERp
c3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9h
dD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYp
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9h
dD4sIERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBEaXNwbGF5UDM8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtODMsMTIgKzgzLDEyIEBAIHRlbXBs
YXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXIKIAogCiAvLyBFeHRlbmRlZFNSR0JB
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0
IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IHsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBj
b252ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxmbG9hdD4sIEV4dGVuZGVkU1JHQkE8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXh0ZW5k
ZWRTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdC
QTxmbG9hdD4sIFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgRXh0ZW5kZWRTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RXh0
ZW5kZWRTUkdCQTxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTk4LDEyICs5OCwx
MiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gSFNM
QQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIEhTTEE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhTTEE8Zmxv
YXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBIU0xBPGZsb2F0PiYpOwordGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxIU0xBPGZsb2F0Pj4gY29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBIU0xBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgSFNMQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8
ZmxvYXQ+LCBYWVpGb3I8SFNMQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEhTTEE8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0xMTMsMTIgKzExMywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248U1JHQkE8CiAKIAogLy8gSFdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIEhXQkE8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChj
b25zdCBIV0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZ
WkZvcjxIV0JBPGZsb2F0Pj4sIEhXQkE8ZmxvYXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFhZWkZvcjxIV0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwogfTsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhXQkE8ZmxvYXQ+LCBIV0JBPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8Zmxv
YXQ+IGNvbnZlcnQoY29uc3QgSFdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhXQkE8ZmxvYXQ+LCBYWVpGb3I8SFdCQTxmbG9hdD4+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3Qg
WFlaRm9yPEhXQkE8ZmxvYXQ+PiYpOwogfTsKIAogLy8gQWRkaXRpb25zCkBAIC0xMjgsMTIgKzEy
OCwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8CiAKIAogLy8g
TENIQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVosIExDSEE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExDSEE8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwordGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8Zmxv
YXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMQ0hBPGZsb2F0Pj4gY29u
dmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBMQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTENIQTxmbG9h
dD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExD
SEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExDSEE8ZmxvYXQ+PiYpOwogfTsK
IAogLy8gQWRkaXRpb25zCkBAIC0xNDMsMTIgKzE0MywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248TGFiPGZsCiAKIAogLy8gTGFiCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248TGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMYWI8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNv
bnN0IExhYjxmbG9hdD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGFiPGZsb2F0Pj4sIExhYjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
WFlaRm9yPExhYjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExhYjxmbG9hdD4sIExhYjxmbG9hdD46OlJl
ZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMYWI8ZmxvYXQ+IGNvbnZl
cnQoY29uc3QgTGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248TGFiPGZsb2F0PiwgWFlaRm9yPExhYjxmbG9hdD4+PiB7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGFiPGZs
b2F0Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtMTU4LDEyICsxNTgsMTIgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExDSEE8ZgogCiAKIC8vIExpbmVhckE5OFJHQgot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckE5OFJHQjxmbG9hdD46OlJl
ZmVyZW5jZVhZWiwgTGluZWFyQTk4UkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBMaW5l
YXJBOThSR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPExpbmVhckE5OFJHQjxmbG9hdD4+LCBMaW5lYXJBOThSR0I8ZmxvYXQ+PiB7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiBjb252ZXJ0KGNv
bnN0IExpbmVhckE5OFJHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyQTk4UkdCPGZsb2F0
PiBjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckE5OFJHQjxmbG9hdD4sIFhZWkZv
cjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5l
YXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+
Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTE3MywxMiArMTczLDEyIEBAIHRlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0IKIAogCiAvLyBMaW5lYXJEaXNwbGF5UDMKLXRl
bXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVosIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29u
c3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiwgTGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGluZWFyRGlzcGxheVAz
PGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Jik7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0Piwg
TGluZWFyRGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29u
dmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0
PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0xODgsMTIgKzE4OCwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248RGlzcGxhCiAKIAogLy8gTGluZWFyRXh0ZW5kZWRTUkdCQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVosIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVy
dChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZv
cjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJl
ZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+PiB7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IGNv
bnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0yMDMsMTIgKzIwMywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248RXh0ZW5kCiAKIAogLy8gTGluZWFyUHJvUGhvdG9SR0IKLXRlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5j
ZVhZWiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29uc3Qg
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248WFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4sIExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGluZWFyUHJvUGhv
dG9SR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZlcnQoY29u
c3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4sIFhZWkZvcjxM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90
b1JHQjxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTIxOCwxMiArMjE4LDEyIEBA
IHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxQcm9QaG8KIAogCiAvLyBMaW5lYXJS
ZWMyMDIwCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxm
bG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0
KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFyUmVjMjAyMDxmbG9h
dD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExpbmVhclJlYzIwMjA8Zmxv
YXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxmbG9hdD4sIExpbmVhclJl
YzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFy
UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+IHsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpG
b3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTIzMywx
MiArMjMzLDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxSZWMyMDIKIAog
CiAvLyBMaW5lYXJTUkdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVh
clNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMaW5lYXJTUkdCQTxmbG9hdD4+IHsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29u
dmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8TGluZWFyU1JHQkE8ZmxvYXQ+PiwgTGluZWFyU1JHQkE8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
IGNvbnZlcnQoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBMaW5lYXJTUkdCQTxmbG9h
dD46OlJlZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJTUkdC
QTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYp
OwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JBPGZsb2F0Piwg
WFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGluZWFyU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0
Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtMjQ4LDEyICsyNDgsMTIgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPAogCiAKIC8vIFByb1Bob3RvUkdCCi10ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIFByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQ
cm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0IFByb1Bob3RvUkdC
PGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxQcm9Q
aG90b1JHQjxmbG9hdD4+LCBQcm9QaG90b1JHQjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgWFlaRm9yPFByb1Bob3RvUkdCPGZsb2F0Pj4gY29udmVydChjb25zdCBQcm9QaG90
b1JHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxQ
cm9QaG90b1JHQjxmbG9hdD4sIFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0
IFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8Zmxv
YXQ+Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYpOwogfTsKIAogLy8gQWRkaXRp
b25zCkBAIC0yNjMsMTIgKzI2MywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248TGluZWFyCiAKIAogLy8gUmVjMjAyMAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIFJlYzIwMjA8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVy
dChjb25zdCBSZWMyMDIwPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4sIFJlYzIwMjA8ZmxvYXQ+PiB7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4gY29udmVydChjb25zdCBSZWMy
MDIwPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFJl
YzIwMjA8ZmxvYXQ+LCBSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9h
dD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFJl
YzIwMjA8ZmxvYXQ+LCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPFJlYzIwMjA8Zmxv
YXQ+PiYpOwogfTsKIAogLy8gQWRkaXRpb25zCkBAIC0yNzgsMTIgKzI3OCwxMiBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gU1JHQkEKLXRlbXBsYXRl
PD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiwgU1JH
QkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNSR0JBPGZsb2F0Pjo6UmVm
ZXJlbmNlWFlaIGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb248WFlaRm9yPFNSR0JBPGZsb2F0Pj4sIFNSR0JBPGZsb2F0Pj4gewor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNv
bnN0IFNSR0JBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFNSR0JBPGZsb2F0PiwgU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+
OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxTUkdC
QTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxTUkdCQTxmbG9hdD4+Jik7CiB9
OwogCiAvLyBBZGRpdGlvbnMKQEAgLTM3Myw4ICszNzMsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBP
dXRwdXQsIHR5cGVuYW1lIElucHV0CiAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChzdGQ6Omlz
X3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVpbnQ4X3Q+PikKICAgICAgICAgICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9y
KSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXV0byB4eXoxID0gY29udmVydENvbG9y
PHR5cGVuYW1lIElucHV0OjpSZWZlcmVuY2VYWVo+KGNvbG9yKTsKLSAgICAgICAgICAgIGF1dG8g
eHl6MiA9IGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBPdXRwdXQ6OlJlZmVyZW5jZVhZWj4oeHl6MSk7
CisgICAgICAgICAgICBhdXRvIHh5ejEgPSBjb252ZXJ0Q29sb3I8WFlaRm9yPElucHV0Pj4oY29s
b3IpOworICAgICAgICAgICAgYXV0byB4eXoyID0gY29udmVydENvbG9yPFhZWkZvcjxPdXRwdXQ+
Pih4eXoxKTsKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0Pih4eXoyKTsK
ICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjggKzI2
LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbG9yQ29tcG9uZW50cy5oIgorI2lu
Y2x1ZGUgIkNvbG9yTWF0cml4LmgiCiAjaW5jbHVkZSAiQ29sb3JNb2RlbHMuaCIKKyNpbmNsdWRl
ICJDb2xvclRyYW5zZmVyRnVuY3Rpb25zLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51
bSBjbGFzcyBXaGl0ZVBvaW50IHsgRDUwLCBENjUgfTsKIAotdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBBOThSR0I7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKLXRlbXBs
YXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRXh0ZW5kZWRTUkdCQTsKK3RlbXBsYXRlPHR5cGVuYW1lLCB0
eXBlbmFtZT4gc3RydWN0IEJvdW5kZWRHYW1tYUVuY29kZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwg
dHlwZW5hbWU+IHN0cnVjdCBCb3VuZGVkTGluZWFyRW5jb2RlZDsKK3RlbXBsYXRlPHR5cGVuYW1l
LCB0eXBlbmFtZT4gc3RydWN0IEV4dGVuZGVkR2FtbWFFbmNvZGVkOwordGVtcGxhdGU8dHlwZW5h
bWUsIHR5cGVuYW1lPiBzdHJ1Y3QgRXh0ZW5kZWRMaW5lYXJFbmNvZGVkOwogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBIU0xBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBIV0JBOwogdGVt
cGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMQ0hBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBM
YWI7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExpbmVhckE5OFJHQjsKLXRlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgTGluZWFyRGlzcGxheVAzOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVj
dCBMaW5lYXJFeHRlbmRlZFNSR0JBOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJQ
cm9QaG90b1JHQjsKLXRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyUmVjMjAyMDsKLXRl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyU1JHQkE7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4g
c3RydWN0IFByb1Bob3RvUkdCOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBSZWMyMDIwOwot
dGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsKIHRlbXBsYXRlPHR5cGVuYW1lLCBXaGl0
ZVBvaW50PiBzdHJ1Y3QgWFlaQTsKIAogLy8gTUFSSzogTWFrZSBmdW5jdGlvbnMuCkBAIC0xOTEs
MTAgKzE4NSwxMiBAQCBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvbG9yVHlwCiAK
IC8vIE1BUks6IC0gUkdCIENvbG9yIFR5cGVzLgogCi10ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgQywgdHlwZW5hbWUgVCwgdHlwZW5hbWUgTT4gc3RydWN0IFJHQkFUeXBlIDogQ29s
b3JXaXRoQWxwaGFIZWxwZXI8QzxUPj4gewordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
RCwgdHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBNLCB0eXBlbmFtZSBURj4gc3RydWN0IFJH
QkFUeXBlIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8Q29sb3JUeXBlPiB7CiAgICAgdXNpbmcgQ29t
cG9uZW50VHlwZSA9IFQ7CiAgICAgdXNpbmcgTW9kZWwgPSBNOwotICAgIAorICAgIHVzaW5nIFRy
YW5zZmVyRnVuY3Rpb24gPSBURjsKKyAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hp
dGVQb2ludCA9IEQ6OndoaXRlUG9pbnQ7CisKICAgICBjb25zdGV4cHIgUkdCQVR5cGUoVCByZWQs
IFQgZ3JlZW4sIFQgYmx1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAg
ICAgIDogcmVkIHsgcmVkIH0KICAgICAgICAgLCBncmVlbiB7IGdyZWVuIH0KQEAgLTIxNSwxMDIg
KzIxMSwxNjYgQEAgdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEMsIHR5cAogICAg
IFQgYWxwaGE7CiB9OwogCi10ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgQ29sb3JU
eXBlLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBNPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+
IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IFJHQkFUeXBlPENvbG9yVHlwZSwgVCwgTT4mIGMpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBELCB0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVu
YW1lIE0sIHR5cGVuYW1lIFRGPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JD
b21wb25lbnRzKGNvbnN0IFJHQkFUeXBlPFQsIEQsIENvbG9yVHlwZSwgTSwgVEY+JiBjKQogewog
ICAgIHJldHVybiB7IGMucmVkLCBjLmdyZWVuLCBjLmJsdWUsIGMuYWxwaGEgfTsKIH0KIAogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQTk4UkdCIDogUkdCQVR5cGU8QTk4UkdCLCBULCBS
R0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPEE5OFJHQiwgVCwgUkdCTW9kZWw8VD4+
OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFydCA9IExpbmVhckE5OFJHQjxU
PjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47Ci19
OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gQTk4UkdCKFQsIFQsIFQsIFQpIC0+IEE5OFJHQjxUPjsK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgQm91bmRlZEdhbW1hRW5j
b2RlZCA6IFJHQkFUeXBlPFQsIEQsIEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgRD4sIFJHQk1vZGVs
PFQ+LCB0eXBlbmFtZSBEOjp0ZW1wbGF0ZSBUcmFuc2ZlckZ1bmN0aW9uPFRyYW5zZmVyRnVuY3Rp
b25Nb2RlOjpDbGFtcGVkPj4geworICAgIHVzaW5nIFJHQkFUeXBlPFQsIEQsIEJvdW5kZWRHYW1t
YUVuY29kZWQ8VCwgRD4sIFJHQk1vZGVsPFQ+LCB0eXBlbmFtZSBEOjp0ZW1wbGF0ZSBUcmFuc2Zl
ckZ1bmN0aW9uPFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj46OlJHQkFUeXBlOwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGlzcGxheVAzIDogUkdCQVR5cGU8RGlzcGxheVAz
LCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPERpc3BsYXlQMywgVCwgUkdC
TW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFydCA9IExpbmVh
ckRpc3BsYXlQMzxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9p
bnQ6OkQ2NT47CisgICAgdXNpbmcgTGluZWFyQ291bnRlcnBhcnQgPSBCb3VuZGVkTGluZWFyRW5j
b2RlZDxULCBEPjsKKyAgICB1c2luZyBFeHRlbmRlZENvdW50ZXJwYXJ0ID0gRXh0ZW5kZWRHYW1t
YUVuY29kZWQ8VCwgRD47CiB9OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gRGlzcGxheVAzKFQsIFQs
IFQsIFQpIC0+IERpc3BsYXlQMzxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEV4
dGVuZGVkU1JHQkEgOiBSR0JBVHlwZTxFeHRlbmRlZFNSR0JBLCBULCBFeHRlbmRlZFJHQk1vZGVs
PFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8RXh0ZW5kZWRTUkdCQSwgVCwgRXh0ZW5kZWRSR0JN
b2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIExpbmVhckNvdW50ZXJwYXJ0ID0gTGluZWFy
RXh0ZW5kZWRTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRl
UG9pbnQ6OkQ2NT47Ci19OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gRXh0ZW5kZWRTUkdCQShULCBU
LCBULCBUKSAtPiBFeHRlbmRlZFNSR0JBPFQ+OwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgRD4KK3N0cnVjdCBCb3VuZGVkTGluZWFyRW5jb2RlZCA6IFJHQkFUeXBlPFQsIEQsIEJvdW5k
ZWRMaW5lYXJFbmNvZGVkPFQsIEQ+LCBSR0JNb2RlbDxUPiwgdHlwZW5hbWUgRDo6dGVtcGxhdGUg
VHJhbnNmZXJGdW5jdGlvbjxUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBlZD4+IHsKKyAgICB1
c2luZyBSR0JBVHlwZTxULCBELCBCb3VuZGVkTGluZWFyRW5jb2RlZDxULCBEPiwgUkdCTW9kZWw8
VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlv
bk1vZGU6OkNsYW1wZWQ+Pjo6UkdCQVR5cGU7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBMaW5lYXJBOThSR0IgOiBSR0JBVHlwZTxMaW5lYXJBOThSR0IsIFQsIFJHQk1vZGVsPFQ+PiB7
Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyQTk4UkdCLCBULCBSR0JNb2RlbDxUPj46OlJHQkFU
eXBlOwotICAgIHVzaW5nIEdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0ID0gQTk4UkdCPFQ+OwotICAg
IHVzaW5nIFJlZmVyZW5jZVhZWiA9IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKLX07Ci10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBMaW5lYXJBOThSR0IoVCwgVCwgVCwgVCkgLT4gTGluZWFyQTk4UkdC
PFQ+OworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBsaW5lYXJUb1hZWiA9IEQ6OmxpbmVhclRv
WFlaOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4eXpUb0xpbmVhciA9IEQ6Onh5elRvTGlu
ZWFyOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTGluZWFyRGlzcGxheVAzIDogUkdC
QVR5cGU8TGluZWFyRGlzcGxheVAzLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPExpbmVhckRpc3BsYXlQMywgVCwgUkdCTW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2lu
ZyBHYW1tYUVuY29kZWRDb3VudGVycGFydCA9IERpc3BsYXlQMzxUPjsKLSAgICB1c2luZyBSZWZl
cmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47CisgICAgdXNpbmcgR2FtbWFFbmNv
ZGVkQ291bnRlcnBhcnQgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIEQ+OworICAgIHVzaW5nIEV4
dGVuZGVkQ291bnRlcnBhcnQgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD47CiB9OwotdGVt
cGxhdGU8dHlwZW5hbWUgVD4gTGluZWFyRGlzcGxheVAzKFQsIFQsIFQsIFQpIC0+IExpbmVhckRp
c3BsYXlQMzxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExpbmVhckV4dGVuZGVk
U1JHQkEgOiBSR0JBVHlwZTxMaW5lYXJFeHRlbmRlZFNSR0JBLCBULCBFeHRlbmRlZFJHQk1vZGVs
PFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyRXh0ZW5kZWRTUkdCQSwgVCwgRXh0ZW5k
ZWRSR0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIEdhbW1hRW5jb2RlZENvdW50ZXJw
YXJ0ID0gRXh0ZW5kZWRTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQs
IFdoaXRlUG9pbnQ6OkQ2NT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBEPgorc3Ry
dWN0IEV4dGVuZGVkR2FtbWFFbmNvZGVkIDogUkdCQVR5cGU8VCwgRCwgRXh0ZW5kZWRHYW1tYUVu
Y29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRy
YW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1vZGU6OlVuY2xhbXBlZD4+IHsKKyAgICB1
c2luZyBSR0JBVHlwZTxULCBELCBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBEPiwgRXh0ZW5kZWRS
R0JNb2RlbDxUPiwgdHlwZW5hbWUgRDo6dGVtcGxhdGUgVHJhbnNmZXJGdW5jdGlvbjxUcmFuc2Zl
ckZ1bmN0aW9uTW9kZTo6VW5jbGFtcGVkPj46OlJHQkFUeXBlOworCisgICAgdXNpbmcgTGluZWFy
Q291bnRlcnBhcnQgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD47CisgICAgdXNpbmcgQm91
bmRlZENvdW50ZXJwYXJ0ID0gQm91bmRlZEdhbW1hRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBS
ZWZlcmVuY2UgPSBMaW5lYXJDb3VudGVycGFydDsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBM
aW5lYXJFeHRlbmRlZFNSR0JBKFQsIFQsIFQsIFQpIC0+IExpbmVhckV4dGVuZGVkU1JHQkE8VD47
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMaW5lYXJQcm9QaG90b1JHQiA6IFJHQkFU
eXBlPExpbmVhclByb1Bob3RvUkdCLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPExpbmVhclByb1Bob3RvUkdCLCBULCBSR0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVz
aW5nIEdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0ID0gUHJvUGhvdG9SR0I8VD47Ci0gICAgdXNpbmcg
UmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENTA+OwordGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgRD4KK3N0cnVjdCBFeHRlbmRlZExpbmVhckVuY29kZWQgOiBSR0JBVHlw
ZTxULCBELCBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4s
IHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1v
ZGU6OlVuY2xhbXBlZD4+IHsKKyAgICB1c2luZyBSR0JBVHlwZTxULCBELCBFeHRlbmRlZExpbmVh
ckVuY29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRl
IFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1vZGU6OlVuY2xhbXBlZD4+OjpSR0JB
VHlwZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBsaW5lYXJUb1hZWiA9IEQ6OmxpbmVh
clRvWFlaOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4eXpUb0xpbmVhciA9IEQ6Onh5elRv
TGluZWFyOworCisgICAgdXNpbmcgR2FtbWFFbmNvZGVkQ291bnRlcnBhcnQgPSBFeHRlbmRlZEdh
bW1hRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBCb3VuZGVkQ291bnRlcnBhcnQgPSBCb3VuZGVk
TGluZWFyRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBSZWZlcmVuY2UgPSBYWVpBPFQsIEQ6Ondo
aXRlUG9pbnQ+OwogfTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVhclByb1Bob3RvUkdCKFQs
IFQsIFQsIFQpIC0+IExpbmVhclByb1Bob3RvUkdCPFQ+OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgTGluZWFyUmVjMjAyMCA6IFJHQkFUeXBlPExpbmVhclJlYzIwMjAsIFQsIFJHQk1v
ZGVsPFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyUmVjMjAyMCwgVCwgUkdCTW9kZWw8
VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBHYW1tYUVuY29kZWRDb3VudGVycGFydCA9IFJlYzIw
MjA8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENjU+
OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNSR0JBRGVzY3JpcHRvciB7CisgICAgdGVt
cGxhdGU8VHJhbnNmZXJGdW5jdGlvbk1vZGUgTW9kZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9
IFNSR0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hp
dGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDY1OworCisgICAgLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVhciB7CisgICAgICAgICAz
LjI0MDk2OTk0MTkwNDUyMjZmLCAgLTEuNTM3MzgzMTc3NTcwMDk0ZiwgICAtMC40OTg2MTA3NjAy
OTMwMDM0ZiwKKyAgICAgICAgLTAuOTY5MjQzNjM2MjgwODc5NmYsICAgMS44NzU5Njc1MDE1MDc3
MjAyZiwgICAwLjA0MTU1NTA1NzQwNzE3NTU5ZiwKKyAgICAgICAgIDAuMDU1NjMwMDc5Njk2OTkz
NjZmLCAtMC4yMDM5NzY5NTg4ODg5NzY1MmYsICAxLjA1Njk3MTUxNDI0Mjg3ODZmCisgICAgfTsK
KyAgICBzdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAg
ICAgICAgMC40MTIzOTA3OTkyNjU5NTkzNGYsIDAuMzU3NTg0MzM5MzgzODc4ZiwgICAwLjE4MDQ4
MDc4ODQwMTgzNDNmLAorICAgICAgICAwLjIxMjYzOTAwNTg3MTUxMDI3ZiwgMC43MTUxNjg2Nzg3
Njc3NTZmLCAgIDAuMDcyMTkyMzE1MzYwNzMzNzFmLAorICAgICAgICAwLjAxOTMzMDgxODcxNTU5
MTgyZiwgMC4xMTkxOTQ3Nzk3OTQ2MjU5OGYsIDAuOTUwNTMyMTUyMjQ5NjYwN2YKKyAgICB9Owog
fTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVhclJlYzIwMjAoVCwgVCwgVCwgVCkgLT4gTGlu
ZWFyUmVjMjAyMDxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExpbmVhclNSR0JB
IDogUkdCQVR5cGU8TGluZWFyU1JHQkEsIFQsIFJHQk1vZGVsPFQ+PiB7Ci0gICAgdXNpbmcgUkdC
QVR5cGU8TGluZWFyU1JHQkEsIFQsIFJHQk1vZGVsPFQ+Pjo6UkdCQVR5cGU7Ci0gICAgdXNpbmcg
R2FtbWFFbmNvZGVkQ291bnRlcnBhcnQgPSBTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VY
WVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2lu
ZyBTUkdCQSA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+PjsKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhclNSR0JBID0gQm91bmRlZExpbmVhckVuY29k
ZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4
dGVuZGVkU1JHQkEgPSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+
OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyRXh0ZW5kZWRTUkdCQSA9IEV4dGVu
ZGVkTGluZWFyRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworCisKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBBOThSR0JEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFuc2Zl
ckZ1bmN0aW9uTW9kZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gQTk4UkdCVHJhbnNm
ZXJGdW5jdGlvbjxULCBNb2RlPjsKKyAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hp
dGVQb2ludCA9IFdoaXRlUG9pbnQ6OkQ2NTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtY29sb3IvI2NvbG9yLWNvbnZlcnNpb24tY29kZQorICAgIHN0YXRpYyBjb25zdGV4
cHIgQ29sb3JNYXRyaXg8MywgMz4geHl6VG9MaW5lYXIgeworICAgICAgICAgMi40OTM0OTY5MTE5
NDE0MjVmLCAgLTAuOTMxMzgzNjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4NDQ1MDcxNjhmLAorICAg
ICAgICAtMC44Mjk0ODg5Njk1NjE1NzQ3ZiwgIDEuNzYyNjY0MDYwMzE4MzQ2M2YsICAwLjAyMzYy
NDY4NTg0MTk0MzZmLAorICAgICAgICAgMC4wMzU4NDU4MzAyNDM3ODQ1ZiwgLTAuMDc2MTcyMzg5
MjY4MDQxOGYsICAwLjk1Njg4NDUyNDAwNzY4NzJmCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAgICAgICAgMC41NzY2NjkwNDI5
MTAxMzA1ZiwgICAwLjE4NTU1ODIzNzkwNjU0NjNmLCAgIDAuMTg4MjI4NjQ2MjM0OTk0N2YsCisg
ICAgICAgIDAuMjk3MzQ0OTc1MjUwNTM2MDVmLCAgMC42MjczNjM1NjYyNTU0NjYxZiwgICAwLjA3
NTI5MTQ1ODQ5Mzk5Nzg4ZiwKKyAgICAgICAgMC4wMjcwMzEzNjEzODY0MTIzNGYsICAwLjA3MDY4
ODg1MjUzNTgyNzIzZiwgIDAuOTkxMzM3NTM2ODM3NjM4OGYKKyAgICB9OwogfTsKLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+IExpbmVhclNSR0JBKFQsIFQsIFQsIFQpIC0+IExpbmVhclNSR0JBPFQ+Owog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUHJvUGhvdG9SR0IgOiBSR0JBVHlwZTxQcm9Q
aG90b1JHQiwgVCwgUkdCTW9kZWw8VD4+IHsKLSAgICB1c2luZyBSR0JBVHlwZTxQcm9QaG90b1JH
QiwgVCwgUkdCTW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFy
dCA9IExpbmVhclByb1Bob3RvUkdCPFQ+OwotICAgIHVzaW5nIFJlZmVyZW5jZVhZWiA9IFhZWkE8
VCwgV2hpdGVQb2ludDo6RDUwPjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEE5OFJHQiA9
IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgQTk4UkdCRGVzY3JpcHRvcjxUPj47Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB1c2luZyBMaW5lYXJBOThSR0IgPSBCb3VuZGVkTGluZWFyRW5jb2RlZDxULCBB
OThSR0JEZXNjcmlwdG9yPFQ+PjsKKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGlz
cGxheVAzRGVzY3JpcHRvciB7CisgICAgdGVtcGxhdGU8VHJhbnNmZXJGdW5jdGlvbk1vZGUgTW9k
ZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9IFNSR0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+
OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2lu
dDo6RDY1OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29s
b3ItY29udmVyc2lvbi1jb2RlCisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAz
PiB4eXpUb0xpbmVhciB7CisgICAgICAgICAyLjQ5MzQ5NjkxMTk0MTQyNWYsICAtMC45MzEzODM2
MTc5MTkxMjM5ZiwgLTAuNDAyNzEwNzg0NDUwNzE2OGYsCisgICAgICAgIC0wLjgyOTQ4ODk2OTU2
MTU3NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYzZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCisgICAg
ICAgICAwLjAzNTg0NTgzMDI0Mzc4NDVmLCAtMC4wNzYxNzIzODkyNjgwNDE4ZiwgIDAuOTU2ODg0
NTI0MDA3Njg3MmYKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8Mywg
Mz4gbGluZWFyVG9YWVogeworICAgICAgICAwLjQ4NjU3MDk0ODY0ODIxNjJmLCAwLjI2NTY2NzY5
MzE2OTA5MzFmLCAwLjE5ODIxNzI4NTIzNDM2M2YsCisgICAgICAgIDAuMjI4OTc0NTY0MDY5NzQ4
OGYsIDAuNjkxNzM4NTIxODM2NTA2NGYsIDAuMDc5Mjg2OTE0MDkzNzQ1ZiwKKyAgICAgICAgMC4w
ZiwgICAgICAgICAgICAgICAgMC4wNDUxMTMzODE4NTg5MDI2ZiwgMS4wNDM5NDQzNjg5MDA5NzZm
CisgICAgfTsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBQcm9QaG90b1JHQihULCBULCBULCBU
KSAtPiBQcm9QaG90b1JHQjxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFJlYzIw
MjAgOiBSR0JBVHlwZTxSZWMyMDIwLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPFJlYzIwMjAsIFQsIFJHQk1vZGVsPFQ+Pjo6UkdCQVR5cGU7Ci0gICAgdXNpbmcgTGluZWFy
Q291bnRlcnBhcnQgPSBMaW5lYXJSZWMyMDIwPFQ+OwotICAgIHVzaW5nIFJlZmVyZW5jZVhZWiA9
IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIERp
c3BsYXlQMyA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgRGlzcGxheVAzRGVzY3JpcHRvcjxUPj47
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBMaW5lYXJEaXNwbGF5UDMgPSBCb3VuZGVkTGlu
ZWFyRW5jb2RlZDxULCBEaXNwbGF5UDNEZXNjcmlwdG9yPFQ+PjsKKworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgUHJvUGhvdG9SR0JEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFu
c2ZlckZ1bmN0aW9uTW9kZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gUHJvUGhvdG9S
R0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQ
b2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDUwOworCisgICAgLy8gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVhciB7CisgICAgICAgICAxLjM0
NTc5ODk3MzEwMjgyODFmLCAgLTAuMjU1NTgwMTAwMDc5OTc1MzRmLCAgLTAuMDUxMTA2Mjg1MDY3
NTM0MDFmLAorICAgICAgICAtMC41NDQ2MjI0OTM5MDI4MzQ3ZiwgICAxLjUwODIzMjc0MTMxMzI3
ODFmLCAgICAwLjAyMDUzNjAzMjM5MTQ3OTczZiwKKyAgICAgICAgIDAuMGYsICAgICAgICAgICAg
ICAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAgMS4yMTE5Njc1NDU2Mzg5NDU0ZgorICAgIH07
CisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBsaW5lYXJUb1hZWiB7Cisg
ICAgICAgIDAuNzk3NzYwNDg5NjcyMzAyN2YsICAwLjEzNTE4NTgzNzE3NTc0MDMxZiwgIDAuMDMx
MzQ5MzQ5NTgxNTI0OGYsCisgICAgICAgIDAuMjg4MDcxMTI4MjI5MjkzNGYsICAwLjcxMTg0MzIx
NzgxMDEwMTRmLCAgIDAuMDAwMDg1NjUzOTYwNjA1MjU5MDJmLAorICAgICAgICAwLjBmLCAgICAg
ICAgICAgICAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAwLjgyNTEwNDYwMjUxMDQ2MDFmCisg
ICAgfTsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZWMyMDIwKFQsIFQsIFQsIFQpIC0+IFJl
YzIwMjA8VD47CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTUkdCQSA6IFJHQkFUeXBl
PFNSR0JBLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPFNSR0JBLCBULCBS
R0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIExpbmVhckNvdW50ZXJwYXJ0ID0gTGlu
ZWFyU1JHQkE8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50
OjpENjU+OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgUHJvUGhvdG9SR0IgPSBCb3VuZGVk
R2FtbWFFbmNvZGVkPFQsIFByb1Bob3RvUkdCRGVzY3JpcHRvcjxUPj47Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB1c2luZyBMaW5lYXJQcm9QaG90b1JHQiA9IEJvdW5kZWRMaW5lYXJFbmNvZGVkPFQs
IFByb1Bob3RvUkdCRGVzY3JpcHRvcjxUPj47CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IFJlYzIwMjBEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFuc2ZlckZ1bmN0aW9uTW9k
ZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gUmVjMjAyMFRyYW5zZmVyRnVuY3Rpb248
VCwgTW9kZT47CisgICAgc3RhdGljIGNvbnN0ZXhwciBXaGl0ZVBvaW50IHdoaXRlUG9pbnQgPSBX
aGl0ZVBvaW50OjpENjU7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKKyAgICBzdGF0aWMgY29uc3RleHByIENvbG9yTWF0
cml4PDMsIDM+IHh5elRvTGluZWFyIHsKKyAgICAgICAgIDEuNzE2NjUxMTg3OTcxMjY3NGYsICAg
LTAuMzU1NjcwNzgzNzc2MzkyMzNmLCAtMC4yNTMzNjYyODEzNzM2NTk3NGYsCisgICAgICAgIC0w
LjY2NjY4NDM1MTgzMjQ4OTJmLCAgICAxLjYxNjQ4MTIzNjYzNDkzOTVmLCAgIDAuMDE1NzY4NTQ1
ODEzOTExMTNmLAorICAgICAgICAgMC4wMTc2Mzk4NTc0NDUzMTA3ODNmLCAtMC4wNDI3NzA2MTMy
NTc4MDg1MjRmLCAwLjk0MjEwMzEyMTIzNTQ3MzhmCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAgICAgICAgMC42MzY5NTgwNDgz
MDEyOTE0ZiwgMC4xNDQ2MTY5MDM1ODYyMDgzMmYsICAwLjE2ODg4MDk3NTE2NDE3MjFmLAorICAg
ICAgICAwLjI2MjcwMDIxMjAxMTI2NzFmLCAwLjY3Nzk5ODA3MTUxODg3MDhmLCAgIDAuMDU5MzAx
NzE2NDY5ODYxOTZmLAorICAgICAgICAwLjAwMDAwMDAwMDAwMDAwMGYsICAwLjAyODA3MjY5MzA0
OTA4NzQyOGYsIDEuMDYwOTg1MDU3NzEwNzkxZgorICAgIH07CiB9OwotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gU1JHQkEoVCwgVCwgVCwgVCkgLT4gU1JHQkE8VD47CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IHVzaW5nIFJlYzIwMjAgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIFJlYzIwMjBEZXNjcmlw
dG9yPFQ+PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhclJlYzIwMjAgPSBCb3Vu
ZGVkTGluZWFyRW5jb2RlZDxULCBSZWMyMDIwRGVzY3JpcHRvcjxUPj47CisKIAogLy8gTUFSSzog
LSBMYWIgQ29sb3IgVHlwZS4KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExhYiA6IENv
bG9yV2l0aEFscGhhSGVscGVyPExhYjxUPj4gewogICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBU
OwogICAgIHVzaW5nIE1vZGVsID0gTGFiTW9kZWw8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFla
ID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENTA+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQ
b2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDUwOworICAgIHVzaW5nIFJlZmVyZW5jZSA9
ICBYWVpBPFQsIHdoaXRlUG9pbnQ+OwogCiAgICAgY29uc3RleHByIExhYihUIGxpZ2h0bmVzcywg
VCBhLCBUIGIsIFQgYWxwaGEgPSBBbHBoYVRyYWl0czxUPjo6b3BhcXVlKQogICAgICAgICA6IGxp
Z2h0bmVzcyB7IGxpZ2h0bmVzcyB9CkBAIC0zNDIsNyArNDAyLDggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3RleHByIENvbG9yQ29tcAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExD
SEEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxMQ0hBPFQ+PiB7CiAgICAgdXNpbmcgQ29tcG9uZW50
VHlwZSA9IFQ7CiAgICAgdXNpbmcgTW9kZWwgPSBMQ0hNb2RlbDxUPjsKLSAgICB1c2luZyBSZWZl
cmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ1MD47CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBXaGl0ZVBvaW50IHdoaXRlUG9pbnQgPSBXaGl0ZVBvaW50OjpENTA7CisgICAgdXNpbmcgUmVm
ZXJlbmNlID0gTGFiPFQ+OwogCiAgICAgY29uc3RleHByIExDSEEoVCBsaWdodG5lc3MsIFQgY2hy
b21hLCBUIGh1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAgICAgIDog
bGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KQEAgLTM3NSw3ICs0MzYsOCBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
SFNMQSA6IENvbG9yV2l0aEFscGhhSGVscGVyPEhTTEE8VD4+IHsKICAgICB1c2luZyBDb21wb25l
bnRUeXBlID0gVDsKICAgICB1c2luZyBNb2RlbCA9IEhTTE1vZGVsPFQ+OwotICAgIHVzaW5nIFJl
ZmVyZW5jZVhZWiA9IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFdoaXRlUG9pbnQgd2hpdGVQb2ludCA9IFdoaXRlUG9pbnQ6OkQ2NTsKKyAgICB1c2luZyBS
ZWZlcmVuY2UgPSBTUkdCQTxUPjsKIAogICAgIGNvbnN0ZXhwciBIU0xBKFQgaHVlLCBUIHNhdHVy
YXRpb24sIFQgbGlnaHRuZXNzLCBUIGFscGhhID0gQWxwaGFUcmFpdHM8VD46Om9wYXF1ZSkKICAg
ICAgICAgOiBodWUgeyBodWUgfQpAQCAtNDA3LDcgKzQ2OSw4IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNvbnN0ZXhwciBDb2xvckNvbXAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIV0JB
IDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFdCQTxUPj4gewogICAgIHVzaW5nIENvbXBvbmVudFR5
cGUgPSBUOwogICAgIHVzaW5nIE1vZGVsID0gSFdCTW9kZWw8VD47Ci0gICAgdXNpbmcgUmVmZXJl
bmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENjU+OworICAgIHN0YXRpYyBjb25zdGV4cHIg
V2hpdGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDY1OworICAgIHVzaW5nIFJlZmVy
ZW5jZSA9IFNSR0JBPFQ+OwogCiAgICAgY29uc3RleHByIEhXQkEoVCBodWUsIFQgd2hpdGVuZXNz
LCBUIGJsYWNrbmVzcywgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAgICAg
IDogaHVlIHsgaHVlIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQmFja2luZ1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUuaAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgYiA9IGZhc3REaXZpZGVC
eTI1NShiICogYSArIHBpeGVsLmJsdWUgKiBkKTsKICAgICAgICAgYSArPSBmYXN0RGl2aWRlQnky
NTUoZCAqIHBpeGVsLmFscGhhKTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IFNSR0JBIHsgciwg
ZywgYiwgYSB9OworICAgICAgICBhdXRvIHJlc3VsdCA9IFNSR0JBPHVpbnQ4X3Q+IHsgciwgZywg
YiwgYSB9OwogCiAgICAgICAgIGlmICghbV9wcmVtdWx0aXBseUFscGhhKQogICAgICAgICAgICAg
cmVzdWx0ID0gdW5wcmVtdWx0aXBsaWVkKHJlc3VsdCk7CkBAIC0yMjYsNyArMjI2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgaWYgKG1fcHJlbXVsdGlwbHlBbHBoYSAmJiAhYSkKICAgICAgICAgICAg
IHJldHVybiAwOwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gU1JHQkEgeyByLCBnLCBiLCBhIH07
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gU1JHQkE8dWludDhfdD4geyByLCBnLCBiLCBhIH07CiAK
ICAgICAgICAgaWYgKG1fcHJlbXVsdGlwbHlBbHBoYSAmJiBhIDwgMjU1KQogICAgICAgICAgICAg
cmVzdWx0ID0gcHJlbXVsdGlwbGllZEZsb29yaW5nKHJlc3VsdCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCShyZXZpc2lvbiAyNzI2
NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcg
QEAgc3RhdGljIE9wdGlvbmFsPFNSR0JBPHVpbnQ4X3Q+PiBtYWtlU2ltcAogICAgICAgICBjb21w
b25lbnRBcnJheVtpXSA9IGNvbXBvbmVudDsKICAgICB9CiAKLSAgICByZXR1cm4gY29udmVydENv
bG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7IGNvbXBvbmVudEFycmF5WzFdLCBjb21wb25lbnRB
cnJheVsyXSwgY29tcG9uZW50QXJyYXlbM10sIGNvbXBvbmVudEFycmF5WzBdIH0pOworICAgIHJl
dHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IGNvbXBvbmVu
dEFycmF5WzFdLCBjb21wb25lbnRBcnJheVsyXSwgY29tcG9uZW50QXJyYXlbM10sIGNvbXBvbmVu
dEFycmF5WzBdIH0pOwogfQogCiBSZWY8SW5iYW5kR2VuZXJpY0N1ZT4gSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0
dHJpYnV0ZWRTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvckNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9Db2xvckNHLmNwcAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcg
KzgxLDcgQEAgc3RhdGljIE9wdGlvbmFsPFNSR0JBPHVpbnQ4X3Q+PiByb3VuZEFuZAogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gY29udmVydENvbG9y
PFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7IHIsIGcsIGIsIGEgfSk7CisgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsgciwgZywgYiwgYSB9KTsKIH0K
IAogQ29sb3I6OkNvbG9yKENHQ29sb3JSZWYgY29sb3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
LmgJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkNvbG9y
VHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAj
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KQEAgLTQ2LDcgKzQ2LDYgQEAgY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTsKIGNsYXNz
IEZpbHRlckVmZmVjdDsKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7Ci10ZW1wbGF0ZTx0
eXBlbmFtZT4gc3RydWN0IFNSR0JBOwogCiBjbGFzcyBGaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsdGVyT3BlcmF0aW9uPiB7CiBwdWJsaWM6CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAJ
KHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9Db2xvckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKGNvbnN0IEdka1JHQkEmIGNvbG9yKQotICAgIDog
Q29sb3IoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7IHN0YXRpY19jYXN0PGZs
b2F0Pihjb2xvci5yZWQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3IuZ3JlZW4pLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29sb3IuYmx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci5hbHBoYSkg
fSkpCisgICAgOiBDb2xvcihjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0
PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci5yZWQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29s
b3IuZ3JlZW4pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3IuYmx1ZSksIHN0YXRpY19jYXN0PGZs
b2F0Pihjb2xvci5hbHBoYSkgfSkpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0JKHJldmlzaW9uIDI3MjY1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgT3B0aW9uYWw8U1JHQkE8dWludDhfdD4+
IG1ha2VTaW1wCiAgICAgW3JnYkNvbG9yIGdldFJlZDomcmVkQ29tcG9uZW50IGdyZWVuOiZncmVl
bkNvbXBvbmVudCBibHVlOiZibHVlQ29tcG9uZW50IGFscGhhOiZhbHBoYV07CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogCi0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50
OF90Pj4oU1JHQkEgeyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVkQ29tcG9uZW50KSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGdyZWVuQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJsdWVDb21wb25l
bnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pOworICAgIHJldHVybiBjb252ZXJ0Q29s
b3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZWRD
b21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZ3JlZW5Db21wb25lbnQpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4oYmx1ZUNvbXBvbmVudCksIHN0YXRpY19jYXN0PGZsb2F0PihhbHBoYSkgfSk7CiB9
CiAKIENvbG9yIGNvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciAqY29sb3IpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQu
Y3BwCShyZXZpc2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vQ29sb3JEaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKEQyRDFfQ09MT1JfRiBjb2xvcikK
LSAgICA6IENvbG9yKGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkEgeyBjb2xvci5y
LCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hIH0pKQorICAgIDogQ29sb3IoY29udmVydENvbG9y
PFNSR0JBPHVpbnQ4X3Q+PihTUkdCQTxmbG9hdD4geyBjb2xvci5yLCBjb2xvci5nLCBjb2xvci5i
LCBjb2xvci5hIH0pKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybUNvbnRleHREaXJlY3QyRC5j
cHAJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9QbGF0Zm9ybUNvbnRleHREaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw3
ICsxMzIsNyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dERpcmVjdDJEOjpzZXRBY3RpdmVMCiAKIENP
TVB0cjxJRDJEMVNvbGlkQ29sb3JCcnVzaD4gUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQ6OmJydXNo
V2l0aENvbG9yKGNvbnN0IEQyRDFfQ09MT1JfRiYgY29sb3IpCiB7Ci0gICAgYXV0byBjb2xvcktl
eSA9IGNvbG9yQ29udmVydDxTUkdCQTx1aW50OF90Pj4oU1JHQkEgeyBjb2xvci5yLCBjb2xvci5n
LCBjb2xvci5iLCBjb2xvci5hIH0pOworICAgIGF1dG8gY29sb3JLZXkgPSBjb2xvckNvbnZlcnQ8
U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIs
IGNvbG9yLmEgfSk7CiAKICAgICBpZiAoIWNvbG9yS2V5KSB7CiAgICAgICAgIGlmICghbV96ZXJv
QnJ1c2gpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbG9ySU9TLm1tCShyZXZp
c2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgQ29sb3IgY29sb3JGcm9tVUlDb2xvcihV
SUNvbG9yICpjb2xvcikKIAogICAgIFtjb2xvciBnZXRSZWQ6JnJlZENvbXBvbmVudCBncmVlbjom
Z3JlZW5Db21wb25lbnQgYmx1ZTomYmx1ZUNvbXBvbmVudCBhbHBoYTomYWxwaGFdOwogCi0gICAg
cmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkEgeyBzdGF0aWNfY2FzdDxm
bG9hdD4ocmVkQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGdyZWVuQ29tcG9uZW50KSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGJsdWVDb21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYWxw
aGEpIH0pOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZs
b2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZWRDb21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9h
dD4oZ3JlZW5Db21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYmx1ZUNvbXBvbmVudCksIHN0
YXRpY19jYXN0PGZsb2F0PihhbHBoYSkgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzI2NjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTEwICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZXdvcmsgUkdCIGNvbG9yIHR5cGVzIHRv
IGJlIG1vcmUgZGVjbGFyYXRpdmUgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24gYW5kIG1ha2Ug
cHJvZ3Jlc3MgdG93YXJkIGJldHRlciBhdXRvbWF0aWMgY29udmVyc2lvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRDb2xvci5jcHA6CisgICAgICAgICh3ZWJraXRDb2xvclRvV2ViQ29yZUNvbG9yKToKKyAg
ICAgICAgVXBkYXRlIHRvIHNwZWNpZnkgU1JHQkE8ZmxvYXQ+LCB3aGljaCBpcyBub3cgcmVxdWly
ZWQgZHVlIHRvIGxhY2sgb2YgZGVkdWN0aW9uIGd1aWRlcyB0aHJvdWdoCisgICAgICAgIHR5cGUg
YWxpYXNlcy4KKwogMjAyMS0wMi0xMCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KIAogICAgICAgICBQQ006IEV4cGlyZWQgcmVwb3J0cyBnZXQgc2VudCBhdCB0aGUg
c2FtZSB0aW1lIGFmdGVyIGEgc2Vzc2lvbiByZXN0YXJ0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAkocmV2aXNpb24gMjcyNjU1KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgR19ERUZJTkVfQk9YRURfVFlQRShXZWJLaXRDb2xv
ciwgd2Via2l0XwogCiBjb25zdCBXZWJDb3JlOjpDb2xvciB3ZWJraXRDb2xvclRvV2ViQ29yZUNv
bG9yKFdlYktpdENvbG9yKiBjb2xvcikKIHsKLSAgICByZXR1cm4gV2ViQ29yZTo6Y29udmVydENv
bG9yPFdlYkNvcmU6OlNSR0JBPHVpbnQ4X3Q+PihXZWJDb3JlOjpTUkdCQSB7IHN0YXRpY19jYXN0
PGZsb2F0Pihjb2xvci0+cmVkKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yLT5ncmVlbiksIHN0
YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+Ymx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+
YWxwaGEpIH0pOworICAgIHJldHVybiBXZWJDb3JlOjpjb252ZXJ0Q29sb3I8V2ViQ29yZTo6U1JH
QkE8dWludDhfdD4+KFdlYkNvcmU6OlNSR0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihj
b2xvci0+cmVkKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yLT5ncmVlbiksIHN0YXRpY19jYXN0
PGZsb2F0Pihjb2xvci0+Ymx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+YWxwaGEpIH0p
OwogfQogCiB2b2lkIHdlYmtpdENvbG9yRmlsbEZyb21XZWJDb3JlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIHdlYkNvcmVDb2xvciwgV2ViS2l0Q29sb3IqIGNvbG9yKQo=
</data>
<flag name="commit-queue"
          id="438239"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419927</attachid>
            <date>2021-02-10 17:20:05 -0800</date>
            <delta_ts>2021-02-11 08:36:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221677-20210210111409.patch</filename>
            <type>text/plain</type>
            <size>75014</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjY2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzNiBAQAorMjAyMS0wMi0xMCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV3b3JrIFJHQiBjb2xvciB0eXBl
cyB0byBiZSBtb3JlIGRlY2xhcmF0aXZlIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uIGFuZCBt
YWtlIHByb2dyZXNzIHRvd2FyZCBiZXR0ZXIgYXV0b21hdGljIGNvbnZlcnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTY3NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSAiUkdCIiBmYW1pbHkg
b2YgY29sb3JzICh0aG9zZSBpbmhlcml0aW5nIGZyb20gUkdCVHlwZSkgYWxsIHNoYXJlIGEgY29t
bW9uIHN0cnVjdHVyZQorICAgICAgICBjYW4gYmUgZ2VuZXJhbGl6ZWQgdG8gc2ltcGxpZnkgdGhl
aXIgY29udmVyc2lvbnMgYW5kIGNlbnRyYWxpemUgdGhlaXIgZGVmaW5pdGlvbnMuCisgICAgICAg
IAorICAgICAgICBUbyBkbyB0aGlzLCBlYWNoIFJHQiBjb2xvciB0eXBlIG5vdyBkZWZpbmVzIGEg
IkRlc2NyaXB0b3IiIHR5cGUgKGUuZy4gU1JHQkRlc2NyaXB0b3IgZm9yIAorICAgICAgICBTUkdC
QSkgd2hpY2ggaW5jbHVkZXM6CisgICAgICAgICAgICAtIFdoYXQgdHJhbnNmZXIgZnVuY3Rpb24g
aXQgdXNlcyAoZS5nLiBTUkdCVHJhbnNmZXJGdW5jdGlvbikKKyAgICAgICAgICAgIC0gV2hhdCB3
aGl0ZVBvaW50IGl0IGlzIGRlZmluZWQgZm9yIChlLmcuIFdoaXRlUG9pbnQ6OkQ2NSkKKyAgICAg
ICAgICAgIC0gV2hhdCBtYXRyaWNlcyBpdCB1c2VzIHRvIGNvbnZlcnQgZnJvbSBsaW5lYXIgdG8g
eHl6IGFuZCBmcm9tIHh5eiB0byBsaW5lYXIuCisKKyAgICAgICAgVGhlbiB1c2luZyB0eXBlIGFs
aWFzZXMsIHRoZSBjb2xvciB0eXBlIGlzIGRlZmluZWQgdXNpbmcgdGhlIGRlc2NyaXB0b3IgYW5k
IG9uZSBvZiB0aGUgZm91cgorICAgICAgICBiYXNlIHR5cGVzOiBCb3VuZGVkR2FtbWFFbmNvZGVk
LCBCb3VuZGVkTGluZWFyRW5jb2RlZCwgRXh0ZW5kZWRHYW1tYUVuY29kZWQsIGFuZCBFeHRlbmRl
ZExpbmVhckVuY29kZWQuCisgICAgICAgIFNvLCBmb3IgdGhlIFNSR0JBIGZhbWlseSBvZiBjb2xv
ciB0eXBlcywgdGhleSBhcmUgZGVmaW5lZCBhczoKKyAgICAgICAgCisgICAgICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBTUkdCQSA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgU1JH
QkFEZXNjcmlwdG9yPFQ+PjsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5n
IExpbmVhclNSR0JBID0gQm91bmRlZExpbmVhckVuY29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+
PjsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkU1JHQkEg
PSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworICAgICAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyRXh0ZW5kZWRTUkdCQSA9IEV4dGVu
ZGVkTGluZWFyRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworCisgICAgICAgIEJ5IHVz
aW5nIHR5cGUgYWxpYXNlcyBsaWtlIHRoaXMsIHdlIGdhaW4gdGhlIGFiaWxpdHkgdG8gZWFzaWx5
IHNldCB1cCByZWxhdGlvbnNoaXBzIGJldHdlZW4KKyAgICAgICAgdGhlIHR5cGVzLiBGb3IgaW5z
dGFuY2UsIHRoZSBCb3VuZGVkR2FtbWFFbmNvZGVkIHR5cGUgaGFzIHRoZSBmb2xsb3dpbmcgbWVt
YmVyczoKKworICAgICAgICAgICAgdXNpbmcgTGluZWFyQ291bnRlcnBhcnQgPSBCb3VuZGVkTGlu
ZWFyRW5jb2RlZDxULCBEPjsKKyAgICAgICAgICAgIHVzaW5nIEV4dGVuZGVkQ291bnRlcnBhcnQg
PSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBEPjsKKworICAgICAgICBXaGVyZSBEIGlzIHRoZSAi
RGVzY3JpcHRvciIgaXQgd2FzIG1hZGUgd2l0aC4gVGhpcyBhbGxvd3MgaGVscGVyIGZ1bmN0aW9u
cyBzdWNoIGFzIHRoZSBjb252ZXJzaW9uCisgICAgICAgIGZ1bmN0aW9ucyB0byBhdXRvbWF0aWNh
bGx5IGtub3cgd2hhdCBjb3VudGVycGFydCB0byB1c2Ugd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUg
c3BlY2lhbGl6ZWQgdmVyc2lvbnMKKyAgICAgICAgZm9yIGVhY2ggcGFpci4gVGhpcyB3aWxsIGFp
ZCBpbiB1bmlmeWluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmdXJ0aGVyLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGFsc28gcmVtb3ZlcyB0aGUgWFlaUmVmZXJlbmNlIG1lbWJlciBvZiB0aGUgY29s
b3IgdHlwZXMsIHJlcGxhY2luZyBpdCB3aXRoIHRoZQorICAgICAgICBXaGl0ZVBvaW50LCB3aGlj
aCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIFhZWlJlZmVyZW5jZSBhcyBpcyBkb25lIGJ5
IHRoZSBuZXcgWFlaRm9yPD4gYWxpYXMuCisgICAgICAgIFRoaXMgd2lsbCBhbGxvdyBmb3Igc3Ry
YWlndGhmb3J3YXJkIGNvbXBhcmlzb25zIHdoZW4gd2Ugc3RvcCBhbHdheXMgY29udmVydGluZyB0
aHJvdWdoIFhZWkEuCisKKyAgICAgICAgQXMgYSByZXN1bHQgb2YgbW92aW5nIHRoZSBtYXRyaWNl
cyB0byB0aGUgY29sb3IgdHlwZSBkZXNjcmlwdG9ycywgd2UgY2FuIG5vdyBzaW1wbGlmeSBhbGwg
dGhlCisgICAgICAgIGxpbmVhciB0byB4eXogYW5kIHh5eiB0byBsaW5lYXIgY29udmVyc2lvbnMg
dG8gdXNlIGdlbmVyaWMgZnVuY3Rpb25zIChjYWxsZWQgbGluZWFyVG9YWVogYW5kIAorICAgICAg
ICB4eXpUb0xpbmVhciBub3Qgc3VwcmlzaW5nbHkpIGFuZCBzaW5jZSB0aGUgZGVzY3JpcHRvcnMg
YWxzbyBpbmNsdWRlIHRoZSB0cmFuc2ZlciBmdW5jdGlvbiB3ZQorICAgICAgICBjYW4gZnVydGhl
ciBzaW1wbGlmeSB0aGUgZ2FtbWEgY29udmVyc2lvbiBmdW5jdGlvbnMgdG8gbm8gbG9uZ2VyIGV4
cGxpY2l0bHkgcGFzc2luZyB0aGUgdHJhbnNmZXIKKyAgICAgICAgZnVuY3Rpb24uCisKKyAgICAg
ICAgVHdvIGNvbnNlcXVlbmVzIG9mIHVzaW5nIGNvbXBsZXggdHlwZSBhbGlhc2VzIGZvciB0aGUg
Y29sb3IgdHlwZXMsIHJhdGhlciB0aGFuIGRpcmVjdCBzdHJ1Y3RzLCBpcyAKKyAgICAgICAgdGhh
dCB3ZSBjYW4gbm8gbG9uZ2VyIGVhc2lseSBmb3J3YXJkIGRlY2xhcmUgdGhlIGNvbG9yIHR5cGVz
LCBzbyBDb2xvclR5cGVzLmggaXMgaW5jbHVkZWQgaW4gYSBmZXcKKyAgICAgICAgbW9yZSBwbGFj
ZXMgbm93LCBhbmQgdGhlIGRlZHVjdGlvbiBndWlkZXMgd2UgaGFkIGJlZW4gdXNpbmcgZG9uJ3Qg
d29yaywgc28gd2UgbXVzdCBleHBsaWNpdGx5IHNwZWNpZnkKKyAgICAgICAgdGhlIHR5cGUgaW4g
YSBmZXcgcGxhY2VzLiBXZSBzaG91bGQgYmUgYWJsZSB0byByZWR1Y2UgdGhlIGFtb3VudCBpbmNs
dWRlZCBpbiBtb3N0IHBsYWNlcyBieSBzcGxpdHRpbmcKKyAgICAgICAgdXAgdGhlIGNvbG9yIHR5
cGVzIGludG8gdGhlaXIgb3duIGhlYWRlcnMsIGFuZCBvbmx5IGluY2x1ZGluZyB0aGUgbmVlZGVk
IGNvbG9yIHR5cGUsIG9ubHkgU1JHQkEgaW4KKyAgICAgICAgcHJhY3RpY2UuCisKKyAgICAgICAg
VGhpcyBhbHNvIGFkZHMgYmFjayBhIG1pc3NpbmcgY2xhbXAgdG8gdGhlIGNvbnZlcnNpb24gZnJv
bSBTUkdCQTxmbG9hdD4gdG8gU1JHQkE8dWludDhfdD4gdGhhdCBJIGRpZG4ndAorICAgICAgICBp
bnRlbmQgdG8gcmVtb3ZlIGluIGEgcHJldmlvdXMgcGF0Y2gsIGJ1dCBJIGFtIG5vdCBhY3R1YWwg
c3VyZSBpcyBuZWNlc3NhcnkuIFdoaWxlIEkgd29yayB0aGF0IG91dCwgCisgICAgICAgIGJldHRl
ciB0byBhZGQgaXQgYmFjay4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6bGlnaHRl
bmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpkYXJrZW5lZCBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb21wb25lbnRzLmg6CisgICAgICAgIChX
ZWJDb3JlOjptYXBDb2xvckNvbXBvbmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0xpbmVhcik6CisgICAg
ICAgIChXZWJDb3JlOjp0b0dhbW1hRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBOThSR0I8
ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJBOThSR0I8ZmxvYXQ+
Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVy
dCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVydCk6
CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNSR0JBPGZs
b2F0Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6
Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6CisgICAgICAgIChXZWJD
b3JlOjpsaW5lYXJUb1hZWik6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGluZWFyQTk4UkdC
PGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFla
Rm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYWI8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8
TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8
ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxm
bG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRTUkdC
QTxmbG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpIU0xBPGZsb2F0Pj46OmNv
bnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPEhTTEE8ZmxvYXQ+Pj46OmNvbnZlcnQp
OgorICAgICAgICAoV2ViQ29yZTo6SFdCQTxmbG9hdD4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxDSEE8ZmxvYXQ+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TENIQTxm
bG9hdD4+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8UHJvUGhvdG9SR0I8
ZmxvYXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8Zmxv
YXQ+Pj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+
Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVy
ZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyRGlz
cGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29u
dmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9h
dD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252
ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxhYjxmbG9hdD46OlJlZmVyZW5jZVhZ
Wj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QTk4UkdCPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhTTEE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpj
b252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhXQkE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxDSEE8ZmxvYXQ+
OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBy
b1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNv
bnZlcnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJzaW9uOjpjb252ZXJ0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgIChXZWJDb3Jl
Ojphc0NvbG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
YWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpibGVu
ZFBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQmFja2luZ1N0b3JlOjpwaXhlbFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlU2ltcGxlQ29s
b3JGcm9tQVJHQkNGQXJyYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9y
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cm91bmRBbmRDbGFtcFRvU1JHQkFMb3NzeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjptYWtlU2ltcGxlQ29sb3JGcm9tTlNDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L0NvbG9ySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGcm9tVUlDb2xvcik6CisKIDIw
MjEtMDItMTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW0ludGVncmF0aW9uXSBQYWludCBpbnZhbGlkYXRpb24gZm9yIGlubGluZSBlbGVtZW50IHN0
eWxlIGNoYW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAkocmV2
aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbG9yVHlwZXMuaCIKICNpbmNsdWRlICJXcml0aW5n
TW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNDIsNyArNDMsNiBAQCBjbGFzcyBTdHlsZVJ1bGVCYXNlOwogY2xhc3Mg
U3R5bGVSdWxlS2V5ZnJhbWU7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBjbGFzcyBSZW5k
ZXJTdHlsZTsKLXRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgU1JHQkE7CiAKIG5hbWVzcGFjZSBD
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMgewogc3RydWN0IEZvbnRSYXc7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmgJKHJldmlzaW9uIDI3
MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMyBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJDb2xv
clR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NWYWx1ZTsKIAotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsK
LQogc3RydWN0IENTU1BhcnNlckNvbnRleHQ7CiAKIGNsYXNzIENTU1BhcnNlckZhc3RQYXRocyB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZp
c2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgQ29sb3IgQ29sb3I6OmxpZ2h0ZW5l
ZCgpIGNvbnN0CiAKICAgICBmbG9hdCBtdWx0aXBsaWVyID0gc3RkOjptaW4oMS4wZiwgdiArIDAu
MzNmKSAvIHY7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdC
QSB7IG11bHRpcGxpZXIgKiByLCBtdWx0aXBsaWVyICogZywgbXVsdGlwbGllciAqIGIsIGEgfSk7
CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsg
bXVsdGlwbGllciAqIHIsIG11bHRpcGxpZXIgKiBnLCBtdWx0aXBsaWVyICogYiwgYSB9KTsKIH0K
IAogQ29sb3IgQ29sb3I6OmRhcmtlbmVkKCkgY29uc3QKQEAgLTEwNSw3ICsxMDUsNyBAQCBDb2xv
ciBDb2xvcjo6ZGFya2VuZWQoKSBjb25zdAogICAgIGZsb2F0IHYgPSBzdGQ6Om1heCh7IHIsIGcs
IGIgfSk7CiAgICAgZmxvYXQgbXVsdGlwbGllciA9IHN0ZDo6bWF4KDAuMGYsICh2IC0gMC4zM2Yp
IC8gdik7CiAKLSAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7
IG11bHRpcGxpZXIgKiByLCBtdWx0aXBsaWVyICogZywgbXVsdGlwbGllciAqIGIsIGEgfSk7Cisg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsgbXVs
dGlwbGllciAqIHIsIG11bHRpcGxpZXIgKiBnLCBtdWx0aXBsaWVyICogYiwgYSB9KTsKIH0KIAog
ZmxvYXQgQ29sb3I6OmxpZ2h0bmVzcygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbXBvbmVudHMuaAkocmV2aXNpb24gMjcyNjU1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb21wb25lbnRzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgY29uc3RleHByIGF1dG8gbWFwQ29sb3JD
b21wb25lbnRzKEYmJiBmdQogICAgIHN0YXRpY19hc3NlcnQoc3RkOjpjb25qdW5jdGlvbl92PHN0
ZDo6Ym9vbF9jb25zdGFudDxUczo6U2l6ZSA9PSBUOjpTaXplPi4uLj4sICJBbGwgQ29sb3JDb21w
b25lbnRzIHBhc3NlZCB0byBtYXBDb2xvckNvbXBvbmVudHMgbXVzdCBoYXZlIHRoZSBzYW1lIHNp
emUiKTsKIAogICAgIENvbG9yQ29tcG9uZW50czxkZWNsdHlwZShmdW5jdGlvbihjb21wb25lbnRb
MF0sIGNvbXBvbmVudHNbMF0uLi4pKT4gcmVzdWx0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgVDo6U2l6ZTsgKytpKQorICAgIGZvciAoc3RkOjpyZW1vdmVfY29uc3RfdDxkZWNsdHlwZShU
OjpTaXplKT4gaSA9IDA7IGkgPCBUOjpTaXplOyArK2kpCiAgICAgICAgIHJlc3VsdFtpXSA9IGZ1
bmN0aW9uKGNvbXBvbmVudFtpXSwgY29tcG9uZW50c1tpXS4uLik7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsOTMgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3JDb252
ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJDb2xvckNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJDb2xv
ck1hdHJpeC5oIgotI2luY2x1ZGUgIkNvbG9yVHJhbnNmZXJGdW5jdGlvbnMuaCIKICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEE5OFJHQiBN
YXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3It
Y29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IHh5elRv
TGluZWFyQTk4UkdCTWF0cml4IHsKLSAgICAgMi40OTM0OTY5MTE5NDE0MjVmLCAgLTAuOTMxMzgz
NjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4NDQ1MDcxNjhmLAotICAgIC0wLjgyOTQ4ODk2OTU2MTU3
NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYzZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCi0gICAgIDAu
MDM1ODQ1ODMwMjQzNzg0NWYsIC0wLjA3NjE3MjM4OTI2ODA0MThmLCAgMC45NTY4ODQ1MjQwMDc2
ODcyZgotfTsKLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3It
Y29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVh
ckE5OFJHQlRvWFlaTWF0cml4IHsKLSAgICAwLjU3NjY2OTA0MjkxMDEzMDVmLCAgIDAuMTg1NTU4
MjM3OTA2NTQ2M2YsICAgMC4xODgyMjg2NDYyMzQ5OTQ3ZiwKLSAgICAwLjI5NzM0NDk3NTI1MDUz
NjA1ZiwgIDAuNjI3MzYzNTY2MjU1NDY2MWYsICAgMC4wNzUyOTE0NTg0OTM5OTc4OGYsCi0gICAg
MC4wMjcwMzEzNjEzODY0MTIzNGYsICAwLjA3MDY4ODg1MjUzNTgyNzIzZiwgIDAuOTkxMzM3NTM2
ODM3NjM4OGYKLX07Ci0KLS8vIERpc3BsYXlQMyBNYXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29u
c3RleHByIENvbG9yTWF0cml4PDMsIDM+IHh5elRvTGluZWFyRGlzcGxheVAzTWF0cml4IHsKLSAg
ICAgMi40OTM0OTY5MTE5NDE0MjVmLCAgLTAuOTMxMzgzNjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4
NDQ1MDcxNjhmLAotICAgIC0wLjgyOTQ4ODk2OTU2MTU3NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYz
ZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCi0gICAgIDAuMDM1ODQ1ODMwMjQzNzg0NWYsIC0wLjA3
NjE3MjM4OTI2ODA0MThmLCAgMC45NTY4ODQ1MjQwMDc2ODcyZgotfTsKLQotLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMg
Y29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhckRpc3BsYXlQM1RvWFlaTWF0cml4IHsK
LSAgICAwLjQ4NjU3MDk0ODY0ODIxNjJmLCAwLjI2NTY2NzY5MzE2OTA5MzFmLCAwLjE5ODIxNzI4
NTIzNDM2M2YsCi0gICAgMC4yMjg5NzQ1NjQwNjk3NDg4ZiwgMC42OTE3Mzg1MjE4MzY1MDY0Ziwg
MC4wNzkyODY5MTQwOTM3NDVmLAotICAgIDAuMGYsICAgICAgICAgICAgICAgIDAuMDQ1MTEzMzgx
ODU4OTAyNmYsIDEuMDQzOTQ0MzY4OTAwOTc2ZgotfTsKLQotLy8gUHJvUGhvdG9SR0IgTWF0cmlj
ZXMuCi0KLS8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29sb3IvI2NvbG9yLWNvbnZl
cnNpb24tY29kZQotc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVh
clByb1Bob3RvUkdCTWF0cml4IHsKLSAgICAgMS4zNDU3OTg5NzMxMDI4MjgxZiwgIC0wLjI1NTU4
MDEwMDA3OTk3NTM0ZiwgIC0wLjA1MTEwNjI4NTA2NzUzNDAxZiwKLSAgICAtMC41NDQ2MjI0OTM5
MDI4MzQ3ZiwgICAxLjUwODIzMjc0MTMxMzI3ODFmLCAgICAwLjAyMDUzNjAzMjM5MTQ3OTczZiwK
LSAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAwLjBmLCAgICAgICAgICAgICAgICAgICAxLjIx
MTk2NzU0NTYzODk0NTRmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8
MywgMz4gbGluZWFyUHJvUGhvdG9SR0JUb1hZWk1hdHJpeCB7Ci0gICAgMC43OTc3NjA0ODk2NzIz
MDI3ZiwgIDAuMTM1MTg1ODM3MTc1NzQwMzFmLCAgMC4wMzEzNDkzNDk1ODE1MjQ4ZiwKLSAgICAw
LjI4ODA3MTEyODIyOTI5MzRmLCAgMC43MTE4NDMyMTc4MTAxMDE0ZiwgICAwLjAwMDA4NTY1Mzk2
MDYwNTI1OTAyZiwKLSAgICAwLjBmLCAgICAgICAgICAgICAgICAgMC4wZiwgICAgICAgICAgICAg
ICAgICAwLjgyNTEwNDYwMjUxMDQ2MDFmCi19OwotCi0vLyBSZWMyMDIwIE1hdHJpY2VzLgotCi0v
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1jb252ZXJzaW9uLWNv
ZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4geHl6VG9MaW5lYXJSZWMyMDIw
TWF0cml4IHsKLSAgICAgMS43MTY2NTExODc5NzEyNjc0ZiwgICAtMC4zNTU2NzA3ODM3NzYzOTIz
M2YsIC0wLjI1MzM2NjI4MTM3MzY1OTc0ZiwKLSAgICAtMC42NjY2ODQzNTE4MzI0ODkyZiwgICAg
MS42MTY0ODEyMzY2MzQ5Mzk1ZiwgICAwLjAxNTc2ODU0NTgxMzkxMTEzZiwKLSAgICAgMC4wMTc2
Mzk4NTc0NDUzMTA3ODNmLCAtMC4wNDI3NzA2MTMyNTc4MDg1MjRmLCAwLjk0MjEwMzEyMTIzNTQ3
MzhmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1j
b252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gbGluZWFy
UmVjMjAyMFRvWFlaTWF0cml4IHsKLSAgICAwLjYzNjk1ODA0ODMwMTI5MTRmLCAwLjE0NDYxNjkw
MzU4NjIwODMyZiwgIDAuMTY4ODgwOTc1MTY0MTcyMWYsCi0gICAgMC4yNjI3MDAyMTIwMTEyNjcx
ZiwgMC42Nzc5OTgwNzE1MTg4NzA4ZiwgICAwLjA1OTMwMTcxNjQ2OTg2MTk2ZiwKLSAgICAwLjAw
MDAwMDAwMDAwMDAwMGYsICAwLjAyODA3MjY5MzA0OTA4NzQyOGYsIDEuMDYwOTg1MDU3NzEwNzkx
ZgotfTsKLQotLy8gc1JHQiBNYXRyaWNlcy4KLQotLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCi1zdGF0aWMgY29uc3RleHByIENvbG9y
TWF0cml4PDMsIDM+IHh5elRvTGluZWFyU1JHQk1hdHJpeCB7Ci0gICAgIDMuMjQwOTY5OTQxOTA0
NTIyNmYsICAtMS41MzczODMxNzc1NzAwOTRmLCAgIC0wLjQ5ODYxMDc2MDI5MzAwMzRmLAotICAg
IC0wLjk2OTI0MzYzNjI4MDg3OTZmLCAgIDEuODc1OTY3NTAxNTA3NzIwMmYsICAgMC4wNDE1NTUw
NTc0MDcxNzU1OWYsCi0gICAgIDAuMDU1NjMwMDc5Njk2OTkzNjZmLCAtMC4yMDM5NzY5NTg4ODg5
NzY1MmYsICAxLjA1Njk3MTUxNDI0Mjg3ODZmCi19OwotCi0vLyBodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLWNvbG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKLXN0YXRpYyBjb25zdGV4cHIg
Q29sb3JNYXRyaXg8MywgMz4gbGluZWFyU1JHQlRvWFlaTWF0cml4IHsKLSAgICAwLjQxMjM5MDc5
OTI2NTk1OTM0ZiwgMC4zNTc1ODQzMzkzODM4NzhmLCAgIDAuMTgwNDgwNzg4NDAxODM0M2YsCi0g
ICAgMC4yMTI2MzkwMDU4NzE1MTAyN2YsIDAuNzE1MTY4Njc4NzY3NzU2ZiwgICAwLjA3MjE5MjMx
NTM2MDczMzcxZiwKLSAgICAwLjAxOTMzMDgxODcxNTU5MTgyZiwgMC4xMTkxOTQ3Nzk3OTQ2MjU5
OGYsIDAuOTUwNTMyMTUyMjQ5NjYwN2YKLX07Ci0KIC8vIENocm9tYXRpYyBBZGFwdGF0aW9uIE1h
dHJpY2VzLgogCiAvLyBodHRwOi8vd3d3LmJydWNlbGluZGJsb29tLmNvbS9pbmRleC5odG1sP0Vx
bl9DaHJvbUFkYXB0Lmh0bWwKQEAgLTE0MywxNjIgKzYwLDE3MiBAQCBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+IENvbG9yQ29udmVyCiAKIC8vIE1BUks6IEdhbW1hIGNvbnZlcnNpb25zLgog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUcmFuc2ZlckZ1bmN0aW9uLCB0eXBlbmFtZSBDb2xvclR5cGU+
IHN0YXRpYyBhdXRvIHRvTGluZWFyKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1l
IENvbG9yVHlwZTo6TGluZWFyQ291bnRlcnBhcnQKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIoY29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5h
bWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydAogewogICAgIGF1dG8gW2MxLCBjMiwgYzMs
IGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IFRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFy
KGMxKSwgVHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzIpLCBUcmFuc2ZlckZ1bmN0aW9uOjp0
b0xpbmVhcihjMyksIGFscGhhIH07CisgICAgcmV0dXJuIHsgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMSksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5l
YXIoYzIpLCBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMzKSwgYWxwaGEg
fTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVHJhbnNmZXJGdW5jdGlvbiwgdHlwZW5hbWUgQ29s
b3JUeXBlPiBzdGF0aWMgYXV0byB0b0dhbW1hRW5jb2RlZChjb25zdCBDb2xvclR5cGUmIGNvbG9y
KSAtPiB0eXBlbmFtZSBDb2xvclR5cGU6OkdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0YXRpYyBhdXRvIHRvR2FtbWFFbmNvZGVkKGNvbnN0IENv
bG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6R2FtbWFFbmNvZGVkQ291bnRl
cnBhcnQKIHsKICAgICBhdXRvIFtjMSwgYzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKLSAgICByZXR1
cm4geyBUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1hRW5jb2RlZChjMSksIFRyYW5zZmVyRnVuY3Rp
b246OnRvR2FtbWFFbmNvZGVkKGMyKSwgVHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQo
YzMpLCBhbHBoYSB9OworICAgIHJldHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6
dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvR2FtbWFF
bmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1hRW5jb2RlZChj
MyksIGFscGhhIH07CiB9CiAKIC8vIEE5OFJHQiA8LT4gTGluZWFyQTk4UkdCIGNvbnZlcnNpb25z
LgogCiBMaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8Zmxv
YXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+JiBjb2xvcikK
IHsKLSAgICByZXR1cm4gdG9MaW5lYXI8QTk4UkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwgVHJh
bnNmZXJGdW5jdGlvbk1vZGU6OkNsYW1wZWQ+Pihjb2xvcik7CisgICAgcmV0dXJuIHRvTGluZWFy
KGNvbG9yKTsKIH0KIAogQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0
PiwgTGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0
PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkPEE5OFJHQlRyYW5zZmVyRnVu
Y3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAg
IHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8vIERpc3BsYXlQMyA8LT4gTGlu
ZWFyRGlzcGxheVAzIGNvbnZlcnNpb25zLgogCiBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5l
YXI8U1JHQlRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFt
cGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0xpbmVhcihjb2xvcik7CiB9CiAKIERpc3BsYXlQ
MzxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9hdD4sIExpbmVhckRpc3BsYXlQ
MzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQog
ewotICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZDxTUkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwg
VHJhbnNmZXJGdW5jdGlvbk1vZGU6OkNsYW1wZWQ+Pihjb2xvcik7CisgICAgcmV0dXJuIHRvR2Ft
bWFFbmNvZGVkKGNvbG9yKTsKIH0KIAogLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5k
ZWRTUkdCQSBjb252ZXJzaW9ucy4KIAogTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JD
b252ZXJzaW9uPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0
Pj46OmNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQogewotICAgIHJl
dHVybiB0b0xpbmVhcjxTUkdCVHJhbnNmZXJGdW5jdGlvbjxmbG9hdCwgVHJhbnNmZXJGdW5jdGlv
bk1vZGU6OlVuY2xhbXBlZD4+KGNvbG9yKTsKKyAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwog
fQogCiBFeHRlbmRlZFNSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxm
bG9hdD4sIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJF
eHRlbmRlZFNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
PFNSR0JUcmFuc2ZlckZ1bmN0aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6VW5jbGFt
cGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8v
IFByb1Bob3RvUkdCIDwtPiBMaW5lYXJQcm9QaG90b1JHQiBjb252ZXJzaW9ucy4KIAogTGluZWFy
UHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9h
dD4sIFByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8UHJvUGhvdG9SR0JUcmFuc2ZlckZ1bmN0
aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBlZD4+KGNvbG9yKTsKKyAgICBy
ZXR1cm4gdG9MaW5lYXIoY29sb3IpOwogfQogCiBQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPFByb1Bob3RvUkdCPGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVy
biB0b0dhbW1hRW5jb2RlZDxQcm9QaG90b1JHQlRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5z
ZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5j
b2RlZChjb2xvcik7CiB9CiAKIC8vIFJlYzIwMjAgPC0+IExpbmVhclJlYzIwMjAgY29udmVyc2lv
bnMuCiAKIExpbmVhclJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJSZWMyMDIw
PGZsb2F0PiwgUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFJlYzIwMjA8ZmxvYXQ+JiBj
b2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8UmVjMjAyMFRyYW5zZmVyRnVuY3Rpb248Zmxv
YXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3IpOworICAgIHJldHVybiB0
b0xpbmVhcihjb2xvcik7CiB9CiAKIFJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxSZWMy
MDIwPGZsb2F0PiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJl
YzIwMjA8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQ8UmVjMjAy
MFRyYW5zZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4o
Y29sb3IpOworICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CiB9CiAKIC8vIFNSR0JB
IDwtPiBMaW5lYXJTUkdCQSBjb252ZXJzaW9ucy4KIAogTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29u
c3QgU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gdG9MaW5lYXI8U1JHQlRyYW5z
ZmVyRnVuY3Rpb248ZmxvYXQsIFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj4oY29sb3Ip
OworICAgIHJldHVybiB0b0xpbmVhcihjb2xvcik7CiB9CiAKIFNSR0JBPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0
IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
PFNSR0JUcmFuc2ZlckZ1bmN0aW9uPGZsb2F0LCBUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBl
ZD4+KGNvbG9yKTsKKyAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwogfQogCiAvLyBN
QVJLOiBNYXRyaXggY29udmVyc2lvbnMgKHRvIGFuZCBmcm9tIFhZWiBmb3IgYWxsIGxpbmVhciBj
b2xvciB0eXBlcykuCiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8g
eHl6VG9MaW5lYXIoY29uc3QgWFlaRm9yPENvbG9yVHlwZT4mIGNvbG9yKSAtPiBDb2xvclR5cGUK
K3sKKyAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxDb2xv
clR5cGU+KENvbG9yVHlwZTo6eHl6VG9MaW5lYXIudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gc3RhdGljIGF1dG8gbGluZWFyVG9YWVooY29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4g
WFlaRm9yPENvbG9yVHlwZT4KK3sKKyAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBp
bmdFeGNlcHRBbHBoYTxYWVpGb3I8Q29sb3JUeXBlPj4oQ29sb3JUeXBlOjpsaW5lYXJUb1hZWi50
cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKK30K
KwogLy8gLSBMaW5lYXJBOThSR0IgbWF0cml4IGNvbnZlcnNpb25zLgogCi1MaW5lYXJBOThSR0I8
ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD46
OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lv
bjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252
ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0
dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyQTk4UkdCPGZs
b2F0Pj4oeHl6VG9MaW5lYXJBOThSR0JNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVh
ckE5OFJHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyQTk4UkdCPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVos
IExpbmVhckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD4m
IGNvbG9yKQorWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4sIExpbmVhckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhckE5OFJHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNv
bXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPExpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVyZW5j
ZVhZWj4obGluZWFyQTk4UkdCVG9YWVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMo
YXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVh
ckE5OFJHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAogLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4
IGNvbnZlcnNpb25zLgogCi1MaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxM
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VY
WVo+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiYg
Y29sb3IpCitMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNv
bnN0IFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJu
IG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4oeHl6VG9MaW5lYXJEaXNwbGF5UDNNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVu
dHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFyPExp
bmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyRGlzcGxheVAzPGZsb2F0
Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVosIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+
IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4sIExpbmVhckRp
c3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mIGNv
bG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhh
PExpbmVhckRpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4obGluZWFyRGlzcGxheVAzVG9Y
WVpNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29s
b3IpKSk7CisgICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNv
bG9yKTsKIH0KIAogLy8gLSBMaW5lYXJFeHRlbmRlZFNSR0JBIG1hdHJpeCBjb252ZXJzaW9ucy4K
IAotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
JiBjb2xvcikKK0xpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYgY29s
b3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KHh5elRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zv
cm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1
cm4geHl6VG9MaW5lYXI8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKTsKIH0KIAot
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248
TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFyRXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBj
b2xvcikKK1hZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiYgY29sb3Ip
CiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGlu
ZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj4obGluZWFyU1JHQlRvWFlaTWF0
cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkp
OworICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29s
b3IpOwogfQogCiAvLyAtIExpbmVhclByb1Bob3RvUkdCIG1hdHJpeCBjb252ZXJzaW9ucy4KIAot
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JH
QjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVy
dChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0
IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+JiBjb2xvcikKIHsKLSAgICByZXR1cm4g
bWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxMaW5lYXJQcm9QaG90b1JHQjxm
bG9hdD4+KHh5elRvTGluZWFyUHJvUGhvdG9SR0JNYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBv
bmVudHMoYXNDb2xvckNvbXBvbmVudHMoY29sb3IpKSk7CisgICAgcmV0dXJuIHh5elRvTGluZWFy
PExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4oY29sb3IpOwogfQogCi1MaW5lYXJQcm9QaG90b1JH
QjxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQo
Y29uc3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKK1hZWkZvcjxMaW5lYXJQcm9Q
aG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQ
cm9QaG90b1JHQjxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZ0V4Y2VwdEFscGhhPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaPihsaW5lYXJQcm9QaG90b1JHQlRvWFlaTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25l
bnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworICAgIHJldHVybiBsaW5lYXJUb1hZWjxM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKTsKIH0KIAogLy8gLSBMaW5lYXJSZWMyMDIw
IG1hdHJpeCBjb252ZXJzaW9ucy4KIAotTGluZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJz
aW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaPjo6Y29udmVydChjb25zdCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJiBj
b2xvcikKK0xpbmVhclJlYzIwMjA8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJSZWMyMDIw
PGZsb2F0PiwgWFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFla
Rm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9t
Q29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyUmVjMjAyMDxmbG9hdD4+KHh5elRv
TGluZWFyUmVjMjAyME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29t
cG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUmVjMjAyMDxm
bG9hdD4+KGNvbG9yKTsKIH0KIAotTGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiBD
b2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFy
UmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xv
cikKK1hZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxM
aW5lYXJSZWMyMDIwPGZsb2F0Pj4sIExpbmVhclJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25z
dCBMaW5lYXJSZWMyMDIwPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1ha2VGcm9tQ29t
cG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5j
ZVhZWj4obGluZWFyUmVjMjAyMFRvWFlaTWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRz
KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOworICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5l
YXJSZWMyMDIwPGZsb2F0Pj4oY29sb3IpOwogfQogCiAvLyAtIExpbmVhclNSR0JBIG1hdHJpeCBj
b252ZXJzaW9ucy4KIAotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJT
UkdCQTxmbG9hdD4sIExpbmVhclNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPjo6Y29udmVydChj
b25zdCBMaW5lYXJTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMaW5lYXJTUkdC
QTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVh
clNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRB
bHBoYTxMaW5lYXJTUkdCQTxmbG9hdD4+KHh5elRvTGluZWFyU1JHQk1hdHJpeC50cmFuc2Zvcm1l
ZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4g
eHl6VG9MaW5lYXI8TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcik7CiB9CiAKLUxpbmVhclNSR0JB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJT
UkdCQTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252
ZXJzaW9uPFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCiB7Ci0gICAgcmV0dXJuIG1h
a2VGcm9tQ29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8TGluZWFyU1JHQkE8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVo+KGxpbmVhclNSR0JUb1hZWk1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9u
ZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKKyAgICByZXR1cm4gbGluZWFyVG9YWVo8
TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcik7CiB9CiAKIC8vIE1BUks6IEhTTCBjb252ZXJzaW9u
cy4KQEAgLTQ1NCw3ICszODEsNyBAQCBzdGF0aWMgY29uc3RleHByIGZsb2F0IExBQmUgPSAyMTYu
MGYgLyAyCiBzdGF0aWMgY29uc3RleHByIGZsb2F0IExBQmsgPSAyNDM4OS4wZiAvIDI3LjBmOwog
c3RhdGljIGNvbnN0ZXhwciBmbG9hdCBENTBXaGl0ZVZhbHVlc1tdID0geyAwLjk2NDIyZiwgMS4w
ZiwgMC44MjUyMWYgfTsKIAotTGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lv
bjxMYWI8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExh
YjxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExhYjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGFiPGZsb2F0Pj4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNv
bG9yKQogewogICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4w
ZjsKICAgICBmbG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDg0LDcgKzQx
MSw3IEBAIExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb24KICAgICByZXR1
cm4geyB4LCB5LCB6LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMYWI8ZmxvYXQ+LCBMYWI8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0
IExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMYWI8ZmxvYXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZv
cjxMYWI8ZmxvYXQ+PiYgY29sb3IpCiB7CiAgICAgZmxvYXQgeCA9IGNvbG9yLnggLyBENTBXaGl0
ZVZhbHVlc1swXTsKICAgICBmbG9hdCB5ID0gY29sb3IueSAvIEQ1MFdoaXRlVmFsdWVzWzFdOwpA
QCAtNTM4LDEwOCArNDY1LDEwOCBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8Zmxv
YXQ+LCBMCiAKIC8vIC0gQTk4UkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KIAotQTk4UkdCPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9y
KQorWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8QTk4UkdCPGZs
b2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9y
KQogewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFla
Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExpbmVhckE5
OFJHQjxmbG9hdD4+KGNvbG9yKSk7CiB9CiAKLUE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9u
PEE5OFJHQjxmbG9hdD4sIEE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29u
c3QgQTk4UkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJiBjb2xvcikKK0E5OFJHQjxmbG9hdD4gQ29s
b3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD4sIFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZl
cnQoY29uc3QgWFlaRm9yPEE5OFJHQjxmbG9hdD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29u
dmVydENvbG9yPEE5OFJHQjxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCiAvLyAtIERpc3BsYXlQMyBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCiAK
LURpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiBDb2xvckNvbnZlcnNpb248RGlzcGxheVAz
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBE
aXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKK1hZWkZvcjxEaXNwbGF5UDM8ZmxvYXQ+PiBDb2xvckNv
bnZlcnNpb248WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+LCBEaXNwbGF5UDM8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVy
dENvbG9yPERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29udmVydENvbG9yPExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpG
b3I8RGlzcGxheVAzPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1EaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxEaXNwbGF5
UDM8ZmxvYXQ+LCBEaXNwbGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0
IERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiYgY29sb3IpCitEaXNwbGF5UDM8ZmxvYXQ+
IENvbG9yQ29udmVyc2lvbjxEaXNwbGF5UDM8ZmxvYXQ+LCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0
Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCiB7CiAg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxEaXNwbGF5UDM8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGlu
ZWFyRGlzcGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKIH0KIAogLy8gLSBFeHRlbmRlZFNSR0IgY29t
YmluYXRpb24gZnVuY3Rpb25zLgogCi1FeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFla
IENvbG9yQ29udmVyc2lvbjxFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBFeHRl
bmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNv
bG9yKQorWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9y
PEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENv
bG9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+KGNvbnZlcnRDb2xvcjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4gY29udmVydENvbG9y
PFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKIH0KIAotRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JD
b252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVm
ZXJlbmNlWFlaPjo6Y29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNl
WFlaJiBjb2xvcikKK0V4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxFeHRlbmRl
ZFNSR0JBPGZsb2F0PiwgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29u
c3QgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYgY29sb3IpCiB7CiAgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIEhTTEEgY29tYmluYXRpb24gZnVu
Y3Rpb25zLgogCi1IU0xBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxIU0xB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBIU0xBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgSFNMQTxm
bG9hdD4mIGNvbG9yKQorWFlaRm9yPEhTTEE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9y
PEhTTEE8ZmxvYXQ+PiwgSFNMQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEhTTEE8ZmxvYXQ+JiBj
b2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEhTTEE8ZmxvYXQ+OjpSZWZlcmVuY2VY
WVo+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxYWVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihj
b2xvcikpOwogfQogCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIEhT
TEE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IEhTTEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVomIGNvbG9yKQorSFNMQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+
LCBYWVpGb3I8SFNMQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8SFNMQTxmbG9hdD4+
JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVydENvbG9yPEhTTEE8ZmxvYXQ+Pihjb252ZXJ0
Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIEhXQkEgY29tYmluYXRpb24g
ZnVuY3Rpb25zLgogCi1IV0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxI
V0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBIV0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgSFdC
QTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPEhXQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEhXQkE8ZmxvYXQ+PiwgSFdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+
JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEhXQkE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7CisgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFdCQTxmbG9hdD4s
IEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVomIGNvbG9yKQorSFdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPEhXQkE8Zmxv
YXQ+LCBYWVpGb3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8SFdCQTxmbG9h
dD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVydENvbG9yPEhXQkE8ZmxvYXQ+Pihjb252
ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIExDSEEgY29tYmluYXRp
b24gZnVuY3Rpb25zLgogCi1MQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lv
bjxMQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMQ0hBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3Qg
TENIQTxmbG9hdD4mIGNvbG9yKQorWFlaRm9yPExDSEE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248
WFlaRm9yPExDSEE8ZmxvYXQ+PiwgTENIQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExDSEE8Zmxv
YXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPExDSEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVo+KGNvbnZlcnRDb2xvcjxMYWI8ZmxvYXQ+Pihjb2xvcikpOworICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8WFlaRm9yPExDSEE8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExhYjxmbG9hdD4+
KGNvbG9yKSk7CiB9CiAKLUxDSEE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMQ0hBPGZsb2F0Piwg
TENIQTxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29uc3QgTENIQTxmbG9hdD46OlJl
ZmVyZW5jZVhZWiYgY29sb3IpCitMQ0hBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TENIQTxmbG9h
dD4sIFhZWkZvcjxMQ0hBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMQ0hBPGZsb2F0
Pj4mIGNvbG9yKQogewogICAgIHJldHVybiBjb252ZXJ0Q29sb3I8TENIQTxmbG9hdD4+KGNvbnZl
cnRDb2xvcjxMYWI8ZmxvYXQ+Pihjb2xvcikpOwogfQogCiAvLyAtIFByb1Bob3RvUkdCIGNvbWJp
bmF0aW9uIGZ1bmN0aW9ucy4KIAotUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogQ29s
b3JDb252ZXJzaW9uPFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBQcm9QaG90b1JH
QjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCitYWVpG
b3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPFByb1Bob3RvUkdC
PGZsb2F0Pj4sIFByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8
ZmxvYXQ+JiBjb2xvcikKIHsKLSAgICByZXR1cm4gY29udmVydENvbG9yPFByb1Bob3RvUkdCPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaPihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+
Pihjb2xvcikpOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdCPGZs
b2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7CiB9
CiAKLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+
LCBQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWj46OmNvbnZlcnQoY29uc3QgUHJvUGhv
dG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomIGNvbG9yKQorUHJvUGhvdG9SR0I8ZmxvYXQ+IENv
bG9yQ29udmVyc2lvbjxQcm9QaG90b1JHQjxmbG9hdD4sIFhZWkZvcjxQcm9QaG90b1JHQjxmbG9h
dD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYgY29sb3IpCiB7
CiAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxQcm9QaG90b1JHQjxmbG9hdD4+KGNvbnZlcnRDb2xv
cjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7CiB9CiAKIC8vIC0gUmVjMjAyMCBj
b21iaW5hdGlvbiBmdW5jdGlvbnMuCiAKLVJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogQ29s
b3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIFJlYzIwMjA8ZmxvYXQ+
Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0PiYgY29sb3IpCitYWVpGb3I8UmVjMjAyMDxm
bG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBSZWMyMDIwPGZs
b2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQogewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29udmVydENvbG9y
PExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8
WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVydENvbG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+
Pihjb2xvcikpOwogfQogCi1SZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UmVjMjAyMDxm
bG9hdD4sIFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IFJlYzIw
MjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomIGNvbG9yKQorUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChj
b25zdCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKIHsKICAgICByZXR1cm4gY29udmVy
dENvbG9yPFJlYzIwMjA8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+
KGNvbG9yKSk7CiB9CiAKIC8vIC0gU1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCiAKLVNSR0JB
PGZsb2F0Pjo6UmVmZXJlbmNlWFlaIENvbG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD46OlJlZmVy
ZW5jZVhZWiwgU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9y
KQorWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxmbG9h
dD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3IpCiB7
Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWj4oY29u
dmVydENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKKyAgICByZXR1cm4gY29udmVy
dENvbG9yPFhZWkZvcjxTUkdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8Zmxv
YXQ+Pihjb2xvcikpOwogfQogCi1TUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZs
b2F0PiwgU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaJiBjb2xvcikKK1NSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248
U1JHQkE8ZmxvYXQ+LCBYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9y
PFNSR0JBPGZsb2F0Pj4mIGNvbG9yKQogewogICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8
ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwogfQpAQCAt
NjU2LDcgKzU4Myw3IEBAIFNSR0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQK
IFNSR0JBPHVpbnQ4X3Q+IENvbG9yQ29udmVyc2lvbjxTUkdCQTx1aW50OF90PiwgU1JHQkE8Zmxv
YXQ+Pjo6Y29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yKQogewogICAgIHJldHVybiBt
YWtlRnJvbUNvbXBvbmVudHM8U1JHQkE8dWludDhfdD4+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9y
KS5tYXAoW10oZmxvYXQgdmFsdWUpIC0+IHVpbnQ4X3QgewotICAgICAgICByZXR1cm4gc3RkOjps
cm91bmQodmFsdWUgKiAyNTUuMGYpOworICAgICAgICByZXR1cm4gc3RkOjpjbGFtcChzdGQ6Omxy
b3VuZCh2YWx1ZSAqIDI1NS4wZiksIDBsLCAyNTVsKTsKICAgICB9KSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5o
CShyZXZpc2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTcgKzMyLDE4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gQWxsIGNvbG9yIHR5cGVzIG11c3QgYXQgbGVhc3QgaW1wbGVt
ZW50IHRoZSBmb2xsb3dpbmcgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gdGhlaXIgcmVmZXJlbmNl
IFhZWiBjb2xvciBzcGFjZQogLy8KLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVy
c2lvbjxgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZVhZWiwgYENvbG9yVHlwZWA8ZmxvYXQ+
PiB7Ci0vLyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29uc3QgYENvbG9yVHlwZWA8ZmxvYXQ+Jik7CisvLyAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBDb2xvclR5cGVgPGZsb2F0
Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4geworLy8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IGBDb2xvclR5cGVgPGZs
b2F0PiYpOwogLy8gICAgfTsKIC8vICAgIAotLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPGBDb2xvclR5cGVgPGZsb2F0PiwgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVo+IHsKLS8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8Zmxv
YXQ+IGNvbnZlcnQoY29uc3QgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKKy8v
ICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBlYDxmbG9hdD4s
IFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7CisvLyAgICAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxgQ29sb3JUeXBl
YDxmbG9hdD4+Jik7CiAvLyAgICB9OwogLy8KIC8vIEFueSBhZGRpdGlvbmFsIGNvbnZlcnNpb25z
IGNhbiBiZSB0aG91Z2h0IG9mIGFzIG9wdGltaXphdGlvbnMsIHNob3J0Y3V0dGluZyB1bm5lY2Vz
c2FyeSBzdGVwcywgdGhvdWdoCiAvLyBzb21lIG1heSBiZSBpbnRlZ3JhbCB0byB0aGUgYmFzZSBj
b252ZXJzaW9uLgogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHVzaW5nIFhZWkZvciA9
IFhZWkE8dHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlLCBDb2xvclR5cGU6OndoaXRl
UG9pbnQ+OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPdXRwdXQsIHR5cGVuYW1lIElucHV0PiBzdHJ1
Y3QgQ29sb3JDb252ZXJzaW9uOwogCkBAIC01MSwxNCArNTIsMTMgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dAogICAgIHJldHVybiBDb2xvckNvbnZlcnNpb248T3V0
cHV0LCBJbnB1dD46OmNvbnZlcnQoY29sb3IpOwogfQogCi0KIC8vIEE5OFJHQgotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiwgQTk4
UkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBOThSR0I8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVogY29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPEE5OFJHQjxmbG9hdD4+LCBBOThSR0I8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxBOThSR0I8ZmxvYXQ+PiBjb252
ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQTk4UkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IEE5
OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEE5OFJHQjxmbG9hdD4sIFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4geworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEE5OFJH
QjxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTY4LDEyICs2OCwxMiBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gRGlzcGxheVAzCi10
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaLCBEaXNwbGF5UDM8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERp
c3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9h
dD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYp
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9h
dD4sIERpc3BsYXlQMzxmbG9hdD46OlJlZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBEaXNwbGF5UDM8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtODMsMTIgKzgzLDEyIEBAIHRlbXBs
YXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXIKIAogCiAvLyBFeHRlbmRlZFNSR0JB
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0
IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IHsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBj
b252ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdCQTxmbG9hdD4sIEV4dGVuZGVkU1JHQkE8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXh0ZW5k
ZWRTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6UmVmZXJl
bmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RXh0ZW5kZWRTUkdC
QTxmbG9hdD4sIFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgRXh0ZW5kZWRTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RXh0
ZW5kZWRTUkdCQTxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTk4LDEyICs5OCwx
MiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gSFNM
QQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIEhTTEE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhTTEE8Zmxv
YXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBIU0xBPGZsb2F0PiYpOwordGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxIU0xBPGZsb2F0Pj4gY29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBIU0xBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgSFNMQTxmbG9hdD46
OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8
ZmxvYXQ+LCBYWVpGb3I8SFNMQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEhTTEE8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0xMTMsMTIgKzExMywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248U1JHQkE8CiAKIAogLy8gSFdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIEhXQkE8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChj
b25zdCBIV0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZ
WkZvcjxIV0JBPGZsb2F0Pj4sIEhXQkE8ZmxvYXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFhZWkZvcjxIV0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwogfTsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhXQkE8ZmxvYXQ+LCBIV0JBPGZs
b2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8Zmxv
YXQ+IGNvbnZlcnQoY29uc3QgSFdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhXQkE8ZmxvYXQ+LCBYWVpGb3I8SFdCQTxmbG9hdD4+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3Qg
WFlaRm9yPEhXQkE8ZmxvYXQ+PiYpOwogfTsKIAogLy8gQWRkaXRpb25zCkBAIC0xMjgsMTIgKzEy
OCwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8CiAKIAogLy8g
TENIQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVosIExDSEE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExDSEE8
ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwordGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8Zmxv
YXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMQ0hBPGZsb2F0Pj4gY29u
dmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBMQ0hBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTENIQTxmbG9h
dD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExD
SEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExDSEE8ZmxvYXQ+PiYpOwogfTsK
IAogLy8gQWRkaXRpb25zCkBAIC0xNDMsMTIgKzE0MywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248TGFiPGZsCiAKIAogLy8gTGFiCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248TGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMYWI8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIExhYjxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNv
bnN0IExhYjxmbG9hdD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8TGFiPGZsb2F0Pj4sIExhYjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
WFlaRm9yPExhYjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExhYjxmbG9hdD4sIExhYjxmbG9hdD46OlJl
ZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMYWI8ZmxvYXQ+IGNvbnZl
cnQoY29uc3QgTGFiPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248TGFiPGZsb2F0PiwgWFlaRm9yPExhYjxmbG9hdD4+PiB7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGFiPGZs
b2F0Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtMTU4LDEyICsxNTgsMTIgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExDSEE8ZgogCiAKIC8vIExpbmVhckE5OFJHQgot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckE5OFJHQjxmbG9hdD46OlJl
ZmVyZW5jZVhZWiwgTGluZWFyQTk4UkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVydChjb25zdCBMaW5l
YXJBOThSR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPExpbmVhckE5OFJHQjxmbG9hdD4+LCBMaW5lYXJBOThSR0I8ZmxvYXQ+PiB7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiBjb252ZXJ0KGNv
bnN0IExpbmVhckE5OFJHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyQTk4UkdCPGZsb2F0
PiBjb252ZXJ0KGNvbnN0IExpbmVhckE5OFJHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiYpOwordGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckE5OFJHQjxmbG9hdD4sIFhZWkZv
cjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5l
YXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+
Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTE3MywxMiArMTczLDEyIEBAIHRlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0IKIAogCiAvLyBMaW5lYXJEaXNwbGF5UDMKLXRl
bXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+OjpS
ZWZlcmVuY2VYWVosIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29u
c3QgTGluZWFyRGlzcGxheVAzPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiwgTGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGluZWFyRGlzcGxheVAz
PGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Jik7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0Piwg
TGluZWFyRGlzcGxheVAzPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29u
dmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0
PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0xODgsMTIgKzE4OCwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248RGlzcGxhCiAKIAogLy8gTGluZWFyRXh0ZW5kZWRTUkdCQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZl
cmVuY2VYWVosIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVy
dChjb25zdCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZv
cjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD46OlJl
ZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+PiB7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IGNv
bnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYpOwogfTsKIAog
Ly8gQWRkaXRpb25zCkBAIC0yMDMsMTIgKzIwMywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248RXh0ZW5kCiAKIAogLy8gTGluZWFyUHJvUGhvdG9SR0IKLXRlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5j
ZVhZWiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaIGNvbnZlcnQoY29uc3Qg
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248WFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4sIExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGluZWFyUHJvUGhv
dG9SR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZlcnQoY29u
c3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4sIFhZWkZvcjxM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90
b1JHQjxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTIxOCwxMiArMjE4LDEyIEBA
IHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxQcm9QaG8KIAogCiAvLyBMaW5lYXJS
ZWMyMDIwCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxm
bG9hdD46OlJlZmVyZW5jZVhZWiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0
KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFyUmVjMjAyMDxmbG9h
dD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExpbmVhclJlYzIwMjA8Zmxv
YXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxmbG9hdD4sIExpbmVhclJl
YzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJSZWMyMDIwPGZsb2F0Pjo6
UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFy
UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+IHsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpG
b3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Jik7CiB9OwogCiAvLyBBZGRpdGlvbnMKQEAgLTIzMywx
MiArMjMzLDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxSZWMyMDIKIAog
CiAvLyBMaW5lYXJTUkdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVh
clNSR0JBPGZsb2F0Pjo6UmVmZXJlbmNlWFlaLCBMaW5lYXJTUkdCQTxmbG9hdD4+IHsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29u
dmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8TGluZWFyU1JHQkE8ZmxvYXQ+PiwgTGluZWFyU1JHQkE8ZmxvYXQ+
PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
IGNvbnZlcnQoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBMaW5lYXJTUkdCQTxmbG9h
dD46OlJlZmVyZW5jZVhZWj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJTUkdC
QTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiYp
OwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JBPGZsb2F0Piwg
WFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGluZWFyU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0
Pj4mKTsKIH07CiAKIC8vIEFkZGl0aW9ucwpAQCAtMjQ4LDEyICsyNDgsMTIgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPAogCiAKIC8vIFByb1Bob3RvUkdCCi10ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+OjpSZWZlcmVu
Y2VYWVosIFByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQ
cm9QaG90b1JHQjxmbG9hdD46OlJlZmVyZW5jZVhZWiBjb252ZXJ0KGNvbnN0IFByb1Bob3RvUkdC
PGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxQcm9Q
aG90b1JHQjxmbG9hdD4+LCBQcm9QaG90b1JHQjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgWFlaRm9yPFByb1Bob3RvUkdCPGZsb2F0Pj4gY29udmVydChjb25zdCBQcm9QaG90
b1JHQjxmbG9hdD4mKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxQ
cm9QaG90b1JHQjxmbG9hdD4sIFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0
IFByb1Bob3RvUkdCPGZsb2F0Pjo6UmVmZXJlbmNlWFlaJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8Zmxv
YXQ+Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYpOwogfTsKIAogLy8gQWRkaXRp
b25zCkBAIC0yNjMsMTIgKzI2MywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248TGluZWFyCiAKIAogLy8gUmVjMjAyMAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVosIFJlYzIwMjA8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+OjpSZWZlcmVuY2VYWVogY29udmVy
dChjb25zdCBSZWMyMDIwPGZsb2F0PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4sIFJlYzIwMjA8ZmxvYXQ+PiB7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4gY29udmVydChjb25zdCBSZWMy
MDIwPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFJl
YzIwMjA8ZmxvYXQ+LCBSZWMyMDIwPGZsb2F0Pjo6UmVmZXJlbmNlWFlaPiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9h
dD46OlJlZmVyZW5jZVhZWiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFJl
YzIwMjA8ZmxvYXQ+LCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPFJlYzIwMjA8Zmxv
YXQ+PiYpOwogfTsKIAogLy8gQWRkaXRpb25zCkBAIC0yNzgsMTIgKzI3OCwxMiBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyCiAKIAogLy8gU1JHQkEKLXRlbXBsYXRl
PD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD46OlJlZmVyZW5jZVhZWiwgU1JH
QkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNSR0JBPGZsb2F0Pjo6UmVm
ZXJlbmNlWFlaIGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb248WFlaRm9yPFNSR0JBPGZsb2F0Pj4sIFNSR0JBPGZsb2F0Pj4gewor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNv
bnN0IFNSR0JBPGZsb2F0PiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFNSR0JBPGZsb2F0PiwgU1JHQkE8ZmxvYXQ+OjpSZWZlcmVuY2VYWVo+IHsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+
OjpSZWZlcmVuY2VYWVomKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxTUkdC
QTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxTUkdCQTxmbG9hdD4+Jik7CiB9
OwogCiAvLyBBZGRpdGlvbnMKQEAgLTM3Myw4ICszNzMsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBP
dXRwdXQsIHR5cGVuYW1lIElucHV0CiAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChzdGQ6Omlz
X3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVpbnQ4X3Q+PikKICAgICAgICAgICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9y
KSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXV0byB4eXoxID0gY29udmVydENvbG9y
PHR5cGVuYW1lIElucHV0OjpSZWZlcmVuY2VYWVo+KGNvbG9yKTsKLSAgICAgICAgICAgIGF1dG8g
eHl6MiA9IGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBPdXRwdXQ6OlJlZmVyZW5jZVhZWj4oeHl6MSk7
CisgICAgICAgICAgICBhdXRvIHh5ejEgPSBjb252ZXJ0Q29sb3I8WFlaRm9yPElucHV0Pj4oY29s
b3IpOworICAgICAgICAgICAgYXV0byB4eXoyID0gY29udmVydENvbG9yPFhZWkZvcjxPdXRwdXQ+
Pih4eXoxKTsKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0Pih4eXoyKTsK
ICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjggKzI2
LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbG9yQ29tcG9uZW50cy5oIgorI2lu
Y2x1ZGUgIkNvbG9yTWF0cml4LmgiCiAjaW5jbHVkZSAiQ29sb3JNb2RlbHMuaCIKKyNpbmNsdWRl
ICJDb2xvclRyYW5zZmVyRnVuY3Rpb25zLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51
bSBjbGFzcyBXaGl0ZVBvaW50IHsgRDUwLCBENjUgfTsKIAotdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBBOThSR0I7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERpc3BsYXlQMzsKLXRlbXBs
YXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRXh0ZW5kZWRTUkdCQTsKK3RlbXBsYXRlPHR5cGVuYW1lLCB0
eXBlbmFtZT4gc3RydWN0IEJvdW5kZWRHYW1tYUVuY29kZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwg
dHlwZW5hbWU+IHN0cnVjdCBCb3VuZGVkTGluZWFyRW5jb2RlZDsKK3RlbXBsYXRlPHR5cGVuYW1l
LCB0eXBlbmFtZT4gc3RydWN0IEV4dGVuZGVkR2FtbWFFbmNvZGVkOwordGVtcGxhdGU8dHlwZW5h
bWUsIHR5cGVuYW1lPiBzdHJ1Y3QgRXh0ZW5kZWRMaW5lYXJFbmNvZGVkOwogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBIU0xBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBIV0JBOwogdGVt
cGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMQ0hBOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBM
YWI7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExpbmVhckE5OFJHQjsKLXRlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgTGluZWFyRGlzcGxheVAzOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVj
dCBMaW5lYXJFeHRlbmRlZFNSR0JBOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMaW5lYXJQ
cm9QaG90b1JHQjsKLXRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyUmVjMjAyMDsKLXRl
bXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTGluZWFyU1JHQkE7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4g
c3RydWN0IFByb1Bob3RvUkdCOwotdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBSZWMyMDIwOwot
dGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBTUkdCQTsKIHRlbXBsYXRlPHR5cGVuYW1lLCBXaGl0
ZVBvaW50PiBzdHJ1Y3QgWFlaQTsKIAogLy8gTUFSSzogTWFrZSBmdW5jdGlvbnMuCkBAIC0xOTEs
MTAgKzE4NSwxMiBAQCBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvbG9yVHlwCiAK
IC8vIE1BUks6IC0gUkdCIENvbG9yIFR5cGVzLgogCi10ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgQywgdHlwZW5hbWUgVCwgdHlwZW5hbWUgTT4gc3RydWN0IFJHQkFUeXBlIDogQ29s
b3JXaXRoQWxwaGFIZWxwZXI8QzxUPj4gewordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
RCwgdHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBNLCB0eXBlbmFtZSBURj4gc3RydWN0IFJH
QkFUeXBlIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8Q29sb3JUeXBlPiB7CiAgICAgdXNpbmcgQ29t
cG9uZW50VHlwZSA9IFQ7CiAgICAgdXNpbmcgTW9kZWwgPSBNOwotICAgIAorICAgIHVzaW5nIFRy
YW5zZmVyRnVuY3Rpb24gPSBURjsKKyAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hp
dGVQb2ludCA9IEQ6OndoaXRlUG9pbnQ7CisKICAgICBjb25zdGV4cHIgUkdCQVR5cGUoVCByZWQs
IFQgZ3JlZW4sIFQgYmx1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAg
ICAgIDogcmVkIHsgcmVkIH0KICAgICAgICAgLCBncmVlbiB7IGdyZWVuIH0KQEAgLTIxNSwxMDIg
KzIxMSwxNjYgQEAgdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEMsIHR5cAogICAg
IFQgYWxwaGE7CiB9OwogCi10ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgQ29sb3JU
eXBlLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBNPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+
IGFzQ29sb3JDb21wb25lbnRzKGNvbnN0IFJHQkFUeXBlPENvbG9yVHlwZSwgVCwgTT4mIGMpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBELCB0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVu
YW1lIE0sIHR5cGVuYW1lIFRGPiBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPFQ+IGFzQ29sb3JD
b21wb25lbnRzKGNvbnN0IFJHQkFUeXBlPFQsIEQsIENvbG9yVHlwZSwgTSwgVEY+JiBjKQogewog
ICAgIHJldHVybiB7IGMucmVkLCBjLmdyZWVuLCBjLmJsdWUsIGMuYWxwaGEgfTsKIH0KIAogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQTk4UkdCIDogUkdCQVR5cGU8QTk4UkdCLCBULCBS
R0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPEE5OFJHQiwgVCwgUkdCTW9kZWw8VD4+
OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFydCA9IExpbmVhckE5OFJHQjxU
PjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47Ci19
OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gQTk4UkdCKFQsIFQsIFQsIFQpIC0+IEE5OFJHQjxUPjsK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEQ+CitzdHJ1Y3QgQm91bmRlZEdhbW1hRW5j
b2RlZCA6IFJHQkFUeXBlPFQsIEQsIEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgRD4sIFJHQk1vZGVs
PFQ+LCB0eXBlbmFtZSBEOjp0ZW1wbGF0ZSBUcmFuc2ZlckZ1bmN0aW9uPFRyYW5zZmVyRnVuY3Rp
b25Nb2RlOjpDbGFtcGVkPj4geworICAgIHVzaW5nIFJHQkFUeXBlPFQsIEQsIEJvdW5kZWRHYW1t
YUVuY29kZWQ8VCwgRD4sIFJHQk1vZGVsPFQ+LCB0eXBlbmFtZSBEOjp0ZW1wbGF0ZSBUcmFuc2Zl
ckZ1bmN0aW9uPFRyYW5zZmVyRnVuY3Rpb25Nb2RlOjpDbGFtcGVkPj46OlJHQkFUeXBlOwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGlzcGxheVAzIDogUkdCQVR5cGU8RGlzcGxheVAz
LCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPERpc3BsYXlQMywgVCwgUkdC
TW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFydCA9IExpbmVh
ckRpc3BsYXlQMzxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9p
bnQ6OkQ2NT47CisgICAgdXNpbmcgTGluZWFyQ291bnRlcnBhcnQgPSBCb3VuZGVkTGluZWFyRW5j
b2RlZDxULCBEPjsKKyAgICB1c2luZyBFeHRlbmRlZENvdW50ZXJwYXJ0ID0gRXh0ZW5kZWRHYW1t
YUVuY29kZWQ8VCwgRD47CiB9OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gRGlzcGxheVAzKFQsIFQs
IFQsIFQpIC0+IERpc3BsYXlQMzxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEV4
dGVuZGVkU1JHQkEgOiBSR0JBVHlwZTxFeHRlbmRlZFNSR0JBLCBULCBFeHRlbmRlZFJHQk1vZGVs
PFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8RXh0ZW5kZWRTUkdCQSwgVCwgRXh0ZW5kZWRSR0JN
b2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIExpbmVhckNvdW50ZXJwYXJ0ID0gTGluZWFy
RXh0ZW5kZWRTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQsIFdoaXRl
UG9pbnQ6OkQ2NT47Ci19OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gRXh0ZW5kZWRTUkdCQShULCBU
LCBULCBUKSAtPiBFeHRlbmRlZFNSR0JBPFQ+OwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgRD4KK3N0cnVjdCBCb3VuZGVkTGluZWFyRW5jb2RlZCA6IFJHQkFUeXBlPFQsIEQsIEJvdW5k
ZWRMaW5lYXJFbmNvZGVkPFQsIEQ+LCBSR0JNb2RlbDxUPiwgdHlwZW5hbWUgRDo6dGVtcGxhdGUg
VHJhbnNmZXJGdW5jdGlvbjxUcmFuc2ZlckZ1bmN0aW9uTW9kZTo6Q2xhbXBlZD4+IHsKKyAgICB1
c2luZyBSR0JBVHlwZTxULCBELCBCb3VuZGVkTGluZWFyRW5jb2RlZDxULCBEPiwgUkdCTW9kZWw8
VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlv
bk1vZGU6OkNsYW1wZWQ+Pjo6UkdCQVR5cGU7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBMaW5lYXJBOThSR0IgOiBSR0JBVHlwZTxMaW5lYXJBOThSR0IsIFQsIFJHQk1vZGVsPFQ+PiB7
Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyQTk4UkdCLCBULCBSR0JNb2RlbDxUPj46OlJHQkFU
eXBlOwotICAgIHVzaW5nIEdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0ID0gQTk4UkdCPFQ+OwotICAg
IHVzaW5nIFJlZmVyZW5jZVhZWiA9IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKLX07Ci10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBMaW5lYXJBOThSR0IoVCwgVCwgVCwgVCkgLT4gTGluZWFyQTk4UkdC
PFQ+OworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBsaW5lYXJUb1hZWiA9IEQ6OmxpbmVhclRv
WFlaOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4eXpUb0xpbmVhciA9IEQ6Onh5elRvTGlu
ZWFyOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTGluZWFyRGlzcGxheVAzIDogUkdC
QVR5cGU8TGluZWFyRGlzcGxheVAzLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPExpbmVhckRpc3BsYXlQMywgVCwgUkdCTW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2lu
ZyBHYW1tYUVuY29kZWRDb3VudGVycGFydCA9IERpc3BsYXlQMzxUPjsKLSAgICB1c2luZyBSZWZl
cmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47CisgICAgdXNpbmcgR2FtbWFFbmNv
ZGVkQ291bnRlcnBhcnQgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIEQ+OworICAgIHVzaW5nIEV4
dGVuZGVkQ291bnRlcnBhcnQgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD47CiB9OwotdGVt
cGxhdGU8dHlwZW5hbWUgVD4gTGluZWFyRGlzcGxheVAzKFQsIFQsIFQsIFQpIC0+IExpbmVhckRp
c3BsYXlQMzxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExpbmVhckV4dGVuZGVk
U1JHQkEgOiBSR0JBVHlwZTxMaW5lYXJFeHRlbmRlZFNSR0JBLCBULCBFeHRlbmRlZFJHQk1vZGVs
PFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyRXh0ZW5kZWRTUkdCQSwgVCwgRXh0ZW5k
ZWRSR0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIEdhbW1hRW5jb2RlZENvdW50ZXJw
YXJ0ID0gRXh0ZW5kZWRTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VYWVogPSBYWVpBPFQs
IFdoaXRlUG9pbnQ6OkQ2NT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBEPgorc3Ry
dWN0IEV4dGVuZGVkR2FtbWFFbmNvZGVkIDogUkdCQVR5cGU8VCwgRCwgRXh0ZW5kZWRHYW1tYUVu
Y29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRy
YW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1vZGU6OlVuY2xhbXBlZD4+IHsKKyAgICB1
c2luZyBSR0JBVHlwZTxULCBELCBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBEPiwgRXh0ZW5kZWRS
R0JNb2RlbDxUPiwgdHlwZW5hbWUgRDo6dGVtcGxhdGUgVHJhbnNmZXJGdW5jdGlvbjxUcmFuc2Zl
ckZ1bmN0aW9uTW9kZTo6VW5jbGFtcGVkPj46OlJHQkFUeXBlOworCisgICAgdXNpbmcgTGluZWFy
Q291bnRlcnBhcnQgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD47CisgICAgdXNpbmcgQm91
bmRlZENvdW50ZXJwYXJ0ID0gQm91bmRlZEdhbW1hRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBS
ZWZlcmVuY2UgPSBMaW5lYXJDb3VudGVycGFydDsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBM
aW5lYXJFeHRlbmRlZFNSR0JBKFQsIFQsIFQsIFQpIC0+IExpbmVhckV4dGVuZGVkU1JHQkE8VD47
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMaW5lYXJQcm9QaG90b1JHQiA6IFJHQkFU
eXBlPExpbmVhclByb1Bob3RvUkdCLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPExpbmVhclByb1Bob3RvUkdCLCBULCBSR0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVz
aW5nIEdhbW1hRW5jb2RlZENvdW50ZXJwYXJ0ID0gUHJvUGhvdG9SR0I8VD47Ci0gICAgdXNpbmcg
UmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENTA+OwordGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgRD4KK3N0cnVjdCBFeHRlbmRlZExpbmVhckVuY29kZWQgOiBSR0JBVHlw
ZTxULCBELCBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4s
IHR5cGVuYW1lIEQ6OnRlbXBsYXRlIFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1v
ZGU6OlVuY2xhbXBlZD4+IHsKKyAgICB1c2luZyBSR0JBVHlwZTxULCBELCBFeHRlbmRlZExpbmVh
ckVuY29kZWQ8VCwgRD4sIEV4dGVuZGVkUkdCTW9kZWw8VD4sIHR5cGVuYW1lIEQ6OnRlbXBsYXRl
IFRyYW5zZmVyRnVuY3Rpb248VHJhbnNmZXJGdW5jdGlvbk1vZGU6OlVuY2xhbXBlZD4+OjpSR0JB
VHlwZTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBsaW5lYXJUb1hZWiA9IEQ6OmxpbmVh
clRvWFlaOworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4eXpUb0xpbmVhciA9IEQ6Onh5elRv
TGluZWFyOworCisgICAgdXNpbmcgR2FtbWFFbmNvZGVkQ291bnRlcnBhcnQgPSBFeHRlbmRlZEdh
bW1hRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBCb3VuZGVkQ291bnRlcnBhcnQgPSBCb3VuZGVk
TGluZWFyRW5jb2RlZDxULCBEPjsKKyAgICB1c2luZyBSZWZlcmVuY2UgPSBYWVpBPFQsIEQ6Ondo
aXRlUG9pbnQ+OwogfTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVhclByb1Bob3RvUkdCKFQs
IFQsIFQsIFQpIC0+IExpbmVhclByb1Bob3RvUkdCPFQ+OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgTGluZWFyUmVjMjAyMCA6IFJHQkFUeXBlPExpbmVhclJlYzIwMjAsIFQsIFJHQk1v
ZGVsPFQ+PiB7Ci0gICAgdXNpbmcgUkdCQVR5cGU8TGluZWFyUmVjMjAyMCwgVCwgUkdCTW9kZWw8
VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBHYW1tYUVuY29kZWRDb3VudGVycGFydCA9IFJlYzIw
MjA8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENjU+
OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNSR0JBRGVzY3JpcHRvciB7CisgICAgdGVt
cGxhdGU8VHJhbnNmZXJGdW5jdGlvbk1vZGUgTW9kZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9
IFNSR0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hp
dGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDY1OworCisgICAgLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVhciB7CisgICAgICAgICAz
LjI0MDk2OTk0MTkwNDUyMjZmLCAgLTEuNTM3MzgzMTc3NTcwMDk0ZiwgICAtMC40OTg2MTA3NjAy
OTMwMDM0ZiwKKyAgICAgICAgLTAuOTY5MjQzNjM2MjgwODc5NmYsICAgMS44NzU5Njc1MDE1MDc3
MjAyZiwgICAwLjA0MTU1NTA1NzQwNzE3NTU5ZiwKKyAgICAgICAgIDAuMDU1NjMwMDc5Njk2OTkz
NjZmLCAtMC4yMDM5NzY5NTg4ODg5NzY1MmYsICAxLjA1Njk3MTUxNDI0Mjg3ODZmCisgICAgfTsK
KyAgICBzdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAg
ICAgICAgMC40MTIzOTA3OTkyNjU5NTkzNGYsIDAuMzU3NTg0MzM5MzgzODc4ZiwgICAwLjE4MDQ4
MDc4ODQwMTgzNDNmLAorICAgICAgICAwLjIxMjYzOTAwNTg3MTUxMDI3ZiwgMC43MTUxNjg2Nzg3
Njc3NTZmLCAgIDAuMDcyMTkyMzE1MzYwNzMzNzFmLAorICAgICAgICAwLjAxOTMzMDgxODcxNTU5
MTgyZiwgMC4xMTkxOTQ3Nzk3OTQ2MjU5OGYsIDAuOTUwNTMyMTUyMjQ5NjYwN2YKKyAgICB9Owog
fTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IExpbmVhclJlYzIwMjAoVCwgVCwgVCwgVCkgLT4gTGlu
ZWFyUmVjMjAyMDxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExpbmVhclNSR0JB
IDogUkdCQVR5cGU8TGluZWFyU1JHQkEsIFQsIFJHQk1vZGVsPFQ+PiB7Ci0gICAgdXNpbmcgUkdC
QVR5cGU8TGluZWFyU1JHQkEsIFQsIFJHQk1vZGVsPFQ+Pjo6UkdCQVR5cGU7Ci0gICAgdXNpbmcg
R2FtbWFFbmNvZGVkQ291bnRlcnBhcnQgPSBTUkdCQTxUPjsKLSAgICB1c2luZyBSZWZlcmVuY2VY
WVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ2NT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2lu
ZyBTUkdCQSA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+PjsKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhclNSR0JBID0gQm91bmRlZExpbmVhckVuY29k
ZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPFQ+PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4
dGVuZGVkU1JHQkEgPSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+
OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyRXh0ZW5kZWRTUkdCQSA9IEV4dGVu
ZGVkTGluZWFyRW5jb2RlZDxULCBTUkdCQURlc2NyaXB0b3I8VD4+OworCisKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBBOThSR0JEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFuc2Zl
ckZ1bmN0aW9uTW9kZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gQTk4UkdCVHJhbnNm
ZXJGdW5jdGlvbjxULCBNb2RlPjsKKyAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hp
dGVQb2ludCA9IFdoaXRlUG9pbnQ6OkQ2NTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtY29sb3IvI2NvbG9yLWNvbnZlcnNpb24tY29kZQorICAgIHN0YXRpYyBjb25zdGV4
cHIgQ29sb3JNYXRyaXg8MywgMz4geHl6VG9MaW5lYXIgeworICAgICAgICAgMi40OTM0OTY5MTE5
NDE0MjVmLCAgLTAuOTMxMzgzNjE3OTE5MTIzOWYsIC0wLjQwMjcxMDc4NDQ1MDcxNjhmLAorICAg
ICAgICAtMC44Mjk0ODg5Njk1NjE1NzQ3ZiwgIDEuNzYyNjY0MDYwMzE4MzQ2M2YsICAwLjAyMzYy
NDY4NTg0MTk0MzZmLAorICAgICAgICAgMC4wMzU4NDU4MzAyNDM3ODQ1ZiwgLTAuMDc2MTcyMzg5
MjY4MDQxOGYsICAwLjk1Njg4NDUyNDAwNzY4NzJmCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAgICAgICAgMC41NzY2NjkwNDI5
MTAxMzA1ZiwgICAwLjE4NTU1ODIzNzkwNjU0NjNmLCAgIDAuMTg4MjI4NjQ2MjM0OTk0N2YsCisg
ICAgICAgIDAuMjk3MzQ0OTc1MjUwNTM2MDVmLCAgMC42MjczNjM1NjYyNTU0NjYxZiwgICAwLjA3
NTI5MTQ1ODQ5Mzk5Nzg4ZiwKKyAgICAgICAgMC4wMjcwMzEzNjEzODY0MTIzNGYsICAwLjA3MDY4
ODg1MjUzNTgyNzIzZiwgIDAuOTkxMzM3NTM2ODM3NjM4OGYKKyAgICB9OwogfTsKLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+IExpbmVhclNSR0JBKFQsIFQsIFQsIFQpIC0+IExpbmVhclNSR0JBPFQ+Owog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUHJvUGhvdG9SR0IgOiBSR0JBVHlwZTxQcm9Q
aG90b1JHQiwgVCwgUkdCTW9kZWw8VD4+IHsKLSAgICB1c2luZyBSR0JBVHlwZTxQcm9QaG90b1JH
QiwgVCwgUkdCTW9kZWw8VD4+OjpSR0JBVHlwZTsKLSAgICB1c2luZyBMaW5lYXJDb3VudGVycGFy
dCA9IExpbmVhclByb1Bob3RvUkdCPFQ+OwotICAgIHVzaW5nIFJlZmVyZW5jZVhZWiA9IFhZWkE8
VCwgV2hpdGVQb2ludDo6RDUwPjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEE5OFJHQiA9
IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgQTk4UkdCRGVzY3JpcHRvcjxUPj47Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB1c2luZyBMaW5lYXJBOThSR0IgPSBCb3VuZGVkTGluZWFyRW5jb2RlZDxULCBB
OThSR0JEZXNjcmlwdG9yPFQ+PjsKKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGlz
cGxheVAzRGVzY3JpcHRvciB7CisgICAgdGVtcGxhdGU8VHJhbnNmZXJGdW5jdGlvbk1vZGUgTW9k
ZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9IFNSR0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+
OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2lu
dDo6RDY1OworCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29s
b3ItY29udmVyc2lvbi1jb2RlCisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAz
PiB4eXpUb0xpbmVhciB7CisgICAgICAgICAyLjQ5MzQ5NjkxMTk0MTQyNWYsICAtMC45MzEzODM2
MTc5MTkxMjM5ZiwgLTAuNDAyNzEwNzg0NDUwNzE2OGYsCisgICAgICAgIC0wLjgyOTQ4ODk2OTU2
MTU3NDdmLCAgMS43NjI2NjQwNjAzMTgzNDYzZiwgIDAuMDIzNjI0Njg1ODQxOTQzNmYsCisgICAg
ICAgICAwLjAzNTg0NTgzMDI0Mzc4NDVmLCAtMC4wNzYxNzIzODkyNjgwNDE4ZiwgIDAuOTU2ODg0
NTI0MDA3Njg3MmYKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8Mywg
Mz4gbGluZWFyVG9YWVogeworICAgICAgICAwLjQ4NjU3MDk0ODY0ODIxNjJmLCAwLjI2NTY2NzY5
MzE2OTA5MzFmLCAwLjE5ODIxNzI4NTIzNDM2M2YsCisgICAgICAgIDAuMjI4OTc0NTY0MDY5NzQ4
OGYsIDAuNjkxNzM4NTIxODM2NTA2NGYsIDAuMDc5Mjg2OTE0MDkzNzQ1ZiwKKyAgICAgICAgMC4w
ZiwgICAgICAgICAgICAgICAgMC4wNDUxMTMzODE4NTg5MDI2ZiwgMS4wNDM5NDQzNjg5MDA5NzZm
CisgICAgfTsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBQcm9QaG90b1JHQihULCBULCBULCBU
KSAtPiBQcm9QaG90b1JHQjxUPjsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFJlYzIw
MjAgOiBSR0JBVHlwZTxSZWMyMDIwLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFU
eXBlPFJlYzIwMjAsIFQsIFJHQk1vZGVsPFQ+Pjo6UkdCQVR5cGU7Ci0gICAgdXNpbmcgTGluZWFy
Q291bnRlcnBhcnQgPSBMaW5lYXJSZWMyMDIwPFQ+OwotICAgIHVzaW5nIFJlZmVyZW5jZVhZWiA9
IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIERp
c3BsYXlQMyA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgRGlzcGxheVAzRGVzY3JpcHRvcjxUPj47
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBMaW5lYXJEaXNwbGF5UDMgPSBCb3VuZGVkTGlu
ZWFyRW5jb2RlZDxULCBEaXNwbGF5UDNEZXNjcmlwdG9yPFQ+PjsKKworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgUHJvUGhvdG9SR0JEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFu
c2ZlckZ1bmN0aW9uTW9kZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gUHJvUGhvdG9S
R0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQ
b2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDUwOworCisgICAgLy8gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzcy1jb2xvci8jY29sb3ItY29udmVyc2lvbi1jb2RlCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiB4eXpUb0xpbmVhciB7CisgICAgICAgICAxLjM0
NTc5ODk3MzEwMjgyODFmLCAgLTAuMjU1NTgwMTAwMDc5OTc1MzRmLCAgLTAuMDUxMTA2Mjg1MDY3
NTM0MDFmLAorICAgICAgICAtMC41NDQ2MjI0OTM5MDI4MzQ3ZiwgICAxLjUwODIzMjc0MTMxMzI3
ODFmLCAgICAwLjAyMDUzNjAzMjM5MTQ3OTczZiwKKyAgICAgICAgIDAuMGYsICAgICAgICAgICAg
ICAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAgMS4yMTE5Njc1NDU2Mzg5NDU0ZgorICAgIH07
CisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBsaW5lYXJUb1hZWiB7Cisg
ICAgICAgIDAuNzk3NzYwNDg5NjcyMzAyN2YsICAwLjEzNTE4NTgzNzE3NTc0MDMxZiwgIDAuMDMx
MzQ5MzQ5NTgxNTI0OGYsCisgICAgICAgIDAuMjg4MDcxMTI4MjI5MjkzNGYsICAwLjcxMTg0MzIx
NzgxMDEwMTRmLCAgIDAuMDAwMDg1NjUzOTYwNjA1MjU5MDJmLAorICAgICAgICAwLjBmLCAgICAg
ICAgICAgICAgICAgMC4wZiwgICAgICAgICAgICAgICAgICAwLjgyNTEwNDYwMjUxMDQ2MDFmCisg
ICAgfTsKIH07Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZWMyMDIwKFQsIFQsIFQsIFQpIC0+IFJl
YzIwMjA8VD47CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTUkdCQSA6IFJHQkFUeXBl
PFNSR0JBLCBULCBSR0JNb2RlbDxUPj4gewotICAgIHVzaW5nIFJHQkFUeXBlPFNSR0JBLCBULCBS
R0JNb2RlbDxUPj46OlJHQkFUeXBlOwotICAgIHVzaW5nIExpbmVhckNvdW50ZXJwYXJ0ID0gTGlu
ZWFyU1JHQkE8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50
OjpENjU+OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgUHJvUGhvdG9SR0IgPSBCb3VuZGVk
R2FtbWFFbmNvZGVkPFQsIFByb1Bob3RvUkdCRGVzY3JpcHRvcjxUPj47Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB1c2luZyBMaW5lYXJQcm9QaG90b1JHQiA9IEJvdW5kZWRMaW5lYXJFbmNvZGVkPFQs
IFByb1Bob3RvUkdCRGVzY3JpcHRvcjxUPj47CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IFJlYzIwMjBEZXNjcmlwdG9yIHsKKyAgICB0ZW1wbGF0ZTxUcmFuc2ZlckZ1bmN0aW9uTW9k
ZSBNb2RlPiB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gUmVjMjAyMFRyYW5zZmVyRnVuY3Rpb248
VCwgTW9kZT47CisgICAgc3RhdGljIGNvbnN0ZXhwciBXaGl0ZVBvaW50IHdoaXRlUG9pbnQgPSBX
aGl0ZVBvaW50OjpENjU7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bG9yLyNjb2xvci1jb252ZXJzaW9uLWNvZGUKKyAgICBzdGF0aWMgY29uc3RleHByIENvbG9yTWF0
cml4PDMsIDM+IHh5elRvTGluZWFyIHsKKyAgICAgICAgIDEuNzE2NjUxMTg3OTcxMjY3NGYsICAg
LTAuMzU1NjcwNzgzNzc2MzkyMzNmLCAtMC4yNTMzNjYyODEzNzM2NTk3NGYsCisgICAgICAgIC0w
LjY2NjY4NDM1MTgzMjQ4OTJmLCAgICAxLjYxNjQ4MTIzNjYzNDkzOTVmLCAgIDAuMDE1NzY4NTQ1
ODEzOTExMTNmLAorICAgICAgICAgMC4wMTc2Mzk4NTc0NDUzMTA3ODNmLCAtMC4wNDI3NzA2MTMy
NTc4MDg1MjRmLCAwLjk0MjEwMzEyMTIzNTQ3MzhmCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IGxpbmVhclRvWFlaIHsKKyAgICAgICAgMC42MzY5NTgwNDgz
MDEyOTE0ZiwgMC4xNDQ2MTY5MDM1ODYyMDgzMmYsICAwLjE2ODg4MDk3NTE2NDE3MjFmLAorICAg
ICAgICAwLjI2MjcwMDIxMjAxMTI2NzFmLCAwLjY3Nzk5ODA3MTUxODg3MDhmLCAgIDAuMDU5MzAx
NzE2NDY5ODYxOTZmLAorICAgICAgICAwLjAwMDAwMDAwMDAwMDAwMGYsICAwLjAyODA3MjY5MzA0
OTA4NzQyOGYsIDEuMDYwOTg1MDU3NzEwNzkxZgorICAgIH07CiB9OwotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gU1JHQkEoVCwgVCwgVCwgVCkgLT4gU1JHQkE8VD47CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IHVzaW5nIFJlYzIwMjAgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIFJlYzIwMjBEZXNjcmlw
dG9yPFQ+PjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhclJlYzIwMjAgPSBCb3Vu
ZGVkTGluZWFyRW5jb2RlZDxULCBSZWMyMDIwRGVzY3JpcHRvcjxUPj47CisKIAogLy8gTUFSSzog
LSBMYWIgQ29sb3IgVHlwZS4KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExhYiA6IENv
bG9yV2l0aEFscGhhSGVscGVyPExhYjxUPj4gewogICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBU
OwogICAgIHVzaW5nIE1vZGVsID0gTGFiTW9kZWw8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlWFla
ID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENTA+OworICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQ
b2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDUwOworICAgIHVzaW5nIFJlZmVyZW5jZSA9
ICBYWVpBPFQsIHdoaXRlUG9pbnQ+OwogCiAgICAgY29uc3RleHByIExhYihUIGxpZ2h0bmVzcywg
VCBhLCBUIGIsIFQgYWxwaGEgPSBBbHBoYVRyYWl0czxUPjo6b3BhcXVlKQogICAgICAgICA6IGxp
Z2h0bmVzcyB7IGxpZ2h0bmVzcyB9CkBAIC0zNDIsNyArNDAyLDggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3RleHByIENvbG9yQ29tcAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IExD
SEEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxMQ0hBPFQ+PiB7CiAgICAgdXNpbmcgQ29tcG9uZW50
VHlwZSA9IFQ7CiAgICAgdXNpbmcgTW9kZWwgPSBMQ0hNb2RlbDxUPjsKLSAgICB1c2luZyBSZWZl
cmVuY2VYWVogPSBYWVpBPFQsIFdoaXRlUG9pbnQ6OkQ1MD47CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBXaGl0ZVBvaW50IHdoaXRlUG9pbnQgPSBXaGl0ZVBvaW50OjpENTA7CisgICAgdXNpbmcgUmVm
ZXJlbmNlID0gTGFiPFQ+OwogCiAgICAgY29uc3RleHByIExDSEEoVCBsaWdodG5lc3MsIFQgY2hy
b21hLCBUIGh1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAgICAgIDog
bGlnaHRuZXNzIHsgbGlnaHRuZXNzIH0KQEAgLTM3NSw3ICs0MzYsOCBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
SFNMQSA6IENvbG9yV2l0aEFscGhhSGVscGVyPEhTTEE8VD4+IHsKICAgICB1c2luZyBDb21wb25l
bnRUeXBlID0gVDsKICAgICB1c2luZyBNb2RlbCA9IEhTTE1vZGVsPFQ+OwotICAgIHVzaW5nIFJl
ZmVyZW5jZVhZWiA9IFhZWkE8VCwgV2hpdGVQb2ludDo6RDY1PjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFdoaXRlUG9pbnQgd2hpdGVQb2ludCA9IFdoaXRlUG9pbnQ6OkQ2NTsKKyAgICB1c2luZyBS
ZWZlcmVuY2UgPSBTUkdCQTxUPjsKIAogICAgIGNvbnN0ZXhwciBIU0xBKFQgaHVlLCBUIHNhdHVy
YXRpb24sIFQgbGlnaHRuZXNzLCBUIGFscGhhID0gQWxwaGFUcmFpdHM8VD46Om9wYXF1ZSkKICAg
ICAgICAgOiBodWUgeyBodWUgfQpAQCAtNDA3LDcgKzQ2OSw4IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNvbnN0ZXhwciBDb2xvckNvbXAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIV0JB
IDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8SFdCQTxUPj4gewogICAgIHVzaW5nIENvbXBvbmVudFR5
cGUgPSBUOwogICAgIHVzaW5nIE1vZGVsID0gSFdCTW9kZWw8VD47Ci0gICAgdXNpbmcgUmVmZXJl
bmNlWFlaID0gWFlaQTxULCBXaGl0ZVBvaW50OjpENjU+OworICAgIHN0YXRpYyBjb25zdGV4cHIg
V2hpdGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2ludDo6RDY1OworICAgIHVzaW5nIFJlZmVy
ZW5jZSA9IFNSR0JBPFQ+OwogCiAgICAgY29uc3RleHByIEhXQkEoVCBodWUsIFQgd2hpdGVuZXNz
LCBUIGJsYWNrbmVzcywgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCiAgICAgICAg
IDogaHVlIHsgaHVlIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQmFja2luZ1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUuaAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCYWNraW5nU3RvcmUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgYiA9IGZhc3REaXZpZGVC
eTI1NShiICogYSArIHBpeGVsLmJsdWUgKiBkKTsKICAgICAgICAgYSArPSBmYXN0RGl2aWRlQnky
NTUoZCAqIHBpeGVsLmFscGhhKTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IFNSR0JBIHsgciwg
ZywgYiwgYSB9OworICAgICAgICBhdXRvIHJlc3VsdCA9IFNSR0JBPHVpbnQ4X3Q+IHsgciwgZywg
YiwgYSB9OwogCiAgICAgICAgIGlmICghbV9wcmVtdWx0aXBseUFscGhhKQogICAgICAgICAgICAg
cmVzdWx0ID0gdW5wcmVtdWx0aXBsaWVkKHJlc3VsdCk7CkBAIC0yMjYsNyArMjI2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgaWYgKG1fcHJlbXVsdGlwbHlBbHBoYSAmJiAhYSkKICAgICAgICAgICAg
IHJldHVybiAwOwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gU1JHQkEgeyByLCBnLCBiLCBhIH07
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gU1JHQkE8dWludDhfdD4geyByLCBnLCBiLCBhIH07CiAK
ICAgICAgICAgaWYgKG1fcHJlbXVsdGlwbHlBbHBoYSAmJiBhIDwgMjU1KQogICAgICAgICAgICAg
cmVzdWx0ID0gcHJlbXVsdGlwbGllZEZsb29yaW5nKHJlc3VsdCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCShyZXZpc2lvbiAyNzI2
NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcg
QEAgc3RhdGljIE9wdGlvbmFsPFNSR0JBPHVpbnQ4X3Q+PiBtYWtlU2ltcAogICAgICAgICBjb21w
b25lbnRBcnJheVtpXSA9IGNvbXBvbmVudDsKICAgICB9CiAKLSAgICByZXR1cm4gY29udmVydENv
bG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7IGNvbXBvbmVudEFycmF5WzFdLCBjb21wb25lbnRB
cnJheVsyXSwgY29tcG9uZW50QXJyYXlbM10sIGNvbXBvbmVudEFycmF5WzBdIH0pOworICAgIHJl
dHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IGNvbXBvbmVu
dEFycmF5WzFdLCBjb21wb25lbnRBcnJheVsyXSwgY29tcG9uZW50QXJyYXlbM10sIGNvbXBvbmVu
dEFycmF5WzBdIH0pOwogfQogCiBSZWY8SW5iYW5kR2VuZXJpY0N1ZT4gSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0
dHJpYnV0ZWRTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9Db2xvckNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9Db2xvckNHLmNwcAkocmV2aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcg
KzgxLDcgQEAgc3RhdGljIE9wdGlvbmFsPFNSR0JBPHVpbnQ4X3Q+PiByb3VuZEFuZAogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gY29udmVydENvbG9y
PFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7IHIsIGcsIGIsIGEgfSk7CisgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkE8ZmxvYXQ+IHsgciwgZywgYiwgYSB9KTsKIH0K
IAogQ29sb3I6OkNvbG9yKENHQ29sb3JSZWYgY29sb3IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
LmgJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDYg
QEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudFJl
ZmVyZW5jZTsKIGNsYXNzIEZpbHRlckVmZmVjdDsKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnM7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IFNSR0JBOwogCiBjbGFzcyBGaWx0ZXJPcGVy
YXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsdGVyT3BlcmF0aW9uPiB7CiBw
dWJsaWM6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29sb3JH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9Db2xvckd0ay5jcHAJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKGNvbnN0IEdka1JHQkEm
IGNvbG9yKQotICAgIDogQ29sb3IoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQSB7
IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci5yZWQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3Iu
Z3JlZW4pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3IuYmx1ZSksIHN0YXRpY19jYXN0PGZsb2F0
Pihjb2xvci5hbHBoYSkgfSkpCisgICAgOiBDb2xvcihjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhf
dD4+KFNSR0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci5yZWQpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29sb3IuZ3JlZW4pLCBzdGF0aWNfY2FzdDxmbG9hdD4oY29sb3IuYmx1ZSks
IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci5hbHBoYSkgfSkpCiB7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0JKHJldmlz
aW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xv
ck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgT3B0aW9uYWw8
U1JHQkE8dWludDhfdD4+IG1ha2VTaW1wCiAgICAgW3JnYkNvbG9yIGdldFJlZDomcmVkQ29tcG9u
ZW50IGdyZWVuOiZncmVlbkNvbXBvbmVudCBibHVlOiZibHVlQ29tcG9uZW50IGFscGhhOiZhbHBo
YV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCi0gICAgcmV0dXJuIGNvbnZlcnRD
b2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkEgeyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVkQ29tcG9u
ZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGdyZWVuQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGJsdWVDb21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYWxwaGEpIH0pOworICAgIHJl
dHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IHN0YXRpY19j
YXN0PGZsb2F0PihyZWRDb21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZ3JlZW5Db21wb25l
bnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYmx1ZUNvbXBvbmVudCksIHN0YXRpY19jYXN0PGZsb2F0
PihhbHBoYSkgfSk7CiB9CiAKIENvbG9yIGNvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciAqY29sb3Ip
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29sb3JEaXJlY3Qy
RC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0NvbG9yRGlyZWN0MkQuY3BwCShyZXZpc2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKEQyRDFf
Q09MT1JfRiBjb2xvcikKLSAgICA6IENvbG9yKGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4o
U1JHQkEgeyBjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hIH0pKQorICAgIDogQ29s
b3IoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+PihTUkdCQTxmbG9hdD4geyBjb2xvci5yLCBj
b2xvci5nLCBjb2xvci5iLCBjb2xvci5hIH0pKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybUNv
bnRleHREaXJlY3QyRC5jcHAJKHJldmlzaW9uIDI3MjY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybUNvbnRleHREaXJlY3QyRC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dERpcmVjdDJEOjpz
ZXRBY3RpdmVMCiAKIENPTVB0cjxJRDJEMVNvbGlkQ29sb3JCcnVzaD4gUGxhdGZvcm1Db250ZXh0
RGlyZWN0MkQ6OmJydXNoV2l0aENvbG9yKGNvbnN0IEQyRDFfQ09MT1JfRiYgY29sb3IpCiB7Ci0g
ICAgYXV0byBjb2xvcktleSA9IGNvbG9yQ29udmVydDxTUkdCQTx1aW50OF90Pj4oU1JHQkEgeyBj
b2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hIH0pOworICAgIGF1dG8gY29sb3JLZXkg
PSBjb2xvckNvbnZlcnQ8U1JHQkE8dWludDhfdD4+KFNSR0JBPGZsb2F0PiB7IGNvbG9yLnIsIGNv
bG9yLmcsIGNvbG9yLmIsIGNvbG9yLmEgfSk7CiAKICAgICBpZiAoIWNvbG9yS2V5KSB7CiAgICAg
ICAgIGlmICghbV96ZXJvQnJ1c2gpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
Q29sb3JJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Nv
bG9ySU9TLm1tCShyZXZpc2lvbiAyNzI2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvQ29sb3JJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgQ29sb3IgY29s
b3JGcm9tVUlDb2xvcihVSUNvbG9yICpjb2xvcikKIAogICAgIFtjb2xvciBnZXRSZWQ6JnJlZENv
bXBvbmVudCBncmVlbjomZ3JlZW5Db21wb25lbnQgYmx1ZTomYmx1ZUNvbXBvbmVudCBhbHBoYTom
YWxwaGFdOwogCi0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oU1JHQkEg
eyBzdGF0aWNfY2FzdDxmbG9hdD4ocmVkQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGdy
ZWVuQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJsdWVDb21wb25lbnQpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oYWxwaGEpIH0pOworICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWlu
dDhfdD4+KFNSR0JBPGZsb2F0PiB7IHN0YXRpY19jYXN0PGZsb2F0PihyZWRDb21wb25lbnQpLCBz
dGF0aWNfY2FzdDxmbG9hdD4oZ3JlZW5Db21wb25lbnQpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYmx1
ZUNvbXBvbmVudCksIHN0YXRpY19jYXN0PGZsb2F0PihhbHBoYSkgfSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzI2NjQpCisrKyBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAy
LTEwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZXdvcmsgUkdC
IGNvbG9yIHR5cGVzIHRvIGJlIG1vcmUgZGVjbGFyYXRpdmUgdG8gcmVkdWNlIGNvZGUgZHVwbGlj
YXRpb24gYW5kIG1ha2UgcHJvZ3Jlc3MgdG93YXJkIGJldHRlciBhdXRvbWF0aWMgY29udmVyc2lv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHA6CisgICAgICAgICh3ZWJraXRDb2xvclRvV2Vi
Q29yZUNvbG9yKToKKyAgICAgICAgVXBkYXRlIHRvIHNwZWNpZnkgU1JHQkE8ZmxvYXQ+LCB3aGlj
aCBpcyBub3cgcmVxdWlyZWQgZHVlIHRvIGxhY2sgb2YgZGVkdWN0aW9uIGd1aWRlcyB0aHJvdWdo
CisgICAgICAgIHR5cGUgYWxpYXNlcy4KKwogMjAyMS0wMi0xMCAgS2F0ZSBDaGVuZXkgIDxrYXRo
ZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IEV4cGlyZWQgcmVwb3J0cyBn
ZXQgc2VudCBhdCB0aGUgc2FtZSB0aW1lIGFmdGVyIGEgc2Vzc2lvbiByZXN0YXJ0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAkocmV2
aXNpb24gMjcyNjU1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgR19ERUZJTkVfQk9YRURf
VFlQRShXZWJLaXRDb2xvciwgd2Via2l0XwogCiBjb25zdCBXZWJDb3JlOjpDb2xvciB3ZWJraXRD
b2xvclRvV2ViQ29yZUNvbG9yKFdlYktpdENvbG9yKiBjb2xvcikKIHsKLSAgICByZXR1cm4gV2Vi
Q29yZTo6Y29udmVydENvbG9yPFdlYkNvcmU6OlNSR0JBPHVpbnQ4X3Q+PihXZWJDb3JlOjpTUkdC
QSB7IHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+cmVkKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNv
bG9yLT5ncmVlbiksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+Ymx1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pihjb2xvci0+YWxwaGEpIH0pOworICAgIHJldHVybiBXZWJDb3JlOjpjb252ZXJ0Q29s
b3I8V2ViQ29yZTo6U1JHQkE8dWludDhfdD4+KFdlYkNvcmU6OlNSR0JBPGZsb2F0PiB7IHN0YXRp
Y19jYXN0PGZsb2F0Pihjb2xvci0+cmVkKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbG9yLT5ncmVl
biksIHN0YXRpY19jYXN0PGZsb2F0Pihjb2xvci0+Ymx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pihj
b2xvci0+YWxwaGEpIH0pOwogfQogCiB2b2lkIHdlYmtpdENvbG9yRmlsbEZyb21XZWJDb3JlQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHdlYkNvcmVDb2xvciwgV2ViS2l0Q29sb3IqIGNvbG9y
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>