<?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>182843</bug_id>
          
          <creation_ts>2018-02-15 15:15:30 -0800</creation_ts>
          <short_desc>Objects that contain dangerous things should be allocated far away from objects that can do OOB</short_desc>
          <delta_ts>2018-02-15 21:27:58 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>181636</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1399641</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 15:15:30 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399644</commentid>
    <comment_count>1</comment_count>
      <attachid>333956</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 15:19:09 -0800</bug_when>
    <thetext>Created attachment 333956
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399718</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-15 18:20:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/37592039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399722</commentid>
    <comment_count>3</comment_count>
      <attachid>333980</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 18:24:54 -0800</bug_when>
    <thetext>Created attachment 333980
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399726</commentid>
    <comment_count>4</comment_count>
      <attachid>333982</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 18:31:11 -0800</bug_when>
    <thetext>Created attachment 333982
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399755</commentid>
    <comment_count>5</comment_count>
      <attachid>333982</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-02-15 20:05:49 -0800</bug_when>
    <thetext>Comment on attachment 333982
the patch

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

r=me

&gt; Source/JavaScriptCore/heap/SecurityKind.h:40
&gt; +    // out-of-bounds. Currently, it&apos;s not essential to keep this separate from SeparateBits. We&apos;re using

SeparateBits =&gt; DangerousBits

&gt; Source/JavaScriptCore/heap/SecurityKind.h:44
&gt; +    // It&apos;s illegal to use this for any subclass of JSObject, JSString, or SymbolObject, or any other

While true for SymbolObject, I think you mean Symbol here. SymbolObject is a wrapper over symbol (ditto below)

&gt; Source/JavaScriptCore/runtime/VM.h:333
&gt; +    CompleteSubspace jsValueGigacageCellSpace; // FIXME: This space is problematic because we have things in here like DirectArguments and ScopedArguments; those should be split into JSValueOOB cells and JSValueStrict auxiliaries.

Link to bug#?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399762</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 20:28:06 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #5)
&gt; Comment on attachment 333982 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=333982&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/SecurityKind.h:40
&gt; &gt; +    // out-of-bounds. Currently, it&apos;s not essential to keep this separate from SeparateBits. We&apos;re using
&gt; 
&gt; SeparateBits =&gt; DangerousBits
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/SecurityKind.h:44
&gt; &gt; +    // It&apos;s illegal to use this for any subclass of JSObject, JSString, or SymbolObject, or any other
&gt; 
&gt; While true for SymbolObject, I think you mean Symbol here. SymbolObject is a
&gt; wrapper over symbol (ditto below)

Oh, oops!  Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/VM.h:333
&gt; &gt; +    CompleteSubspace jsValueGigacageCellSpace; // FIXME: This space is problematic because we have things in here like DirectArguments and ScopedArguments; those should be split into JSValueOOB cells and JSValueStrict auxiliaries.
&gt; 
&gt; Link to bug#?

https://bugs.webkit.org/show_bug.cgi?id=182858</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399771</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-02-15 21:27:58 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/228552/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333956</attachid>
            <date>2018-02-15 15:19:09 -0800</date>
            <delta_ts>2018-02-15 18:24:54 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25915</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAJ
KHJldmlzaW9uIDIyODQxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGly
ZWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBAIE1hcmtlZEJsb2Nr
OjpIYW5kbGUqIEJsb2NrRGlyZWN0b3J5Ojp0cnkKICAgICByZXR1cm4gaGFuZGxlOwogfQogCi12
b2lkIEJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaykK
K3ZvaWQgQmxvY2tEaXJlY3Rvcnk6OmFkZEJsb2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqIGJsb2Nr
LCBTZWN1cml0eU9yaWdpblRva2VuIHNlY3VyaXR5T3JpZ2luVG9rZW4pCiB7CiAgICAgc2l6ZV90
IGluZGV4OwogICAgIGlmIChtX2ZyZWVCbG9ja0luZGljZXMuaXNFbXB0eSgpKSB7CkBAIC0xNDgs
NyArMTQ4LDcgQEAgdm9pZCBCbG9ja0RpcmVjdG9yeTo6YWRkQmxvY2soTWFya2VkQmxvYwogICAg
ICAgICB9KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIHBvaW50IGF0IHdoaWNoIHRoZSBibG9jayBs
ZWFybnMgb2YgaXRzIGNlbGxTaXplKCkgYW5kIGF0dHJpYnV0ZXMoKS4KLSAgICBibG9jay0+ZGlk
QWRkVG9EaXJlY3RvcnkodGhpcywgaW5kZXgpOworICAgIGJsb2NrLT5kaWRBZGRUb0RpcmVjdG9y
eSh0aGlzLCBpbmRleCwgc2VjdXJpdHlPcmlnaW5Ub2tlbik7CiAgICAgCiAgICAgc2V0SXNMaXZl
KE5vTG9ja2luZ05lY2Vzc2FyeSwgaW5kZXgsIHRydWUpOwogICAgIHNldElzRW1wdHkoTm9Mb2Nr
aW5nTmVjZXNzYXJ5LCBpbmRleCwgdHJ1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9CbG9ja0RpcmVjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmgJKHJldmlzaW9uIDIyODQxOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8TWFya2VkQmxv
Y2s6OkhhbmRsZSooKT4+IHBhcmFsbGVsTm90RW1wdHlCbG9ja1NvdXJjZSgpOwogICAgIAotICAg
IHZvaWQgYWRkQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSopOworICAgIHZvaWQgYWRkQmxvY2so
TWFya2VkQmxvY2s6OkhhbmRsZSosIFNlY3VyaXR5T3JpZ2luVG9rZW4pOwogICAgIHZvaWQgcmVt
b3ZlQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSopOwogCiAgICAgYm9vbCBpc1BhZ2VkT3V0KGRv
dWJsZSBkZWFkbGluZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0
cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2Vs
bEF0dHJpYnV0ZXMuY3BwCShyZXZpc2lvbiAyMjg0MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9DZWxsQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQ2VsbEF0dHJpYnV0ZXM6OmR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoInsiLCBkZXN0cnVjdGlvbiwgIiwgIiwg
Y2VsbEtpbmQsICJ9Iik7CisgICAgb3V0LnByaW50KCJ7IiwgZGVzdHJ1Y3Rpb24sICIsICIsIGNl
bGxLaW5kLCAiLCAiLCBzZWN1cml0eUtpbmQsICJ9Iik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbEF0dHJpYnV0ZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0cmlidXRlcy5oCShy
ZXZpc2lvbiAyMjg0MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0cmli
dXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJEZXN0
cnVjdGlvbk1vZGUuaCIKICNpbmNsdWRlICJIZWFwQ2VsbC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5
S2luZC5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTM0LDkgKzM1LDEwIEBAIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IENlbGxBdHRyaWJ1dGVz
IHsKICAgICBDZWxsQXR0cmlidXRlcygpIHsgfQogICAgIAotICAgIENlbGxBdHRyaWJ1dGVzKERl
c3RydWN0aW9uTW9kZSBkZXN0cnVjdGlvbiwgSGVhcENlbGw6OktpbmQgY2VsbEtpbmQpCisgICAg
Q2VsbEF0dHJpYnV0ZXMoRGVzdHJ1Y3Rpb25Nb2RlIGRlc3RydWN0aW9uLCBIZWFwQ2VsbDo6S2lu
ZCBjZWxsS2luZCwgU2VjdXJpdHlLaW5kIHNlY3VyaXR5S2luZCkKICAgICAgICAgOiBkZXN0cnVj
dGlvbihkZXN0cnVjdGlvbikKICAgICAgICAgLCBjZWxsS2luZChjZWxsS2luZCkKKyAgICAgICAg
LCBzZWN1cml0eUtpbmQoc2VjdXJpdHlLaW5kKQogICAgIHsKICAgICB9CiAgICAgCkBAIC00NCw2
ICs0Niw3IEBAIHN0cnVjdCBDZWxsQXR0cmlidXRlcyB7CiAgICAgCiAgICAgRGVzdHJ1Y3Rpb25N
b2RlIGRlc3RydWN0aW9uIHsgRG9lc05vdE5lZWREZXN0cnVjdGlvbiB9OwogICAgIEhlYXBDZWxs
OjpLaW5kIGNlbGxLaW5kIHsgSGVhcENlbGw6OkpTQ2VsbCB9OworICAgIFNlY3VyaXR5S2luZCBz
ZWN1cml0eUtpbmQgeyBTZWN1cml0eUtpbmQ6OkRhbmdlcm91c0JpdHMgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJs
b2NrLmNwcAkocmV2aXNpb24gMjI4NDE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBN
YXJrZWRCbG9jazo6SGFuZGxlOjpyZW1vdmVGcm9tRGlyZQogICAgIG1fZGlyZWN0b3J5LT5yZW1v
dmVCbG9jayh0aGlzKTsKIH0KIAotdm9pZCBNYXJrZWRCbG9jazo6SGFuZGxlOjpkaWRBZGRUb0Rp
cmVjdG9yeShCbG9ja0RpcmVjdG9yeSogZGlyZWN0b3J5LCBzaXplX3QgaW5kZXgpCit2b2lkIE1h
cmtlZEJsb2NrOjpIYW5kbGU6OmRpZEFkZFRvRGlyZWN0b3J5KEJsb2NrRGlyZWN0b3J5KiBkaXJl
Y3RvcnksIHNpemVfdCBpbmRleCwgU2VjdXJpdHlPcmlnaW5Ub2tlbiBzZWN1cml0eU9yaWdpblRv
a2VuKQogewogICAgIEFTU0VSVChtX2luZGV4ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkpOwogICAgIEFTU0VSVCghbV9kaXJlY3RvcnkpOwpAQCAtMzQ5LDcgKzM0OSwyMCBA
QCB2b2lkIE1hcmtlZEJsb2NrOjpIYW5kbGU6OmRpZEFkZFRvRGlyZWN0CiAgICAgbV9hdG9tc1Bl
ckNlbGwgPSAoY2VsbFNpemUgKyBhdG9tU2l6ZSAtIDEpIC8gYXRvbVNpemU7CiAgICAgbV9lbmRB
dG9tID0gZW5kQXRvbSAtIG1fYXRvbXNQZXJDZWxsICsgMTsKICAgICAKKyAgICBpZiAoZGlyZWN0
b3J5LT5hdHRyaWJ1dGVzKCkuc2VjdXJpdHlLaW5kID09IFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9P
QikgeworICAgICAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gYmUgdXNlZCBmb3IgSlNWYWx1ZU9P
QiBhbGxvY2F0aW9ucywgdGhlbiB3ZSBtYXkgbmVlZCB0byB6ZXJvIHRoZSBibG9jay4KKyAgICAg
ICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byB6ZXJvIGl0IGlmIGl0IHdhcyBhbHJlYWR5IHVzZWQgZm9y
IEpTVmFsdWVzIGluIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbi4KKyAgICAgICAgLy8gSXQncyB0
ZW1wdGluZyB0byBzYXkgdGhhdCB0aGlzIG1lYW5zIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byB6ZXJv
IGl0IGlmIGl0J3MgY29taW5nIGZyb20KKyAgICAgICAgLy8gSlNWYWx1ZVN0cmljdCwgYnV0IHNp
bmNlIEpTVmFsdWVTdHJpY3QgZG9lc24ndCB6ZXJvIHdoZW4gY29udmVydGluZyBmcm9tIERhbmdl
cm91c0JpdHMsIHRoYXQKKyAgICAgICAgLy8gd291bGQgbm90IGJlIHNvdW5kLgorICAgICAgICAK
KyAgICAgICAgaWYgKG1fYXR0cmlidXRlcy5zZWN1cml0eUtpbmQgIT0gU2VjdXJpdHlLaW5kOjpK
U1ZhbHVlT09CCisgICAgICAgICAgICB8fCBtX3NlY3VyaXR5T3JpZ2luVG9rZW4gIT0gc2VjdXJp
dHlPcmlnaW5Ub2tlbikKKyAgICAgICAgICAgIGZhc3RaZXJvRmlsbEJ5dGVzKCZibG9jaygpLCBt
X2VuZEF0b20gKiBhdG9tU2l6ZSk7CisgICAgfQorICAgIAogICAgIG1fYXR0cmlidXRlcyA9IGRp
cmVjdG9yeS0+YXR0cmlidXRlcygpOworICAgIG1fc2VjdXJpdHlPcmlnaW5Ub2tlbiA9IHNlY3Vy
aXR5T3JpZ2luVG9rZW47CiAKICAgICBpZiAobV9hdHRyaWJ1dGVzLmNlbGxLaW5kICE9IEhlYXBD
ZWxsOjpKU0NlbGwpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYXR0cmlidXRlcy5kZXN0cnVj
dGlvbiA9PSBEb2VzTm90TmVlZERlc3RydWN0aW9uKTsKQEAgLTQ4OCwxNSArNTAxLDYgQEAgYm9v
bCBNYXJrZWRCbG9jazo6SGFuZGxlOjppc0ZyZWVMaXN0ZWRDZQogICAgIHJldHVybiBtX2RpcmVj
dG9yeS0+aXNGcmVlTGlzdGVkQ2VsbCh0YXJnZXQpOwogfQogCi12b2lkIE1hcmtlZEJsb2NrOjpI
YW5kbGU6OmFzc29jaWF0ZVdpdGhPcmlnaW4oU2VjdXJpdHlPcmlnaW5Ub2tlbiBzZWN1cml0eU9y
aWdpblRva2VuKQotewotICAgIGlmIChtX3NlY3VyaXR5T3JpZ2luVG9rZW4gPT0gc2VjdXJpdHlP
cmlnaW5Ub2tlbikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGZhc3RaZXJvRmlsbEJ5dGVz
KCZibG9jaygpLCBlbmRBdG9tICogYXRvbVNpemUpOwotICAgIG1fc2VjdXJpdHlPcmlnaW5Ub2tl
biA9IHNlY3VyaXR5T3JpZ2luVG9rZW47Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1l
c3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2su
aAkocmV2aXNpb24gMjI4NDE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2Vk
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDEyICsxOTAsMTEgQEAgcHVibGljOgogICAg
ICAgICAKICAgICAgICAgdm9pZCByZW1vdmVGcm9tRGlyZWN0b3J5KCk7CiAgICAgICAgIAotICAg
ICAgICB2b2lkIGRpZEFkZFRvRGlyZWN0b3J5KEJsb2NrRGlyZWN0b3J5Kiwgc2l6ZV90IGluZGV4
KTsKKyAgICAgICAgdm9pZCBkaWRBZGRUb0RpcmVjdG9yeShCbG9ja0RpcmVjdG9yeSosIHNpemVf
dCBpbmRleCwgU2VjdXJpdHlPcmlnaW5Ub2tlbik7CiAgICAgICAgIHZvaWQgZGlkUmVtb3ZlRnJv
bURpcmVjdG9yeSgpOwogICAgICAgICAKICAgICAgICAgdm9pZCBkdW1wU3RhdGUoUHJpbnRTdHJl
YW0mKTsKICAgICAgICAgCi0gICAgICAgIHZvaWQgYXNzb2NpYXRlV2l0aE9yaWdpbihTZWN1cml0
eU9yaWdpblRva2VuKTsKICAgICAgICAgU2VjdXJpdHlPcmlnaW5Ub2tlbiBzZWN1cml0eU9yaWdp
blRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpblRva2VuOyB9CiAgICAgICAg
IAogICAgIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TZWN1cml0
eUtpbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NlY3Vy
aXR5S2luZC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2VjdXJpdHlLaW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTZWN1cml0eUtpbmQuaCIKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpTZWN1cml0eUtpbmQgc2Vj
dXJpdHlLaW5kKQoreworICAgIHN3aXRjaCAoc2VjdXJpdHlLaW5kKSB7CisgICAgY2FzZSBKU0M6
OlNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQjoKKyAgICAgICAgb3V0LnByaW50KCJKU1ZhbHVlT09C
Iik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6U2VjdXJpdHlLaW5kOjpKU1ZhbHVl
U3RyaWN0OgorICAgICAgICBvdXQucHJpbnQoIkpTVmFsdWVTdHJpY3QiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgSlNDOjpTZWN1cml0eUtpbmQ6OkRhbmdlcm91c0JpdHM6CisgICAgICAg
IG91dC5wcmludCgiRGFuZ2Vyb3VzQml0cyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TZWN1cml0eUtpbmQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TZWN1cml0eUtpbmQuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TZWN1cml0eUtpbmQuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgSlNDIHsKKworZW51
bSBjbGFzcyBTZWN1cml0eUtpbmQgOiBwdWJsaWMgdWludDhfdCB7CisgICAgLy8gVGhlIEpTVmFs
dWVPT0Igc2VjdXJpdHkga2luZCBpcyBmb3IgY2VsbHMgdGhhdCBjb250YWluIEpWYWx1ZXMgYW5k
IGNhbiBiZSBhY2Nlc3NlZCBvdXQtb2YtYm91bmRzCisgICAgLy8gdXAgdG8gbWluaW11bURpc3Rh
bmNlQmV0d2VlbkNlbGxzRnJvbURpZmZlcmVudE9yaWdpbnMuCisgICAgLy8KKyAgICAvLyBKU1Zh
bHVlcyBjYW4gcmVmZXJlbmNlIGNlbGxzIGluIEpTVmFsdWVPT0IuIFRoZXJlZm9yZSwgSlNWYWx1
ZXMgY2FuIG9ubHkgcmVmZXJlbmNlIGNlbGxzIGluCisgICAgLy8gSlNWYWx1ZU9PQiAtIG90aGVy
d2lzZSBhIFNwZWN0cmUgT09CIGF0dGFjayB3b3VsZCBiZSBhYmxlIHRvIHZpb2xhdGUgdGhlIHJ1
bGVzIG9mIEpTVmFsdWVTdHJpY3QKKyAgICAvLyBhbmQgRGFuZ2Vyb3VzQml0cy4KKyAgICBKU1Zh
bHVlT09CLAorICAgIAorICAgIC8vIFRoZSBKU1ZhbHVlU3RyaWN0IHNlY3VyaXR5IGtpbmQgaXMg
Zm9yIGNlbGxzIHRoYXQgY29udGFpbiBKU1ZhbHVlcyBidXQgY2Fubm90IGJlIGFjY2Vzc2VkCisg
ICAgLy8gb3V0LW9mLWJvdW5kcy4gQ3VycmVudGx5LCBpdCdzIG5vdCBlc3NlbnRpYWwgdG8ga2Vl
cCB0aGlzIHNlcGFyYXRlIGZyb20gU2VwYXJhdGVCaXRzLiBXZSdyZSB1c2luZworICAgIC8vIHRo
aXMgdG8gZ2V0IHNvbWUgd2lnZ2xlIHJvb20gZm9yIGhvdyB3ZSBoYW5kbGUgYXJyYXkgZWxlbWVu
dHMuIEZvciBleGFtcGxlLCB3ZSBtaWdodCB3YW50IHRvCisgICAgLy8gYWxsb3cgT09CIHJlYWRz
IGJ1dCBub3QgT09CIHdyaXRlcy4KKyAgICAvLworICAgIC8vIEl0J3MgaWxsZWdhbCB0byB1c2Ug
dGhpcyBmb3IgYW55IHN1YmNsYXNzIG9mIEpTT2JqZWN0LCBKU1N0cmluZywgb3IgU3ltYm9sT2Jq
ZWN0LCBvciBhbnkgb3RoZXIKKyAgICAvLyBjZWxsIHRoYXQgY291bGQgYmUgcmVmZXJlbmNlZCBm
cm9tIGEgSlNWYWx1ZS4gWW91IG11c3QgdXNlIHBvaXNvbmVkIHBvaW50ZXJzIHRvIHBvaW50IGF0
IHRoZXNlCisgICAgLy8gY2VsbHMuCisgICAgSlNWYWx1ZVN0cmljdCwKKyAgICAKKyAgICAvLyBU
aGUgRGFuZ2Vyb3VzQml0cyBzZWN1cml0eSBraW5kIGlzIGZvciBjZWxscyB0aGF0IGNvbnRhaW4g
dmFsdWVzIHRoYXQgY291bGQgYmUgdXNlZnVsbHkgdHlwZS0KKyAgICAvLyBjb25mdXNlZCB3aXRo
IEpTVmFsdWUuCisgICAgLy8KKyAgICAvLyBJdCdzIGlsbGVnYWwgdG8gdXNlIHRoaXMgZm9yIGFu
eSBzdWJjbGFzcyBvZiBKU09iamVjdCwgSlNTdHJpbmcsIG9yIFN5bWJvbE9iamVjdCwgb3IgYW55
IG90aGVyCisgICAgLy8gY2VsbCB0aGF0IGNvdWxkIGJlIHJlZmVyZW5jZWQgZnJvbSBhIEpTVmFs
dWUuIFlvdSBtdXN0IHVzZSBwb2lzb25lZCBwb2ludGVycyB0byBwb2ludCBhdCB0aGVzZQorICAg
IC8vIGNlbGxzLgorICAgIERhbmdlcm91c0JpdHMKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07CisKK3ZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYsIEpTQzo6U2VjdXJpdHlLaW5kKTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxp
bmVzLmgJKHJldmlzaW9uIDIyODQxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIENvbXBs
ZXRlU3Vic3BhY2UqIEpTQ2VsbDo6c3Vic3BhY2VGb3IoVk0KIHsKICAgICBpZiAoQ2VsbFR5cGU6
Om5lZWRzRGVzdHJ1Y3Rpb24pCiAgICAgICAgIHJldHVybiAmdm0uZGVzdHJ1Y3RpYmxlQ2VsbFNw
YWNlOwotICAgIHJldHVybiAmdm0uY2VsbFNwYWNlOworICAgIHJldHVybiAmdm0uY2VsbERhbmdl
cm91c0JpdHNTcGFjZTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAJKHJldmlzaW9uIDIyODQxOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBKU0Rlc3RydWN0aWJsZU9iamVj
dERlc3Ryb3lGdW5jIHsKIH07CiAKIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOjpK
U0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpCi0gICAgOiBIZWFwQ2VsbFR5cGUoQ2Vs
bEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpCisgICAgOiBI
ZWFwQ2VsbFR5cGUoQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpT
Q2VsbCwgU2VjdXJpdHlLaW5kOjpKU1ZhbHVlT09CKSkKIHsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCShyZXZpc2lvbiAyMjg0MTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDQsNiArMTA0LDEyIEBAIGNsYXNzIEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lPgorICAg
IHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAgeworICAg
ICAgICByZXR1cm4gJnZtLmNlbGxKU1ZhbHVlT09CU3BhY2U7CisgICAgfQorCiAgICAgLy8gVGhp
cyBpcyBhIHN1cGVyIGRhbmdlcm91cyBtZXRob2QgZm9yIEpJVHMuIFNvbWV0aW1lcyB0aGUgSklU
cyB3aWxsIHdhbnQgdG8gY3JlYXRlIGVpdGhlciBhCiAgICAgLy8gSlNGaW5hbE9iamVjdCBvciBh
IEpTQXJyYXkuIFRoaXMgaXMgdGhlIG1ldGhvZCB0aGF0IHdpbGwgZG8gdGhhdC4KICAgICBzdGF0
aWMgSlNPYmplY3QqIGNyZWF0ZVJhd09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBCdXR0ZXJmbHkqID0gbnVsbHB0cik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZh
cmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlLmNwcAkocmV2aXNpb24gMjI4NDE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdEhlYXBDZWxs
VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdERlc3Ryb3lGCiB9OwogCiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVh
cENlbGxUeXBlOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlKCkKLSAgICA6
IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6
SlNDZWxsKSkKKyAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0
aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVPT0IpKQogewogfQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0hlYXBDZWxsVHlw
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmdIZWFwQ2VsbFR5cGUuY3BwCShyZXZpc2lvbiAyMjg0MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZ0hlYXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzks
NyArMzksNyBAQCBzdHJ1Y3QgSlNTdHJpbmdEZXN0cm95RnVuYyB7CiB9OwogCiBKU1N0cmluZ0hl
YXBDZWxsVHlwZTo6SlNTdHJpbmdIZWFwQ2VsbFR5cGUoKQotICAgIDogSGVhcENlbGxUeXBlKENl
bGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwpKQorICAgIDog
SGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpK
U0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQikpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbE9iamVjdC5oCShyZXZpc2lvbiAyMjg0MTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNiArMzAsMTIgQEAgY2xhc3MgU3ltYm9sT2JqZWN0IDogcHVibGljIEpT
V3JhcHBlck9iagogcHVibGljOgogICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CiAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KKyAgICBzdGF0aWMgQ29tcGxldGVTdWJzcGFjZSogc3Vi
c3BhY2VGb3IoVk0mIHZtKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZ2bS5jZWxsSlNWYWx1ZU9P
QlNwYWNlOworICAgIH0KKwogICAgIHN0YXRpYyBTeW1ib2xPYmplY3QqIGNyZWF0ZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgU3ltYm9sKiBzeW1ib2wgPSBT
eW1ib2w6OmNyZWF0ZSh2bSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CShyZXZpc2lvbiAyMjg0MjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCwxOSArMjM0LDIyIEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIGZhc3RNYWxsb2NBbGxvY2F0b3Ioc3RkOjpt
YWtlX3VuaXF1ZTxGYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4oKSkKICAgICAsIHBy
aW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yKHN0ZDo6bWFrZV91bmlxdWU8R2lnYWNhZ2VBbGlnbmVk
TWVtb3J5QWxsb2NhdG9yPihHaWdhY2FnZTo6UHJpbWl0aXZlKSkKICAgICAsIGpzVmFsdWVHaWdh
Y2FnZUFsbG9jYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9j
YXRvcj4oR2lnYWNhZ2U6OkpTVmFsdWUpKQotICAgICwgYXV4aWxpYXJ5SGVhcENlbGxUeXBlKHN0
ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERl
c3RydWN0aW9uLCBIZWFwQ2VsbDo6QXV4aWxpYXJ5KSkpCi0gICAgLCBjZWxsSGVhcENlbGxUeXBl
KHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVl
ZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCi0gICAgLCBkZXN0cnVjdGlibGVDZWxs
SGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRl
cyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCisgICAgLCBhdXhpbGlhcnlK
U1ZhbHVlU3RyaWN0SGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihD
ZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6QXV4aWxpYXJ5
LCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVTdHJpY3QpKSkKKyAgICAsIGF1eGlsaWFyeURhbmdlcm91
c0JpdHNIZWFwQ2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRy
aWJ1dGVzKERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpBdXhpbGlhcnksIFNlY3Vy
aXR5S2luZDo6RGFuZ2Vyb3VzQml0cykpKQorICAgICwgY2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5
cGUoc3RkOjptYWtlX3VuaXF1ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRyaWJ1dGVzKERvZXNOb3RO
ZWVkRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9P
QikpKQorICAgICwgY2VsbERhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1
ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRyaWJ1dGVzKERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sIEhl
YXBDZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQikpKQorICAgICwgZGVzdHJ1
Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEhlYXBDZWxsVHlwZT4oQ2Vs
bEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCwgU2VjdXJpdHlL
aW5kOjpEYW5nZXJvdXNCaXRzKSkpCiAgICAgLCBzdHJpbmdIZWFwQ2VsbFR5cGUoc3RkOjptYWtl
X3VuaXF1ZTxKU1N0cmluZ0hlYXBDZWxsVHlwZT4oKSkKICAgICAsIGRlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlPigpKQogICAgICwgc2VnbWVudGVkVmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5cGUoc3Rk
OjptYWtlX3VuaXF1ZTxKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlPigpKQog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAsIHdlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENl
bGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlw
ZT4oKSkKICNlbmRpZgotICAgICwgcHJpbWl0aXZlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgiUHJp
bWl0aXZlIEdpZ2FjYWdlIEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeUhlYXBDZWxsVHlwZS5n
ZXQoKSwgcHJpbWl0aXZlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCi0gICAgLCBqc1ZhbHVlR2ln
YWNhZ2VBdXhpbGlhcnlTcGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBh
dXhpbGlhcnlIZWFwQ2VsbFR5cGUuZ2V0KCksIGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRvci5nZXQo
KSkKLSAgICAsIGNlbGxTcGFjZSgiSlNDZWxsIiwgaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkKLSAgICAsIGpzVmFsdWVHaWdhY2FnZUNlbGxT
cGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBKU0NlbGwiLCBoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCisgICAgLCBwcmltaXRpdmVHaWdh
Y2FnZUF1eGlsaWFyeVNwYWNlKCJQcmltaXRpdmUgR2lnYWNhZ2UgQXV4aWxpYXJ5IiwgaGVhcCwg
YXV4aWxpYXJ5RGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZS5nZXQoKSwgcHJpbWl0aXZlR2lnYWNh
Z2VBbGxvY2F0b3IuZ2V0KCkpCisgICAgLCBqc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgi
SlNWYWx1ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBhdXhpbGlhcnlKU1ZhbHVlU3RyaWN0
SGVhcENlbGxUeXBlLmdldCgpLCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCisgICAg
LCBjZWxsSlNWYWx1ZU9PQlNwYWNlKCJKU0NlbGwgSlNWYWx1ZU9PQiIsIGhlYXAsIGNlbGxKU1Zh
bHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgpKQorICAg
ICwgY2VsbERhbmdlcm91c0JpdHNTcGFjZSgiSlNDZWxsIERhbmdlcm91c0JpdHMiLCBoZWFwLCBj
ZWxsRGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5n
ZXQoKSkKKyAgICAsIGpzVmFsdWVHaWdhY2FnZUNlbGxTcGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBK
U0NlbGwiLCBoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwganNWYWx1ZUdp
Z2FjYWdlQWxsb2NhdG9yLmdldCgpKQogICAgICwgZGVzdHJ1Y3RpYmxlQ2VsbFNwYWNlKCJEZXN0
cnVjdGlibGUgSlNDZWxsIiwgaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkKICAgICAsIHN0cmluZ1NwYWNlKCJKU1N0cmlu
ZyIsIGhlYXAsIHN0cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5n
ZXQoKSkKICAgICAsIGRlc3RydWN0aWJsZU9iamVjdFNwYWNlKCJKU0Rlc3RydWN0aWJsZU9iamVj
dCIsIGhlYXAsIGRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxv
Y0FsbG9jYXRvci5nZXQoKSkKQEAgLTI1NSwyMyArMjU4LDIzIEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgLCB3
ZWJBc3NlbWJseUNvZGVCbG9ja1NwYWNlKCJKU1dlYkFzc2VtYmx5Q29kZUJsb2NrU3BhY2UiLCBo
ZWFwLCB3ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0Fs
bG9jYXRvci5nZXQoKSkKICNlbmRpZgotICAgICwgYXN5bmNGdW5jdGlvblNwYWNlIElTT19TVUJT
UEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQXN5bmNGdW5jdGlvbikK
LSAgICAsIGFzeW5jR2VuZXJhdG9yRnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24pCi0gICAg
LCBib3VuZEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxs
VHlwZS5nZXQoKSwgSlNCb3VuZEZ1bmN0aW9uKQotICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVu
Y3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKQorICAgICwgYXN5bmNGdW5jdGlvblNwYWNl
IElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVlT09CSGVhcENlbGxUeXBlLmdldCgp
LCBKU0FzeW5jRnVuY3Rpb24pCisgICAgLCBhc3luY0dlbmVyYXRvckZ1bmN0aW9uU3BhY2UgSVNP
X1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbikKKyAgICAsIGJvdW5kRnVuY3Rpb25TcGFjZSBJU09fU1VC
U1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwgSlNCb3Vu
ZEZ1bmN0aW9uKQorICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25TcGFjZSBJU09fU1VC
U1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwgSlNDdXN0
b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikKICAgICAsIGRpcmVjdEV2YWxFeGVjdXRhYmxlU3BhY2Ug
SVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgRGlyZWN0RXZhbEV4ZWN1dGFibGUpCiAgICAgLCBlcnJvckluc3RhbmNlU3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBF
cnJvckluc3RhbmNlKQogICAgICwgZXhjZXB0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVh
cCwgZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBFeGNlcHRpb24pCi0gICAg
LCBleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
Y2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZSkKKyAgICAs
IGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBj
ZWxsRGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZS5nZXQoKSwgRXhlY3V0YWJsZVRvQ29kZUJsb2Nr
RWRnZSkKICAgICAsIGZ1bmN0aW9uRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhl
YXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEZ1bmN0aW9uRXhlY3V0YWJs
ZSkKLSAgICAsIGZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNGdW5jdGlvbikKLSAgICAsIGdlbmVyYXRvckZ1bmN0aW9uU3BhY2Ug
SVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNHZW5lcmF0
b3JGdW5jdGlvbikKKyAgICAsIGZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
Y2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRnVuY3Rpb24pCisgICAgLCBnZW5l
cmF0b3JGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVlT09C
SGVhcENlbGxUeXBlLmdldCgpLCBKU0dlbmVyYXRvckZ1bmN0aW9uKQogICAgICwgaW5kaXJlY3RF
dmFsRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUpCiAgICAgLCBpbmZl
cnJlZFR5cGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlLmdldCgpLCBJbmZlcnJlZFR5cGUpCiAgICAgLCBpbmZlcnJlZFZhbHVlU3BhY2Ug
SVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSW5mZXJyZWRWYWx1ZSkKICAgICAsIG1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3BhY2UgSVNP
X1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpCiAgICAgLCBuYXRpdmVFeGVjdXRhYmxlU3BhY2UgSVNP
X1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
TmF0aXZlRXhlY3V0YWJsZSkKLSAgICAsIG5hdGl2ZVN0ZEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQ
QUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNOYXRpdmVTdGRGdW5jdGlv
bikKKyAgICAsIG5hdGl2ZVN0ZEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
Y2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTTmF0aXZlU3RkRnVuY3Rpb24pCiAg
ICAgLCBwcm9ncmFtRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFByb2dyYW1FeGVjdXRhYmxlKQogICAgICwg
cHJvcGVydHlUYWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFByb3BlcnR5VGFibGUpCiAgICAgLCBzdHJ1Y3R1cmVSYXJl
RGF0YVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIFN0cnVjdHVyZVJhcmVEYXRhKQpAQCAtMjc5LDggKzI4Miw4IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIHdlYWtTZXRTcGFjZSBJ
U09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTV2Vha1NldCkKICAgICAsIHdlYWtNYXBTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha01hcCkKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgLCB3ZWJBc3NlbWJseUZ1bmN0aW9uU3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlGdW5j
dGlvbikKLSAgICAsIHdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNF
X0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVu
Y3Rpb24pCisgICAgLCB3ZWJBc3NlbWJseUZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQo
aGVhcCwgY2VsbEpTVmFsdWVIZWFwQ2VsbFR5cGUuZ2V0KCksIFdlYkFzc2VtYmx5RnVuY3Rpb24p
CisgICAgLCB3ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsIGNlbGxKU1ZhbHVlSGVhcENlbGxUeXBlLmdldCgpLCBXZWJBc3NlbWJseVdyYXBwZXJG
dW5jdGlvbikKICNlbmRpZgogICAgICwgZXJyb3JJbnN0YW5jZXNXaXRoRmluYWxpemVycyhlcnJv
ckluc3RhbmNlU3BhY2UpCiAgICAgLCBleGNlcHRpb25zV2l0aEZpbmFsaXplcnMoZXhjZXB0aW9u
U3BhY2UpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDIyODQy
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5Myw4ICsyOTMsMTAgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHaWdhY2Fn
ZUFsaWduZWRNZW1vcnlBbGxvY2F0b3I+IHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxHaWdhY2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3I+IGpzVmFsdWVH
aWdhY2FnZUFsbG9jYXRvcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5cGU+IGF1
eGlsaWFyeUhlYXBDZWxsVHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBj
ZWxsSGVhcENlbGxUeXBlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5cGU+IGF1eGls
aWFyeUpTVmFsdWVTdHJpY3RIZWFwQ2VsbFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBD
ZWxsVHlwZT4gYXV4aWxpYXJ5RGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBjZWxsRGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlw
ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU1N0cmluZ0hlYXBDZWxsVHlwZT4gc3Ry
aW5nSGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0Rlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZT4gZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOwpAQCAtMzI3LDgg
KzMyOSw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgLy8gV2hlbmV2ZXIgcG9zc2libGUs
IHVzZSBzdWJzcGFjZUZvcjxDZWxsVHlwZT4odm0pIHRvIGdldCBvbmUgb2YgdGhlc2Ugc3Vic3Bh
Y2VzLgotICAgIENvbXBsZXRlU3Vic3BhY2UgY2VsbFNwYWNlOwotICAgIENvbXBsZXRlU3Vic3Bh
Y2UganNWYWx1ZUdpZ2FjYWdlQ2VsbFNwYWNlOworICAgIENvbXBsZXRlU3Vic3BhY2UgY2VsbEpT
VmFsdWVPT0JTcGFjZTsKKyAgICBDb21wbGV0ZVN1YnNwYWNlIGNlbGxEYW5nZXJvdXNCaXRzU3Bh
Y2U7CisgICAgQ29tcGxldGVTdWJzcGFjZSBqc1ZhbHVlR2lnYWNhZ2VDZWxsU3BhY2U7IC8vIEZJ
WE1FOiBUaGlzIHNwYWNlIGlzIHByb2JsZW1hdGljIGJlY2F1c2Ugd2UgaGF2ZSB0aGluZ3MgaW4g
aGVyZSBsaWtlIERpcmVjdEFyZ3VtZW50cyBhbmQgU2NvcGVkQXJndW1lbnRzOyB0aG9zZSBzaG91
bGQgYmUgc3BsaXQgaW50byBKU1ZhbHVlT09CIGNlbGxzIGFuZCBKU1ZhbHVlU3RyaWN0IGF1eGls
aWFyaWVzLgogICAgIENvbXBsZXRlU3Vic3BhY2UgZGVzdHJ1Y3RpYmxlQ2VsbFNwYWNlOwogICAg
IENvbXBsZXRlU3Vic3BhY2Ugc3RyaW5nU3BhY2U7CiAgICAgQ29tcGxldGVTdWJzcGFjZSBkZXN0
cnVjdGlibGVPYmplY3RTcGFjZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2Vs
bFR5cGUuY3BwCShyZXZpc2lvbiAyMjg0MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgSlNXZWJBc3NlbWJseUNvZGVCbG9ja0Rlc3Ryb3lG
dW5jCiB9OwogCiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOjpKU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrSGVhcENlbGxUeXBlKCkKLSAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmli
dXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkKKyAgICA6IEhlYXBDZWxs
VHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBT
ZWN1cml0eUtpbmQ6OkRhbmdlcm91c0JpdHMpKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333980</attachid>
            <date>2018-02-15 18:24:54 -0800</date>
            <delta_ts>2018-02-15 18:31:11 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31315</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4NTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE4LTAyLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
T2JqZWN0cyB0aGF0IGNvbnRhaW4gZGFuZ2Vyb3VzIHRoaW5ncyBzaG91bGQgYmUgYWxsb2NhdGVk
IGZhciBhd2F5IGZyb20gb2JqZWN0cyB0aGF0IGNhbiBkbyBPT0IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjg0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVG8gY29tcGxldGUgb3VyIG9i
amVjdCBkaXN0YW5jaW5nIHBsYW4sIHdlIG5lZWQgdG8gcHV0IG9iamVjdHMgdGhhdCBjYW4gY29u
dGFpbiB1bnBvaXNvbmVkIGRhdGEKKyAgICAgICAgZmFyIGF3YXkgZnJvbSBvYmplY3RzIHRoYXQg
Y2Fubm90LiBPYmplY3RzIHJlZmVyZW5jZWFibGUgZnJvbSBKU1ZhbHVlcyBjYW5ub3QgY29udGFp
bgorICAgICAgICB1bnBvaXNvbmVkIGRhdGEsIGJ1dCBhdXhpbGlhcnkgZGF0YSBjYW4uIFRoaXMg
ZnVydGhlciBkaXZpZGVzIGF1eGlsaWFyeSBkYXRhIHRoYXQgaXMgbWVhbnQgZm9yCisgICAgICAg
IHN0b3JpbmcgbW9zdGx5IEpTVmFsdWVzIGZyb20gZGF0YSB0aGF0IGlzIG1lYW50IGZvciBzdG9y
aW5nIGFueXRoaW5nLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhY2hpZXZlZCBieSBoYXZp
bmcgdGhyZWUgU2VjdXJpdHlLaW5kcyB0aGF0IGFyZSB1c2VkIGZvciBNYXJrZWRCbG9jayBzZWxl
Y3Rpb24gYW5kCisgICAgICAgIHplcm9pbmcgc29ydCBvZiB0aGUgc2FtZSB3YXkgU2VjdXJpdHlP
cmlnaW5Ub2tlbiBhbHJlYWR5IHdhcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIHNo
b3VsZG4ndCBtYWtlIGFueXRoaW5nIHNsb3dlci4gSWYgYW55dGhpbmcsIGl0IHdpbGwgYmUgYSBz
bWFsbCBzcGVlZC11cCBiZWNhdXNlIGl0CisgICAgICAgIHJlbW92ZXMgc29tZSBjYXNlcyBvZiBN
YXJrZWRCbG9jayB6ZXJvaW5nIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8gemVybyBibG9ja3MgdXNl
ZCBmb3IgdHdvIG9mCisgICAgICAgIHRoZSBTZWN1cml0eUtpbmRzLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6Ok9iamVjdEFsbG9jYXRpb25Qcm9maWxlOjppbml0aWFsaXpl
UHJvZmlsZSk6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6CisgICAgICAgIChK
U0M6OkJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayk6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVj
dG9yeS5oOgorICAgICAgICAqIGhlYXAvQ2VsbEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoSlND
OjpDZWxsQXR0cmlidXRlczo6ZHVtcCBjb25zdCk6CisgICAgICAgICogaGVhcC9DZWxsQXR0cmli
dXRlcy5oOgorICAgICAgICAoSlNDOjpDZWxsQXR0cmlidXRlczo6Q2VsbEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIGhlYXAvTG9jYWxBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpMb2NhbEFs
bG9jYXRvcjo6YWxsb2NhdGVTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkxvY2FsQWxsb2NhdG9y
Ojp0cnlBbGxvY2F0ZVdpdGhvdXRDb2xsZWN0aW5nKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OkhhbmRsZTo6ZGlkQWRkVG9EaXJl
Y3RvcnkpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjphc3NvY2lhdGVXaXRo
T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAg
ICogaGVhcC9TZWN1cml0eUtpbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6cHJpbnRJbnRl
cm5hbCk6CisgICAgICAgICogaGVhcC9TZWN1cml0eUtpbmQuaDogQWRkZWQuCisgICAgICAgICog
cnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3Vic3BhY2VG
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZTo6SlNE
ZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlOjpKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5n
SGVhcENlbGxUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdIZWFwQ2VsbFR5cGU6OkpT
U3RyaW5nSGVhcENlbGxUeXBlKToKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xPYmplY3Q6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKiBydW50
aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZN
Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTo6
SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZSk6CisKIDIwMTgtMDItMTUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCBy
aWQgb2YgcmVtYWluaW5nIHVzZXMgb2YgT3B0T3V0cHV0PFQ+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
U291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIsNyBAQCBoZWFwL01hcmtp
bmdDb25zdHJhaW50U2V0LmNwcAogaGVhcC9NYXJraW5nQ29uc3RyYWludFNvbHZlci5jcHAKIGhl
YXAvTXV0YXRvclNjaGVkdWxlci5jcHAKIGhlYXAvTXV0YXRvclN0YXRlLmNwcAoraGVhcC9TZWN1
cml0eUtpbmQuY3BwCiBoZWFwL1NlY3VyaXR5T3JpZ2luVG9rZW4uY3BwCiBoZWFwL1NpbXBsZU1h
cmtpbmdDb25zdHJhaW50LmNwcAogaGVhcC9TbG90VmlzaXRvci5jcHAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGVJbmxpbmVzLmgJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgT2JqZWN0QWxsb2Nh
dGlvblByb2ZpCiAgICAgQVNTRVJUKGlubGluZUNhcGFjaXR5IDw9IEpTRmluYWxPYmplY3Q6Om1h
eElubGluZUNhcGFjaXR5KCkpOwogCiAgICAgc2l6ZV90IGFsbG9jYXRpb25TaXplID0gSlNGaW5h
bE9iamVjdDo6YWxsb2NhdGlvblNpemUoaW5saW5lQ2FwYWNpdHkpOwotICAgIEFsbG9jYXRvciBh
bGxvY2F0b3IgPSB2bS5jZWxsU3BhY2UuYWxsb2NhdG9yRm9yTm9uVmlydHVhbChhbGxvY2F0aW9u
U2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6RW5zdXJlQWxsb2NhdG9yKTsKKyAgICBBbGxvY2F0b3Ig
YWxsb2NhdG9yID0gc3Vic3BhY2VGb3I8SlNGaW5hbE9iamVjdD4odm0pLT5hbGxvY2F0b3JGb3JO
b25WaXJ0dWFsKGFsbG9jYXRpb25TaXplLCBBbGxvY2F0b3JGb3JNb2RlOjpFbnN1cmVBbGxvY2F0
b3IpOwogCiAgICAgLy8gVGFrZSBhZHZhbnRhZ2Ugb2YgZXh0cmEgaW5saW5lIGNhcGFjaXR5IGF2
YWlsYWJsZSBpbiB0aGUgc2l6ZSBjbGFzcy4KICAgICBpZiAoYWxsb2NhdG9yKSB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCShyZXZpc2lv
biAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBNYXJrZWRCbG9jazo6SGFuZGxl
KiBCbG9ja0RpcmVjdG9yeTo6dHJ5CiAgICAgcmV0dXJuIGhhbmRsZTsKIH0KIAotdm9pZCBCbG9j
a0RpcmVjdG9yeTo6YWRkQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSogYmxvY2spCit2b2lkIEJs
b2NrRGlyZWN0b3J5OjphZGRCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKiBibG9jaywgU2VjdXJp
dHlPcmlnaW5Ub2tlbiBzZWN1cml0eU9yaWdpblRva2VuKQogewogICAgIHNpemVfdCBpbmRleDsK
ICAgICBpZiAobV9mcmVlQmxvY2tJbmRpY2VzLmlzRW1wdHkoKSkgewpAQCAtMTQ4LDcgKzE0OCw3
IEBAIHZvaWQgQmxvY2tEaXJlY3Rvcnk6OmFkZEJsb2NrKE1hcmtlZEJsb2MKICAgICAgICAgfSk7
CiAKICAgICAvLyBUaGlzIGlzIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgYmxvY2sgbGVhcm5zIG9m
IGl0cyBjZWxsU2l6ZSgpIGFuZCBhdHRyaWJ1dGVzKCkuCi0gICAgYmxvY2stPmRpZEFkZFRvRGly
ZWN0b3J5KHRoaXMsIGluZGV4KTsKKyAgICBibG9jay0+ZGlkQWRkVG9EaXJlY3RvcnkodGhpcywg
aW5kZXgsIHNlY3VyaXR5T3JpZ2luVG9rZW4pOwogICAgIAogICAgIHNldElzTGl2ZShOb0xvY2tp
bmdOZWNlc3NhcnksIGluZGV4LCB0cnVlKTsKICAgICBzZXRJc0VtcHR5KE5vTG9ja2luZ05lY2Vz
c2FyeSwgaW5kZXgsIHRydWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxv
Y2tEaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9C
bG9ja0RpcmVjdG9yeS5oCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcg
QEAgcHVibGljOgogICAgIAogICAgIFJlZlB0cjxTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5k
bGUqKCk+PiBwYXJhbGxlbE5vdEVtcHR5QmxvY2tTb3VyY2UoKTsKICAgICAKLSAgICB2b2lkIGFk
ZEJsb2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqKTsKKyAgICB2b2lkIGFkZEJsb2NrKE1hcmtlZEJs
b2NrOjpIYW5kbGUqLCBTZWN1cml0eU9yaWdpblRva2VuKTsKICAgICB2b2lkIHJlbW92ZUJsb2Nr
KE1hcmtlZEJsb2NrOjpIYW5kbGUqKTsKIAogICAgIGJvb2wgaXNQYWdlZE91dChNb25vdG9uaWNU
aW1lIGRlYWRsaW5lKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxBdHRy
aWJ1dGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxs
QXR0cmlidXRlcy5jcHAJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0NlbGxBdHRyaWJ1dGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogdm9pZCBDZWxsQXR0cmlidXRlczo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAogewotICAgIG91dC5wcmludCgieyIsIGRlc3RydWN0aW9uLCAiLCAiLCBj
ZWxsS2luZCwgIn0iKTsKKyAgICBvdXQucHJpbnQoInsiLCBkZXN0cnVjdGlvbiwgIiwgIiwgY2Vs
bEtpbmQsICIsICIsIHNlY3VyaXR5S2luZCwgIn0iKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0cmlidXRlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxBdHRyaWJ1dGVzLmgJKHJl
dmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxBdHRyaWJ1
dGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkRlc3Ry
dWN0aW9uTW9kZS5oIgogI2luY2x1ZGUgIkhlYXBDZWxsLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlL
aW5kLmgiCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpA
QCAtMzQsOSArMzUsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiBzdHJ1Y3QgQ2VsbEF0dHJpYnV0ZXMg
ewogICAgIENlbGxBdHRyaWJ1dGVzKCkgeyB9CiAgICAgCi0gICAgQ2VsbEF0dHJpYnV0ZXMoRGVz
dHJ1Y3Rpb25Nb2RlIGRlc3RydWN0aW9uLCBIZWFwQ2VsbDo6S2luZCBjZWxsS2luZCkKKyAgICBD
ZWxsQXR0cmlidXRlcyhEZXN0cnVjdGlvbk1vZGUgZGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpLaW5k
IGNlbGxLaW5kLCBTZWN1cml0eUtpbmQgc2VjdXJpdHlLaW5kKQogICAgICAgICA6IGRlc3RydWN0
aW9uKGRlc3RydWN0aW9uKQogICAgICAgICAsIGNlbGxLaW5kKGNlbGxLaW5kKQorICAgICAgICAs
IHNlY3VyaXR5S2luZChzZWN1cml0eUtpbmQpCiAgICAgewogICAgIH0KICAgICAKQEAgLTQ0LDYg
KzQ2LDcgQEAgc3RydWN0IENlbGxBdHRyaWJ1dGVzIHsKICAgICAKICAgICBEZXN0cnVjdGlvbk1v
ZGUgZGVzdHJ1Y3Rpb24geyBEb2VzTm90TmVlZERlc3RydWN0aW9uIH07CiAgICAgSGVhcENlbGw6
OktpbmQgY2VsbEtpbmQgeyBIZWFwQ2VsbDo6SlNDZWxsIH07CisgICAgU2VjdXJpdHlLaW5kIHNl
Y3VyaXR5S2luZCB7IFNlY3VyaXR5S2luZDo6RGFuZ2Vyb3VzQml0cyB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Mb2NhbEFsbG9j
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTG9jYWxB
bGxvY2F0b3IuY3BwCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Mb2NhbEFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Nyw4ICsxNzcsNyBA
QCB2b2lkKiBMb2NhbEFsbG9jYXRvcjo6YWxsb2NhdGVTbG93Q2FzZShHCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBibG9jay0+YXNzb2NpYXRl
V2l0aE9yaWdpbihtX3RsYy0+c2VjdXJpdHlPcmlnaW5Ub2tlbigpKTsKLSAgICBtX2RpcmVjdG9y
eS0+YWRkQmxvY2soYmxvY2spOworICAgIG1fZGlyZWN0b3J5LT5hZGRCbG9jayhibG9jaywgbV90
bGMtPnNlY3VyaXR5T3JpZ2luVG9rZW4oKSk7CiAgICAgcmVzdWx0ID0gYWxsb2NhdGVJbihibG9j
ayk7CiAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIzNCw4ICsy
MzMsNyBAQCB2b2lkKiBMb2NhbEFsbG9jYXRvcjo6dHJ5QWxsb2NhdGVXaXRob3V0CiAgICAgICAg
ICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIGEgcmVtb3RlIGNoYW5jZSB0aGF0IGEgYmxvY2sgbWF5
IGhhdmUgYm90aCBjYW5BbGxvY2F0ZUJ1dE5vdEVtcHR5CiAgICAgICAgICAgICAvLyBhbmQgZW1w
dHkgc2V0IGF0IHRoZSBzYW1lIHRpbWUuCiAgICAgICAgICAgICBibG9jay0+cmVtb3ZlRnJvbURp
cmVjdG9yeSgpOwotICAgICAgICAgICAgYmxvY2stPmFzc29jaWF0ZVdpdGhPcmlnaW4obV90bGMt
PnNlY3VyaXR5T3JpZ2luVG9rZW4oKSk7Ci0gICAgICAgICAgICBtX2RpcmVjdG9yeS0+YWRkQmxv
Y2soYmxvY2spOworICAgICAgICAgICAgbV9kaXJlY3RvcnktPmFkZEJsb2NrKGJsb2NrLCBtX3Rs
Yy0+c2VjdXJpdHlPcmlnaW5Ub2tlbigpKTsKICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZUlu
KGJsb2NrKTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRCbG9jay5jcHAJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM0LDcgKzMz
NCw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6cmVtb3ZlRnJvbURpcmUKICAgICBtX2Rp
cmVjdG9yeS0+cmVtb3ZlQmxvY2sodGhpcyk7CiB9CiAKLXZvaWQgTWFya2VkQmxvY2s6OkhhbmRs
ZTo6ZGlkQWRkVG9EaXJlY3RvcnkoQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSwgc2l6ZV90IGlu
ZGV4KQordm9pZCBNYXJrZWRCbG9jazo6SGFuZGxlOjpkaWRBZGRUb0RpcmVjdG9yeShCbG9ja0Rp
cmVjdG9yeSogZGlyZWN0b3J5LCBzaXplX3QgaW5kZXgsIFNlY3VyaXR5T3JpZ2luVG9rZW4gc2Vj
dXJpdHlPcmlnaW5Ub2tlbikKIHsKICAgICBBU1NFUlQobV9pbmRleCA9PSBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICBBU1NFUlQoIW1fZGlyZWN0b3J5KTsKQEAgLTM0
OSw3ICszNDksMjAgQEAgdm9pZCBNYXJrZWRCbG9jazo6SGFuZGxlOjpkaWRBZGRUb0RpcmVjdAog
ICAgIG1fYXRvbXNQZXJDZWxsID0gKGNlbGxTaXplICsgYXRvbVNpemUgLSAxKSAvIGF0b21TaXpl
OwogICAgIG1fZW5kQXRvbSA9IGVuZEF0b20gLSBtX2F0b21zUGVyQ2VsbCArIDE7CiAgICAgCisg
ICAgaWYgKGRpcmVjdG9yeS0+YXR0cmlidXRlcygpLnNlY3VyaXR5S2luZCA9PSBTZWN1cml0eUtp
bmQ6OkpTVmFsdWVPT0IpIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGdvaW5nIHRvIGJlIHVzZWQg
Zm9yIEpTVmFsdWVPT0IgYWxsb2NhdGlvbnMsIHRoZW4gd2UgbWF5IG5lZWQgdG8gemVybyB0aGUg
YmxvY2suCisgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gemVybyBpdCBpZiBpdCB3YXMgYWxy
ZWFkeSB1c2VkIGZvciBKU1ZhbHVlcyBpbiB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4uCisgICAg
ICAgIC8vIEl0J3MgdGVtcHRpbmcgdG8gc2F5IHRoYXQgdGhpcyBtZWFucyB0aGF0IHdlIGRvbid0
IGhhdmUgdG8gemVybyBpdCBpZiBpdCdzIGNvbWluZyBmcm9tCisgICAgICAgIC8vIEpTVmFsdWVT
dHJpY3QsIGJ1dCBzaW5jZSBKU1ZhbHVlU3RyaWN0IGRvZXNuJ3QgemVybyB3aGVuIGNvbnZlcnRp
bmcgZnJvbSBEYW5nZXJvdXNCaXRzLCB0aGF0CisgICAgICAgIC8vIHdvdWxkIG5vdCBiZSBzb3Vu
ZC4KKyAgICAgICAgCisgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMuc2VjdXJpdHlLaW5kICE9IFNl
Y3VyaXR5S2luZDo6SlNWYWx1ZU9PQgorICAgICAgICAgICAgfHwgbV9zZWN1cml0eU9yaWdpblRv
a2VuICE9IHNlY3VyaXR5T3JpZ2luVG9rZW4pCisgICAgICAgICAgICBmYXN0WmVyb0ZpbGxCeXRl
cygmYmxvY2soKSwgbV9lbmRBdG9tICogYXRvbVNpemUpOworICAgIH0KKyAgICAKICAgICBtX2F0
dHJpYnV0ZXMgPSBkaXJlY3RvcnktPmF0dHJpYnV0ZXMoKTsKKyAgICBtX3NlY3VyaXR5T3JpZ2lu
VG9rZW4gPSBzZWN1cml0eU9yaWdpblRva2VuOwogCiAgICAgaWYgKG1fYXR0cmlidXRlcy5jZWxs
S2luZCAhPSBIZWFwQ2VsbDo6SlNDZWxsKQogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2F0dHJp
YnV0ZXMuZGVzdHJ1Y3Rpb24gPT0gRG9lc05vdE5lZWREZXN0cnVjdGlvbik7CkBAIC00ODgsMTUg
KzUwMSw2IEBAIGJvb2wgTWFya2VkQmxvY2s6OkhhbmRsZTo6aXNGcmVlTGlzdGVkQ2UKICAgICBy
ZXR1cm4gbV9kaXJlY3RvcnktPmlzRnJlZUxpc3RlZENlbGwodGFyZ2V0KTsKIH0KIAotdm9pZCBN
YXJrZWRCbG9jazo6SGFuZGxlOjphc3NvY2lhdGVXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luVG9r
ZW4gc2VjdXJpdHlPcmlnaW5Ub2tlbikKLXsKLSAgICBpZiAobV9zZWN1cml0eU9yaWdpblRva2Vu
ID09IHNlY3VyaXR5T3JpZ2luVG9rZW4pCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBmYXN0
WmVyb0ZpbGxCeXRlcygmYmxvY2soKSwgZW5kQXRvbSAqIGF0b21TaXplKTsKLSAgICBtX3NlY3Vy
aXR5T3JpZ2luVG9rZW4gPSBzZWN1cml0eU9yaWdpblRva2VuOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCwxMiArMTkwLDExIEBA
IHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIHZvaWQgcmVtb3ZlRnJvbURpcmVjdG9yeSgpOwog
ICAgICAgICAKLSAgICAgICAgdm9pZCBkaWRBZGRUb0RpcmVjdG9yeShCbG9ja0RpcmVjdG9yeSos
IHNpemVfdCBpbmRleCk7CisgICAgICAgIHZvaWQgZGlkQWRkVG9EaXJlY3RvcnkoQmxvY2tEaXJl
Y3RvcnkqLCBzaXplX3QgaW5kZXgsIFNlY3VyaXR5T3JpZ2luVG9rZW4pOwogICAgICAgICB2b2lk
IGRpZFJlbW92ZUZyb21EaXJlY3RvcnkoKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZHVtcFN0
YXRlKFByaW50U3RyZWFtJik7CiAgICAgICAgIAotICAgICAgICB2b2lkIGFzc29jaWF0ZVdpdGhP
cmlnaW4oU2VjdXJpdHlPcmlnaW5Ub2tlbik7CiAgICAgICAgIFNlY3VyaXR5T3JpZ2luVG9rZW4g
c2VjdXJpdHlPcmlnaW5Ub2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW5Ub2tl
bjsgfQogICAgICAgICAKICAgICBwcml2YXRlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2VjdXJpdHlLaW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TZWN1cml0eUtpbmQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1NlY3VyaXR5S2luZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlLaW5kLmgiCisKKyNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3Bh
Y2UgV1RGIHsKKwordm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6U2Vj
dXJpdHlLaW5kIHNlY3VyaXR5S2luZCkKK3sKKyAgICBzd2l0Y2ggKHNlY3VyaXR5S2luZCkgewor
ICAgIGNhc2UgSlNDOjpTZWN1cml0eUtpbmQ6OkpTVmFsdWVPT0I6CisgICAgICAgIG91dC5wcmlu
dCgiSlNWYWx1ZU9PQiIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlNlY3VyaXR5
S2luZDo6SlNWYWx1ZVN0cmljdDoKKyAgICAgICAgb3V0LnByaW50KCJKU1ZhbHVlU3RyaWN0Iik7
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6U2VjdXJpdHlLaW5kOjpEYW5nZXJvdXNC
aXRzOgorICAgICAgICBvdXQucHJpbnQoIkRhbmdlcm91c0JpdHMiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXVEYKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2VjdXJpdHlL
aW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2VjdXJpdHlL
aW5kLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2VjdXJp
dHlLaW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IEpTQyB7CisKK2VudW0gY2xhc3MgU2VjdXJpdHlLaW5kIDogdWludDhfdCB7CisgICAgLy8gVGhl
IEpTVmFsdWVPT0Igc2VjdXJpdHkga2luZCBpcyBmb3IgY2VsbHMgdGhhdCBjb250YWluIEpWYWx1
ZXMgYW5kIGNhbiBiZSBhY2Nlc3NlZCBvdXQtb2YtYm91bmRzCisgICAgLy8gdXAgdG8gbWluaW11
bURpc3RhbmNlQmV0d2VlbkNlbGxzRnJvbURpZmZlcmVudE9yaWdpbnMuCisgICAgLy8KKyAgICAv
LyBKU1ZhbHVlcyBjYW4gcmVmZXJlbmNlIGNlbGxzIGluIEpTVmFsdWVPT0IuIFRoZXJlZm9yZSwg
SlNWYWx1ZXMgY2FuIG9ubHkgcmVmZXJlbmNlIGNlbGxzIGluCisgICAgLy8gSlNWYWx1ZU9PQiAt
IG90aGVyd2lzZSBhIFNwZWN0cmUgT09CIGF0dGFjayB3b3VsZCBiZSBhYmxlIHRvIHZpb2xhdGUg
dGhlIHJ1bGVzIG9mIEpTVmFsdWVTdHJpY3QKKyAgICAvLyBhbmQgRGFuZ2Vyb3VzQml0cy4KKyAg
ICBKU1ZhbHVlT09CLAorICAgIAorICAgIC8vIFRoZSBKU1ZhbHVlU3RyaWN0IHNlY3VyaXR5IGtp
bmQgaXMgZm9yIGNlbGxzIHRoYXQgY29udGFpbiBKU1ZhbHVlcyBidXQgY2Fubm90IGJlIGFjY2Vz
c2VkCisgICAgLy8gb3V0LW9mLWJvdW5kcy4gQ3VycmVudGx5LCBpdCdzIG5vdCBlc3NlbnRpYWwg
dG8ga2VlcCB0aGlzIHNlcGFyYXRlIGZyb20gU2VwYXJhdGVCaXRzLiBXZSdyZSB1c2luZworICAg
IC8vIHRoaXMgdG8gZ2V0IHNvbWUgd2lnZ2xlIHJvb20gZm9yIGhvdyB3ZSBoYW5kbGUgYXJyYXkg
ZWxlbWVudHMuIEZvciBleGFtcGxlLCB3ZSBtaWdodCB3YW50IHRvCisgICAgLy8gYWxsb3cgT09C
IHJlYWRzIGJ1dCBub3QgT09CIHdyaXRlcy4KKyAgICAvLworICAgIC8vIEl0J3MgaWxsZWdhbCB0
byB1c2UgdGhpcyBmb3IgYW55IHN1YmNsYXNzIG9mIEpTT2JqZWN0LCBKU1N0cmluZywgb3IgU3lt
Ym9sT2JqZWN0LCBvciBhbnkgb3RoZXIKKyAgICAvLyBjZWxsIHRoYXQgY291bGQgYmUgcmVmZXJl
bmNlZCBmcm9tIGEgSlNWYWx1ZS4gWW91IG11c3QgdXNlIHBvaXNvbmVkIHBvaW50ZXJzIHRvIHBv
aW50IGF0IHRoZXNlCisgICAgLy8gY2VsbHMuCisgICAgSlNWYWx1ZVN0cmljdCwKKyAgICAKKyAg
ICAvLyBUaGUgRGFuZ2Vyb3VzQml0cyBzZWN1cml0eSBraW5kIGlzIGZvciBjZWxscyB0aGF0IGNv
bnRhaW4gdmFsdWVzIHRoYXQgY291bGQgYmUgdXNlZnVsbHkgdHlwZS0KKyAgICAvLyBjb25mdXNl
ZCB3aXRoIEpTVmFsdWUuCisgICAgLy8KKyAgICAvLyBJdCdzIGlsbGVnYWwgdG8gdXNlIHRoaXMg
Zm9yIGFueSBzdWJjbGFzcyBvZiBKU09iamVjdCwgSlNTdHJpbmcsIG9yIFN5bWJvbE9iamVjdCwg
b3IgYW55IG90aGVyCisgICAgLy8gY2VsbCB0aGF0IGNvdWxkIGJlIHJlZmVyZW5jZWQgZnJvbSBh
IEpTVmFsdWUuIFlvdSBtdXN0IHVzZSBwb2lzb25lZCBwb2ludGVycyB0byBwb2ludCBhdCB0aGVz
ZQorICAgIC8vIGNlbGxzLgorICAgIERhbmdlcm91c0JpdHMKK307CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07CisKK3ZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6U2VjdXJpdHlLaW5kKTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBA
IENvbXBsZXRlU3Vic3BhY2UqIEpTQ2VsbDo6c3Vic3BhY2VGb3IoVk0KIHsKICAgICBpZiAoQ2Vs
bFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24pCiAgICAgICAgIHJldHVybiAmdm0uZGVzdHJ1Y3RpYmxl
Q2VsbFNwYWNlOwotICAgIHJldHVybiAmdm0uY2VsbFNwYWNlOworICAgIHJldHVybiAmdm0uY2Vs
bERhbmdlcm91c0JpdHNTcGFjZTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAJKHJldmlzaW9uIDIyODUzOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBKU0Rlc3RydWN0aWJs
ZU9iamVjdERlc3Ryb3lGdW5jIHsKIH07CiAKIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlOjpKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpCi0gICAgOiBIZWFwQ2VsbFR5
cGUoQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpCisg
ICAgOiBIZWFwQ2VsbFR5cGUoQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENl
bGw6OkpTQ2VsbCwgU2VjdXJpdHlLaW5kOjpKU1ZhbHVlT09CKSkKIHsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCShyZXZpc2lvbiAyMjg1MzgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNiArMTA0LDEyIEBAIGNsYXNzIEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
PgorICAgIHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAg
eworICAgICAgICByZXR1cm4gJnZtLmNlbGxKU1ZhbHVlT09CU3BhY2U7CisgICAgfQorCiAgICAg
Ly8gVGhpcyBpcyBhIHN1cGVyIGRhbmdlcm91cyBtZXRob2QgZm9yIEpJVHMuIFNvbWV0aW1lcyB0
aGUgSklUcyB3aWxsIHdhbnQgdG8gY3JlYXRlIGVpdGhlciBhCiAgICAgLy8gSlNGaW5hbE9iamVj
dCBvciBhIEpTQXJyYXkuIFRoaXMgaXMgdGhlIG1ldGhvZCB0aGF0IHdpbGwgZG8gdGhhdC4KICAg
ICBzdGF0aWMgSlNPYmplY3QqIGNyZWF0ZVJhd09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqID0gbnVsbHB0cik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21l
bnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlLmNwcAkocmV2aXNpb24gMjI4NTM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdEhl
YXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgSlNTZWdt
ZW50ZWRWYXJpYWJsZU9iamVjdERlc3Ryb3lGCiB9OwogCiBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0SGVhcENlbGxUeXBlOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlKCkK
LSAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFw
Q2VsbDo6SlNDZWxsKSkKKyAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rl
c3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVPT0IpKQog
ewogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0hlYXBD
ZWxsVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0hlYXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgSlNTdHJpbmdEZXN0cm95RnVuYyB7CiB9OwogCiBKU1N0
cmluZ0hlYXBDZWxsVHlwZTo6SlNTdHJpbmdIZWFwQ2VsbFR5cGUoKQotICAgIDogSGVhcENlbGxU
eXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwpKQor
ICAgIDogSGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBD
ZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQikpCiB7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbE9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbE9iamVjdC5oCShyZXZpc2lvbiAy
Mjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTIgQEAgY2xhc3MgU3ltYm9sT2JqZWN0IDogcHVi
bGljIEpTV3JhcHBlck9iagogcHVibGljOgogICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJh
c2U7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KKyAgICBzdGF0aWMgQ29tcGxldGVTdWJzcGFj
ZSogc3Vic3BhY2VGb3IoVk0mIHZtKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZ2bS5jZWxsSlNW
YWx1ZU9PQlNwYWNlOworICAgIH0KKwogICAgIHN0YXRpYyBTeW1ib2xPYmplY3QqIGNyZWF0ZShW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgU3ltYm9sKiBzeW1i
b2wgPSBTeW1ib2w6OmNyZWF0ZSh2bSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCwxOSArMjM0LDIyIEBAIFZNOjpWTShWTVR5
cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIGZhc3RNYWxsb2NBbGxvY2F0b3Io
c3RkOjptYWtlX3VuaXF1ZTxGYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4oKSkKICAg
ICAsIHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yKHN0ZDo6bWFrZV91bmlxdWU8R2lnYWNhZ2VB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yPihHaWdhY2FnZTo6UHJpbWl0aXZlKSkKICAgICAsIGpzVmFs
dWVHaWdhY2FnZUFsbG9jYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEdpZ2FjYWdlQWxpZ25lZE1lbW9y
eUFsbG9jYXRvcj4oR2lnYWNhZ2U6OkpTVmFsdWUpKQotICAgICwgYXV4aWxpYXJ5SGVhcENlbGxU
eXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90
TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6QXV4aWxpYXJ5KSkpCi0gICAgLCBjZWxsSGVhcENl
bGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2Vz
Tm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCi0gICAgLCBkZXN0cnVjdGli
bGVDZWxsSGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0
cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCisgICAgLCBhdXhp
bGlhcnlKU1ZhbHVlU3RyaWN0SGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxU
eXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6QXV4
aWxpYXJ5LCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVTdHJpY3QpKSkKKyAgICAsIGF1eGlsaWFyeURh
bmdlcm91c0JpdHNIZWFwQ2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1ZTxIZWFwQ2VsbFR5cGU+KENl
bGxBdHRyaWJ1dGVzKERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpBdXhpbGlhcnks
IFNlY3VyaXR5S2luZDo6RGFuZ2Vyb3VzQml0cykpKQorICAgICwgY2VsbEpTVmFsdWVPT0JIZWFw
Q2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRyaWJ1dGVzKERv
ZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNW
YWx1ZU9PQikpKQorICAgICwgY2VsbERhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGUoc3RkOjptYWtl
X3VuaXF1ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRyaWJ1dGVzKERvZXNOb3ROZWVkRGVzdHJ1Y3Rp
b24sIEhlYXBDZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQikpKQorICAgICwg
ZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEhlYXBDZWxsVHlw
ZT4oQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCwgU2Vj
dXJpdHlLaW5kOjpEYW5nZXJvdXNCaXRzKSkpCiAgICAgLCBzdHJpbmdIZWFwQ2VsbFR5cGUoc3Rk
OjptYWtlX3VuaXF1ZTxKU1N0cmluZ0hlYXBDZWxsVHlwZT4oKSkKICAgICAsIGRlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
SGVhcENlbGxUeXBlPigpKQogICAgICwgc2VnbWVudGVkVmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5
cGUoc3RkOjptYWtlX3VuaXF1ZTxKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBl
PigpKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAsIHdlYkFzc2VtYmx5Q29kZUJsb2Nr
SGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBD
ZWxsVHlwZT4oKSkKICNlbmRpZgotICAgICwgcHJpbWl0aXZlR2lnYWNhZ2VBdXhpbGlhcnlTcGFj
ZSgiUHJpbWl0aXZlIEdpZ2FjYWdlIEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeUhlYXBDZWxs
VHlwZS5nZXQoKSwgcHJpbWl0aXZlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCi0gICAgLCBqc1Zh
bHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBo
ZWFwLCBhdXhpbGlhcnlIZWFwQ2VsbFR5cGUuZ2V0KCksIGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRv
ci5nZXQoKSkKLSAgICAsIGNlbGxTcGFjZSgiSlNDZWxsIiwgaGVhcCwgY2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkKLSAgICAsIGpzVmFsdWVHaWdhY2Fn
ZUNlbGxTcGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBKU0NlbGwiLCBoZWFwLCBjZWxsSGVhcENlbGxU
eXBlLmdldCgpLCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCisgICAgLCBwcmltaXRp
dmVHaWdhY2FnZUF1eGlsaWFyeVNwYWNlKCJQcmltaXRpdmUgR2lnYWNhZ2UgQXV4aWxpYXJ5Iiwg
aGVhcCwgYXV4aWxpYXJ5RGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZS5nZXQoKSwgcHJpbWl0aXZl
R2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCisgICAgLCBqc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlT
cGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBhdXhpbGlhcnlKU1ZhbHVl
U3RyaWN0SGVhcENlbGxUeXBlLmdldCgpLCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkp
CisgICAgLCBjZWxsSlNWYWx1ZU9PQlNwYWNlKCJKU0NlbGwgSlNWYWx1ZU9PQiIsIGhlYXAsIGNl
bGxKU1ZhbHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgp
KQorICAgICwgY2VsbERhbmdlcm91c0JpdHNTcGFjZSgiSlNDZWxsIERhbmdlcm91c0JpdHMiLCBo
ZWFwLCBjZWxsRGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9j
YXRvci5nZXQoKSkKKyAgICAsIGpzVmFsdWVHaWdhY2FnZUNlbGxTcGFjZSgiSlNWYWx1ZSBHaWdh
Y2FnZSBKU0NlbGwiLCBoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwganNW
YWx1ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKQogICAgICwgZGVzdHJ1Y3RpYmxlQ2VsbFNwYWNl
KCJEZXN0cnVjdGlibGUgSlNDZWxsIiwgaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkKICAgICAsIHN0cmluZ1NwYWNlKCJK
U1N0cmluZyIsIGhlYXAsIHN0cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9j
YXRvci5nZXQoKSkKICAgICAsIGRlc3RydWN0aWJsZU9iamVjdFNwYWNlKCJKU0Rlc3RydWN0aWJs
ZU9iamVjdCIsIGhlYXAsIGRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgZmFz
dE1hbGxvY0FsbG9jYXRvci5nZXQoKSkKQEAgLTI1NSwyMSArMjU4LDIxIEBAIFZNOjpWTShWTVR5
cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAg
ICAgLCB3ZWJBc3NlbWJseUNvZGVCbG9ja1NwYWNlKCJKU1dlYkFzc2VtYmx5Q29kZUJsb2NrU3Bh
Y2UiLCBoZWFwLCB3ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1h
bGxvY0FsbG9jYXRvci5nZXQoKSkKICNlbmRpZgotICAgICwgYXN5bmNGdW5jdGlvblNwYWNlIElT
T19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQXN5bmNGdW5j
dGlvbikKLSAgICAsIGFzeW5jR2VuZXJhdG9yRnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5J
VChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24p
Ci0gICAgLCBib3VuZEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNCb3VuZEZ1bmN0aW9uKQotICAgICwgY3VzdG9tR2V0dGVyU2V0
dGVyRnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uKQorICAgICwgYXN5bmNGdW5jdGlv
blNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVlT09CSGVhcENlbGxUeXBl
LmdldCgpLCBKU0FzeW5jRnVuY3Rpb24pCisgICAgLCBhc3luY0dlbmVyYXRvckZ1bmN0aW9uU3Bh
Y2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbikKKyAgICAsIGJvdW5kRnVuY3Rpb25TcGFjZSBJ
U09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNCb3VuZEZ1bmN0aW9uKQorICAgICwgY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25TcGFjZSBJ
U09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikKICAgICAsIGRpcmVjdEV2YWxFeGVjdXRhYmxl
U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgRGlyZWN0RXZhbEV4ZWN1dGFibGUpCi0gICAgLCBleGVjdXRhYmxlVG9Db2RlQmxv
Y2tFZGdlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZSkKKyAgICAsIGV4ZWN1dGFibGVUb0NvZGVCbG9j
a0VkZ2VTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsRGFuZ2Vyb3VzQml0c0hlYXBD
ZWxsVHlwZS5nZXQoKSwgRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZSkKICAgICAsIGZ1bmN0aW9u
RXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEZ1bmN0aW9uRXhlY3V0YWJsZSkKLSAgICAsIGZ1bmN0aW9uU3Bh
Y2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNGdW5j
dGlvbikKLSAgICAsIGdlbmVyYXRvckZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVh
cCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNHZW5lcmF0b3JGdW5jdGlvbikKKyAgICAsIGZ1
bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTRnVuY3Rpb24pCisgICAgLCBnZW5lcmF0b3JGdW5jdGlvblNwYWNlIElT
T19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBK
U0dlbmVyYXRvckZ1bmN0aW9uKQogICAgICwgaW5kaXJlY3RFdmFsRXhlY3V0YWJsZVNwYWNlIElT
T19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IEluZGlyZWN0RXZhbEV4ZWN1dGFibGUpCiAgICAgLCBpbmZlcnJlZFR5cGVTcGFjZSBJU09fU1VC
U1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBJbmZl
cnJlZFR5cGUpCiAgICAgLCBpbmZlcnJlZFZhbHVlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVh
cCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSW5mZXJyZWRWYWx1ZSkKICAg
ICAsIG1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
ZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFi
bGUpCiAgICAgLCBuYXRpdmVFeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
ZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgTmF0aXZlRXhlY3V0YWJsZSkKLSAg
ICAsIG5hdGl2ZVN0ZEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNOYXRpdmVTdGRGdW5jdGlvbikKKyAgICAsIG5hdGl2ZVN0ZEZ1
bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTTmF0aXZlU3RkRnVuY3Rpb24pCiAgICAgLCBwcm9ncmFtRXhlY3V0YWJs
ZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIFByb2dyYW1FeGVjdXRhYmxlKQogICAgICwgcHJvcGVydHlUYWJsZVNwYWNlIElT
T19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IFByb3BlcnR5VGFibGUpCiAgICAgLCBzdHJ1Y3R1cmVSYXJlRGF0YVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFN0cnVjdHVy
ZVJhcmVEYXRhKQpAQCAtMjc3LDggKzI4MCw4IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFw
VHlwZSBoZWFwVHlwZSkKICAgICAsIHdlYWtTZXRTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha1NldCkKICAgICAs
IHdlYWtNYXBTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha01hcCkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0g
ICAgLCB3ZWJBc3NlbWJseUZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbikKLSAgICAsIHdlYkFzc2Vt
Ymx5V3JhcHBlckZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBD
ZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pCisgICAgLCB3ZWJBc3Nl
bWJseUZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JI
ZWFwQ2VsbFR5cGUuZ2V0KCksIFdlYkFzc2VtYmx5RnVuY3Rpb24pCisgICAgLCB3ZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVl
T09CSGVhcENlbGxUeXBlLmdldCgpLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbikKICNlbmRp
ZgogICAgICwgZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZXNXaXRoQ29uc3RyYWludHMoZXhlY3V0
YWJsZVRvQ29kZUJsb2NrRWRnZVNwYWNlKQogICAgICwgZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRn
ZXNXaXRoRmluYWxpemVycyhleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlU3BhY2UpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDIyODUzOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Miw4ICsyOTIs
MTAgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHaWdhY2FnZUFsaWduZWRNZW1vcnlB
bGxvY2F0b3I+IHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHaWdhY2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3I+IGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRv
cjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5cGU+IGF1eGlsaWFyeUhlYXBDZWxs
VHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBjZWxsSGVhcENlbGxUeXBl
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5cGU+IGF1eGlsaWFyeUpTVmFsdWVTdHJp
Y3RIZWFwQ2VsbFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gYXV4aWxp
YXJ5RGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENl
bGxUeXBlPiBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
SGVhcENlbGxUeXBlPiBjZWxsRGFuZ2Vyb3VzQml0c0hlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxKU1N0cmluZ0hlYXBDZWxsVHlwZT4gc3RyaW5nSGVhcENlbGxUeXBl
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZT4g
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOwpAQCAtMzI2LDggKzMyOCw5IEBAIHB1Ymxp
YzoKICAgICB9CiAgICAgCiAgICAgLy8gV2hlbmV2ZXIgcG9zc2libGUsIHVzZSBzdWJzcGFjZUZv
cjxDZWxsVHlwZT4odm0pIHRvIGdldCBvbmUgb2YgdGhlc2Ugc3Vic3BhY2VzLgotICAgIENvbXBs
ZXRlU3Vic3BhY2UgY2VsbFNwYWNlOwotICAgIENvbXBsZXRlU3Vic3BhY2UganNWYWx1ZUdpZ2Fj
YWdlQ2VsbFNwYWNlOworICAgIENvbXBsZXRlU3Vic3BhY2UgY2VsbEpTVmFsdWVPT0JTcGFjZTsK
KyAgICBDb21wbGV0ZVN1YnNwYWNlIGNlbGxEYW5nZXJvdXNCaXRzU3BhY2U7CisgICAgQ29tcGxl
dGVTdWJzcGFjZSBqc1ZhbHVlR2lnYWNhZ2VDZWxsU3BhY2U7IC8vIEZJWE1FOiBUaGlzIHNwYWNl
IGlzIHByb2JsZW1hdGljIGJlY2F1c2Ugd2UgaGF2ZSB0aGluZ3MgaW4gaGVyZSBsaWtlIERpcmVj
dEFyZ3VtZW50cyBhbmQgU2NvcGVkQXJndW1lbnRzOyB0aG9zZSBzaG91bGQgYmUgc3BsaXQgaW50
byBKU1ZhbHVlT09CIGNlbGxzIGFuZCBKU1ZhbHVlU3RyaWN0IGF1eGlsaWFyaWVzLgogICAgIENv
bXBsZXRlU3Vic3BhY2UgZGVzdHJ1Y3RpYmxlQ2VsbFNwYWNlOwogICAgIENvbXBsZXRlU3Vic3Bh
Y2Ugc3RyaW5nU3BhY2U7CiAgICAgQ29tcGxldGVTdWJzcGFjZSBkZXN0cnVjdGlibGVPYmplY3RT
cGFjZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwCShyZXZp
c2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMs
NyBAQCBzdHJ1Y3QgSlNXZWJBc3NlbWJseUNvZGVCbG9ja0Rlc3Ryb3lGdW5jCiB9OwogCiBKU1dl
YkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOjpKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVh
cENlbGxUeXBlKCkKLSAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3Ry
dWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkKKyAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmli
dXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1cml0eUtpbmQ6OkRh
bmdlcm91c0JpdHMpKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333982</attachid>
            <date>2018-02-15 18:31:11 -0800</date>
            <delta_ts>2018-02-15 20:05:49 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>36230</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4NTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE4LTAyLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
T2JqZWN0cyB0aGF0IGNvbnRhaW4gZGFuZ2Vyb3VzIHRoaW5ncyBzaG91bGQgYmUgYWxsb2NhdGVk
IGZhciBhd2F5IGZyb20gb2JqZWN0cyB0aGF0IGNhbiBkbyBPT0IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjg0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVG8gY29tcGxldGUgb3VyIG9i
amVjdCBkaXN0YW5jaW5nIHBsYW4sIHdlIG5lZWQgdG8gcHV0IG9iamVjdHMgdGhhdCBjYW4gY29u
dGFpbiB1bnBvaXNvbmVkIGRhdGEKKyAgICAgICAgZmFyIGF3YXkgZnJvbSBvYmplY3RzIHRoYXQg
Y2Fubm90LiBPYmplY3RzIHJlZmVyZW5jZWFibGUgZnJvbSBKU1ZhbHVlcyBjYW5ub3QgY29udGFp
bgorICAgICAgICB1bnBvaXNvbmVkIGRhdGEsIGJ1dCBhdXhpbGlhcnkgZGF0YSBjYW4uIFRoaXMg
ZnVydGhlciBkaXZpZGVzIGF1eGlsaWFyeSBkYXRhIHRoYXQgaXMgbWVhbnQgZm9yCisgICAgICAg
IHN0b3JpbmcgbW9zdGx5IEpTVmFsdWVzIGZyb20gZGF0YSB0aGF0IGlzIG1lYW50IGZvciBzdG9y
aW5nIGFueXRoaW5nLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhY2hpZXZlZCBieSBoYXZp
bmcgdGhyZWUgU2VjdXJpdHlLaW5kcyB0aGF0IGFyZSB1c2VkIGZvciBNYXJrZWRCbG9jayBzZWxl
Y3Rpb24gYW5kCisgICAgICAgIHplcm9pbmcgc29ydCBvZiB0aGUgc2FtZSB3YXkgU2VjdXJpdHlP
cmlnaW5Ub2tlbiBhbHJlYWR5IHdhcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIHNo
b3VsZG4ndCBtYWtlIGFueXRoaW5nIHNsb3dlci4gSWYgYW55dGhpbmcsIGl0IHdpbGwgYmUgYSBz
bWFsbCBzcGVlZC11cCBiZWNhdXNlIGl0CisgICAgICAgIHJlbW92ZXMgc29tZSBjYXNlcyBvZiBN
YXJrZWRCbG9jayB6ZXJvaW5nIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8gemVybyBibG9ja3MgdXNl
ZCBmb3IgdHdvIG9mCisgICAgICAgIHRoZSBTZWN1cml0eUtpbmRzLgorCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6Ok9iamVjdEFsbG9jYXRpb25Qcm9maWxlOjppbml0aWFsaXpl
UHJvZmlsZSk6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6CisgICAgICAgIChK
U0M6OkJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayk6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVj
dG9yeS5oOgorICAgICAgICAqIGhlYXAvQ2VsbEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoSlND
OjpDZWxsQXR0cmlidXRlczo6ZHVtcCBjb25zdCk6CisgICAgICAgICogaGVhcC9DZWxsQXR0cmli
dXRlcy5oOgorICAgICAgICAoSlNDOjpDZWxsQXR0cmlidXRlczo6Q2VsbEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIGhlYXAvTG9jYWxBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpMb2NhbEFs
bG9jYXRvcjo6YWxsb2NhdGVTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkxvY2FsQWxsb2NhdG9y
Ojp0cnlBbGxvY2F0ZVdpdGhvdXRDb2xsZWN0aW5nKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OkhhbmRsZTo6ZGlkQWRkVG9EaXJl
Y3RvcnkpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjphc3NvY2lhdGVXaXRo
T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAg
ICogaGVhcC9TZWN1cml0eUtpbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6cHJpbnRJbnRl
cm5hbCk6CisgICAgICAgICogaGVhcC9TZWN1cml0eUtpbmQuaDogQWRkZWQuCisgICAgICAgICog
cnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c3Vic3BhY2VG
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZTo6SlNE
ZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3RIZWFwQ2VsbFR5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlOjpKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0SGVhcENlbGxUeXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5n
SGVhcENlbGxUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdIZWFwQ2VsbFR5cGU6OkpT
U3RyaW5nSGVhcENlbGxUeXBlKToKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xPYmplY3Q6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKiBydW50
aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZN
Lmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTo6
SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZSk6CisKIDIwMTgtMDItMTUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCBy
aWQgb2YgcmVtYWluaW5nIHVzZXMgb2YgT3B0T3V0cHV0PFQ+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUyMSw2ICs1MjEsNyBAQCBz
ZXQoSmF2YVNjcmlwdENvcmVfRk9SV0FSRElOR19IRUFERVJTCiAgICAgaGVhcC9NdXRhdG9yU3Rh
dGUuaAogICAgIGhlYXAvUmVnaXN0ZXJTdGF0ZS5oCiAgICAgaGVhcC9SdW5uaW5nU2NvcGUuaAor
ICAgIGhlYXAvU2VjdXJpdHlLaW5kLmgKICAgICBoZWFwL1NlY3VyaXR5T3JpZ2luVG9rZW4uaAog
ICAgIGhlYXAvU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQuaAogICAgIGhlYXAvU2xvdFZpc2l0b3Iu
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjI4NTM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTIs
NiArNTEyLDcgQEAgaGVhcC9NYXJraW5nQ29uc3RyYWludFNldC5jcHAKIGhlYXAvTWFya2luZ0Nv
bnN0cmFpbnRTb2x2ZXIuY3BwCiBoZWFwL011dGF0b3JTY2hlZHVsZXIuY3BwCiBoZWFwL011dGF0
b3JTdGF0ZS5jcHAKK2hlYXAvU2VjdXJpdHlLaW5kLmNwcAogaGVhcC9TZWN1cml0eU9yaWdpblRv
a2VuLmNwcAogaGVhcC9TaW1wbGVNYXJraW5nQ29uc3RyYWludC5jcHAKIGhlYXAvU2xvdFZpc2l0
b3IuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjI4NTM4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw2ICszMzQsNyBAQAogCQkwRjVBNjI4
NDE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZU
TFZhbHVlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjVBRTJDNDFERjRGMjgwMDA2NkVGRTEgLyogVk1JbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTkwQkIzQTFCN0NGNjRFMDA2
QjNGMDMgLyogVk1JbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY1QjRBMzMxQzg0RjBENjAwRjFCMTdFIC8qIFNsb3dQYXRoUmV0dXJu
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1
QjRBMzIxQzg0RjBENjAwRjFCMTdFIC8qIFNsb3dQYXRoUmV0dXJuVHlwZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNUI2RUQzMjAzNjc5NkIw
MDdBQUJGMyAvKiBTZWN1cml0eUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNUI2RUQxMjAzNjc5NjgwMDdBQUJGMyAvKiBTZWN1cml0eUtpbmQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVC
RjE2NDFGMjMxNzEyMDAyOUQ5MUQgLyogQjNIb2lzdExvb3BJbnZhcmlhbnRWYWx1ZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUJGMTYyMUYyMzE3
MTIwMDI5RDkxRCAvKiBCM0hvaXN0TG9vcEludmFyaWFudFZhbHVlcy5oICovOyB9OwogCQkwRjVC
RjE2NzFGMjNBMDk4MDAyOUQ5MUQgLyogQjNCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUJGMTY2MUYyM0EwOTgwMDI5RDkxRCAv
KiBCM0JhY2t3YXJkc0NGRy5oICovOyB9OwogCQkwRjVCRjE2OTFGMjNBMEFBMDAyOUQ5MUQgLyog
QjNOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNUJGMTY4MUYyM0EwQUEwMDI5RDkxRCAvKiBCM05hdHVyYWxMb29wcy5oICovOyB9
OwpAQCAtMjMzMCw2ICsyMzMxLDkgQEAKIAkJMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZU
TFZhbHVlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRM
VmFsdWVSYW5nZS5jcHA7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJh
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuaDsg
cGF0aCA9IGZ0bC9GVExWYWx1ZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNUI0QTMyMUM4NEYwRDYwMEYxQjE3RSAvKiBTbG93UGF0aFJldHVyblR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xvd1BhdGhSZXR1cm5UeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUI2RUQxMjAzNjc5NjgwMDdBQUJGMyAvKiBTZWN1cml0
eUtpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlLaW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUI2RUQyMjAzNjc5NjgwMDdBQUJGMyAv
KiBTZWN1cml0eUtpbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VjdXJpdHlLaW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1QjZFRDQy
MDM2Nzk5QTAwN0FBQkYzIC8qIFNlY3VyaXR5T3JpZ2luVG9rZW4uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5Ub2tlbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJGMTYxMUYyMzE3MTIwMDI5RDkxRCAvKiBCM0hvaXN0
TG9vcEludmFyaWFudFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0hvaXN0TG9vcElu
dmFyaWFudFZhbHVlcy5jcHA7IHBhdGggPSBiMy9CM0hvaXN0TG9vcEludmFyaWFudFZhbHVlcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJGMTYyMUYyMzE3MTIwMDI5RDkx
RCAvKiBCM0hvaXN0TG9vcEludmFyaWFudFZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0hvaXN0
TG9vcEludmFyaWFudFZhbHVlcy5oOyBwYXRoID0gYjMvQjNIb2lzdExvb3BJbnZhcmlhbnRWYWx1
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QkYxNjYxRjIzQTA5ODAwMjlE
OTFEIC8qIEIzQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQmFja3dhcmRzQ0ZHLmg7
IHBhdGggPSBiMy9CM0JhY2t3YXJkc0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTY5OCw2ICs1NzAyLDkgQEAKIAkJCQkwRkQwRTVFRjFFNDZCRjIzMDAwNkFCMDggLyogUmVn
aXN0ZXJTdGF0ZS5oICovLAogCQkJCTBGN0NGOTRFMURCRUVFODYwMDk4Q0MxMiAvKiBSZWxlYXNl
SGVhcEFjY2Vzc1Njb3BlLmggKi8sCiAJCQkJMEYyQzYzQTkxRTRGQTQyQzAwQzEzODM5IC8qIFJ1
bm5pbmdTY29wZS5oICovLAorCQkJCTBGNUI2RUQyMjAzNjc5NjgwMDdBQUJGMyAvKiBTZWN1cml0
eUtpbmQuY3BwICovLAorCQkJCTBGNUI2RUQxMjAzNjc5NjgwMDdBQUJGMyAvKiBTZWN1cml0eUtp
bmQuaCAqLywKKwkJCQkwRjVCNkVENDIwMzY3OTlBMDA3QUFCRjMgLyogU2VjdXJpdHlPcmlnaW5U
b2tlbi5jcHAgKi8sCiAJCQkJMEY0MkIzQzIyMDFFQzlGRDAwMzU3MDMxIC8qIFNlY3VyaXR5T3Jp
Z2luVG9rZW4uaCAqLywKIAkJCQkwRjREOEM3NjFGQ0EzQ0YyMDAxRDMyQUMgLyogU2ltcGxlTWFy
a2luZ0NvbnN0cmFpbnQuY3BwICovLAogCQkJCTBGNEQ4Qzc3MUZDQTNDRjMwMDFEMzJBQyAvKiBT
aW1wbGVNYXJraW5nQ29uc3RyYWludC5oICovLApAQCAtODY3Nyw2ICs4Njg0LDcgQEAKIAkJCQkw
RkVBMEEyMDE3MDhCMDA3MDBCQjcyMkMgLyogRlRMVHlwZWRQb2ludGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkRCMkNDQTE3M0RBNTIzMDA3QjNDMUIgLyogRlRMVmFsdWVGcm9tQmxvY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJh
bmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVCNkVEMzIwMzY3OTZCMDA3QUFCRjMgLyogU2Vj
dXJpdHlLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDNjE4QjUzRkE5MDA1Rjk3OUEg
LyogRlRMV2VpZ2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDODE4QjU0NkVDMDA1Rjk3
OUEgLyogRlRMV2VpZ2h0ZWRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjY2RUMxMTgz
NTY2RjkwMEQwMTdGMSAvKiBGdWxsQnl0ZWNvZGVMaXZlbmVzcy5oIGluIEhlYWRlcnMgKi8sCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2Zp
bGVJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdEFsbG9jYXRpb25Qcm9maWxlSW5saW5lcy5oCShyZXZpc2lvbiAyMjg1MzgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgQUxXQVlTX0lOTElORSB2b2lk
IE9iamVjdEFsbG9jYXRpb25Qcm9maQogICAgIEFTU0VSVChpbmxpbmVDYXBhY2l0eSA8PSBKU0Zp
bmFsT2JqZWN0OjptYXhJbmxpbmVDYXBhY2l0eSgpKTsKIAogICAgIHNpemVfdCBhbGxvY2F0aW9u
U2l6ZSA9IEpTRmluYWxPYmplY3Q6OmFsbG9jYXRpb25TaXplKGlubGluZUNhcGFjaXR5KTsKLSAg
ICBBbGxvY2F0b3IgYWxsb2NhdG9yID0gdm0uY2VsbFNwYWNlLmFsbG9jYXRvckZvck5vblZpcnR1
YWwoYWxsb2NhdGlvblNpemUsIEFsbG9jYXRvckZvck1vZGU6OkVuc3VyZUFsbG9jYXRvcik7Cisg
ICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IHN1YnNwYWNlRm9yPEpTRmluYWxPYmplY3Q+KHZtKS0+
YWxsb2NhdG9yRm9yTm9uVmlydHVhbChhbGxvY2F0aW9uU2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6
RW5zdXJlQWxsb2NhdG9yKTsKIAogICAgIC8vIFRha2UgYWR2YW50YWdlIG9mIGV4dHJhIGlubGlu
ZSBjYXBhY2l0eSBhdmFpbGFibGUgaW4gdGhlIHNpemUgY2xhc3MuCiAgICAgaWYgKGFsbG9jYXRv
cikgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5
LmNwcAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxv
Y2tEaXJlY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgTWFya2Vk
QmxvY2s6OkhhbmRsZSogQmxvY2tEaXJlY3Rvcnk6OnRyeQogICAgIHJldHVybiBoYW5kbGU7CiB9
CiAKLXZvaWQgQmxvY2tEaXJlY3Rvcnk6OmFkZEJsb2NrKE1hcmtlZEJsb2NrOjpIYW5kbGUqIGJs
b2NrKQordm9pZCBCbG9ja0RpcmVjdG9yeTo6YWRkQmxvY2soTWFya2VkQmxvY2s6OkhhbmRsZSog
YmxvY2ssIFNlY3VyaXR5T3JpZ2luVG9rZW4gc2VjdXJpdHlPcmlnaW5Ub2tlbikKIHsKICAgICBz
aXplX3QgaW5kZXg7CiAgICAgaWYgKG1fZnJlZUJsb2NrSW5kaWNlcy5pc0VtcHR5KCkpIHsKQEAg
LTE0OCw3ICsxNDgsNyBAQCB2b2lkIEJsb2NrRGlyZWN0b3J5OjphZGRCbG9jayhNYXJrZWRCbG9j
CiAgICAgICAgIH0pOwogCiAgICAgLy8gVGhpcyBpcyB0aGUgcG9pbnQgYXQgd2hpY2ggdGhlIGJs
b2NrIGxlYXJucyBvZiBpdHMgY2VsbFNpemUoKSBhbmQgYXR0cmlidXRlcygpLgotICAgIGJsb2Nr
LT5kaWRBZGRUb0RpcmVjdG9yeSh0aGlzLCBpbmRleCk7CisgICAgYmxvY2stPmRpZEFkZFRvRGly
ZWN0b3J5KHRoaXMsIGluZGV4LCBzZWN1cml0eU9yaWdpblRva2VuKTsKICAgICAKICAgICBzZXRJ
c0xpdmUoTm9Mb2NraW5nTmVjZXNzYXJ5LCBpbmRleCwgdHJ1ZSk7CiAgICAgc2V0SXNFbXB0eShO
b0xvY2tpbmdOZWNlc3NhcnksIGluZGV4LCB0cnVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBSZWZQdHI8U2hhcmVkVGFzazxNYXJr
ZWRCbG9jazo6SGFuZGxlKigpPj4gcGFyYWxsZWxOb3RFbXB0eUJsb2NrU291cmNlKCk7CiAgICAg
Ci0gICAgdm9pZCBhZGRCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKik7CisgICAgdm9pZCBhZGRC
bG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKiwgU2VjdXJpdHlPcmlnaW5Ub2tlbik7CiAgICAgdm9p
ZCByZW1vdmVCbG9jayhNYXJrZWRCbG9jazo6SGFuZGxlKik7CiAKICAgICBib29sIGlzUGFnZWRP
dXQoTW9ub3RvbmljVGltZSBkZWFkbGluZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9DZWxsQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvQ2VsbEF0dHJpYnV0ZXMuY3BwCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHZvaWQgQ2VsbEF0dHJpYnV0ZXM6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoInsiLCBkZXN0cnVj
dGlvbiwgIiwgIiwgY2VsbEtpbmQsICJ9Iik7CisgICAgb3V0LnByaW50KCJ7IiwgZGVzdHJ1Y3Rp
b24sICIsICIsIGNlbGxLaW5kLCAiLCAiLCBzZWN1cml0eUtpbmQsICJ9Iik7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbEF0dHJp
YnV0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQXR0
cmlidXRlcy5oCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9DZWxsQXR0cmlidXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJEZXN0cnVjdGlvbk1vZGUuaCIKICNpbmNsdWRlICJIZWFwQ2VsbC5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5S2luZC5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKQEAgLTM0LDkgKzM1LDEwIEBAIG5hbWVzcGFjZSBKU0Mgewogc3RydWN0IENl
bGxBdHRyaWJ1dGVzIHsKICAgICBDZWxsQXR0cmlidXRlcygpIHsgfQogICAgIAotICAgIENlbGxB
dHRyaWJ1dGVzKERlc3RydWN0aW9uTW9kZSBkZXN0cnVjdGlvbiwgSGVhcENlbGw6OktpbmQgY2Vs
bEtpbmQpCisgICAgQ2VsbEF0dHJpYnV0ZXMoRGVzdHJ1Y3Rpb25Nb2RlIGRlc3RydWN0aW9uLCBI
ZWFwQ2VsbDo6S2luZCBjZWxsS2luZCwgU2VjdXJpdHlLaW5kIHNlY3VyaXR5S2luZCkKICAgICAg
ICAgOiBkZXN0cnVjdGlvbihkZXN0cnVjdGlvbikKICAgICAgICAgLCBjZWxsS2luZChjZWxsS2lu
ZCkKKyAgICAgICAgLCBzZWN1cml0eUtpbmQoc2VjdXJpdHlLaW5kKQogICAgIHsKICAgICB9CiAg
ICAgCkBAIC00NCw2ICs0Niw3IEBAIHN0cnVjdCBDZWxsQXR0cmlidXRlcyB7CiAgICAgCiAgICAg
RGVzdHJ1Y3Rpb25Nb2RlIGRlc3RydWN0aW9uIHsgRG9lc05vdE5lZWREZXN0cnVjdGlvbiB9Owog
ICAgIEhlYXBDZWxsOjpLaW5kIGNlbGxLaW5kIHsgSGVhcENlbGw6OkpTQ2VsbCB9OworICAgIFNl
Y3VyaXR5S2luZCBzZWN1cml0eUtpbmQgeyBTZWN1cml0eUtpbmQ6OkRhbmdlcm91c0JpdHMgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTG9jYWxBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0xvY2FsQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTG9jYWxBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzcsOCArMTc3LDcgQEAgdm9pZCogTG9jYWxBbGxvY2F0b3I6OmFsbG9jYXRlU2xvd0Nhc2UoRwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgYmxv
Y2stPmFzc29jaWF0ZVdpdGhPcmlnaW4obV90bGMtPnNlY3VyaXR5T3JpZ2luVG9rZW4oKSk7Ci0g
ICAgbV9kaXJlY3RvcnktPmFkZEJsb2NrKGJsb2NrKTsKKyAgICBtX2RpcmVjdG9yeS0+YWRkQmxv
Y2soYmxvY2ssIG1fdGxjLT5zZWN1cml0eU9yaWdpblRva2VuKCkpOwogICAgIHJlc3VsdCA9IGFs
bG9jYXRlSW4oYmxvY2spOwogICAgIEFTU0VSVChyZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7
CkBAIC0yMzQsOCArMjMzLDcgQEAgdm9pZCogTG9jYWxBbGxvY2F0b3I6OnRyeUFsbG9jYXRlV2l0
aG91dAogICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGVyZSBpcyBhIHJlbW90ZSBjaGFuY2UgdGhh
dCBhIGJsb2NrIG1heSBoYXZlIGJvdGggY2FuQWxsb2NhdGVCdXROb3RFbXB0eQogICAgICAgICAg
ICAgLy8gYW5kIGVtcHR5IHNldCBhdCB0aGUgc2FtZSB0aW1lLgogICAgICAgICAgICAgYmxvY2st
PnJlbW92ZUZyb21EaXJlY3RvcnkoKTsKLSAgICAgICAgICAgIGJsb2NrLT5hc3NvY2lhdGVXaXRo
T3JpZ2luKG1fdGxjLT5zZWN1cml0eU9yaWdpblRva2VuKCkpOwotICAgICAgICAgICAgbV9kaXJl
Y3RvcnktPmFkZEJsb2NrKGJsb2NrKTsKKyAgICAgICAgICAgIG1fZGlyZWN0b3J5LT5hZGRCbG9j
ayhibG9jaywgbV90bGMtPnNlY3VyaXR5T3JpZ2luVG9rZW4oKSk7CiAgICAgICAgICAgICByZXR1
cm4gYWxsb2NhdGVJbihibG9jayk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAyMjg1MzgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIE1hcmtlZEJsb2NrOjpIYW5kbGU6OnJlbW92ZUZyb21E
aXJlCiAgICAgbV9kaXJlY3RvcnktPnJlbW92ZUJsb2NrKHRoaXMpOwogfQogCi12b2lkIE1hcmtl
ZEJsb2NrOjpIYW5kbGU6OmRpZEFkZFRvRGlyZWN0b3J5KEJsb2NrRGlyZWN0b3J5KiBkaXJlY3Rv
cnksIHNpemVfdCBpbmRleCkKK3ZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6ZGlkQWRkVG9EaXJl
Y3RvcnkoQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSwgc2l6ZV90IGluZGV4LCBTZWN1cml0eU9y
aWdpblRva2VuIHNlY3VyaXR5T3JpZ2luVG9rZW4pCiB7CiAgICAgQVNTRVJUKG1faW5kZXggPT0g
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgQVNTRVJUKCFtX2RpcmVj
dG9yeSk7CkBAIC0zNDksNyArMzQ5LDIwIEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6ZGlk
QWRkVG9EaXJlY3QKICAgICBtX2F0b21zUGVyQ2VsbCA9IChjZWxsU2l6ZSArIGF0b21TaXplIC0g
MSkgLyBhdG9tU2l6ZTsKICAgICBtX2VuZEF0b20gPSBlbmRBdG9tIC0gbV9hdG9tc1BlckNlbGwg
KyAxOwogICAgIAorICAgIGlmIChkaXJlY3RvcnktPmF0dHJpYnV0ZXMoKS5zZWN1cml0eUtpbmQg
PT0gU2VjdXJpdHlLaW5kOjpKU1ZhbHVlT09CKSB7CisgICAgICAgIC8vIElmIHdlIGFyZSBnb2lu
ZyB0byBiZSB1c2VkIGZvciBKU1ZhbHVlT09CIGFsbG9jYXRpb25zLCB0aGVuIHdlIG1heSBuZWVk
IHRvIHplcm8gdGhlIGJsb2NrLgorICAgICAgICAvLyBXZSBkb24ndCBoYXZlIHRvIHplcm8gaXQg
aWYgaXQgd2FzIGFscmVhZHkgdXNlZCBmb3IgSlNWYWx1ZXMgaW4gdGhlIHNhbWUgc2VjdXJpdHkg
b3JpZ2luLgorICAgICAgICAvLyBJdCdzIHRlbXB0aW5nIHRvIHNheSB0aGF0IHRoaXMgbWVhbnMg
dGhhdCB3ZSBkb24ndCBoYXZlIHRvIHplcm8gaXQgaWYgaXQncyBjb21pbmcgZnJvbQorICAgICAg
ICAvLyBKU1ZhbHVlU3RyaWN0LCBidXQgc2luY2UgSlNWYWx1ZVN0cmljdCBkb2Vzbid0IHplcm8g
d2hlbiBjb252ZXJ0aW5nIGZyb20gRGFuZ2Vyb3VzQml0cywgdGhhdAorICAgICAgICAvLyB3b3Vs
ZCBub3QgYmUgc291bmQuCisgICAgICAgIAorICAgICAgICBpZiAobV9hdHRyaWJ1dGVzLnNlY3Vy
aXR5S2luZCAhPSBTZWN1cml0eUtpbmQ6OkpTVmFsdWVPT0IKKyAgICAgICAgICAgIHx8IG1fc2Vj
dXJpdHlPcmlnaW5Ub2tlbiAhPSBzZWN1cml0eU9yaWdpblRva2VuKQorICAgICAgICAgICAgZmFz
dFplcm9GaWxsQnl0ZXMoJmJsb2NrKCksIG1fZW5kQXRvbSAqIGF0b21TaXplKTsKKyAgICB9Cisg
ICAgCiAgICAgbV9hdHRyaWJ1dGVzID0gZGlyZWN0b3J5LT5hdHRyaWJ1dGVzKCk7CisgICAgbV9z
ZWN1cml0eU9yaWdpblRva2VuID0gc2VjdXJpdHlPcmlnaW5Ub2tlbjsKIAogICAgIGlmIChtX2F0
dHJpYnV0ZXMuY2VsbEtpbmQgIT0gSGVhcENlbGw6OkpTQ2VsbCkKICAgICAgICAgUkVMRUFTRV9B
U1NFUlQobV9hdHRyaWJ1dGVzLmRlc3RydWN0aW9uID09IERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24p
OwpAQCAtNDg4LDE1ICs1MDEsNiBAQCBib29sIE1hcmtlZEJsb2NrOjpIYW5kbGU6OmlzRnJlZUxp
c3RlZENlCiAgICAgcmV0dXJuIG1fZGlyZWN0b3J5LT5pc0ZyZWVMaXN0ZWRDZWxsKHRhcmdldCk7
CiB9CiAKLXZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6YXNzb2NpYXRlV2l0aE9yaWdpbihTZWN1
cml0eU9yaWdpblRva2VuIHNlY3VyaXR5T3JpZ2luVG9rZW4pCi17Ci0gICAgaWYgKG1fc2VjdXJp
dHlPcmlnaW5Ub2tlbiA9PSBzZWN1cml0eU9yaWdpblRva2VuKQotICAgICAgICByZXR1cm47Ci0g
ICAgCi0gICAgZmFzdFplcm9GaWxsQnl0ZXMoJmJsb2NrKCksIGVuZEF0b20gKiBhdG9tU2l6ZSk7
Ci0gICAgbV9zZWN1cml0eU9yaWdpblRva2VuID0gc2VjdXJpdHlPcmlnaW5Ub2tlbjsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAs
MTIgKzE5MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICB2b2lkIHJlbW92ZUZyb21E
aXJlY3RvcnkoKTsKICAgICAgICAgCi0gICAgICAgIHZvaWQgZGlkQWRkVG9EaXJlY3RvcnkoQmxv
Y2tEaXJlY3RvcnkqLCBzaXplX3QgaW5kZXgpOworICAgICAgICB2b2lkIGRpZEFkZFRvRGlyZWN0
b3J5KEJsb2NrRGlyZWN0b3J5Kiwgc2l6ZV90IGluZGV4LCBTZWN1cml0eU9yaWdpblRva2VuKTsK
ICAgICAgICAgdm9pZCBkaWRSZW1vdmVGcm9tRGlyZWN0b3J5KCk7CiAgICAgICAgIAogICAgICAg
ICB2b2lkIGR1bXBTdGF0ZShQcmludFN0cmVhbSYpOwogICAgICAgICAKLSAgICAgICAgdm9pZCBh
c3NvY2lhdGVXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luVG9rZW4pOwogICAgICAgICBTZWN1cml0
eU9yaWdpblRva2VuIHNlY3VyaXR5T3JpZ2luVG9rZW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3Vy
aXR5T3JpZ2luVG9rZW47IH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1NlY3VyaXR5S2luZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2VjdXJpdHlLaW5kLmNwcAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TZWN1cml0eUtpbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5S2luZC5oIgor
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYg
b3V0LCBKU0M6OlNlY3VyaXR5S2luZCBzZWN1cml0eUtpbmQpCit7CisgICAgc3dpdGNoIChzZWN1
cml0eUtpbmQpIHsKKyAgICBjYXNlIEpTQzo6U2VjdXJpdHlLaW5kOjpKU1ZhbHVlT09COgorICAg
ICAgICBvdXQucHJpbnQoIkpTVmFsdWVPT0IiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
SlNDOjpTZWN1cml0eUtpbmQ6OkpTVmFsdWVTdHJpY3Q6CisgICAgICAgIG91dC5wcmludCgiSlNW
YWx1ZVN0cmljdCIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlNlY3VyaXR5S2lu
ZDo6RGFuZ2Vyb3VzQml0czoKKyAgICAgICAgb3V0LnByaW50KCJEYW5nZXJvdXNCaXRzIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1NlY3VyaXR5S2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1NlY3VyaXR5S2luZC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1NlY3VyaXR5S2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIGNsYXNzIFNlY3VyaXR5S2luZCA6IHVpbnQ4X3Qg
eworICAgIC8vIFRoZSBKU1ZhbHVlT09CIHNlY3VyaXR5IGtpbmQgaXMgZm9yIGNlbGxzIHRoYXQg
Y29udGFpbiBKVmFsdWVzIGFuZCBjYW4gYmUgYWNjZXNzZWQgb3V0LW9mLWJvdW5kcworICAgIC8v
IHVwIHRvIG1pbmltdW1EaXN0YW5jZUJldHdlZW5DZWxsc0Zyb21EaWZmZXJlbnRPcmlnaW5zLgor
ICAgIC8vCisgICAgLy8gSlNWYWx1ZXMgY2FuIHJlZmVyZW5jZSBjZWxscyBpbiBKU1ZhbHVlT09C
LiBUaGVyZWZvcmUsIEpTVmFsdWVzIGNhbiBvbmx5IHJlZmVyZW5jZSBjZWxscyBpbgorICAgIC8v
IEpTVmFsdWVPT0IgLSBvdGhlcndpc2UgYSBTcGVjdHJlIE9PQiBhdHRhY2sgd291bGQgYmUgYWJs
ZSB0byB2aW9sYXRlIHRoZSBydWxlcyBvZiBKU1ZhbHVlU3RyaWN0CisgICAgLy8gYW5kIERhbmdl
cm91c0JpdHMuCisgICAgSlNWYWx1ZU9PQiwKKyAgICAKKyAgICAvLyBUaGUgSlNWYWx1ZVN0cmlj
dCBzZWN1cml0eSBraW5kIGlzIGZvciBjZWxscyB0aGF0IGNvbnRhaW4gSlNWYWx1ZXMgYnV0IGNh
bm5vdCBiZSBhY2Nlc3NlZAorICAgIC8vIG91dC1vZi1ib3VuZHMuIEN1cnJlbnRseSwgaXQncyBu
b3QgZXNzZW50aWFsIHRvIGtlZXAgdGhpcyBzZXBhcmF0ZSBmcm9tIFNlcGFyYXRlQml0cy4gV2Un
cmUgdXNpbmcKKyAgICAvLyB0aGlzIHRvIGdldCBzb21lIHdpZ2dsZSByb29tIGZvciBob3cgd2Ug
aGFuZGxlIGFycmF5IGVsZW1lbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWlnaHQgd2FudCB0bworICAg
IC8vIGFsbG93IE9PQiByZWFkcyBidXQgbm90IE9PQiB3cml0ZXMuCisgICAgLy8KKyAgICAvLyBJ
dCdzIGlsbGVnYWwgdG8gdXNlIHRoaXMgZm9yIGFueSBzdWJjbGFzcyBvZiBKU09iamVjdCwgSlNT
dHJpbmcsIG9yIFN5bWJvbE9iamVjdCwgb3IgYW55IG90aGVyCisgICAgLy8gY2VsbCB0aGF0IGNv
dWxkIGJlIHJlZmVyZW5jZWQgZnJvbSBhIEpTVmFsdWUuIFlvdSBtdXN0IHVzZSBwb2lzb25lZCBw
b2ludGVycyB0byBwb2ludCBhdCB0aGVzZQorICAgIC8vIGNlbGxzLgorICAgIEpTVmFsdWVTdHJp
Y3QsCisgICAgCisgICAgLy8gVGhlIERhbmdlcm91c0JpdHMgc2VjdXJpdHkga2luZCBpcyBmb3Ig
Y2VsbHMgdGhhdCBjb250YWluIHZhbHVlcyB0aGF0IGNvdWxkIGJlIHVzZWZ1bGx5IHR5cGUtCisg
ICAgLy8gY29uZnVzZWQgd2l0aCBKU1ZhbHVlLgorICAgIC8vCisgICAgLy8gSXQncyBpbGxlZ2Fs
IHRvIHVzZSB0aGlzIGZvciBhbnkgc3ViY2xhc3Mgb2YgSlNPYmplY3QsIEpTU3RyaW5nLCBvciBT
eW1ib2xPYmplY3QsIG9yIGFueSBvdGhlcgorICAgIC8vIGNlbGwgdGhhdCBjb3VsZCBiZSByZWZl
cmVuY2VkIGZyb20gYSBKU1ZhbHVlLiBZb3UgbXVzdCB1c2UgcG9pc29uZWQgcG9pbnRlcnMgdG8g
cG9pbnQgYXQgdGhlc2UKKyAgICAvLyBjZWxscy4KKyAgICBEYW5nZXJvdXNCaXRzCit9OworCit9
IC8vIG5hbWVzcGFjZSBKU0MKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFByaW50U3RyZWFt
OworCit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OlNlY3VyaXR5S2luZCk7
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAyMjg1MzgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEz
OSw3ICsxMzksNyBAQCBDb21wbGV0ZVN1YnNwYWNlKiBKU0NlbGw6OnN1YnNwYWNlRm9yKFZNCiB7
CiAgICAgaWYgKENlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uKQogICAgICAgICByZXR1cm4gJnZt
LmRlc3RydWN0aWJsZUNlbGxTcGFjZTsKLSAgICByZXR1cm4gJnZtLmNlbGxTcGFjZTsKKyAgICBy
ZXR1cm4gJnZtLmNlbGxEYW5nZXJvdXNCaXRzU3BhY2U7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuY3BwCShyZXZpc2lvbiAy
Mjg1MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3Qg
SlNEZXN0cnVjdGlibGVPYmplY3REZXN0cm95RnVuYyB7CiB9OwogCiBKU0Rlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZTo6SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUoKQotICAg
IDogSGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxs
OjpKU0NlbGwpKQorICAgIDogSGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1
Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6SlNWYWx1ZU9PQikpCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNp
b24gMjI4NTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMTA0LDYgKzEwNCwxMiBAQCBjbGFzcyBKU09iamVjdCA6IHB1Ymxp
YyBKU0NlbGwgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZT4KKyAgICBzdGF0aWMgQ29tcGxldGVTdWJzcGFjZSogc3Vic3BhY2VGb3Io
Vk0mIHZtKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZ2bS5jZWxsSlNWYWx1ZU9PQlNwYWNlOwor
ICAgIH0KKwogICAgIC8vIFRoaXMgaXMgYSBzdXBlciBkYW5nZXJvdXMgbWV0aG9kIGZvciBKSVRz
LiBTb21ldGltZXMgdGhlIEpJVHMgd2lsbCB3YW50IHRvIGNyZWF0ZSBlaXRoZXIgYQogICAgIC8v
IEpTRmluYWxPYmplY3Qgb3IgYSBKU0FycmF5LiBUaGlzIGlzIHRoZSBtZXRob2QgdGhhdCB3aWxs
IGRvIHRoYXQuCiAgICAgc3RhdGljIEpTT2JqZWN0KiBjcmVhdGVSYXdPYmplY3QoRXhlY1N0YXRl
KiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnV0dGVyZmx5KiA9IG51bGxwdHIpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dEhlYXBDZWxsVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAJKHJldmlzaW9u
IDIyODUzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFy
aWFibGVPYmplY3RIZWFwQ2VsbFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAg
c3RydWN0IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3REZXN0cm95RgogfTsKIAogSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdEhlYXBDZWxsVHlwZTo6SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdEhl
YXBDZWxsVHlwZSgpCi0gICAgOiBIZWFwQ2VsbFR5cGUoQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0
cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpCisgICAgOiBIZWFwQ2VsbFR5cGUoQ2VsbEF0dHJp
YnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCwgU2VjdXJpdHlLaW5kOjpK
U1ZhbHVlT09CKSkKIHsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nSGVhcENlbGxUeXBlLmNwcAkocmV2aXNpb24gMjI4NTM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IEpTU3RyaW5nRGVzdHJveUZ1bmMg
ewogfTsKIAogSlNTdHJpbmdIZWFwQ2VsbFR5cGU6OkpTU3RyaW5nSGVhcENlbGxUeXBlKCkKLSAg
ICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2Vs
bDo6SlNDZWxsKSkKKyAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3Ry
dWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVPT0IpKQogewog
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xPYmplY3Qu
aAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3lt
Ym9sT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDEyIEBAIGNsYXNzIFN5bWJv
bE9iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmoKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTV3Jh
cHBlck9iamVjdCBCYXNlOwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWU+CisgICAgc3RhdGljIENv
bXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKKyAgICB7CisgICAgICAgIHJldHVy
biAmdm0uY2VsbEpTVmFsdWVPT0JTcGFjZTsKKyAgICB9CisKICAgICBzdGF0aWMgU3ltYm9sT2Jq
ZWN0KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAg
IFN5bWJvbCogc3ltYm9sID0gU3ltYm9sOjpjcmVhdGUodm0pOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsMTkgKzIzNCwyMiBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBmYXN0TWFs
bG9jQWxsb2NhdG9yKHN0ZDo6bWFrZV91bmlxdWU8RmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxv
Y2F0b3I+KCkpCiAgICAgLCBwcmltaXRpdmVHaWdhY2FnZUFsbG9jYXRvcihzdGQ6Om1ha2VfdW5p
cXVlPEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcj4oR2lnYWNhZ2U6OlByaW1pdGl2ZSkp
CiAgICAgLCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3Ioc3RkOjptYWtlX3VuaXF1ZTxHaWdhY2Fn
ZUFsaWduZWRNZW1vcnlBbGxvY2F0b3I+KEdpZ2FjYWdlOjpKU1ZhbHVlKSkKLSAgICAsIGF1eGls
aWFyeUhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0dHJp
YnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkF1eGlsaWFyeSkpKQotICAg
ICwgY2VsbEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0
dHJpYnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpKQotICAg
ICwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEhlYXBDZWxs
VHlwZT4oQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkp
KQorICAgICwgYXV4aWxpYXJ5SlNWYWx1ZVN0cmljdEhlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5p
cXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwg
SGVhcENlbGw6OkF1eGlsaWFyeSwgU2VjdXJpdHlLaW5kOjpKU1ZhbHVlU3RyaWN0KSkpCisgICAg
LCBhdXhpbGlhcnlEYW5nZXJvdXNCaXRzSGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVh
cENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2Vs
bDo6QXV4aWxpYXJ5LCBTZWN1cml0eUtpbmQ6OkRhbmdlcm91c0JpdHMpKSkKKyAgICAsIGNlbGxK
U1ZhbHVlT09CSGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxs
QXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1
cml0eUtpbmQ6OkpTVmFsdWVPT0IpKSkKKyAgICAsIGNlbGxEYW5nZXJvdXNCaXRzSGVhcENlbGxU
eXBlKHN0ZDo6bWFrZV91bmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90
TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsLCBTZWN1cml0eUtpbmQ6OkpTVmFsdWVP
T0IpKSkKKyAgICAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1
ZTxIZWFwQ2VsbFR5cGU+KENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxs
OjpKU0NlbGwsIFNlY3VyaXR5S2luZDo6RGFuZ2Vyb3VzQml0cykpKQogICAgICwgc3RyaW5nSGVh
cENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SlNTdHJpbmdIZWFwQ2VsbFR5cGU+KCkpCiAgICAg
LCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUoc3RkOjptYWtlX3VuaXF1ZTxKU0Rlc3Ry
dWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZT4oKSkKICAgICAsIHNlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0SGVhcENlbGxUeXBlKHN0ZDo6bWFrZV91bmlxdWU8SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dEhlYXBDZWxsVHlwZT4oKSkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgLCB3ZWJBc3Nl
bWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZShzdGQ6Om1ha2VfdW5pcXVlPEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGU+KCkpCiAjZW5kaWYKLSAgICAsIHByaW1pdGl2ZUdpZ2FjYWdl
QXV4aWxpYXJ5U3BhY2UoIlByaW1pdGl2ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBhdXhp
bGlhcnlIZWFwQ2VsbFR5cGUuZ2V0KCksIHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgp
KQotICAgICwganNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UoIkpTVmFsdWUgR2lnYWNhZ2Ug
QXV4aWxpYXJ5IiwgaGVhcCwgYXV4aWxpYXJ5SGVhcENlbGxUeXBlLmdldCgpLCBqc1ZhbHVlR2ln
YWNhZ2VBbGxvY2F0b3IuZ2V0KCkpCi0gICAgLCBjZWxsU3BhY2UoIkpTQ2VsbCIsIGhlYXAsIGNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCi0gICAgLCBq
c1ZhbHVlR2lnYWNhZ2VDZWxsU3BhY2UoIkpTVmFsdWUgR2lnYWNhZ2UgSlNDZWxsIiwgaGVhcCwg
Y2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwganNWYWx1ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKQor
ICAgICwgcHJpbWl0aXZlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgiUHJpbWl0aXZlIEdpZ2FjYWdl
IEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeURhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGUuZ2V0
KCksIHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKQorICAgICwganNWYWx1ZUdpZ2Fj
YWdlQXV4aWxpYXJ5U3BhY2UoIkpTVmFsdWUgR2lnYWNhZ2UgQXV4aWxpYXJ5IiwgaGVhcCwgYXV4
aWxpYXJ5SlNWYWx1ZVN0cmljdEhlYXBDZWxsVHlwZS5nZXQoKSwganNWYWx1ZUdpZ2FjYWdlQWxs
b2NhdG9yLmdldCgpKQorICAgICwgY2VsbEpTVmFsdWVPT0JTcGFjZSgiSlNDZWxsIEpTVmFsdWVP
T0IiLCBoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0Fs
bG9jYXRvci5nZXQoKSkKKyAgICAsIGNlbGxEYW5nZXJvdXNCaXRzU3BhY2UoIkpTQ2VsbCBEYW5n
ZXJvdXNCaXRzIiwgaGVhcCwgY2VsbERhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGUuZ2V0KCksIGZh
c3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCisgICAgLCBqc1ZhbHVlR2lnYWNhZ2VDZWxsU3BhY2Uo
IkpTVmFsdWUgR2lnYWNhZ2UgSlNDZWxsIiwgaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5
cGUuZ2V0KCksIGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRvci5nZXQoKSkKICAgICAsIGRlc3RydWN0
aWJsZUNlbGxTcGFjZSgiRGVzdHJ1Y3RpYmxlIEpTQ2VsbCIsIGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCiAgICAgLCBz
dHJpbmdTcGFjZSgiSlNTdHJpbmciLCBoZWFwLCBzdHJpbmdIZWFwQ2VsbFR5cGUuZ2V0KCksIGZh
c3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCiAgICAgLCBkZXN0cnVjdGlibGVPYmplY3RTcGFjZSgi
SlNEZXN0cnVjdGlibGVPYmplY3QiLCBoZWFwLCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUuZ2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCkBAIC0yNTUsMjEgKzI1OCwyMSBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQogICAgICwgd2ViQXNzZW1ibHlDb2RlQmxvY2tTcGFjZSgiSlNXZWJBc3NlbWJs
eUNvZGVCbG9ja1NwYWNlIiwgaGVhcCwgd2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUu
Z2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpCiAjZW5kaWYKLSAgICAsIGFzeW5jRnVu
Y3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU0FzeW5jRnVuY3Rpb24pCi0gICAgLCBhc3luY0dlbmVyYXRvckZ1bmN0aW9uU3BhY2UgSVNP
X1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBc3luY0dlbmVy
YXRvckZ1bmN0aW9uKQotICAgICwgYm91bmRGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQm91bmRGdW5jdGlvbikKLSAgICAsIGN1
c3RvbUdldHRlclNldHRlckZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbikKKyAgICAs
IGFzeW5jRnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9P
QkhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBc3luY0Z1bmN0aW9uKQorICAgICwgYXN5bmNHZW5lcmF0
b3JGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1ZhbHVlT09CSGVh
cENlbGxUeXBlLmdldCgpLCBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24pCisgICAgLCBib3VuZEZ1
bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTQm91bmRGdW5jdGlvbikKKyAgICAsIGN1c3RvbUdldHRlclNldHRlckZ1
bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEpTVmFsdWVPT0JIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24pCiAgICAgLCBkaXJlY3RF
dmFsRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIERpcmVjdEV2YWxFeGVjdXRhYmxlKQotICAgICwgZXhlY3V0
YWJsZVRvQ29kZUJsb2NrRWRnZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UpCisgICAgLCBleGVjdXRh
YmxlVG9Db2RlQmxvY2tFZGdlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbERhbmdl
cm91c0JpdHNIZWFwQ2VsbFR5cGUuZ2V0KCksIEV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UpCiAg
ICAgLCBmdW5jdGlvbkV4ZWN1dGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0
cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBGdW5jdGlvbkV4ZWN1dGFibGUpCi0gICAg
LCBmdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTRnVuY3Rpb24pCi0gICAgLCBnZW5lcmF0b3JGdW5jdGlvblNwYWNlIElTT19TVUJT
UEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTR2VuZXJhdG9yRnVuY3Rp
b24pCisgICAgLCBmdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1Zh
bHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBKU0Z1bmN0aW9uKQorICAgICwgZ2VuZXJhdG9yRnVu
Y3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxs
VHlwZS5nZXQoKSwgSlNHZW5lcmF0b3JGdW5jdGlvbikKICAgICAsIGluZGlyZWN0RXZhbEV4ZWN1
dGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENl
bGxUeXBlLmdldCgpLCBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKQogICAgICwgaW5mZXJyZWRUeXBl
U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgSW5mZXJyZWRUeXBlKQogICAgICwgaW5mZXJyZWRWYWx1ZVNwYWNlIElTT19TVUJT
UEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEluZmVy
cmVkVmFsdWUpCiAgICAgLCBtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE1vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlKQogICAgICwgbmF0aXZlRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE5hdGl2ZUV4
ZWN1dGFibGUpCi0gICAgLCBuYXRpdmVTdGRGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTTmF0aXZlU3RkRnVuY3Rpb24pCisgICAg
LCBuYXRpdmVTdGRGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxKU1Zh
bHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBKU05hdGl2ZVN0ZEZ1bmN0aW9uKQogICAgICwgcHJv
Z3JhbUV4ZWN1dGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVD
ZWxsSGVhcENlbGxUeXBlLmdldCgpLCBQcm9ncmFtRXhlY3V0YWJsZSkKICAgICAsIHByb3BlcnR5
VGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENl
bGxUeXBlLmdldCgpLCBQcm9wZXJ0eVRhYmxlKQogICAgICwgc3RydWN0dXJlUmFyZURhdGFTcGFj
ZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBTdHJ1Y3R1cmVSYXJlRGF0YSkKQEAgLTI3Nyw4ICsyODAsOCBAQCBWTTo6Vk0oVk1UeXBl
IHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCB3ZWFrU2V0U3BhY2UgSVNPX1NVQlNQ
QUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1dl
YWtTZXQpCiAgICAgLCB3ZWFrTWFwU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtNYXApCiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQotICAgICwgd2ViQXNzZW1ibHlGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9J
TklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFdlYkFzc2VtYmx5RnVuY3Rpb24pCi0g
ICAgLCB3ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhl
YXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKQor
ICAgICwgd2ViQXNzZW1ibHlGdW5jdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNl
bGxKU1ZhbHVlT09CSGVhcENlbGxUeXBlLmdldCgpLCBXZWJBc3NlbWJseUZ1bmN0aW9uKQorICAg
ICwgd2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBjZWxsSlNWYWx1ZU9PQkhlYXBDZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVu
Y3Rpb24pCiAjZW5kaWYKICAgICAsIGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VzV2l0aENvbnN0
cmFpbnRzKGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VTcGFjZSkKICAgICAsIGV4ZWN1dGFibGVU
b0NvZGVCbG9ja0VkZ2VzV2l0aEZpbmFsaXplcnMoZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZVNw
YWNlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMjg1Mzgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTIsOCArMjkyLDEwIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R2lnYWNhZ2VB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yPiBwcmltaXRpdmVHaWdhY2FnZUFsbG9jYXRvcjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yPiBqc1ZhbHVlR2ln
YWNhZ2VBbGxvY2F0b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBhdXhp
bGlhcnlIZWFwQ2VsbFR5cGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gY2Vs
bEhlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBhdXhpbGlh
cnlKU1ZhbHVlU3RyaWN0SGVhcENlbGxUeXBlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2Vs
bFR5cGU+IGF1eGlsaWFyeURhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGU7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEhlYXBDZWxsVHlwZT4gY2VsbEpTVmFsdWVPT0JIZWFwQ2VsbFR5cGU7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gY2VsbERhbmdlcm91c0JpdHNIZWFwQ2VsbFR5cGU7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBD
ZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNTdHJpbmdIZWFwQ2VsbFR5cGU+IHN0cmlu
Z0hlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNEZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGU+IGRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZTsKQEAgLTMyNiw4ICsz
MjgsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIC8vIFdoZW5ldmVyIHBvc3NpYmxlLCB1
c2Ugc3Vic3BhY2VGb3I8Q2VsbFR5cGU+KHZtKSB0byBnZXQgb25lIG9mIHRoZXNlIHN1YnNwYWNl
cy4KLSAgICBDb21wbGV0ZVN1YnNwYWNlIGNlbGxTcGFjZTsKLSAgICBDb21wbGV0ZVN1YnNwYWNl
IGpzVmFsdWVHaWdhY2FnZUNlbGxTcGFjZTsKKyAgICBDb21wbGV0ZVN1YnNwYWNlIGNlbGxKU1Zh
bHVlT09CU3BhY2U7CisgICAgQ29tcGxldGVTdWJzcGFjZSBjZWxsRGFuZ2Vyb3VzQml0c1NwYWNl
OworICAgIENvbXBsZXRlU3Vic3BhY2UganNWYWx1ZUdpZ2FjYWdlQ2VsbFNwYWNlOyAvLyBGSVhN
RTogVGhpcyBzcGFjZSBpcyBwcm9ibGVtYXRpYyBiZWNhdXNlIHdlIGhhdmUgdGhpbmdzIGluIGhl
cmUgbGlrZSBEaXJlY3RBcmd1bWVudHMgYW5kIFNjb3BlZEFyZ3VtZW50czsgdGhvc2Ugc2hvdWxk
IGJlIHNwbGl0IGludG8gSlNWYWx1ZU9PQiBjZWxscyBhbmQgSlNWYWx1ZVN0cmljdCBhdXhpbGlh
cmllcy4KICAgICBDb21wbGV0ZVN1YnNwYWNlIGRlc3RydWN0aWJsZUNlbGxTcGFjZTsKICAgICBD
b21wbGV0ZVN1YnNwYWNlIHN0cmluZ1NwYWNlOwogICAgIENvbXBsZXRlU3Vic3BhY2UgZGVzdHJ1
Y3RpYmxlT2JqZWN0U3BhY2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxU
eXBlLmNwcAkocmV2aXNpb24gMjI4NTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tEZXN0cm95RnVu
YwogfTsKIAogSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTo6SlNXZWJBc3NlbWJs
eUNvZGVCbG9ja0hlYXBDZWxsVHlwZSgpCi0gICAgOiBIZWFwQ2VsbFR5cGUoQ2VsbEF0dHJpYnV0
ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpCisgICAgOiBIZWFwQ2VsbFR5
cGUoQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCwgU2Vj
dXJpdHlLaW5kOjpEYW5nZXJvdXNCaXRzKSkKIHsKIH0KIAo=
</data>
<flag name="review"
          id="352796"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>