<?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>236267</bug_id>
          
          <creation_ts>2022-02-07 15:54:21 -0800</creation_ts>
          <short_desc>Rename ImageBufferShareableIOSurfaceBackend to ImageBufferRemoteIOSurfaceBackend</short_desc>
          <delta_ts>2022-02-08 08:59:03 -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>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838405</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 15:54:21 -0800</bug_when>
    <thetext>Rename ImageBufferShareableIOSurfaceBackend to ImageBufferRemoteIOSurfaceBackend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838406</commentid>
    <comment_count>1</comment_count>
      <attachid>451164</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 15:55:42 -0800</bug_when>
    <thetext>Created attachment 451164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838413</commentid>
    <comment_count>2</comment_count>
      <attachid>451166</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 16:15:45 -0800</bug_when>
    <thetext>Created attachment 451166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838423</commentid>
    <comment_count>3</comment_count>
      <attachid>451170</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 16:35:19 -0800</bug_when>
    <thetext>Created attachment 451170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838471</commentid>
    <comment_count>4</comment_count>
      <attachid>451188</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 18:08:18 -0800</bug_when>
    <thetext>Created attachment 451188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838700</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-08 08:58:56 -0800</bug_when>
    <thetext>Committed r289379 (246967@main): &lt;https://commits.webkit.org/246967@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451164</attachid>
            <date>2022-02-07 15:55:42 -0800</date>
            <delta_ts>2022-02-07 21:53:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236267-20220207155541.patch</filename>
            <type>text/plain</type>
            <size>27220</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlMzRjOWVmODg2YjRlMjlm
YjgwNDE1NjU4NmM1NGQ0MGQxYmJiNTkuLjA5ZmZhMWI4N2FmYzg0MjFlNDhlZjRjZWEyNGZmMWY5
NzYyMjdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMDcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCB0byBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vc3Qgb2YgdGhlIGZ1bmN0aW9ucyBvbiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQgYXJlIHN0dWJzIHRoYXQgUkVMRUFTRV9BU1NFUlQ7CisgICAgICAgIGl0J3MgInJlbW90
ZSIgcm9sZSBpcyBtb3JlIGltcG9ydGFudCB0aGF0IGl0J3MgInNoYXJlYWJsZSIgcm9sZSwgc28g
cmVuYW1lIGl0LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNl
QmFja2VuZC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAuCisg
ICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y2FsY3Vs
YXRlU2FmZUJhY2tlbmRTaXplKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVNZW1vcnlDb3N0KToKKyAgICAgICAgKFdlYktpdDo6
SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVFeHRlcm5hbE1lbW9y
eUNvc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNl
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb250ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpi
YWNrZW5kU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9T
dXJmYWNlQmFja2VuZDo6Ynl0ZXNQZXJSb3cgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weUlt
YWdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kOjpkcmF3KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVt
b3RlSU9TdXJmYWNlQmFja2VuZDo6dG9EYXRhVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmdldFBpeGVsQnVm
ZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oLgorCiAyMDIyLTAyLTA3ICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGhvdmVyIHN0YXRl
IGJhc2VkIG9uIHBvaW50ZXIgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAzYTcyNTk2
YTRkN2E1Y2FiNDU2NjI3NzEzNjU2NGJhMDE1YjE5NmNkLi4xZjhkMTdlNjU1MTRjNzI1OTIyOTBj
ZjJlZDkzMjM5YWZiOTBkMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MjAsNyArNjIw
LDcgQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1t
CiAKLVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZC5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDBjN2MzMWJjNTU3YjU1ZDUxNzA1ZmMzOWQ3ZTY3OWM5NGM2YTBhZjMuLjQwNDJiZGNjMzgwNmZi
MGM4NDY2ZjVkODUxODk5NzIxZjBiYjhkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ4Nyw4ICszNDg3LDggQEAKIAkJMkQxQjVE
NUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvVmlld0dlc3R1cmVDb250cm9sbGVy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMkQxRTgy
MjEyMTZGRkY1MDAwQTE1MjY1IC8qIFdLV2ViRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV0tXZWJFdmVudC5oOyBwYXRoID0gaW9zL1dLV2ViRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQxRTgyMjIyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2Vi
RXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1dlYkV2
ZW50Lm1tOyBwYXRoID0gaW9zL1dLV2ViRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEMjVGMzI5MjU3
NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNUYzMjgyNTc1OEU5MDAwMjMx
QThCIC8qIEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIEltYWdlQnVmZmVyUmVtb3Rl
SU9TdXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI3
OUUwRTI2OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tIb3ZlclBsYXR0ZXIuaDsgcGF0aCA9IGlvcy9XS0hvdmVyUGxhdHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDI3OUUwRjI2OTRDMjI3MDA0QjNFRUIgLyogV0tIb3ZlclBs
YXR0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hvdmVyUGxhdHRlci5tbTsgcGF0aCA9
IGlvcy9XS0hvdmVyUGxhdHRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQy
NzlFMTAyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaDsgcGF0aCA9IGlvcy9XS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjE1
LDggKzEwMjE1LDggQEAKIAkJNzI3QTdGMzMyNDA3ODUyNzAwNEQyOTMxIC8qIGNvY29hICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkyRDI1RjMyOTI1NzU4
RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAq
LywKLQkJCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmggKi8sCisJCQkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIElt
YWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCisJCQkJMkQyNUYzMjgyNTc1
OEU5MDAwMjMxQThCIC8qIEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oICovLAog
CQkJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3
QjE2MTkxMjI3MTk4QUE5MDBDNDBFQUMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hLm1tICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxlQmFj
a2VuZC5oCmluZGV4IGM4OGQ5ZDdiMjk2NmY1ZDAwNjdmYTA5YTg1NTE3MjU4NzdiN2VmOWEuLjVh
NDRiM2ZiOTY0ZTFiNGMwYzAzOTYzNWJmM2JjYjE4MTlmNWIwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCIKIAogI2lmIEhB
VkUoSU9TVVJGQUNFKQotI2luY2x1ZGUgIkltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oIgog
I2luY2x1ZGUgIkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oIgog
I2VuZGlmCiAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBVbmFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kOwogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCi11c2luZyBBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZDsKK3VzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
ID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQ7CiAjZWxzZQogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNr
ZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZTllNGIwMTcwMjI2YzVmODAyMDIzYTJhMGRhZWE1
NDk2NTFhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAg
LTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCIKKworI2lmIEhBVkUo
SU9TVVJGQUNFKQorCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9QaXhlbEJ1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kKTsKKworSW50U2l6ZSBJbWFnZUJ1ZmZlclJl
bW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShjb25zdCBQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNhbGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShwYXJhbWV0ZXJzKTsKK30KKworc2l6ZV90
IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChj
b25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklP
U3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNvc3QocGFyYW1ldGVycyk7Cit9CisKK3Np
emVfdCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFs
TWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBJ
bWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChw
YXJhbWV0ZXJzKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyUmVtb3RlSU9TdXJm
YWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29u
c3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRs
ZSkKK3sKKyAgICBpZiAoIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFu
ZGxlKSkgeworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZl
clJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoaGFuZGxlKSk7Cit9
CisKK0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN0ZDo6Z2V0PE1hY2hTZW5kUmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Cit9
CisKK0dyYXBoaWNzQ29udGV4dCYgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpj
b250ZXh0KCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiAqKEdyYXBoaWNzQ29udGV4dCopbnVsbHB0cjsKK30KKworSW50U2l6ZSBJbWFnZUJ1
ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gY2FsY3VsYXRlQmFja2VuZFNpemUobV9wYXJhbWV0ZXJzKTsKK30KKwordW5zaWduZWQg
SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0Cit7
CisgICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKG1fcGFyYW1l
dGVycyk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRl
Qnl0ZXNQZXJSb3coYmFja2VuZFNpemUpOworfQorCitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdl
QnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZUNvcHkpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCitSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNl
QmFja2VuZDo6Y29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlvbikg
Y29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7
IH07Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6ZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0
U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCitTdHJpbmcgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kOjp0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxkb3VibGU+LCBQ
cmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJS
ZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25h
bDxkb3VibGU+KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gSW1hZ2VCdWZm
ZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ckZvcm1hdCYsIGNvbnN0IEludFJlY3QmKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50JiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbikKK3sK
KyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU2NGRi
YzE1YmQyYWViMWJlMjBiYWUyYTU2NzBkYzU4ZWVlY2M0NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1v
dGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFW
RShJT1NVUkZBQ0UpCisKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1h
Z2VCdWZmZXJCYWNrZW5kLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZCB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQpOworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZCk7Citw
dWJsaWM6CisgICAgc3RhdGljIFdlYkNvcmU6OkludFNpemUgY2FsY3VsYXRlU2FmZUJhY2tlbmRT
aXplKGNvbnN0IFBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9y
eUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBzaXplX3QgY2FsY3VsYXRlRXh0
ZXJuYWxNZW1vcnlDb3N0KGNvbnN0IFBhcmFtZXRlcnMmKTsKKworICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3Qg
UGFyYW1ldGVycyYsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSk7CisKKyAgICBJbWFnZUJ1ZmZl
clJlbW90ZUlPU3VyZmFjZUJhY2tlbmQoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYgaGFuZGxlKQorICAgICAgICA6IEltYWdlQnVmZmVyQmFj
a2VuZChwYXJhbWV0ZXJzKQorICAgICAgICAsIG1faGFuZGxlKFdURk1vdmUoaGFuZGxlKSkKKyAg
ICB7CisgICAgfQorCisgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
T3JpZ2luQXRCb3R0b21MZWZ0Q29ybmVyID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgY2FuTWFwQmFja2luZ1N0b3JlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBXZWJD
b3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBXZWJDb3JlOjpSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZDsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgp
IGNvbnN0IGZpbmFsOworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNp
emUoKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlO
YXRpdmVJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5KSBjb25zdCBmaW5hbDsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGNvcHlJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5
LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZHJh
dyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3Jl
OjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IGZpbmFsOworICAgIFZlY3Rvcjx1aW50OF90PiB0
b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxp
dHkpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+
IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRG
b3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKKworICAgIGJv
b2wgb3JpZ2luQXRCb3R0b21MZWZ0Q29ybmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gaXNPcmln
aW5BdEJvdHRvbUxlZnRDb3JuZXI7IH0KKworICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29u
c3QgZmluYWw7CisKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgbV9oYW5kbGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzZkZjEzNjAzODQ1NDVj
ZmRlNTc0OTU5MGIzOTFmZWIxMTNkNDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDEzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgiCi0KLSNp
ZiBIQVZFKElPU1VSRkFDRSkKLQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7Ci0KLUludFNpemUgSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVTYWZlQmFja2VuZFNp
emUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICByZXR1cm4gSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVTYWZlQmFja2VuZFNpemUocGFyYW1ldGVycyk7
Ci19Ci0KLXNpemVfdCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1
bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICByZXR1
cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVNZW1vcnlDb3N0KHBhcmFt
ZXRlcnMpOwotfQotCi1zaXplX3QgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
OjpjYWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKLXsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVF
eHRlcm5hbE1lbW9yeUNvc3QocGFyYW1ldGVycyk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCi17Ci0gICAgaWYgKCFzdGQ6OmhvbGRzX2FsdGVy
bmF0aXZlPE1hY2hTZW5kUmlnaHQ+KGhhbmRsZSkpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihwYXJh
bWV0ZXJzLCBXVEZNb3ZlKGhhbmRsZSkpOwotfQotCi1JbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUg
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUoKSBjb25zdAotewotICAgIHJldHVybiBzdGQ6OmdldDxNYWNoU2VuZFJpZ2h0
PihtX2hhbmRsZSkuY29weVNlbmRSaWdodCgpOwotfQotCi1HcmFwaGljc0NvbnRleHQmIEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29udGV4dCgpIGNvbnN0Ci17Ci0gICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gKihHcmFwaGljc0NvbnRl
eHQqKW51bGxwdHI7Ci19Ci0KLUludFNpemUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kOjpiYWNrZW5kU2l6ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNhbGN1bGF0ZUJhY2tl
bmRTaXplKG1fcGFyYW1ldGVycyk7Ci19Ci0KLXVuc2lnbmVkIEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZDo6Ynl0ZXNQZXJSb3coKSBjb25zdAotewotICAgIEludFNpemUgYmFj
a2VuZFNpemUgPSBjYWxjdWxhdGVCYWNrZW5kU2l6ZShtX3BhcmFtZXRlcnMpOwotICAgIHJldHVy
biBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUJ5dGVzUGVyUm93KGJhY2tl
bmRTaXplKTsKLX0KLQotUmVmUHRyPE5hdGl2ZUltYWdlPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAot
ewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQotUmVmUHRyPEltYWdlPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNv
cHlJbWFnZShCYWNraW5nU3RvcmVDb3B5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Ci17Ci0g
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi12
b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6ZHJhdyhHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLX0KLQotU3RyaW5nIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6dG9EYXRhVVJMKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiwgUHJl
c2VydmVSZXNvbHV0aW9uKSBjb25zdAotewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotVmVjdG9yPHVpbnQ4X3Q+IEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6dG9EYXRhKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPikgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiB7IH07Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXJGb3JtYXQmLCBjb25zdCBJbnRSZWN0JikgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLXZvaWQgSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ciYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYsIEFscGhhUHJlbXVsdGlwbGljYXRp
b24pCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODI5YjYwMDE3NjRmYzY1ZjE1MGEzMWU3M2U2MzFj
NTQwM2FhN2RkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpZiBIQVZFKElPU1VSRkFDRSkKLQotI2luY2x1ZGUgIkltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tlbmQuaD4KLSNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJC
YWNrZW5kIHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZCk7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViQ29yZTo6
SW50U2l6ZSBjYWxjdWxhdGVTYWZlQmFja2VuZFNpemUoY29uc3QgUGFyYW1ldGVycyYpOwotICAg
IHN0YXRpYyBzaXplX3QgY2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7Ci0g
ICAgc3RhdGljIHNpemVfdCBjYWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1l
dGVycyYpOwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlKTsKLQotICAgIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUm
JiBoYW5kbGUpCi0gICAgICAgIDogSW1hZ2VCdWZmZXJCYWNrZW5kKHBhcmFtZXRlcnMpCi0gICAg
ICAgICwgbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29u
c3Q7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNPcmlnaW5BdEJvdHRvbUxlZnRDb3Ju
ZXIgPSB0cnVlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUg
PSBmYWxzZTsKLSAgICBzdGF0aWMgY29uc3RleHByIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSA9IFdlYkNvcmU6OlJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwotCi0gICAg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgZmluYWw7Ci0KLXByaXZh
dGU6Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAg
IFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJh
Y2tpbmdTdG9yZUNvcHkpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4g
Y29weUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHksIFdlYkNvcmU6OlByZXNlcnZlUmVz
b2x1dGlvbikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBkcmF3KFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBmaW5hbDsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IGZpbmFsOwotICAgIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikg
Y29uc3QgZmluYWw7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3QgZmluYWw7Ci0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3Qg
V2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2Vi
Q29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFsOwotCi0gICAgYm9vbCBvcmlnaW5BdEJvdHRvbUxlZnRD
b3JuZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBpc09yaWdpbkF0Qm90dG9tTGVmdENvcm5lcjsg
fQotCi0gICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBmaW5hbDsKLQotICAgIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBtX2hhbmRsZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCg==
</data>
<flag name="review"
          id="477813"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="477866"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451166</attachid>
            <date>2022-02-07 16:15:45 -0800</date>
            <delta_ts>2022-02-07 16:34:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236267-20220207161544.patch</filename>
            <type>text/plain</type>
            <size>20628</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlMzRjOWVmODg2YjRlMjlm
YjgwNDE1NjU4NmM1NGQ0MGQxYmJiNTkuLjNlNzVlYmJmNjcxOTQ2ZGNjNGQ5NzM4Y2Y5ZjBhZjhl
YWM3ZWIyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMDcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCB0byBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW9z
dCBvZiB0aGUgZnVuY3Rpb25zIG9uIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZCBhcmUgc3R1YnMgdGhhdCBSRUxFQVNFX0FTU0VSVDsKKyAgICAgICAgaXQncyAicmVtb3RlIiBy
b2xlIGlzIG1vcmUgaW1wb3J0YW50IHRoYXQgaXQncyAic2hhcmVhYmxlIiByb2xlLCBzbyByZW5h
bWUgaXQuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVT
YWZlQmFja2VuZFNpemUpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNvc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29z
dCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHQgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tl
bmRTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOjpieXRlc1BlclJvdyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmRyYXcpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OnB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmguCisKIDIwMjItMDItMDcgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaG92ZXIgc3RhdGUgYmFz
ZWQgb24gcG9pbnRlciB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDhh
ZmZlZTU1OTk3MWQzMTZhZDU5NzJmNjk4ZDBiZDg4NTZkMjBhMjkuLjQ2ZTNkMWZhODRhNjFmOWZk
OTVjNmFlZTRiYmNlZTFhNzAxNmE2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0K
QEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICAgICAgICAgIGlmIChtX2Zyb250
QnVmZmVyLmltYWdlQnVmZmVyLT5jYW5NYXBCYWNraW5nU3RvcmUoKSkKICAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZEJhY2tlbmQmPigqYmFja2VuZCkuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
KCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBoYW5kbGUgPSBz
dGF0aWNfY2FzdDxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCY+KCpiYWNr
ZW5kKS5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclJlbW90ZUJhY2tl
bmQmPigqYmFja2VuZCkuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlOjpCaXRtYXA6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggM2E3MjU5NmE0ZDdhNWNhYjQ1NjYyNzcxMzY1NjRiYTAx
NWIxOTZjZC4uMWY4ZDE3ZTY1NTE0YzcyNTkyMjkwY2YyZWQ5MzIzOWFmYjkwZDI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNjIwLDcgKzYyMCw3IEBAIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCi1XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYzdjMzFiYzU1N2I1NWQ1MTcwNWZjMzlk
N2U2NzljOTRjNmEwYWYzLi40MDQyYmRjYzM4MDZmYjBjODQ2NmY1ZDg1MTg5OTcyMWYwYmI4ZGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTM0ODcsOCArMzQ4Nyw4IEBACiAJCTJEMUI1RDVDMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dl
YkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsg
cGF0aCA9IGlvcy9XS1dlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
MUU4MjIyMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDI1RjMyODI1NzU4RTkwMDAy
MzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI5MjU3NThF
OTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8qIFdL
SG92ZXJQbGF0dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLmg7IHBhdGggPSBp
b3MvV0tIb3ZlclBsYXR0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNzlF
MEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tIb3ZlclBsYXR0ZXIubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBX
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDIxNSw4ICsxMDIxNSw4IEBACiAJCTcyN0E3RjMz
MjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCi0JCQkJMkQyNUYzMjgyNTc1OEU5MDAw
MjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovLAorCQkJ
CTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQuY3BwICovLAorCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZl
clJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5
MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLywK
IAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkJN0IxNjE5MTIyNzE5OEFBOTAwQzQwRUFDIC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaAppbmRleCBjODhkOWQ3YjI5NjZm
NWQwMDY3ZmEwOWE4NTUxNzI1ODc3YjdlZjlhLi40ZjhmZWQxOWQ4YmEyMWI0MThkZDM4OWM1YzQ1
YTI1ODlhOTUwM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZC5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmgiCiAKICNpZiBIQVZFKElPU1VSRkFDRSkKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1
ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIKICNlbmRpZgogCkBAIC0zOSwxMCArMzksMTAg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOwogCiAjaWYg
SEFWRShJT1NVUkZBQ0UpCi11c2luZyBBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFj
a2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDsKK3VzaW5nIEFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJSZW1vdGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJh
Y2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ7CiAjZWxz
ZQotdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBVbmFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwordXNpbmcgQWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlclJlbW90ZUJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVC
YWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tl
bmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZv
cm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGUwMmRlNmRh
ZDY0N2ZmNjUzNjJiNGNiZjg1OTc2MWQ4Zjc4ZjhjYTEuLmIwNjE5MGI5YTlhMmQ0NTI2ZTdmYTdk
M2M3YTMxMTg5ODIwMmIxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
UHJveHkuaApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIFVu
YWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eTxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjsKLXVzaW5nIEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA9IFJlbW90ZUltYWdlQnVmZmVyUHJveHk8QWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OwordXNpbmcgQWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTxBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyUmVtb3RlQmFja2VuZD47CiB1c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdl
QnVmZmVyTWFwcGVkUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PEFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggZTc4YWI1YTY0
ZTVkNGNkOWQyNTEzMjI3YzYxM2IxMmViZmQxNTY3MC4uOGQ2ZGNjMWE2NTEwZGVjZDUzNjE0MzY3
Mzc2NDdkMzRmZWUzZTliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kCiAgICAgZWxz
ZSBpZiAoaW1hZ2VCdWZmZXItPmNhbk1hcEJhY2tpbmdTdG9yZSgpKQogICAgICAgICBpbWFnZUJ1
ZmZlci0+c2V0QmFja2VuZChBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFj
a2VuZDo6Y3JlYXRlKGltYWdlQnVmZmVyLT5wYXJhbWV0ZXJzKCksIFdURk1vdmUoaGFuZGxlKSkp
OwogICAgIGVsc2UKLSAgICAgICAgaW1hZ2VCdWZmZXItPnNldEJhY2tlbmQoQWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ6OmNyZWF0ZShpbWFnZUJ1ZmZlci0+cGFyYW1ldGVy
cygpLCBXVEZNb3ZlKGhhbmRsZSkpKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPnNldEJhY2tlbmQo
QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclJlbW90ZUJhY2tlbmQ6OmNyZWF0ZShpbWFnZUJ1ZmZlci0+
cGFyYW1ldGVycygpLCBXVEZNb3ZlKGhhbmRsZSkpKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkzNmRmMTM2MDM4NDU0NWNmZGU1NzQ5NTkwYjM5MWZlYjExM2Q0MDIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaCIKLQotI2lmIEhBVkUoSU9TVVJGQUNFKQotCi0jaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlci5oPgotI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kKTsKLQotSW50U2l6ZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNh
bGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotewot
ICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZVNhZmVCYWNr
ZW5kU2l6ZShwYXJhbWV0ZXJzKTsKLX0KLQotc2l6ZV90IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQotewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1
bGF0ZU1lbW9yeUNvc3QocGFyYW1ldGVycyk7Ci19Ci0KLXNpemVfdCBJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChjb25zdCBQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFj
ZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChwYXJhbWV0ZXJzKTsKLX0KLQot
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKLXsKLSAgICBp
ZiAoIXN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgewotICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoaGFuZGxlKSk7Ci19Ci0KLUltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0
ZDo6Z2V0PE1hY2hTZW5kUmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Ci19Ci0KLUdy
YXBoaWNzQ29udGV4dCYgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb250
ZXh0KCkgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiAqKEdyYXBoaWNzQ29udGV4dCopbnVsbHB0cjsKLX0KLQotSW50U2l6ZSBJbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gY2FsY3VsYXRlQmFja2VuZFNpemUobV9wYXJhbWV0ZXJzKTsKLX0KLQotdW5zaWduZWQg
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0
Ci17Ci0gICAgSW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKG1fcGFy
YW1ldGVycyk7Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3Vs
YXRlQnl0ZXNQZXJSb3coYmFja2VuZFNpemUpOwotfQotCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tp
bmdTdG9yZUNvcHkpIGNvbnN0Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4geyB9OwotfQotCi1SZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHksIFByZXNlcnZlUmVz
b2x1dGlvbikgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiB7IH07Ci19Ci0KLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKLXsKLSAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1TdHJpbmcgSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiwgc3RkOjpv
cHRpb25hbDxkb3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Ci17Ci0gICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1WZWN0b3I8dWlu
dDhfdD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEoY29uc3Qg
U3RyaW5nJiwgc3RkOjpvcHRpb25hbDxkb3VibGU+KSBjb25zdAotewotICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotc3RkOjpvcHRpb25hbDxQ
aXhlbEJ1ZmZlcj4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpnZXRQaXhl
bEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IEludFJlY3QmKSBjb25zdAot
ewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnB1dFBpeGVsQnVm
ZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50Jiwg
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbikKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEhBVkUoSU9TVVJG
QUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MjliNjAwMTc2
NGZjNjVmMTUwYTMxZTczZTYzMWM1NDAzYWE3ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEhBVkUoSU9TVVJGQUNFKQotCi0j
aW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyQmFja2VuZC5o
PgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKLSAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwotcHVibGljOgot
ICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRTaXplIGNhbGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShjb25z
dCBQYXJhbWV0ZXJzJik7Ci0gICAgc3RhdGljIHNpemVfdCBjYWxjdWxhdGVNZW1vcnlDb3N0KGNv
bnN0IFBhcmFtZXRlcnMmKTsKLSAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUV4dGVybmFsTWVt
b3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7Ci0KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFt
ZXRlcnMmLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwotCi0gICAgSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSYmIGhhbmRsZSkKLSAgICAgICAgOiBJbWFnZUJ1ZmZlckJhY2tl
bmQocGFyYW1ldGVycykKLSAgICAgICAgLCBtX2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCi0gICAg
ewotICAgIH0KLQotICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09y
aWdpbkF0Qm90dG9tTGVmdENvcm5lciA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGNhbk1hcEJhY2tpbmdTdG9yZSA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgV2ViQ29y
ZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6
QWNjZWxlcmF0ZWQ7Ci0KLSAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBj
b25zdCBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXpl
KCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0
aXZlSW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSkgY29uc3QgZmluYWw7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSwg
V2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGRyYXco
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6Oklt
YWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7Ci0gICAgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6
UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKLSAgICBWZWN0b3I8dWludDhfdD4gdG9E
YXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5
KSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBn
ZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9y
bWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgZmluYWw7Ci0KLSAgICBib29s
IG9yaWdpbkF0Qm90dG9tTGVmdENvcm5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGlzT3JpZ2lu
QXRCb3R0b21MZWZ0Q29ybmVyOyB9Ci0KLSAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0
IGZpbmFsOwotCi0gICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIG1faGFuZGxlOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkK
</data>
<flag name="commit-queue"
          id="477819"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451170</attachid>
            <date>2022-02-07 16:35:19 -0800</date>
            <delta_ts>2022-02-07 18:11:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236267-20220207163518.patch</filename>
            <type>text/plain</type>
            <size>29419</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlMzRjOWVmODg2YjRlMjlm
YjgwNDE1NjU4NmM1NGQ0MGQxYmJiNTkuLjNlNzVlYmJmNjcxOTQ2ZGNjNGQ5NzM4Y2Y5ZjBhZjhl
YWM3ZWIyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMDcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCB0byBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW9z
dCBvZiB0aGUgZnVuY3Rpb25zIG9uIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZCBhcmUgc3R1YnMgdGhhdCBSRUxFQVNFX0FTU0VSVDsKKyAgICAgICAgaXQncyAicmVtb3RlIiBy
b2xlIGlzIG1vcmUgaW1wb3J0YW50IHRoYXQgaXQncyAic2hhcmVhYmxlIiByb2xlLCBzbyByZW5h
bWUgaXQuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVT
YWZlQmFja2VuZFNpemUpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNvc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29z
dCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHQgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tl
bmRTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOjpieXRlc1BlclJvdyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmRyYXcpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OnB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmguCisKIDIwMjItMDItMDcgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaG92ZXIgc3RhdGUgYmFz
ZWQgb24gcG9pbnRlciB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDNhNzI1OTZhNGQ3
YTVjYWI0NTY2Mjc3MTM2NTY0YmEwMTViMTk2Y2QuLjFmOGQxN2U2NTUxNGM3MjU5MjI5MGNmMmVk
OTMyMzlhZmI5MGQyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYyMCw3ICs2MjAsNyBA
QCBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQogCiBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAot
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kLmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJS
ZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1t
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGM3
YzMxYmM1NTdiNTVkNTE3MDVmYzM5ZDdlNjc5Yzk0YzZhMGFmMy4uNDA0MmJkY2MzODA2ZmIwYzg0
NjZmNWQ4NTE4OTk3MjFmMGJiOGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDg3LDggKzM0ODcsOCBAQAogCQkyRDFCNUQ1QzE4
NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdC9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkyRDFFODIyMTIx
NkZGRjUwMDBBMTUyNjUgLyogV0tXZWJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXS1dlYkV2ZW50Lmg7IHBhdGggPSBpb3MvV0tXZWJFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDFFODIyMjIxNkZGRjUxMDBBMTUyNjUgLyogV0tXZWJFdmVu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLV2ViRXZlbnQu
bW07IHBhdGggPSBpb3MvV0tXZWJFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkQyNUYzMjgyNTc1OEU5MDAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJm
YWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQyNUYzMjkyNTc1OEU5
MTAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIg
LyogSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElt
YWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJSZW1vdGVJT1N1
cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyUmVtb3RlSU9T
dXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjc5RTBF
MjY5NEMyMjYwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0hv
dmVyUGxhdHRlci5oOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0dGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMjc5RTBGMjY5NEMyMjcwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLm1tOyBwYXRoID0gaW9z
L1dLSG92ZXJQbGF0dGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI3OUUx
MDI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0
dGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyMTUsOCAr
MTAyMTUsOCBAQAogCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTJEMjVGMzI5MjU3NThFOTEw
MDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovLAot
CQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuaCAqLywKKwkJCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLywKKwkJCQkyRDI1RjMyODI1NzU4RTkw
MDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkJ
NzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAgKi8sCiAJCQkJNzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oICovLAogCQkJCTdCMTYx
OTEyMjcxOThBQTkwMEM0MEVBQyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW0gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
LmgKaW5kZXggYzg4ZDlkN2IyOTY2ZjVkMDA2N2ZhMDlhODU1MTcyNTg3N2I3ZWY5YS4uNGY4ZmVk
MTlkOGJhMjFiNDE4ZGQzODljNWM0NWEyNTg5YTk1MDNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVhYmxl
QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxh
dGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaApAQCAtMzAsNyArMzAsNyBAQAogI2lu
Y2x1ZGUgIkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIgogCiAjaWYgSEFWRShJ
T1NVUkZBQ0UpCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgiCiAjZW5k
aWYKIApAQCAtMzksMTAgKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgVW5hY2Nl
bGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxl
Qml0bWFwQmFja2VuZDsKIAogI2lmIEhBVkUoSU9TVVJGQUNFKQotdXNpbmcgQWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ7Cit1c2luZyBBY2NlbGVyYXRlZEltYWdlQnVmZmVyUmVtb3RlQmFja2VuZCA9IElt
YWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDsKIHVzaW5nIEFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kOwogI2Vsc2UKLXVzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZDsK
K3VzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJSZW1vdGVCYWNrZW5kID0gVW5hY2NlbGVyYXRl
ZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZDsKIHVzaW5nIEFjY2VsZXJhdGVkSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
UHJveHkuaAppbmRleCBlMDJkZTZkYWQ2NDdmZjY1MzYyYjRjYmY4NTk3NjFkOGY3OGY4Y2ExLi5i
MDYxOTBiOWE5YTJkNDUyNmU3ZmE3ZDNjN2EzMTE4OTgyMDJiMWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxh
dGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB1c2luZyBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA9
IFJlbW90ZUltYWdlQnVmZmVyUHJveHk8VW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxl
QmFja2VuZD47Ci11c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHkgPSBSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5PEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5k
PjsKK3VzaW5nIEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA9IFJlbW90ZUltYWdl
QnVmZmVyUHJveHk8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclJlbW90ZUJhY2tlbmQ+OwogdXNpbmcg
QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlck1hcHBlZFByb3h5ID0gUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eTxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFja2VuZD47CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCmluZGV4IGU3OGFiNWE2NGU1ZDRjZDlkMjUxMzIyN2M2MTNiMTJlYmZkMTU2NzAuLjhk
NmRjYzFhNjUxMGRlY2Q1MzYxNDM2NzM3NjQ3ZDM0ZmVlM2U5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKEltYWdl
QnVmZmVyQmFja2VuZAogICAgIGVsc2UgaWYgKGltYWdlQnVmZmVyLT5jYW5NYXBCYWNraW5nU3Rv
cmUoKSkKICAgICAgICAgaW1hZ2VCdWZmZXItPnNldEJhY2tlbmQoQWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tlbmQ6OmNyZWF0ZShpbWFnZUJ1ZmZlci0+cGFyYW1ldGVy
cygpLCBXVEZNb3ZlKGhhbmRsZSkpKTsKICAgICBlbHNlCi0gICAgICAgIGltYWdlQnVmZmVyLT5z
ZXRCYWNrZW5kKEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOjpjcmVhdGUo
aW1hZ2VCdWZmZXItPnBhcmFtZXRlcnMoKSwgV1RGTW92ZShoYW5kbGUpKSk7CisgICAgICAgIGlt
YWdlQnVmZmVyLT5zZXRCYWNrZW5kKEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJSZW1vdGVCYWNrZW5k
OjpjcmVhdGUoaW1hZ2VCdWZmZXItPnBhcmFtZXRlcnMoKSwgV1RGTW92ZShoYW5kbGUpKSk7CiB9
CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpkaWRGbHVzaChHcmFwaGljc0Nv
bnRleHRGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmZTllNGIwMTcwMjI2YzVmODAyMDIzYTJhMGRhZWE1NDk2NTFhYWEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQuaCIKKworI2lmIEhBVkUoSU9TVVJGQUNFKQorCisjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlci5oPgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kKTsKKworSW50U2l6ZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNh
bGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
ICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZVNhZmVCYWNr
ZW5kU2l6ZShwYXJhbWV0ZXJzKTsKK30KKworc2l6ZV90IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJm
YWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQoreworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0
ZU1lbW9yeUNvc3QocGFyYW1ldGVycyk7Cit9CisKK3NpemVfdCBJbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChwYXJhbWV0ZXJzKTsKK30KKworc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJS
ZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKK3sKKyAgICBpZiAoIXN0ZDo6aG9s
ZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgeworICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ+
KHBhcmFtZXRlcnMsIFdURk1vdmUoaGFuZGxlKSk7Cit9CisKK0ltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0ZDo6Z2V0PE1hY2hTZW5kUmln
aHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Cit9CisKK0dyYXBoaWNzQ29udGV4dCYgSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb250ZXh0KCkgY29uc3QKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAqKEdyYXBoaWNzQ29udGV4
dCopbnVsbHB0cjsKK30KKworSW50U2l6ZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2FsY3VsYXRlQmFja2VuZFNp
emUobV9wYXJhbWV0ZXJzKTsKK30KKwordW5zaWduZWQgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0Cit7CisgICAgSW50U2l6ZSBiYWNrZW5kU2l6
ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKG1fcGFyYW1ldGVycyk7CisgICAgcmV0dXJuIEltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFja2VuZFNpemUp
OworfQorCitSZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFj
a2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0Cit7CisgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitSZWZQdHI8
SW1hZ2U+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weUltYWdlKEJhY2tp
bmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgSW1hZ2VCdWZm
ZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIEltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitT
dHJpbmcgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwoY29uc3Qg
U3RyaW5nJiwgc3RkOjpvcHRpb25hbDxkb3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0
Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9Owor
fQorCitWZWN0b3I8dWludDhfdD4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjp0
b0RhdGEoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxkb3VibGU+KSBjb25zdAoreworICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworc3Rk
OjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5k
OjpnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IEludFJlY3Qm
KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IHsgfTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OnB1dFBp
eGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBv
aW50JiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEhBVkUo
SU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1
cmZhY2VCYWNrZW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU2NGRiYzE1YmQyYWViMWJlMjBiYWUyYTU2NzBk
YzU4ZWVlY2M0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRl
ICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJCYWNrZW5kLmg+CisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Oklt
YWdlQnVmZmVyQmFja2VuZCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbWFnZUJ1ZmZl
clJlbW90ZUlPU3VyZmFjZUJhY2tlbmQpOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdl
QnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZCk7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNv
cmU6OkludFNpemUgY2FsY3VsYXRlU2FmZUJhY2tlbmRTaXplKGNvbnN0IFBhcmFtZXRlcnMmKTsK
KyAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYp
OworICAgIHN0YXRpYyBzaXplX3QgY2FsY3VsYXRlRXh0ZXJuYWxNZW1vcnlDb3N0KGNvbnN0IFBh
cmFtZXRlcnMmKTsKKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJSZW1v
dGVJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSk7CisKKyAgICBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQo
Y29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYg
aGFuZGxlKQorICAgICAgICA6IEltYWdlQnVmZmVyQmFja2VuZChwYXJhbWV0ZXJzKQorICAgICAg
ICAsIG1faGFuZGxlKFdURk1vdmUoaGFuZGxlKSkKKyAgICB7CisgICAgfQorCisgICAgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0
OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzT3JpZ2luQXRCb3R0b21MZWZ0Q29ybmVy
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuTWFwQmFja2luZ1N0b3JlID0g
ZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUgPSBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZDsKKworICAgIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IGZpbmFsOworCitwcml2YXRl
OgorICAgIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IGNvcHlOYXRpdmVJbWFnZShXZWJDb3JlOjpCYWNr
aW5nU3RvcmVDb3B5KSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGNv
cHlJbWFnZShXZWJDb3JlOjpCYWNraW5nU3RvcmVDb3B5LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29s
dXRpb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZHJhdyhXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
ZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBm
aW5hbDsKKyAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBXZWJDb3JlOjpQcmVzZXJ2ZVJlc29sdXRpb24pIGNv
bnN0IGZpbmFsOworICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IGZpbmFsOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNv
cmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNh
dGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKKworICAgIGJvb2wgb3JpZ2luQXRCb3R0b21MZWZ0Q29y
bmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gaXNPcmlnaW5BdEJvdHRvbUxlZnRDb3JuZXI7IH0K
KworICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3QgZmluYWw7CisKKyAgICBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MzZkZjEzNjAzODQ1NDVjZmRlNTc0OTU5MGIzOTFmZWIxMTNkNDAy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgiCi0KLSNpZiBIQVZFKElPU1VSRkFDRSkKLQotI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZm
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZCk7Ci0KLUludFNpemUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZh
Y2VCYWNrZW5kOjpjYWxjdWxhdGVTYWZlQmFja2VuZFNpemUoY29uc3QgUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKLXsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxj
dWxhdGVTYWZlQmFja2VuZFNpemUocGFyYW1ldGVycyk7Ci19Ci0KLXNpemVfdCBJbWFnZUJ1ZmZl
clNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOjpjYWxjdWxhdGVNZW1vcnlDb3N0KHBhcmFtZXRlcnMpOwotfQotCi1zaXplX3QgSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVFeHRlcm5hbE1lbW9y
eUNvc3QoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICByZXR1cm4gSW1hZ2VC
dWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QocGFyYW1l
dGVycyk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNv
bnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5k
bGUpCi17Ci0gICAgaWYgKCFzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPE1hY2hTZW5kUmlnaHQ+KGhh
bmRsZSkpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kPihwYXJhbWV0ZXJzLCBXVEZNb3ZlKGhhbmRsZSkp
OwotfQotCi1JbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6OmdldDxNYWNoU2VuZFJpZ2h0PihtX2hhbmRsZSkuY29weVNlbmRSaWdo
dCgpOwotfQotCi1HcmFwaGljc0NvbnRleHQmIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6Y29udGV4dCgpIGNvbnN0Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gKihHcmFwaGljc0NvbnRleHQqKW51bGxwdHI7Ci19Ci0KLUludFNp
emUgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpiYWNrZW5kU2l6ZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIGNhbGN1bGF0ZUJhY2tlbmRTaXplKG1fcGFyYW1ldGVycyk7Ci19
Ci0KLXVuc2lnbmVkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Ynl0ZXNQ
ZXJSb3coKSBjb25zdAotewotICAgIEludFNpemUgYmFja2VuZFNpemUgPSBjYWxjdWxhdGVCYWNr
ZW5kU2l6ZShtX3BhcmFtZXRlcnMpOwotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNhbGN1bGF0ZUJ5dGVzUGVyUm93KGJhY2tlbmRTaXplKTsKLX0KLQotUmVmUHRyPE5h
dGl2ZUltYWdlPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlOYXRp
dmVJbWFnZShCYWNraW5nU3RvcmVDb3B5KSBjb25zdAotewotICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotUmVmUHRyPEltYWdlPiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5
LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZDo6ZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCi17Ci0gICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJl
YWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotU3RyaW5n
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6dG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdAot
ewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQotVmVjdG9yPHVpbnQ4X3Q+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6
dG9EYXRhKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikgY29uc3QKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLXN0
ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6Z2V0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQmLCBjb25zdCBJbnRS
ZWN0JikgY29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiB7IH07Ci19Ci0KLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
OjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYsIGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRQb2ludCYsIEFscGhhUHJlbXVsdGlwbGljYXRpb24pCi17Ci0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkODI5YjYwMDE3NjRmYzY1ZjE1MGEzMWU3M2U2MzFjNTQwM2FhN2RkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBIQVZFKElP
U1VSRkFDRSkKLQotI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1
ZmZlckJhY2tlbmQuaD4KLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kIHsKLSAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCk7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
KTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViQ29yZTo6SW50U2l6ZSBjYWxjdWxhdGVTYWZlQmFj
a2VuZFNpemUoY29uc3QgUGFyYW1ldGVycyYpOwotICAgIHN0YXRpYyBzaXplX3QgY2FsY3VsYXRl
TWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7Ci0gICAgc3RhdGljIHNpemVfdCBjYWxjdWxh
dGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOwotCi0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0
ZShjb25zdCBQYXJhbWV0ZXJzJiwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKLQotICAgIElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUmJiBoYW5kbGUpCi0gICAgICAgIDogSW1h
Z2VCdWZmZXJCYWNrZW5kKHBhcmFtZXRlcnMpCi0gICAgICAgICwgbV9oYW5kbGUoV1RGTW92ZSho
YW5kbGUpKQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7Ci0KLSAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNPcmlnaW5BdEJvdHRvbUxlZnRDb3JuZXIgPSB0cnVlOwotICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUgPSBmYWxzZTsKLSAgICBzdGF0aWMgY29u
c3RleHByIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFdlYkNvcmU6OlJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwotCi0gICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KCkgY29uc3QgZmluYWw7Ci0KLXByaXZhdGU6Ci0gICAgV2ViQ29yZTo6SW50U2l6
ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJ
bWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0IGZp
bmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tp
bmdTdG9yZUNvcHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7Ci0g
ICAgdm9pZCBkcmF3KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKLSAgICB2b2lkIGRyYXdQ
YXR0ZXJuKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOwotICAgIFN0cmluZyB0b0Rh
dGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxp
dHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7Ci0gICAgVmVjdG9y
PHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gcXVhbGl0eSkgY29uc3QgZmluYWw7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
aXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOwot
ICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVz
dFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFs
OwotCi0gICAgYm9vbCBvcmlnaW5BdEJvdHRvbUxlZnRDb3JuZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBpc09yaWdpbkF0Qm90dG9tTGVmdENvcm5lcjsgfQotCi0gICAgdW5zaWduZWQgYnl0ZXNQ
ZXJSb3coKSBjb25zdCBmaW5hbDsKLQotICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBtX2hh
bmRsZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gSEFWRShJT1NV
UkZBQ0UpCg==
</data>
<flag name="commit-queue"
          id="477827"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451188</attachid>
            <date>2022-02-07 18:08:18 -0800</date>
            <delta_ts>2022-02-08 08:58:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236267-20220207180818.patch</filename>
            <type>text/plain</type>
            <size>30423</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlMzRjOWVmODg2YjRlMjlm
YjgwNDE1NjU4NmM1NGQ0MGQxYmJiNTkuLjNlNzVlYmJmNjcxOTQ2ZGNjNGQ5NzM4Y2Y5ZjBhZjhl
YWM3ZWIyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDItMDcgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCB0byBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgTW9z
dCBvZiB0aGUgZnVuY3Rpb25zIG9uIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2Vu
ZCBhcmUgc3R1YnMgdGhhdCBSRUxFQVNFX0FTU0VSVDsKKyAgICAgICAgaXQncyAicmVtb3RlIiBy
b2xlIGlzIG1vcmUgaW1wb3J0YW50IHRoYXQgaXQncyAic2hhcmVhYmxlIiByb2xlLCBzbyByZW5h
bWUgaXQuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVT
YWZlQmFja2VuZFNpemUpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNvc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29z
dCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNvbnRleHQgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tl
bmRTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOjpieXRlc1BlclJvdyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVm
ZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmRyYXcpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJ
T1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Z2V0UGl4ZWxCdWZmZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OnB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmguCisKIDIwMjItMDItMDcgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaG92ZXIgc3RhdGUgYmFz
ZWQgb24gcG9pbnRlciB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDhh
ZmZlZTU1OTk3MWQzMTZhZDU5NzJmNjk4ZDBiZDg4NTZkMjBhMjkuLjQ2ZTNkMWZhODRhNjFmOWZk
OTVjNmFlZTRiYmNlZTFhNzAxNmE2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0K
QEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICAgICAgICAgIGlmIChtX2Zyb250
QnVmZmVyLmltYWdlQnVmZmVyLT5jYW5NYXBCYWNraW5nU3RvcmUoKSkKICAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZEJhY2tlbmQmPigqYmFja2VuZCkuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
KCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBoYW5kbGUgPSBz
dGF0aWNfY2FzdDxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFja2VuZCY+KCpiYWNr
ZW5kKS5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlID0gc3RhdGljX2Nhc3Q8QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclJlbW90ZUJhY2tl
bmQmPigqYmFja2VuZCkuY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlOjpCaXRtYXA6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggM2E3MjU5NmE0ZDdhNWNhYjQ1NjYyNzcxMzY1NjRiYTAx
NWIxOTZjZC4uMWY4ZDE3ZTY1NTE0YzcyNTkyMjkwY2YyZWQ5MzIzOWFmYjkwZDI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNjIwLDcgKzYyMCw3IEBAIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCi1XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYzdjMzFiYzU1N2I1NWQ1MTcwNWZjMzlk
N2U2NzljOTRjNmEwYWYzLi40MDQyYmRjYzM4MDZmYjBjODQ2NmY1ZDg1MTg5OTcyMWYwYmI4ZGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTM0ODcsOCArMzQ4Nyw4IEBACiAJCTJEMUI1RDVDMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dl
YkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLV2ViRXZlbnQuaDsg
cGF0aCA9IGlvcy9XS1dlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
MUU4MjIyMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDI1RjMyODI1NzU4RTkwMDAy
MzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjVGMzI5MjU3NThF
OTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8qIFdL
SG92ZXJQbGF0dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLmg7IHBhdGggPSBp
b3MvV0tIb3ZlclBsYXR0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNzlF
MEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tIb3ZlclBsYXR0ZXIubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBX
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDIxNSw4ICsxMDIxNSw4IEBACiAJCTcyN0E3RjMz
MjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCi0JCQkJMkQyNUYzMjgyNTc1OEU5MDAw
MjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovLAorCQkJ
CTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJh
Y2tlbmQuY3BwICovLAorCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZl
clJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5
MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLywK
IAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkJN0IxNjE5MTIyNzE5OEFBOTAwQzQwRUFDIC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZvcm1JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaAppbmRleCBjODhkOWQ3YjI5NjZm
NWQwMDY3ZmEwOWE4NTUxNzI1ODc3YjdlZjlhLi40ZjhmZWQxOWQ4YmEyMWI0MThkZDM4OWM1YzQ1
YTI1ODlhOTUwM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybUltYWdlQnVmZmVyU2hhcmVh
YmxlQmFja2VuZC5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmgiCiAKICNpZiBIQVZFKElPU1VSRkFDRSkKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1
ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCIKICNlbmRpZgogCkBAIC0zOSwxMCArMzksMTAg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kOwogCiAjaWYg
SEFWRShJT1NVUkZBQ0UpCi11c2luZyBBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlQmFj
a2VuZCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDsKK3VzaW5nIEFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJSZW1vdGVCYWNrZW5kID0gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZh
Y2VCYWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJh
Y2tlbmQgPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ7CiAjZWxz
ZQotdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQgPSBVbmFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwordXNpbmcgQWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlclJlbW90ZUJhY2tlbmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVC
YWNrZW5kOwogdXNpbmcgQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZEJhY2tl
bmQgPSBVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUGxhdGZv
cm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1BsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGUwMmRlNmRh
ZDY0N2ZmNjUzNjJiNGNiZjg1OTc2MWQ4Zjc4ZjhjYTEuLmIwNjE5MGI5YTlhMmQ0NTI2ZTdmYTdk
M2M3YTMxMTg5ODIwMmIxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9QbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVy
UHJveHkuaApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIFVu
YWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eTxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjsKLXVzaW5nIEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA9IFJlbW90ZUltYWdlQnVmZmVyUHJveHk8QWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ+OwordXNpbmcgQWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5ID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTxBY2NlbGVyYXRl
ZEltYWdlQnVmZmVyUmVtb3RlQmFja2VuZD47CiB1c2luZyBBY2NlbGVyYXRlZFJlbW90ZUltYWdl
QnVmZmVyTWFwcGVkUHJveHkgPSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PEFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRCYWNrZW5kPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggZTc4YWI1YTY0
ZTVkNGNkOWQyNTEzMjI3YzYxM2IxMmViZmQxNTY3MC4uOGQ2ZGNjMWE2NTEwZGVjZDUzNjE0MzY3
Mzc2NDdkMzRmZWUzZTliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kCiAgICAgZWxz
ZSBpZiAoaW1hZ2VCdWZmZXItPmNhbk1hcEJhY2tpbmdTdG9yZSgpKQogICAgICAgICBpbWFnZUJ1
ZmZlci0+c2V0QmFja2VuZChBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFj
a2VuZDo6Y3JlYXRlKGltYWdlQnVmZmVyLT5wYXJhbWV0ZXJzKCksIFdURk1vdmUoaGFuZGxlKSkp
OwogICAgIGVsc2UKLSAgICAgICAgaW1hZ2VCdWZmZXItPnNldEJhY2tlbmQoQWNjZWxlcmF0ZWRJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQ6OmNyZWF0ZShpbWFnZUJ1ZmZlci0+cGFyYW1ldGVy
cygpLCBXVEZNb3ZlKGhhbmRsZSkpKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPnNldEJhY2tlbmQo
QWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlclJlbW90ZUJhY2tlbmQ6OmNyZWF0ZShpbWFnZUJ1ZmZlci0+
cGFyYW1ldGVycygpLCBXVEZNb3ZlKGhhbmRsZSkpKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmRpZEZsdXNoKEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVt
b3RlSU9TdXJmYWNlQmFja2VuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZlOWU0YjAxNzAyMjZjNWY4MDIw
MjNhMmEwZGFlYTU0OTY1MWFhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kLmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oIgor
CisjaWYgSEFWRShJT1NVUkZBQ0UpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dENHLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQpOworCitJbnRTaXplIElt
YWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlU2FmZUJhY2tlbmRTaXpl
KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIEltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlU2FmZUJhY2tlbmRTaXplKHBhcmFtZXRlcnMpOwor
fQorCitzaXplX3QgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjYWxjdWxhdGVN
ZW1vcnlDb3N0KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChwYXJhbWV0ZXJz
KTsKK30KKworc2l6ZV90IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6Y2FsY3Vs
YXRlRXh0ZXJuYWxNZW1vcnlDb3N0KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cisg
ICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlRXh0ZXJuYWxN
ZW1vcnlDb3N0KHBhcmFtZXRlcnMpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJS
ZW1vdGVJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlKQoreworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2Vu
ZFJpZ2h0PihoYW5kbGUpKSB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBtYWtlVW5pcXVl
PEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZD4ocGFyYW1ldGVycywgV1RGTW92ZSho
YW5kbGUpKTsKK30KKworSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyUmVtb3Rl
SU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gc3RkOjpnZXQ8TWFjaFNlbmRSaWdodD4obV9oYW5kbGUpLmNvcHlTZW5k
UmlnaHQoKTsKK30KKworR3JhcGhpY3NDb250ZXh0JiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQ6OmNvbnRleHQoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuICooR3JhcGhpY3NDb250ZXh0KiludWxscHRyOworfQorCitJbnRT
aXplIEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6YmFja2VuZFNpemUoKSBjb25z
dAoreworICAgIHJldHVybiBjYWxjdWxhdGVCYWNrZW5kU2l6ZShtX3BhcmFtZXRlcnMpOworfQor
Cit1bnNpZ25lZCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmJ5dGVzUGVyUm93
KCkgY29uc3QKK3sKKyAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlQmFja2VuZFNp
emUobV9wYXJhbWV0ZXJzKTsKKyAgICByZXR1cm4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjYWxjdWxhdGVCeXRlc1BlclJvdyhiYWNrZW5kU2l6ZSk7Cit9CisKK1JlZlB0cjxOYXRpdmVJ
bWFnZT4gSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5TmF0aXZlSW1hZ2Uo
QmFja2luZ1N0b3JlQ29weSkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXJSZW1v
dGVJT1N1cmZhY2VCYWNrZW5kOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSwgUHJlc2VydmVS
ZXNvbHV0aW9uKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tl
bmQ6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKQoreworICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1N0cmluZyBJbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YVVSTChjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4sIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBJ
bWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OnRvRGF0YShjb25zdCBTdHJpbmcmLCBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4pIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVy
PiBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmdldFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyRm9ybWF0JiwgY29uc3QgSW50UmVjdCYpIGNvbnN0Cit7CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIEltYWdl
QnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZDo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxC
dWZmZXImLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UG9pbnQmLCBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uKQoreworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
UmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNTY0ZGJjMTViZDJhZWIxYmUyMGJhZTJhNTY3MGRjNThlZWVjYzQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaApAQCAtMCwwICsxLDgxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBIQVZFKElPU1VSRkFDRSkKKworI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tlbmQuaD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFj
ZUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kIHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2Vu
ZCk7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViQ29yZTo6SW50U2l6ZSBjYWxjdWxhdGVT
YWZlQmFja2VuZFNpemUoY29uc3QgUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBzaXplX3QgY2Fs
Y3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIHNpemVfdCBj
YWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOworCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKKworICAg
IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZChjb25zdCBQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUmJiBoYW5kbGUpCisgICAgICAgIDogSW1h
Z2VCdWZmZXJCYWNrZW5kKHBhcmFtZXRlcnMpCisgICAgICAgICwgbV9oYW5kbGUoV1RGTW92ZSho
YW5kbGUpKQorICAgIHsKKyAgICB9CisKKyAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNPcmlnaW5BdEJvdHRvbUxlZnRDb3JuZXIgPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjYW5NYXBCYWNraW5nU3RvcmUgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFdlYkNvcmU6OlJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOworCisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KCkgY29uc3QgZmluYWw7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6SW50U2l6
ZSBiYWNrZW5kU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJ
bWFnZT4gY29weU5hdGl2ZUltYWdlKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUNvcHkpIGNvbnN0IGZp
bmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gY29weUltYWdlKFdlYkNvcmU6OkJhY2tp
bmdTdG9yZUNvcHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7Cisg
ICAgdm9pZCBkcmF3KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAgICB2b2lkIGRyYXdQ
YXR0ZXJuKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOworICAgIFN0cmluZyB0b0Rh
dGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxp
dHksIFdlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QgZmluYWw7CisgICAgVmVjdG9y
PHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gcXVhbGl0eSkgY29uc3QgZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
aXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3Jt
YXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVz
dFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFs
OworCisgICAgYm9vbCBvcmlnaW5BdEJvdHRvbUxlZnRDb3JuZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBpc09yaWdpbkF0Qm90dG9tTGVmdENvcm5lcjsgfQorCisgICAgdW5zaWduZWQgYnl0ZXNQ
ZXJSb3coKSBjb25zdCBmaW5hbDsKKworICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBtX2hh
bmRsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShJT1NV
UkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNmRm
MTM2MDM4NDU0NWNmZGU1NzQ5NTkwYjM5MWZlYjExM2Q0MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuaCIKLQotI2lmIEhBVkUoSU9TVVJGQUNFKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRDRy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNr
ZW5kLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlci5oPgotI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKLQot
SW50U2l6ZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZVNh
ZmVCYWNrZW5kU2l6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotewotICAgIHJldHVy
biBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShw
YXJhbWV0ZXJzKTsKLX0KLQotc2l6ZV90IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQot
ewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9y
eUNvc3QocGFyYW1ldGVycyk7Ci19Ci0KLXNpemVfdCBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQ6OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQotewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OmNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChwYXJhbWV0ZXJzKTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKLXsKLSAgICBpZiAoIXN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8TWFjaFNlbmRSaWdodD4oaGFuZGxlKSkgewotICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9
Ci0KLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQ+KHBhcmFtZXRlcnMsIFdURk1vdmUoaGFuZGxlKSk7Ci19Ci0KLUltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6Z2V0PE1h
Y2hTZW5kUmlnaHQ+KG1faGFuZGxlKS5jb3B5U2VuZFJpZ2h0KCk7Ci19Ci0KLUdyYXBoaWNzQ29u
dGV4dCYgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpjb250ZXh0KCkgY29u
c3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAqKEdy
YXBoaWNzQ29udGV4dCopbnVsbHB0cjsKLX0KLQotSW50U2l6ZSBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQ6OmJhY2tlbmRTaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gY2Fs
Y3VsYXRlQmFja2VuZFNpemUobV9wYXJhbWV0ZXJzKTsKLX0KLQotdW5zaWduZWQgSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpieXRlc1BlclJvdygpIGNvbnN0Ci17Ci0gICAg
SW50U2l6ZSBiYWNrZW5kU2l6ZSA9IGNhbGN1bGF0ZUJhY2tlbmRTaXplKG1fcGFyYW1ldGVycyk7
Ci0gICAgcmV0dXJuIEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlQnl0ZXNQ
ZXJSb3coYmFja2VuZFNpemUpOwotfQotCi1SZWZQdHI8TmF0aXZlSW1hZ2U+IEltYWdlQnVmZmVy
U2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNv
cHkpIGNvbnN0Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4geyB9OwotfQotCi1SZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZDo6Y29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHksIFByZXNlcnZlUmVzb2x1dGlvbikg
Y29uc3QKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7
IH07Ci19Ci0KLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotfQotCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZDo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKLXsKLSAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1TdHJpbmcgSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kOjp0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxk
b3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1WZWN0b3I8dWludDhfdD4gSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjp0b0RhdGEoY29uc3QgU3RyaW5nJiwg
c3RkOjpvcHRpb25hbDxkb3VibGU+KSBjb25zdAotewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kOjpnZXRQaXhlbEJ1ZmZlcihj
b25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYsIGNvbnN0IEludFJlY3QmKSBjb25zdAotewotICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotdm9pZCBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQ6OnB1dFBpeGVsQnVmZmVyKGNvbnN0
IFBpeGVsQnVmZmVyJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50JiwgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbikKLXsKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNr
ZW5kLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MjliNjAwMTc2NGZjNjVmMTUw
YTMxZTczZTYzMWM1NDAzYWE3ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEhBVkUoSU9TVVJGQUNFKQotCi0jaW5jbHVkZSAi
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyQmFja2VuZC5oPgotI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJ
bWFnZUJ1ZmZlckJhY2tlbmQgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kKTsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQpOwotcHVibGljOgotICAgIHN0YXRp
YyBXZWJDb3JlOjpJbnRTaXplIGNhbGN1bGF0ZVNhZmVCYWNrZW5kU2l6ZShjb25zdCBQYXJhbWV0
ZXJzJik7Ci0gICAgc3RhdGljIHNpemVfdCBjYWxjdWxhdGVNZW1vcnlDb3N0KGNvbnN0IFBhcmFt
ZXRlcnMmKTsKLSAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUV4dGVybmFsTWVtb3J5Q29zdChj
b25zdCBQYXJhbWV0ZXJzJik7Ci0KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwotCi0gICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSYmIGhhbmRsZSkKLSAgICAgICAgOiBJbWFnZUJ1ZmZlckJhY2tlbmQocGFyYW1l
dGVycykKLSAgICAgICAgLCBtX2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCi0gICAgewotICAgIH0K
LQotICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUoKSBjb25zdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc09yaWdpbkF0Qm90
dG9tTGVmdENvcm5lciA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1hcEJh
Y2tpbmdTdG9yZSA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgV2ViQ29yZTo6UmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlID0gV2ViQ29yZTo6UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0
ZWQ7Ci0KLSAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBmaW5h
bDsKLQotcHJpdmF0ZToKLSAgICBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplKCkgY29uc3Qg
ZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBjb3B5TmF0aXZlSW1hZ2Uo
V2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNv
cmU6OkltYWdlPiBjb3B5SW1hZ2UoV2ViQ29yZTo6QmFja2luZ1N0b3JlQ29weSwgV2ViQ29yZTo6
UHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGRyYXcoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zJikgZmluYWw7Ci0gICAgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgV2ViQ29yZTo6UHJlc2VydmVS
ZXNvbHV0aW9uKSBjb25zdCBmaW5hbDsKLSAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBm
aW5hbDsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBwdXRQaXhlbEJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgZmluYWw7Ci0KLSAgICBib29sIG9yaWdpbkF0
Qm90dG9tTGVmdENvcm5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGlzT3JpZ2luQXRCb3R0b21M
ZWZ0Q29ybmVyOyB9Ci0KLSAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IGZpbmFsOwot
Ci0gICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIG1faGFuZGxlOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>