<?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>161681</bug_id>
          
          <creation_ts>2016-09-07 01:59:28 -0700</creation_ts>
          <short_desc>[GTK] Move some GObject DOM unstable API to stable</short_desc>
          <delta_ts>2016-09-07 05:30:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>tpopela</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227111</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-07 01:59:28 -0700</bug_when>
    <thetext>As discussed in bug #161440, before removing the unused unstable API, we need to move the API currently used by apps to stable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227114</commentid>
    <comment_count>1</comment_count>
      <attachid>288123</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-07 02:03:00 -0700</bug_when>
    <thetext>Created attachment 288123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227120</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-09-07 02:24:29 -0700</bug_when>
    <thetext>Committed r205540: &lt;http://trac.webkit.org/changeset/205540&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288123</attachid>
            <date>2016-09-07 02:03:00 -0700</date>
            <delta_ts>2016-09-07 02:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkdom-stable.diff</filename>
            <type>text/plain</type>
            <size>149912</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyMDBlNmEyLi5hMGNiNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAg
QEAKKzIwMTYtMDktMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIE1vdmUgc29tZSBHT2JqZWN0IERPTSB1bnN0YWJsZSBBUEkgdG8g
c3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjE2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlIHVuc3RhYmxlIEFQSSBjdXJyZW50bHkgdXNlZCBieSBhcHBsaWNhdGlvbnMgdG8gdGhlIHN0
YWJsZSBBUEkgaW4gcHJlcGFyYXRpb24gZm9yIHJlbW92aW5nIGFsbCB1bnVzZWQKKyAgICAgICAg
dW5zdGFibGUgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DdXN0b20uY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ3VzdG9tLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DdXN0b21VbnN0YWJsZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01ET01Ub2tlbkxpc3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9tX3dpbmRvd19j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9tX3dpbmRvd193ZWJraXRfbWVzc2Fn
ZV9oYW5kbGVyc19wb3N0X21lc3NhZ2UpOgorICAgICAgICAod2Via2l0X2RvbV9kb21fd2luZG93
X3NldF9wcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X2NvbXB1dGVkX3N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYmtpdF9kb21fZG9tX3dp
bmRvd19jYXB0dXJlX2V2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2ZyYW1lX2VsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAod2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9vZmZzY3JlZW5fYnVmZmVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKHdl
YmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfaGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAg
KHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfd2lkdGgpOiBEZWxldGVkLgorICAgICAg
ICAod2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl9oZWlnaHQpOiBEZWxldGVkLgorICAg
ICAgICAod2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl93aWR0aCk6IERlbGV0ZWQuCisg
ICAgICAgICh3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl94KTogRGVsZXRlZC4KKyAg
ICAgICAgKHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3RhdHVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGVmYXVsdF9zdGF0dXMpOiBEZWxldGVkLgor
ICAgICAgICAod2Via2l0X2RvbV9kb21fd2luZG93X2dldF93aW5kb3cpOiBEZWxldGVkLgorICAg
ICAgICAod2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFtZXMpOiBEZWxldGVkLgorICAgICAg
ICAod2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYXJlbnQpOiBEZWxldGVkLgorICAgICAgICAo
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF90b3ApOiBEZWxldGVkLgorICAgICAgICAod2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9kb2N1bWVudCk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2RldmljZV9waXhlbF9yYXRpbyk6IERlbGV0ZWQuCisgICAgICAg
ICh3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdp
bmRvdy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRE9NV2luZG93VW5zdGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcDoKKyAgICAgICAgKHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9j
dW1lbnRfd2Via2l0X2NhbmNlbF9mdWxsc2NyZWVuKToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVuKToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tleWJvYXJkX2lucHV0X2FsbG93ZWQpOgorICAg
ICAgICAod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9l
bGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50VW5zdGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50VW5zdGFibGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwOgorICAgICAg
ICAod2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4pOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRWxlbWVudFVuc3RhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVs
ZW1lbnRVbnN0YWJsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICh3ZWJraXRf
ZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9pc19lZGl0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1l
bnRfc2V0X3NpemVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5j
cHA6CisgICAgICAgICh3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfaXNfZWRpdGVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZVVuc3RhYmxlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01V
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdXNl
cl9tZXNzYWdlX2hhbmRsZXJzX25hbWVzcGFjZV9nZXRfaGFuZGxlcik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2VfaW5pdCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01V
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93
ZWJraXRkb21ndGstZG9jcy5zZ21sOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vd2Via2l0ZG9tZGVmaW5lcy11bnN0YWJsZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vd2Via2l0ZG9tZGVmaW5lcy5oOgor
CiAyMDE2LTA5LTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbVGhyZWFkZWQgQ29tcG9zaXRvcl0gVXBkYXRlIHRpbWVyIHNob3VsZCBoYXZl
IGxvd2VyIHByaW9yaXR5IHRoYW4gdGFza3Mgc2NoZWR1bGVkIGluIGNvbXBvc2l0aW5nIHRocmVh
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBlNjQwNjAzLi42NDc2ZjY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzQ1LDcgKzM0NSw2IEBAIGxpc3QoQVBQRU5EIFdlYktp
dDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ1NTVmFsdWUuY3BwCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmNwcAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHAKLSAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUN1c3RvbS5jcHAKICAgICBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUFwcGxpY2F0aW9uQ2Fj
aGUuY3BwCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01ET01DU1NOYW1lc3BhY2UuY3BwCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTg3Miw4ICs4NzEsOSBA
QCBzZXQoV2ViS2l0RE9NX0dUS0RPQ19IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCiAgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Eb2N1bWVudFR5cGUuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24uaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRE9NU2VsZWN0aW9uLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5oCiAgICAgJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01X
aW5kb3cuaAotICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKICAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVs
ZW1lbnQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJnZXQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01DdXN0b20uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjUxNDMyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ3VzdG9tLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMSBJ
Z2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYktpdERPTUN1c3RvbS5oIgotCi0jaW5jbHVkZSA8V2ViQ29y
ZS9ET01Ub2tlbkxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+Ci0jaW5jbHVk
ZSAiV2ViS2l0RE9NRE9NV2luZG93UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQuaCIKLSNpbmNsdWRlICJXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0
ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUhUTUxMaW5rRWxlbWVudFByaXZhdGUuaCIKLSNpbmNs
dWRlICJXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRl
LmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyUHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgIldlYktpdERPTVVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2VQcml2YXRlLmgiCi0j
aW5jbHVkZSAiV2ViS2l0RE9NV2ViS2l0TmFtZXNwYWNlUHJpdmF0ZS5oIgotCi11c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwotCi1nYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIGFyZWEpCi17Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19IVE1MX1RFWFRfQVJFQV9FTEVNRU5U
KGFyZWEpLCBGQUxTRSk7Ci0KLSAgICByZXR1cm4gY29yZShhcmVhKS0+bGFzdENoYW5nZVdhc1Vz
ZXJFZGl0KCk7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2lz
X2VkaXRlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKLXsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfSU5QVVRfRUxFTUVOVChpbnB1dCksIEZB
TFNFKTsKLQotICAgIHJldHVybiBjb3JlKGlucHV0KS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7
Ci19Ci0KLVdlYktpdERPTVdlYktpdE5hbWVzcGFjZSogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF93ZWJraXRfbmFtZXNwYWNlKFdlYktpdERPTURPTVdpbmRvdyogd2luZG93KQotewotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyh3aW5kb3cpLCBudWxs
cHRyKTsKLQotICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogZG9tV2luZG93ID0gY29yZSh3aW5kb3cp
OwotICAgIGlmICghZG9tV2luZG93LT5zaG91bGRIYXZlV2ViS2l0TmFtZXNwYWNlRm9yV29ybGQo
V2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4ga2l0KGRvbVdpbmRvdy0+d2Via2l0TmFtZXNwYWNlKCkpOwotfQotCi1X
ZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRsZXIqIHdlYmtpdF9kb21fdXNlcl9tZXNzYWdlX2hhbmRs
ZXJzX25hbWVzcGFjZV9nZXRfaGFuZGxlcihXZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRsZXJzTmFt
ZXNwYWNlKiBoYW5kbGVyc05hbWVzcGFjZSwgY29uc3QgZ2NoYXIqIG5hbWUpCi17Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19VU0VSX01FU1NBR0VfSEFORExFUlNfTkFN
RVNQQUNFKGhhbmRsZXJzTmFtZXNwYWNlKSwgbnVsbHB0cik7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwobmFtZSwgbnVsbHB0cik7Ci0KLSAgICByZXR1cm4ga2l0KGNvcmUoaGFuZGxlcnNOYW1l
c3BhY2UpLT5oYW5kbGVyKFN0cmluZzo6ZnJvbVVURjgobmFtZSksIFdlYkNvcmU6Om1haW5UaHJl
YWROb3JtYWxXb3JsZCgpKSk7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2UoV2ViS2l0RE9NRE9NV2luZG93KiB3
aW5kb3csIGNvbnN0IGdjaGFyKiBoYW5kbGVyTmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpCi17
Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHdpbmRv
dyksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChoYW5kbGVyTmFtZSwgRkFMU0Up
OwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG1lc3NhZ2UsIEZBTFNFKTsKLQotICAgIFdlYkNv
cmU6OkRPTVdpbmRvdyogZG9tV2luZG93ID0gY29yZSh3aW5kb3cpOwotICAgIGlmICghZG9tV2lu
ZG93LT5zaG91bGRIYXZlV2ViS2l0TmFtZXNwYWNlRm9yV29ybGQoV2ViQ29yZTo6bWFpblRocmVh
ZE5vcm1hbFdvcmxkKCkpKQotICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICBhdXRvIHdlYmtp
dE5hbWVzcGFjZSA9IGRvbVdpbmRvdy0+d2Via2l0TmFtZXNwYWNlKCk7Ci0gICAgaWYgKCF3ZWJr
aXROYW1lc3BhY2UpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIGF1dG8gaGFuZGxlciA9
IHdlYmtpdE5hbWVzcGFjZS0+bWVzc2FnZUhhbmRsZXJzKCktPmhhbmRsZXIoU3RyaW5nOjpmcm9t
VVRGOChoYW5kbGVyTmFtZSksIFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKLSAg
ICBpZiAoIWhhbmRsZXIpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBoYW5kbGVyLT5wb3N0TWVzc2FnZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UpKSwgZWMpOwotICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXZvaWQg
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfc2l6ZXMoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBsaW5rRWxlbWVudCwgY29uc3QgZ2NoYXIqIHZhbHVlKQotewotICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19IVE1MX0xJTktfRUxFTUVOVChsaW5rRWxlbWVudCkpOwot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwotCi0gICAgY29yZShsaW5rRWxlbWVudCktPnNp
emVzKCkuc2V0VmFsdWUoU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DdXN0b20uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ3VzdG9tLmgKaW5kZXggZDNhMDVjMy4uZDBmYWQ2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUN1c3RvbS5oCkBAIC0xNiw0MyArMTYs
MTEgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICAqLwogCisjaWYgIWRlZmluZWQoX19X
RUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoQlVJTERJTkdfV0VCS0lUKQorI2Vycm9y
ICJPbmx5IDx3ZWJraXRkb20vd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKKwogI2lmbmRlZiBXZWJLaXRET01DdXN0b21faAogI2RlZmluZSBXZWJLaXRET01D
dXN0b21faAogCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDxnbGliLmg+Ci0j
aW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbWRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwot
Ci0vKioKLSAqIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQ6Ci0g
KiBAaW5wdXQ6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKLSAqCi0gKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgotICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21faHRtbF90
ZXh0X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCog
aW5wdXQpOwotCi0vKioKLSAqIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2lzX2VkaXRl
ZDoKLSAqIEBpbnB1dDogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAotICoKLSAqIFJldHVy
bnM6IEEgI2dib29sZWFuCi0gKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
KTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcG9zdF91c2VyX21lc3NhZ2U6Ci0g
KiBAd2luZG93OiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEBoYW5kbGVyOiBOYW1lIG9mIHRo
ZSB1c2VyIG1lc3NhZ2UgaGFuZGxlci4KLSAqIEBtZXNzYWdlOiBKYXZhU2NyaXB0IHZhbHVlIHRv
IGJlIHNlbnQuCi0gKgotICogUmV0dXJuczogV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgc3VjY2Vz
c2Z1bGx5IHNlbnQuCi0gKgotICogU2luY2U6IDIuOAotICovCi1nYm9vbGVhbiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKFdlYktpdERP
TURPTVdpbmRvdyogd2luZG93LCBjb25zdCBnY2hhciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIG1l
c3NhZ2UpOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYKKyNlbmRpZiAvKiBXZWJLaXRET01DdXN0
b21faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DdXN0b21VbnN0YWJsZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DdXN0b21V
bnN0YWJsZS5oCmluZGV4IDUxMzU5NDcuLjY5ZmYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ3VzdG9t
VW5zdGFibGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUN1c3RvbVVuc3RhYmxlLmgKQEAgLTIwLDQ5ICsyMCw5IEBA
CiAjZGVmaW5lIFdlYktpdERPTUN1c3RvbVVuc3RhYmxlX2gKIAogI2lmZGVmIFdFQktJVF9ET01f
VVNFX1VOU1RBQkxFX0FQSQotCi0jaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbWRlZmluZXMt
dW5zdGFibGUuaD4KLQotR19CRUdJTl9ERUNMUwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfd2Via2l0X25hbWVzcGFjZToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5k
b3cKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVdlYktpdE5h
bWVzcGFjZQotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSAqIFNpbmNlOiAyLjgKLSAqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01XZWJLaXROYW1lc3BhY2UgKgotd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF93ZWJraXRfbmFtZXNwYWNlKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8q
KgotICogd2Via2l0X2RvbV91c2VyX21lc3NhZ2VfaGFuZGxlcnNfbmFtZXNwYWNlX2dldF9oYW5k
bGVyOgotICogQHNlbGY6IEEgI1dlYktpdERPTVVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UK
LSAqIEBuYW1lOiBhICNnY2hhcgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQot
ICogU2luY2U6IDIuOAotICovCi1XRUJLSVRfQVBJIFdlYktpdERPTVVzZXJNZXNzYWdlSGFuZGxl
ciAqCi13ZWJraXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2VfZ2V0X2hhbmRs
ZXIoV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZSogc2VsZiwgY29uc3QgZ2No
YXIqIG5hbWUpOwotCi0vKioKLSAqIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3Np
emVzOgotICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAotICogQHZhbHVlOiBh
ICNnY2hhcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSAqIFNpbmNlOiAyLjgKLSAqLwot
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9zaXplcyhX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7Ci0KLUdf
RU5EX0RFQ0xTCi0KKyNkZWZpbmUgX19XRUJLSVRET01fSF9JTlNJREVfXworI2luY2x1ZGUgPHdl
YmtpdGRvbS9XZWJLaXRET01ET01XaW5kb3cuaD4KKyN1bmRlZiBfX1dFQktJVERPTV9IX0lOU0lE
RV9fCiAjZW5kaWYgLyogV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJICovCiAKLSNlbmRpZgor
I2VuZGlmIC8qIFdlYktpdERPTUN1c3RvbVVuc3RhYmxlX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oCmluZGV4IDBiODE1M2MuLmE5MDM5
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rp
b24uaApAQCAtMTgsMTQgKzE4LDE2IEBACiAgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CiAgKi8KIAorI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KEJVSUxESU5HX1dFQktJVCkgJiYgIWRlZmluZWQoV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJ
KQorI2Vycm9yICJPbmx5IDx3ZWJraXRkb20vd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRlZCBk
aXJlY3RseS4iCisjZW5kaWYKKwogI2lmbmRlZiBXZWJLaXRET01ET01TZWxlY3Rpb25faAogI2Rl
ZmluZSBXZWJLaXRET01ET01TZWxlY3Rpb25faAogCi0jaWZkZWYgV0VCS0lUX0RPTV9VU0VfVU5T
VEFCTEVfQVBJCi0KICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRv
bS9XZWJLaXRET01PYmplY3QuaD4KLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5l
cy11bnN0YWJsZS5oPgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLmg+CiAK
IEdfQkVHSU5fREVDTFMKIApAQCAtNTMsOCArNTUsOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAbm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQG9mZnNl
dDogQSAjZ3Vsb25nCiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCisgKiBTaW5jZTog
Mi4xNgorICovCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xs
YXBzZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIGd1
bG9uZyBvZmZzZXQpOwogCkBAIC02Myw4ICs2NSw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlv
bl9jb2xsYXBzZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5v
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX2VuZChX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIApAQCAtNzMsOCAr
NzUsOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fZW5kKFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKiogZQogICogQHNlbGY6IEEgI1dlYktpdERPTURP
TVNlbGVjdGlvbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19zdGFydChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKIApAQCAtODIsOCArODQsOCBAQCB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBH
RXJyb3IqKgogICogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2RlbGV0ZV9mcm9tX2RvY3VtZW50
OgogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgogICoKLSAqIFN0YWJpbGl0eTog
VW5zdGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBzZWxmKTsKIApAQCAtOTUsOCArOTcsOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoq
LworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2RvbV9k
b21fc2VsZWN0aW9uX2NvbnRhaW5zX25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiBub2RlLCBnYm9vbGVhbiBhbGxvd1BhcnRpYWwpOwogCkBAIC0xMDUsOCAr
MTA3LDggQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbnRhaW5zX25vZGUoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJLaXRET01Ob2QKICAqIEBzZWxmOiBBICNXZWJLaXRET01E
T01TZWxlY3Rpb24KICAqIEBub2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKgotICogU3RhYmlsaXR5
OiBVbnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIHZvaWQKIHdl
YmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZWxlY3RfYWxsX2NoaWxkcmVuKFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSk7CiAKQEAgLTExNyw4ICsxMTksOCBA
QCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2VsZWN0X2FsbF9jaGlsZHJlbihXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdAogICogQG9mZnNldDogQSAjZ3Vsb25nCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAy
LjE2CisgKi8KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2V4dGVu
ZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIGd1bG9u
ZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKIApAQCAtMTMwLDggKzEzMiw4IEBAIHdlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9leHRlbmQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBub2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01SYW5nZQogICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLworICogU2luY2U6IDIu
MTYKKyAqLwogV0VCS0lUX0FQSSBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9nZXRfcmFuZ2VfYXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5k
ZXgsIEdFcnJvcioqIGVycm9yKTsKIApAQCAtMTM5LDggKzE0MSw4IEBAIHdlYmtpdF9kb21fZG9t
X3NlbGVjdGlvbl9nZXRfcmFuZ2VfYXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBndWxv
bmcgaW5kZXgsCiAgKiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fcmVtb3ZlX2FsbF9yYW5nZXM6
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgotICogU3RhYmlsaXR5OiBV
bnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9yZW1vdmVfYWxsX3JhbmdlcyhXZWJLaXRET01ET01TZWxlY3Rp
b24qIHNlbGYpOwogCkBAIC0xNDksOCArMTUxLDggQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9u
X3JlbW92ZV9hbGxfcmFuZ2VzKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKiBAcmFuZ2U6IEEgI1dlYktpdERPTVJhbmdl
CiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBX
RUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9hZGRfcmFuZ2UoV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJLaXRET01SYW5nZSogcmFuZ2UpOwogCkBAIC0xNjIs
OCArMTY0LDggQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2FkZF9yYW5nZShXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTVJhbmdlKgogICogQGV4dGVudE5vZGU6IEEgI1dl
YktpdERPTU5vZGUKICAqIEBleHRlbnRPZmZzZXQ6IEEgI2d1bG9uZwogICoKLSAqIFN0YWJpbGl0
eTogVW5zdGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVudChXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIGJhc2VOb2RlLCBndWxvbmcgYmFzZU9mZnNl
dCwgV2ViS2l0RE9NTm9kZSogZXh0ZW50Tm9kZSwgZ3Vsb25nIGV4dGVudE9mZnNldCk7CiAKQEAg
LTE3Myw4ICsxNzUsOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4
dGVudChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdAogICogQG5vZGU6IEEgI1dl
YktpdERPTU5vZGUKICAqIEBvZmZzZXQ6IEEgI2d1bG9uZwogICoKLSAqIFN0YWJpbGl0eTogVW5z
dGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRf
ZG9tX2RvbV9zZWxlY3Rpb25fc2V0X3Bvc2l0aW9uKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCk7CiAKQEAgLTE4Miw4ICsxODQs
OCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X3Bvc2l0aW9uKFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZQogICogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9u
X2VtcHR5OgogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgogICoKLSAqIFN0YWJp
bGl0eTogVW5zdGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSB2b2lk
CiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZW1wdHkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmKTsKIApAQCAtMTk0LDggKzE5Niw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9lbXB0
eShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICogQGRpcmVjdGlvbjogQSAjZ2NoYXIK
ICAqIEBncmFudWxhcml0eTogQSAjZ2NoYXIKICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0q
Ki8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX21vZGlmeShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIGNvbnN0IGdjaGFy
KiBhbHRlciwgY29uc3QgZ2NoYXIqIGRpcmVjdGlvbiwgY29uc3QgZ2NoYXIqIGdyYW51bGFyaXR5
KTsKIApAQCAtMjA1LDggKzIwNyw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnko
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogYWx0ZXIsCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgotICogU3RhYmls
aXR5OiBVbnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2FuY2hvcl9ub2RlKFdlYktp
dERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKQEAgLTIxNiw4ICsyMTgsOCBAQCB3ZWJraXRfZG9t
X2RvbV9zZWxlY3Rpb25fZ2V0X2FuY2hvcl9ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
Zik7CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIGd1bG9uZwogd2Via2l0X2Rv
bV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiog
c2VsZik7CiAKQEAgLTIyNyw4ICsyMjksOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0
X2FuY2hvcl9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgV2ViS2l0RE9N
Tm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNfbm9kZShXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYpOwogCkBAIC0yMzgsOCArMjQwLDggQEAgd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2dldF9mb2N1c19ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAg
KgogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiov
CisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIGd1bG9uZwogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2dldF9mb2N1c19vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsK
IApAQCAtMjQ5LDggKzI1MSw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNf
b2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2
CisgKi8KIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRf
aXNfY29sbGFwc2VkKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKQEAgLTI2MCw4ICsy
NjIsOCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2lzX2NvbGxhcHNlZChXZWJLaXRE
T01ET01TZWxlY3Rpb24qIHNlbGYpOwogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKLSAq
IFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQ
SSBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfY291bnQoV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIApAQCAtMjcxLDggKzI3Myw4IEBAIHdlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfY291bnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
KTsKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUK
LSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSBnY2hhcioKIHdlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9uX3R5cGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmKTsKIApAQCAtMjgyLDggKzI4NCw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRf
c2VsZWN0aW9uX3R5cGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgV2ViS2l0RE9N
Tm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFzZV9ub2RlKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZik7CiAKQEAgLTI5Myw4ICsyOTUsOCBAQCB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICoK
ICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwor
ICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9nZXRfYmFzZV9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIApA
QCAtMzA0LDggKzMwNiw4IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFzZV9vZmZz
ZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0q
Ki8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9u
KiBzZWxmKTsKIApAQCAtMzE1LDEyICszMTcsMTEgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9u
X2dldF9leHRlbnRfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICoKICAqIFJl
dHVybnM6IEEgI2d1bG9uZwogICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLworICogU2lu
Y2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlv
bl9nZXRfZXh0ZW50X29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwogCi0jZW5kaWYgLyogV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJICovCiAjZW5k
aWYgLyogV2ViS2l0RE9NRE9NU2VsZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5oCmluZGV4IGEzMjBmYTEuLjYzNTdjMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuaApA
QCAtMTgsMTEgKzE4LDEzIEBACiAgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAorI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVkKEJVSUxE
SU5HX1dFQktJVCkgJiYgIWRlZmluZWQoV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJKQorI2Vy
cm9yICJPbmx5IDx3ZWJraXRkb20vd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3Rs
eS4iCisjZW5kaWYKKwogI2lmbmRlZiBXZWJLaXRET01ET01Ub2tlbkxpc3RfaAogI2RlZmluZSBX
ZWJLaXRET01ET01Ub2tlbkxpc3RfaAogCi0jaWZkZWYgV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVf
QVBJCi0KICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJL
aXRET01PYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5lcy11bnN0
YWJsZS5oPgpAQCAtNTQsOCArNTYsOCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2dldF90
eXBlKHZvaWQpOwogICoKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgotICogU3RhYmlsaXR5OiBV
bnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIGdjaGFyKgogd2Vi
a2l0X2RvbV9kb21fdG9rZW5fbGlzdF9pdGVtKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwg
Z3Vsb25nIGluZGV4KTsKIApAQCAtNjYsOCArNjgsOCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9s
aXN0X2l0ZW0oV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiov
CisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfZG9tX2Rv
bV90b2tlbl9saXN0X2NvbnRhaW5zKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHRva2VuKTsKIApAQCAtNzcsOCArNzksOCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9s
aXN0X2NvbnRhaW5zKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHRv
awogICogQGVycm9yOiAjR0Vycm9yCiAgKiBALi4uOiBsaXN0IG9mICNnY2hhciBlbmRlZCBieSAl
TlVMTC4KICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2Cisg
Ki8KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9hZGQoV2ViS2l0
RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJvciwgLi4uKTsKIApAQCAtODgsOCAr
OTAsOCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2FkZChXZWJLaXRET01ET01Ub2tlbkxp
c3QqIHNlbGYsIEdFcnJvcioqIGVycm9yLCAuLi4pOwogICogQGVycm9yOiAjR0Vycm9yCiAgKiBA
Li4uOiBsaXN0IG9mICNnY2hhciBlbmRlZCBieSAlTlVMTC4KICAqCi0gKiBTdGFiaWxpdHk6IFVu
c3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X2RvbV9kb21fdG9rZW5fbGlzdF9yZW1vdmUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBH
RXJyb3IqKiBlcnJvciwgLi4uKTsKIApAQCAtMTAyLDggKzEwNCw4IEBAIHdlYmtpdF9kb21fZG9t
X3Rva2VuX2xpc3RfcmVtb3ZlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiog
ZXJyb3IsIC4uCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfdG9nZ2xlKFdlYktpdERPTURPTVRva2VuTGlzdCog
c2VsZiwgY29uc3QgZ2NoYXIqIHRva2VuLCBnYm9vbGVhbiBmb3JjZSwgR0Vycm9yKiogZXJyb3Ip
OwogCkBAIC0xMTQsOCArMTE2LDggQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF90b2dnbGUo
V2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4KICAqIEBuZXdU
b2tlbjogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKLSAqIFN0YWJpbGl0eTogVW5z
dGFibGUKLSoqLworICogU2luY2U6IDIuMTYKKyAqLwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRf
ZG9tX2RvbV90b2tlbl9saXN0X3JlcGxhY2UoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBj
b25zdCBnY2hhciogdG9rZW4sIGNvbnN0IGdjaGFyKiBuZXdUb2tlbiwgR0Vycm9yKiogZXJyb3Ip
OwogCkBAIC0xMjUsOCArMTI3LDggQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9yZXBsYWNl
KFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHRva2UKICAqCiAgKiBS
ZXR1cm5zOiBBICNndWxvbmcKICAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNp
bmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9s
aXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKIApAQCAtMTM2LDgg
KzEzOCw4IEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01E
T01Ub2tlbkxpc3QqIHNlbGYpOwogICoKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgotICogU3Rh
YmlsaXR5OiBVbnN0YWJsZQotKiovCisgKiBTaW5jZTogMi4xNgorICovCiBXRUJLSVRfQVBJIGdj
aGFyKgogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfdmFsdWUoV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0KiBzZWxmKTsKIApAQCAtMTQ2LDEyICsxNDgsMTEgQEAgd2Via2l0X2RvbV9kb21fdG9r
ZW5fbGlzdF9nZXRfdmFsdWUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01Ub2tlbkxpc3QKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCi0gKiBT
dGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KKyAqIFNpbmNlOiAyLjE2CisgKi8KIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9zZXRfdmFsdWUoV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwogCi0jZW5k
aWYgLyogV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJICovCiAjZW5kaWYgLyogV2ViS2l0RE9N
RE9NVG9rZW5MaXN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NV2luZG93LmNwcAppbmRleCA1MGY0NmI1Li5lNWE5NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCkBAIC0yMywzNCArMjMsMjQgQEAK
IAogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2luY2x1ZGUgIkRPTU9iamVj
dENhY2hlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25Db2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaD4K
ICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmg+Ci0jaW5jbHVkZSAiV2ViS2l0RE9NQmFyUHJvcFByaXZhdGUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvV2ViS2l0TmFtZXNwYWNlLmg+CiAjaW5jbHVkZSAiV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJh
dGlvblByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01ET01BcHBsaWNhdGlvbkNhY2hlUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTURPTVNlbGVjdGlvblByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXRET01ET01XaW5kb3dQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9j
dW1lbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRET01FdmVudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01FdmVu
dFRhcmdldC5oIgotI2luY2x1ZGUgIldlYktpdERPTUhpc3RvcnlQcml2YXRlLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3RQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9N
TmF2aWdhdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCi0j
aW5jbHVkZSAiV2ViS2l0RE9NUGVyZm9ybWFuY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTVNjcmVlblByaXZhdGUuaCIKLSNpbmNs
dWRlICJXZWJLaXRET01TcGVlY2hTeW50aGVzaXNQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0
RE9NU3RvcmFnZVByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01TdHlsZU1lZGlhUHJpdmF0
ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTVdlYktpdFBvaW50UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IkNvbnZlcnRUb1VURjhTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJLaXRET01ET01XaW5kb3dVbnN0
YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKQEAgLTEyNSwxNiArMTE1LDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9N
RE9NV2luZG93LCB3ZWJraXRfZG9tX2RvbV93aW5kb3csIFdFQktJVF9ET01fVFkKIAogZW51bSB7
CiAgICAgUFJPUF8wLAotICAgIFBST1BfU0NSRUVOLAotICAgIFBST1BfSElTVE9SWSwKLSAgICBQ
Uk9QX0xPQ0FUSU9OQkFSLAotICAgIFBST1BfTUVOVUJBUiwKLSAgICBQUk9QX1BFUlNPTkFMQkFS
LAotICAgIFBST1BfU0NST0xMQkFSUywKLSAgICBQUk9QX1NUQVRVU0JBUiwKLSAgICBQUk9QX1RP
T0xCQVIsCi0gICAgUFJPUF9OQVZJR0FUT1IsCi0gICAgUFJPUF9DTElFTlRfSU5GT1JNQVRJT04s
CiAgICAgUFJPUF9GUkFNRV9FTEVNRU5ULAogICAgIFBST1BfT0ZGU0NSRUVOX0JVRkZFUklORywK
ICAgICBQUk9QX09VVEVSX0hFSUdIVCwKQEAgLTE2MSwxNCArMTQxLDggQEAgZW51bSB7CiAgICAg
UFJPUF9QQVJFTlQsCiAgICAgUFJPUF9UT1AsCiAgICAgUFJPUF9ET0NVTUVOVCwKLSAgICBQUk9Q
X1NUWUxFX01FRElBLAogICAgIFBST1BfREVWSUNFX1BJWEVMX1JBVElPLAotICAgIFBST1BfQVBQ
TElDQVRJT05fQ0FDSEUsCi0gICAgUFJPUF9TRVNTSU9OX1NUT1JBR0UsCi0gICAgUFJPUF9MT0NB
TF9TVE9SQUdFLAogICAgIFBST1BfT1JJRU5UQVRJT04sCi0gICAgUFJPUF9QRVJGT1JNQU5DRSwK
LSAgICBQUk9QX1NQRUVDSF9TWU5USEVTSVMsCiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQpAQCAtMjA2LDM2ICsxODAsNiBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Byb3BlcnR5KEdPYmplY3Qq
IG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZAogICAgIFdlYktpdERPTURPTVdpbmRvdyogc2VsZiA9
IFdFQktJVF9ET01fRE9NX1dJTkRPVyhvYmplY3QpOwogCiAgICAgc3dpdGNoIChwcm9wZXJ0eUlk
KSB7Ci0gICAgY2FzZSBQUk9QX1NDUkVFTjoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZh
bHVlLCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbihzZWxmKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUFJPUF9ISVNUT1JZOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaGlzdG9yeShzZWxmKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9MT0NBVElPTkJBUjoKLSAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2xvY2F0aW9uYmFyKHNlbGYp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01FTlVCQVI6Ci0gICAgICAgIGdfdmFs
dWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9tZW51YmFyKHNl
bGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1BFUlNPTkFMQkFSOgotICAgICAg
ICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGVy
c29uYWxiYXIoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfU0NST0xMQkFS
UzoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3Njcm9sbGJhcnMoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
U1RBVFVTQkFSOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfc3RhdHVzYmFyKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQUk9QX1RPT0xCQVI6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0
X2RvbV9kb21fd2luZG93X2dldF90b29sYmFyKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX05BVklHQVRPUjoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X25hdmlnYXRvcihzZWxmKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUFJPUF9DTElFTlRfSU5GT1JNQVRJT046Ci0gICAgICAgIGdfdmFsdWVfc2V0
X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jbGllbnRfaW5mb3JtYXRp
b24oc2VsZikpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfRlJBTUVfRUxFTUVOVDoK
ICAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X2ZyYW1lX2VsZW1lbnQoc2VsZikpOwogICAgICAgICBicmVhazsKQEAgLTMxNCwzMCArMjU4
LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkCiAgICAgY2FzZSBQUk9QX0RPQ1VNRU5UOgog
ICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfZG9jdW1lbnQoc2VsZikpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfU1RZTEVf
TUVESUE6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zdHlsZV9tZWRpYShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UFJPUF9ERVZJQ0VfUElYRUxfUkFUSU86CiAgICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1
ZSwgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oc2VsZikpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQVBQTElDQVRJT05fQ0FDSEU6Ci0gICAgICAg
IGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9hcHBs
aWNhdGlvbl9jYWNoZShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9TRVNT
SU9OX1NUT1JBR0U6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9zZXNzaW9uX3N0b3JhZ2Uoc2VsZiwgbnVsbHB0cikpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfTE9DQUxfU1RPUkFHRToKLSAgICAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2xvY2FsX3N0b3JhZ2Uo
c2VsZiwgbnVsbHB0cikpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfT1JJRU5UQVRJ
T046CiAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfb3JpZW50YXRpb24oc2VsZikpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
UEVSRk9STUFOQ0U6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9wZXJmb3JtYW5jZShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUFJPUF9TUEVFQ0hfU1lOVEhFU0lTOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc3BlZWNoX3N5bnRoZXNpcyhzZWxmKSk7
Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQsIHBzcGVjKTsKICAgICAgICAgYnJl
YWs7CkBAIC0zNjYsMTA2ICsyOTIsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfY2xhc3NfaW5pdChXZWJLaXRET01ET01XaW5kb3dDbGFzcyogcmVxdWVzdENsYQogCiAgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKICAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBQUk9QX1NDUkVFTiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAg
ICAgICAgICJzY3JlZW4iLAotICAgICAgICAgICAgIkRPTVdpbmRvdzpzY3JlZW4iLAotICAgICAg
ICAgICAgInJlYWQtb25seSBXZWJLaXRET01TY3JlZW4qIERPTVdpbmRvdzpzY3JlZW4iLAotICAg
ICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX1NDUkVFTiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAg
ICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBQUk9QX0hJU1RPUlksCi0gICAgICAgIGdfcGFy
YW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAiaGlzdG9yeSIsCi0gICAgICAgICAgICAiRE9N
V2luZG93Omhpc3RvcnkiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IaXN0b3J5
KiBET01XaW5kb3c6aGlzdG9yeSIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfSElTVE9S
WSwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBQ
Uk9QX0xPQ0FUSU9OQkFSLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAg
ICAgImxvY2F0aW9uYmFyIiwKLSAgICAgICAgICAgICJET01XaW5kb3c6bG9jYXRpb25iYXIiLAot
ICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01CYXJQcm9wKiBET01XaW5kb3c6bG9jYXRp
b25iYXIiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0JBUl9QUk9QLAotICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfTUVOVUJBUiwK
LSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJtZW51YmFyIiwKLSAg
ICAgICAgICAgICJET01XaW5kb3c6bWVudWJhciIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdl
YktpdERPTUJhclByb3AqIERPTVdpbmRvdzptZW51YmFyIiwKLSAgICAgICAgICAgIFdFQktJVF9E
T01fVFlQRV9CQVJfUFJPUCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwot
Ci0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENs
YXNzLAotICAgICAgICBQUk9QX1BFUlNPTkFMQkFSLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2Jq
ZWN0KAotICAgICAgICAgICAgInBlcnNvbmFsYmFyIiwKLSAgICAgICAgICAgICJET01XaW5kb3c6
cGVyc29uYWxiYXIiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01CYXJQcm9wKiBE
T01XaW5kb3c6cGVyc29uYWxiYXIiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0JBUl9Q
Uk9QLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAg
IFBST1BfU0NST0xMQkFSUywKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAg
ICAgICJzY3JvbGxiYXJzIiwKLSAgICAgICAgICAgICJET01XaW5kb3c6c2Nyb2xsYmFycyIsCi0g
ICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUJhclByb3AqIERPTVdpbmRvdzpzY3JvbGxi
YXJzIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9CQVJfUFJPUCwKLSAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBQUk9QX1NUQVRVU0JBUiwK
LSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJzdGF0dXNiYXIiLAot
ICAgICAgICAgICAgIkRPTVdpbmRvdzpzdGF0dXNiYXIiLAotICAgICAgICAgICAgInJlYWQtb25s
eSBXZWJLaXRET01CYXJQcm9wKiBET01XaW5kb3c6c3RhdHVzYmFyIiwKLSAgICAgICAgICAgIFdF
QktJVF9ET01fVFlQRV9CQVJfUFJPUCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29i
amVjdENsYXNzLAotICAgICAgICBQUk9QX1RPT0xCQVIsCi0gICAgICAgIGdfcGFyYW1fc3BlY19v
YmplY3QoCi0gICAgICAgICAgICAidG9vbGJhciIsCi0gICAgICAgICAgICAiRE9NV2luZG93OnRv
b2xiYXIiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01CYXJQcm9wKiBET01XaW5k
b3c6dG9vbGJhciIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfQkFSX1BST1AsCi0gICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9OQVZJ
R0FUT1IsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAibmF2aWdh
dG9yIiwKLSAgICAgICAgICAgICJET01XaW5kb3c6bmF2aWdhdG9yIiwKLSAgICAgICAgICAgICJy
ZWFkLW9ubHkgV2ViS2l0RE9NTmF2aWdhdG9yKiBET01XaW5kb3c6bmF2aWdhdG9yIiwKLSAgICAg
ICAgICAgIFdFQktJVF9ET01fVFlQRV9OQVZJR0FUT1IsCi0gICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0g
ICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9DTElFTlRfSU5GT1JNQVRJT04sCi0g
ICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAiY2xpZW50LWluZm9ybWF0
aW9uIiwKLSAgICAgICAgICAgICJET01XaW5kb3c6Y2xpZW50LWluZm9ybWF0aW9uIiwKLSAgICAg
ICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NTmF2aWdhdG9yKiBET01XaW5kb3c6Y2xpZW50LWlu
Zm9ybWF0aW9uIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9OQVZJR0FUT1IsCi0gICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKICAgICAgICAgUFJPUF9GUkFN
RV9FTEVNRU5ULAogICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAogICAgICAgICAgICAgImZy
YW1lLWVsZW1lbnQiLApAQCAtNzI2LDE2ICs1NTIsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfY2xhc3NfaW5pdChXZWJLaXRET01ET01XaW5kb3dDbGFzcyogcmVxdWVzdENs
YQogCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKICAgICAgICAgZ29iamVj
dENsYXNzLAotICAgICAgICBQUk9QX1NUWUxFX01FRElBLAotICAgICAgICBnX3BhcmFtX3NwZWNf
b2JqZWN0KAotICAgICAgICAgICAgInN0eWxlLW1lZGlhIiwKLSAgICAgICAgICAgICJET01XaW5k
b3c6c3R5bGUtbWVkaWEiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01TdHlsZU1l
ZGlhKiBET01XaW5kb3c6c3R5bGUtbWVkaWEiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBF
X1NUWUxFX01FRElBLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3Ms
CiAgICAgICAgIFBST1BfREVWSUNFX1BJWEVMX1JBVElPLAogICAgICAgICBnX3BhcmFtX3NwZWNf
ZG91YmxlKAogICAgICAgICAgICAgImRldmljZS1waXhlbC1yYXRpbyIsCkBAIC03NDYsMzYgKzU2
Miw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9tX3dpbmRvd19jbGFzc19pbml0KFdlYktp
dERPTURPTVdpbmRvd0NsYXNzKiByZXF1ZXN0Q2xhCiAKICAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAogICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfQVBQTElD
QVRJT05fQ0FDSEUsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAi
YXBwbGljYXRpb24tY2FjaGUiLAotICAgICAgICAgICAgIkRPTVdpbmRvdzphcHBsaWNhdGlvbi1j
YWNoZSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTURPTUFwcGxpY2F0aW9uQ2Fj
aGUqIERPTVdpbmRvdzphcHBsaWNhdGlvbi1jYWNoZSIsCi0gICAgICAgICAgICBXRUJLSVRfRE9N
X1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NBQ0hFLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAg
ICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfU0VTU0lPTl9TVE9SQUdFLAotICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgInNlc3Npb24tc3RvcmFnZSIsCi0gICAg
ICAgICAgICAiRE9NV2luZG93OnNlc3Npb24tc3RvcmFnZSIsCi0gICAgICAgICAgICAicmVhZC1v
bmx5IFdlYktpdERPTVN0b3JhZ2UqIERPTVdpbmRvdzpzZXNzaW9uLXN0b3JhZ2UiLAotICAgICAg
ICAgICAgV0VCS0lUX0RPTV9UWVBFX1NUT1JBR0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAg
ICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9MT0NBTF9TVE9SQUdFLAotICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgImxvY2FsLXN0b3JhZ2UiLAotICAgICAg
ICAgICAgIkRPTVdpbmRvdzpsb2NhbC1zdG9yYWdlIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkg
V2ViS2l0RE9NU3RvcmFnZSogRE9NV2luZG93OmxvY2FsLXN0b3JhZ2UiLAotICAgICAgICAgICAg
V0VCS0lUX0RPTV9UWVBFX1NUT1JBR0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdv
YmplY3RDbGFzcywKICAgICAgICAgUFJPUF9PUklFTlRBVElPTiwKICAgICAgICAgZ19wYXJhbV9z
cGVjX2xvbmcoCiAgICAgICAgICAgICAib3JpZW50YXRpb24iLApAQCAtNzgzLDI3ICs1NjksNiBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2xhc3NfaW5pdChXZWJLaXRET01E
T01XaW5kb3dDbGFzcyogcmVxdWVzdENsYQogICAgICAgICAgICAgInJlYWQtb25seSBnbG9uZyBE
T01XaW5kb3c6b3JpZW50YXRpb24iLAogICAgICAgICAgICAgR19NSU5MT05HLCBHX01BWExPTkcs
IDAsCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAg
UFJPUF9QRVJGT1JNQU5DRSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAg
ICAgICJwZXJmb3JtYW5jZSIsCi0gICAgICAgICAgICAiRE9NV2luZG93OnBlcmZvcm1hbmNlIiwK
LSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NUGVyZm9ybWFuY2UqIERPTVdpbmRvdzpw
ZXJmb3JtYW5jZSIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfUEVSRk9STUFOQ0UsCi0g
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9T
UEVFQ0hfU1lOVEhFU0lTLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAg
ICAgInNwZWVjaC1zeW50aGVzaXMiLAotICAgICAgICAgICAgIkRPTVdpbmRvdzpzcGVlY2gtc3lu
dGhlc2lzIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NU3BlZWNoU3ludGhlc2lz
KiBET01XaW5kb3c6c3BlZWNoLXN5bnRoZXNpcyIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZ
UEVfU1BFRUNIX1NZTlRIRVNJUywKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwotCiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9tX3dpbmRvd19pbml0KFdlYktpdERP
TURPTVdpbmRvdyogcmVxdWVzdCkKQEAgLTkyMiwxNCArNjg3LDYgQEAgdm9pZCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2Nyb2xsX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4
LCBnZG91YmwKICAgICBpdGVtLT5zY3JvbGxUbyh4LCB5KTsKIH0KIAotdm9pZCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2Nyb2xsKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBn
ZG91YmxlIHkpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpKTsKLSAg
ICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRl
bS0+c2Nyb2xsVG8oeCwgeSk7Ci19Ci0KIHZvaWQgd2Via2l0X2RvbV9kb21fd2luZG93X21vdmVf
YnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTYyLDE3ICs3MTksNiBA
QCB2b2lkIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNpemVfdG8oV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmLCBnZmxvYXQgd2lkdGgsIGdmbAogICAgIGl0ZW0tPnJlc2l6ZVRvKHdpZHRoLCBoZWln
aHQpOwogfQogCi1XZWJLaXRET01NZWRpYVF1ZXJ5TGlzdCogd2Via2l0X2RvbV9kb21fd2luZG93
X21hdGNoX21lZGlhKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHF1ZXJ5
KQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coc2VsZiksIDApOwotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHF1ZXJ5LCAwKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkUXVl
cnkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgocXVlcnkpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpN
ZWRpYVF1ZXJ5TGlzdD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm1hdGNoTWVk
aWEoY29udmVydGVkUXVlcnkpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3Vs
dC5nZXQoKSk7Ci19Ci0KIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHdlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfY29tcHV0ZWRfc3R5bGUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBX
ZWJLaXRET01FbGVtZW50KiBlbGVtZW50LCBjb25zdCBnY2hhciogcHNldWRvRWxlbWVudCkKIHsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05ODUsNzQgKzcz
MSw2IEBAIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfY29tcHV0ZWRfc3R5bGUoV2ViS2l0RE9NCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdv
YmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCi1XZWJLaXRET01XZWJLaXRQb2ludCogd2Via2l0X2Rv
bV9kb21fd2luZG93X3dlYmtpdF9jb252ZXJ0X3BvaW50X2Zyb21fcGFnZV90b19ub2RlKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgV2ViS2l0RE9NV2ViS2l0
UG9pbnQqIHApCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhzZWxmKSwg
MCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKG5vZGUpLCAw
KTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1dFQktJVF9QT0lOVChw
KSwgMCk7Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZE5vZGUgPSBXZWJLaXQ6OmNvcmUobm9kZSk7
Ci0gICAgV2ViQ29yZTo6V2ViS2l0UG9pbnQqIGNvbnZlcnRlZFAgPSBXZWJLaXQ6OmNvcmUocCk7
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OldlYktpdFBvaW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpn
ZXRQdHIoaXRlbS0+d2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoY29udmVydGVkTm9k
ZSwgY29udmVydGVkUCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0Lmdl
dCgpKTsKLX0KLQotV2ViS2l0RE9NV2ViS2l0UG9pbnQqIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfY29udmVydF9wb2ludF9mcm9tX25vZGVfdG9fcGFnZShXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIFdlYktpdERPTVdlYktpdFBvaW50KiBwKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coc2VsZiksIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShub2RlKSwgMCk7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19XRUJLSVRfUE9JTlQocCksIDApOwotICAgIFdl
YkNvcmU6OkRPTVdpbmRvdyogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3Jl
OjpOb2RlKiBjb252ZXJ0ZWROb2RlID0gV2ViS2l0Ojpjb3JlKG5vZGUpOwotICAgIFdlYkNvcmU6
OldlYktpdFBvaW50KiBjb252ZXJ0ZWRQID0gV2ViS2l0Ojpjb3JlKHApOwotICAgIFJlZlB0cjxX
ZWJDb3JlOjpXZWJLaXRQb2ludD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPndl
YmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKGNvbnZlcnRlZE5vZGUsIGNvbnZlcnRlZFAp
KTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLXZv
aWQgd2Via2l0X2RvbV9kb21fd2luZG93X2NhbmNlbF9hbmltYXRpb25fZnJhbWUoV2ViS2l0RE9N
RE9NV2luZG93KiBzZWxmLCBnbG9uZyBpZCkKLXsKLSNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUpCi0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpKTsKLSAgICBX
ZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRlbS0+
Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2VsZik7
Ci0gICAgVU5VU0VEX1BBUkFNKGlkKTsKLSAgICBXRUJLSVRfV0FSTl9GRUFUVVJFX05PVF9QUkVT
RU5UKCJSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSIpCi0jZW5kaWYgLyogRU5BQkxFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAqLwotfQotCi12b2lkIHdlYmtpdF9kb21fZG9tX3dpbmRvd193ZWJr
aXRfY2FuY2VsX2FuaW1hdGlvbl9mcmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdsb25n
IGlkKQotewotI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfRE9NX0lTX0RPTV9XSU5ET1coc2VsZikpOwotICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5jYW5jZWxBbmltYXRpb25GcmFtZShp
ZCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZWxmKTsKLSAgICBVTlVTRURfUEFSQU0oaWQp
OwotICAgIFdFQktJVF9XQVJOX0ZFQVRVUkVfTk9UX1BSRVNFTlQoIlJlcXVlc3QgQW5pbWF0aW9u
IEZyYW1lIikKLSNlbmRpZiAvKiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICovCi19
Ci0KLXZvaWQgd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9jYW5jZWxfcmVxdWVzdF9hbmlt
YXRpb25fZnJhbWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnbG9uZyBpZCkKLXsKLSNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01f
V0lORE9XKHNlbGYpKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgaXRlbS0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc2VsZik7Ci0gICAgVU5VU0VEX1BBUkFNKGlkKTsKLSAgICBXRUJLSVRf
V0FSTl9GRUFUVVJFX05PVF9QUkVTRU5UKCJSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSIpCi0jZW5k
aWYgLyogRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAqLwotfQotCiB2b2lkIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19jYXB0dXJlX2V2ZW50cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
CiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMTA2OSwx
MzggKzc0Nyw2IEBAIHZvaWQgd2Via2l0X2RvbV9kb21fd2luZG93X3JlbGVhc2VfZXZlbnRzKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZikKICAgICBpdGVtLT5yZWxlYXNlRXZlbnRzKCk7CiB9CiAK
LXZvaWQgd2Via2l0X2RvbV9kb21fd2luZG93X2NsZWFyX3RpbWVvdXQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBnbG9uZyBoYW5kbGUpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lO
RE9XKHNlbGYpKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgaXRlbS0+Y2xlYXJUaW1lb3V0KGhhbmRsZSk7Ci19Ci0KLXZvaWQgd2Via2l0
X2RvbV9kb21fd2luZG93X2NsZWFyX2ludGVydmFsKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwg
Z2xvbmcgaGFuZGxlKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhzZWxmKSk7
Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAg
IGl0ZW0tPmNsZWFySW50ZXJ2YWwoaGFuZGxlKTsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19hdG9iKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHN0cmlu
ZywgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRP
VyhzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc3RyaW5nLCAwKTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6
RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNv
bnZlcnRlZFN0cmluZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpOwotICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9V
VEY4U3RyaW5nKGl0ZW0tPmF0b2IoY29udmVydGVkU3RyaW5nLCBlYykpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYnRvYShXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBzdHJpbmcsIEdFcnJvcioqIGVycm9yKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coc2VsZiksIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoIWVy
cm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRTdHJpbmcgPSBXVEY6OlN0
cmluZzo6ZnJvbVVURjgoc3RyaW5nKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5idG9hKGNv
bnZlcnRlZFN0cmluZywgZWMpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1XZWJLaXRET01T
Y3JlZW4qIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuKFdlYktpdERPTURPTVdpbmRv
dyogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpLCAw
KTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0g
ICAgUmVmUHRyPFdlYkNvcmU6OlNjcmVlbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPnNjcmVlbigpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Ci19Ci0KLVdlYktpdERPTUhpc3RvcnkqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaGlz
dG9yeShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5PiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+aGlzdG9yeSgpKTsKLSAgICByZXR1cm4gV2ViS2l0
OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUJhclByb3AqIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfbG9jYXRpb25iYXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coc2VsZiksIDApOwotICAg
IFdlYkNvcmU6OkRPTVdpbmRvdyogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6QmFyUHJvcD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmxv
Y2F0aW9uYmFyKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKLX0KLQotV2ViS2l0RE9NQmFyUHJvcCogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9tZW51
YmFyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkJhclByb3A+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5tZW51YmFyKCkpOwotICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NQmFyUHJvcCogd2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9wZXJzb25hbGJhcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0gICAg
V2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpCYXJQcm9wPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+cGVy
c29uYWxiYXIoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkp
OwotfQotCi1XZWJLaXRET01CYXJQcm9wKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9s
bGJhcnMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0RPTV9XSU5ET1coc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6QmFyUHJvcD4gZ29iamVj
dFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnNjcm9sbGJhcnMoKSk7Ci0gICAgcmV0dXJuIFdl
YktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01CYXJQcm9wKiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1c2JhcihXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0g
ICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpCYXJQcm9wPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
c3RhdHVzYmFyKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKLX0KLQotV2ViS2l0RE9NQmFyUHJvcCogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF90b29s
YmFyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkJhclByb3A+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT50b29sYmFyKCkpOwotICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NTmF2aWdhdG9yKiB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfZ2V0X25hdmlnYXRvcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0gICAg
V2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpOYXZpZ2F0b3I+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5u
YXZpZ2F0b3IoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkp
OwotfQotCi1XZWJLaXRET01OYXZpZ2F0b3IqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY2xp
ZW50X2luZm9ybWF0aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpET01XaW5k
b3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5hdmln
YXRvcj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmNsaWVudEluZm9ybWF0aW9u
KCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQog
V2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFtZV9lbGVtZW50
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CkBAIC0xNDY1LDE1ICsxMDExLDYgQEAgV2ViS2l0RE9NRG9jdW1lbnQq
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZG9jdW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAot
V2ViS2l0RE9NU3R5bGVNZWRpYSogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zdHlsZV9tZWRp
YShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTdHlsZU1lZGlhPiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+c3R5bGVNZWRpYSgpKTsKLSAgICByZXR1cm4gV2Vi
S2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KIGdkb3VibGUgd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTE0ODMs
NDUgKzEwMjAsNiBAQCBnZG91YmxlIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGV2aWNlX3Bp
eGVsX3JhdGlvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1XZWJLaXRET01ET01BcHBsaWNhdGlvbkNhY2hlKiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X2FwcGxpY2F0aW9uX2NhY2hlKFdlYktpdERPTURPTVdpbmRvdyogc2VsZikKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpE
T01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OkRPTUFwcGxpY2F0aW9uQ2FjaGU+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5h
cHBsaWNhdGlvbkNhY2hlKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NU3RvcmFnZSogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9zZXNzaW9uX3N0b3JhZ2UoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBHRXJyb3IqKiBlcnJv
cikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29y
ZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlPiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+c2Vzc2lvblN0b3JhZ2UoZWMpKTsKLSAgICBpZiAo
ZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhl
Yyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJp
bmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9Ci0gICAg
cmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01T
dG9yYWdlKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2xvY2FsX3N0b3JhZ2UoV2ViS2l0RE9N
RE9NV2luZG93KiBzZWxmLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RP
TV9JU19ET01fV0lORE9XKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJy
b3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
bG9jYWxTdG9yYWdlKGVjKSk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRl
cmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2Rl
LCBlY2Rlc2MubmFtZSk7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVz
dWx0LmdldCgpKTsKLX0KLQogZ2xvbmcgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vcmllbnRh
dGlvbihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpCiB7CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKQEAgLTE1MzcsMzMgKzEwMzUsMjkgQEAgZ2xvbmcgd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9vcmllbnRhdGlvbihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpCiAjZW5kaWYgLyog
RU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykgKi8KIH0KIAotV2ViS2l0RE9NUGVyZm9ybWFuY2Uq
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGVyZm9ybWFuY2UoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKQorZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hh
bmRsZXJzX3Bvc3RfbWVzc2FnZShXZWJLaXRET01ET01XaW5kb3cqIHdpbmRvdywgY29uc3QgZ2No
YXIqIGhhbmRsZXJOYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSkKIHsKLSNpZiBFTkFCTEUoV0VC
X1RJTUlORykKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHNlbGYpLCAwKTsK
LSAgICBXZWJDb3JlOjpET01XaW5kb3cqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
UmVmUHRyPFdlYkNvcmU6OlBlcmZvcm1hbmNlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+cGVyZm9ybWFuY2UoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1
bHQuZ2V0KCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2VsZik7Ci0gICAgV0VCS0lUX1dB
Uk5fRkVBVFVSRV9OT1RfUFJFU0VOVCgiV2ViIFRpbWluZyIpCi0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYgLyogRU5BQkxFKFdFQl9USU1JTkcpICovCi19CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHdpbmRvdyksIEZBTFNFKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChoYW5kbGVyTmFtZSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KG1lc3NhZ2UsIEZBTFNFKTsKKworICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogZG9tV2luZG93ID0g
V2ViS2l0Ojpjb3JlKHdpbmRvdyk7CisgICAgaWYgKCFkb21XaW5kb3ctPnNob3VsZEhhdmVXZWJL
aXROYW1lc3BhY2VGb3JXb3JsZChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSkpCisg
ICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIGF1dG8gd2Via2l0TmFtZXNwYWNlID0gZG9tV2lu
ZG93LT53ZWJraXROYW1lc3BhY2UoKTsKKyAgICBpZiAoIXdlYmtpdE5hbWVzcGFjZSkKKyAgICAg
ICAgcmV0dXJuIEZBTFNFOworCisgICAgYXV0byBoYW5kbGVyID0gd2Via2l0TmFtZXNwYWNlLT5t
ZXNzYWdlSGFuZGxlcnMoKS0+aGFuZGxlcihTdHJpbmc6OmZyb21VVEY4KGhhbmRsZXJOYW1lKSwg
V2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworICAgIGlmICghaGFuZGxlcikKKyAg
ICAgICAgcmV0dXJuIEZBTFNFOwogCi1XZWJLaXRET01TcGVlY2hTeW50aGVzaXMqIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19nZXRfc3BlZWNoX3N5bnRoZXNpcyhXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpCi17Ci0jaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRE9NX1dJTkRPVyhzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RE9NV2luZG93KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hTeW50aGVz
aXM+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hT
eW50aGVzaXM6OnNwZWVjaFN5bnRoZXNpcygqaXRlbSkpOwotICAgIHJldHVybiBXZWJLaXQ6Omtp
dChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNlbGYpOwot
ICAgIFdFQktJVF9XQVJOX0ZFQVRVUkVfTk9UX1BSRVNFTlQoIlNwZWVjaCBTeW50aGVzaXMiKQot
ICAgIHJldHVybiAwOwotI2VuZGlmIC8qIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAqLwotfQor
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGhhbmRsZXItPnBvc3RNZXNz
YWdlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVU
RjgobWVzc2FnZSkpLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gRkFMU0U7CiAK
KyAgICByZXR1cm4gVFJVRTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTVdpbmRvdy5oCmluZGV4IGI4MGQ4NmIuLjE5YmQyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9N
V2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuaApAQCAtNDksNiArNDksNTYyIEBAIHN0cnVj
dCBfV2ViS2l0RE9NRE9NV2luZG93Q2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF90eXBlKHZvaWQpOwogCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfc2VsZWN0aW9uOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoK
KyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCisg
KgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01ET01TZWxlY3Rpb24q
Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19mb2N1czoKKyAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19mb2N1cyhXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19ibHVyOgorICogQHNlbGY6
IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X2RvbV9kb21fd2luZG93X2JsdXIoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2xvc2U6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2xvc2UoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQ6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc3RvcDoKKyAqIEBzZWxmOiBB
ICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19zdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2Vs
Zik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb21fd2luZG93X2FsZXJ0OgorICogQHNlbGY6IEEg
I1dlYktpdERPTURPTVdpbmRvdworICogQG1lc3NhZ2U6IEEgI2djaGFyCisgKgorICogU2luY2U6
IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfYWxlcnQo
V2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSk7CisKKy8qKgor
ICogd2Via2l0X2RvbV9kb21fd2luZG93X2NvbmZpcm06CisgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RE9NV2luZG93CisgKiBAbWVzc2FnZTogQSAjZ2NoYXIKKyAqCisgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgorICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtp
dF9kb21fZG9tX3dpbmRvd19jb25maXJtKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3Qg
Z2NoYXIqIG1lc3NhZ2UpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19wcm9tcHQ6
CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKiBAbWVzc2FnZTogQSAjZ2NoYXIK
KyAqIEBkZWZhdWx0VmFsdWU6IEEgI2djaGFyCisgKgorICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGdjaGFyKgord2Via2l0X2RvbV9kb21f
d2luZG93X3Byb21wdChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNz
YWdlLCBjb25zdCBnY2hhciogZGVmYXVsdFZhbHVlKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZmluZDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqIEBzdHJp
bmc6IEEgI2djaGFyCisgKiBAY2FzZVNlbnNpdGl2ZTogQSAjZ2Jvb2xlYW4KKyAqIEBiYWNrd2Fy
ZHM6IEEgI2dib29sZWFuCisgKiBAd3JhcDogQSAjZ2Jvb2xlYW4KKyAqIEB3aG9sZVdvcmQ6IEEg
I2dib29sZWFuCisgKiBAc2VhcmNoSW5GcmFtZXM6IEEgI2dib29sZWFuCisgKiBAc2hvd0RpYWxv
ZzogQSAjZ2Jvb2xlYW4KKyAqCisgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIFNpbmNl
OiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZG9tX3dpbmRvd19m
aW5kKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xl
YW4gY2FzZVNlbnNpdGl2ZSwgZ2Jvb2xlYW4gYmFja3dhcmRzLCBnYm9vbGVhbiB3cmFwLCBnYm9v
bGVhbiB3aG9sZVdvcmQsIGdib29sZWFuIHNlYXJjaEluRnJhbWVzLCBnYm9vbGVhbiBzaG93RGlh
bG9nKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2Nyb2xsX2J5OgorICogQHNl
bGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICogQHg6IEEgI2dkb3VibGUKKyAqIEB5OiBBICNn
ZG91YmxlCisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfc2Nyb2xsX2J5KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJs
ZSB4LCBnZG91YmxlIHkpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxf
dG86CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKiBAeDogQSAjZ2RvdWJsZQor
ICogQHk6IEEgI2dkb3VibGUKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxfdG8oV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmLCBnZG91YmxlIHgsIGdkb3VibGUgeSk7CisKKy8qKgorICogd2Via2l0X2RvbV9kb21fd2lu
ZG93X21vdmVfYnk6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKiBAeDogQSAj
Z2Zsb2F0CisgKiBAeTogQSAjZ2Zsb2F0CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfbW92ZV9ieShXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CisKKy8qKgorICogd2Via2l0X2RvbV9kb21f
d2luZG93X21vdmVfdG86CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKiBAeDog
QSAjZ2Zsb2F0CisgKiBAeTogQSAjZ2Zsb2F0CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfbW92ZV90byhXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CisKKy8qKgorICogd2Via2l0X2RvbV9k
b21fd2luZG93X3Jlc2l6ZV9ieToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAq
IEB4OiBBICNnZmxvYXQKKyAqIEB5OiBBICNnZmxvYXQKKyAqCisgKiBTaW5jZTogMi4xNgorICov
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNpemVfYnkoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOworCisvKioKKyAqIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19yZXNpemVfdG86CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2lu
ZG93CisgKiBAd2lkdGg6IEEgI2dmbG9hdAorICogQGhlaWdodDogQSAjZ2Zsb2F0CisgKgorICog
U2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3df
cmVzaXplX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHdpZHRoLCBnZmxvYXQg
aGVpZ2h0KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0
eWxlOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICogQGVsZW1lbnQ6IEEgI1dl
YktpdERPTUVsZW1lbnQKKyAqIEBwc2V1ZG9FbGVtZW50OiAoYWxsb3ctbm9uZSk6IEEgI2djaGFy
CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uCisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01D
U1NTdHlsZURlY2xhcmF0aW9uKgord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jb21wdXRlZF9z
dHlsZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVtZW50KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfY2FwdHVyZV9ldmVudHM6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Cisg
KgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93
aW5kb3dfY2FwdHVyZV9ldmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKKworLyoqCisg
KiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVsZWFzZV9ldmVudHM6CisgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVsZWFzZV9ldmVudHMoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lX2VsZW1l
bnQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogU2luY2U6IDIuMTYKKyAq
LworV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgord2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9mcmFtZV9lbGVtZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9vZmZzY3JlZW5fYnVmZmVyaW5nOgorICogQHNlbGY6IEEg
I1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
U2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9vZmZzY3JlZW5fYnVmZmVyaW5nKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisK
Ky8qKgorICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vdXRlcl9oZWlnaHQ6CisgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisg
KiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X291dGVyX2hlaWdodChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAq
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfd2lkdGg6CisgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTaW5jZTog
Mi4xNgorICovCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291
dGVyX3dpZHRoKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9pbm5lcl9oZWlnaHQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9N
V2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTaW5jZTogMi4xNgorICov
CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVyX2hlaWdo
dChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfaW5uZXJfd2lkdGg6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Cisg
KgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRf
QVBJIGdsb25nCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVyX3dpZHRoKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9z
Y3JlZW5feDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBSZXR1cm5z
OiBBICNnbG9uZworICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dl
YmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3goV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl95OgorICogQHNl
bGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zY3JlZW5feShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX2xlZnQ6CisgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBTaW5jZTogMi4x
NgorICovCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVl
bl9sZWZ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9zY3JlZW5fdG9wOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRv
dworICoKKyAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VC
S0lUX0FQSSBnbG9uZword2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fdG9wKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9zY3JvbGxfeDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBSZXR1
cm5zOiBBICNnbG9uZworICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2xvbmcK
K3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Nyb2xsX3goV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF95OgorICog
QHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zY3JvbGxfeShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAq
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV94X29mZnNldDoKKyAqIEBzZWxmOiBBICNX
ZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIFNpbmNl
OiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
cGFnZV94X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV95X29mZnNldDoKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01ET01XaW5kb3cKKyAqCisgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIFNpbmNlOiAyLjE2
CisgKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV95
X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfY2xvc2VkOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwor
ICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jbG9zZWQoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X2xlbmd0aDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBSZXR1cm5z
OiBBICNndWxvbmcKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGd1bG9uZwor
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9sZW5ndGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X25hbWU6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBT
aW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGdjaGFyKgord2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisKKy8qKgorICogd2Via2l0X2Rv
bV9kb21fd2luZG93X3NldF9uYW1lOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwor
ICogQHZhbHVlOiBBICNnY2hhcgorICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X2RvbV9kb21fd2luZG93X3NldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3N0YXR1czoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2No
YXIqCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3RhdHVzOgorICog
QHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICogQHZhbHVlOiBBICNnY2hhcgorICoKKyAq
IFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9kb21fd2luZG93
X3NldF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGVmYXVsdF9zdGF0dXM6Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGdjaGFyKgord2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9kZWZhdWx0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwor
CisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXM6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKiBAdmFsdWU6IEEgI2djaGFyCisgKgorICog
U2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2RvbV93aW5kb3df
c2V0X2RlZmF1bHRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGY6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIGZ1
bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJL
SVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Vs
ZihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfd2luZG93OgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICog
U2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCit3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X3dpbmRvdyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisv
KioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZnJhbWVzOgorICogQHNlbGY6IEEgI1dl
YktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJL
aXRET01ET01XaW5kb3cqCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lcyhXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
b3BlbmVyOgorICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIu
MTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCit3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X29wZW5lcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGFyZW50OgorICogQHNlbGY6IEEgI1dlYktpdERPTURP
TVdpbmRvdworICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9N
V2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01ET01X
aW5kb3cqCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhcmVudChXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9wOgorICog
QHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VC
S0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Rv
cChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfZG9jdW1lbnQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgor
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAq
IFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NRG9jdW1lbnQqCit3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2RvY3VtZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CisK
Ky8qKgorICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW86Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogUmV0dXJuczogQSAjZ2RvdWJs
ZQorICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgZ2RvdWJsZQord2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uOgor
ICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIFJldHVybnM6IEEgI2dsb25n
CisgKgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9vcmllbnRhdGlvbihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOworCisv
KioKKyAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19wb3N0X3VzZXJfbWVzc2FnZToKKyAqIEB3aW5k
b3c6IEEgI1dlYktpdERPTURPTVdpbmRvdworICogQGhhbmRsZXI6IE5hbWUgb2YgdGhlIHVzZXIg
bWVzc2FnZSBoYW5kbGVyLgorICogQG1lc3NhZ2U6IEphdmFTY3JpcHQgdmFsdWUgdG8gYmUgc2Vu
dC4KKyAqCisgKiBSZXR1cm5zOiBXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBzdWNjZXNzZnVsbHkg
c2VudC4KKyAqCisgKiBTaW5jZTogMi44CisgKi8KK2dib29sZWFuIHdlYmtpdF9kb21fZG9tX3dp
bmRvd193ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2UoV2ViS2l0RE9NRE9NV2lu
ZG93KiB3aW5kb3csIGNvbnN0IGdjaGFyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogbWVzc2FnZSk7
CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01ET01XaW5kb3dfaCAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01ET01XaW5kb3dVbnN0YWJsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3dVbnN0YWJs
ZS5oCmluZGV4IDk5NGRmNDEuLmNiZjdlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93VW5z
dGFibGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmgKQEAgLTIyLDg2MSArMjIsOSBA
QAogI2RlZmluZSBXZWJLaXRET01ET01XaW5kb3dVbnN0YWJsZV9oCiAKICNpZmRlZiBXRUJLSVRf
RE9NX1VTRV9VTlNUQUJMRV9BUEkKLQotI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01DdXN0
b21VbnN0YWJsZS5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLXVuc3Rh
YmxlLmg+Ci0KLUdfQkVHSU5fREVDTFMKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X3NlbGVjdGlvbjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgotICoKLSAq
IFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01TZWxlY3Rp
b24qCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19mb2N1czoKLSAqIEBz
ZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0q
Ki8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2luZG93X2ZvY3VzKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2JsdXI6
Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0
YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19ibHVyKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93
X2Nsb3NlOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFN0YWJpbGl0
eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5kb3df
Y2xvc2UoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfcHJpbnQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9t
X3dpbmRvd19wcmludChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19zdG9wOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwot
ICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRf
ZG9tX2RvbV93aW5kb3dfc3RvcChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAq
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19hbGVydDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01X
aW5kb3cKLSAqIEBtZXNzYWdlOiBBICNnY2hhcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUK
LSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfYWxlcnQoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSk7Ci0KLS8qKgotICogd2Vi
a2l0X2RvbV9kb21fd2luZG93X2NvbmZpcm06Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2lu
ZG93Ci0gKiBAbWVzc2FnZTogQSAjZ2NoYXIKLSAqCi0gKiBSZXR1cm5zOiBBICNnYm9vbGVhbgot
ICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Vi
a2l0X2RvbV9kb21fd2luZG93X2NvbmZpcm0oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25z
dCBnY2hhciogbWVzc2FnZSk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X3Byb21w
dDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEBtZXNzYWdlOiBBICNnY2hh
cgotICogQGRlZmF1bHRWYWx1ZTogQSAjZ2NoYXIKLSAqCi0gKiBSZXR1cm5zOiBBICNnY2hhcgot
ICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnY2hhcioKLXdlYmtp
dF9kb21fZG9tX3dpbmRvd19wcm9tcHQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBn
Y2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSk7Ci0KLS8qKgotICogd2Vi
a2l0X2RvbV9kb21fd2luZG93X2ZpbmQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93
Ci0gKiBAc3RyaW5nOiBBICNnY2hhcgotICogQGNhc2VTZW5zaXRpdmU6IEEgI2dib29sZWFuCi0g
KiBAYmFja3dhcmRzOiBBICNnYm9vbGVhbgotICogQHdyYXA6IEEgI2dib29sZWFuCi0gKiBAd2hv
bGVXb3JkOiBBICNnYm9vbGVhbgotICogQHNlYXJjaEluRnJhbWVzOiBBICNnYm9vbGVhbgotICog
QHNob3dEaWFsb2c6IEEgI2dib29sZWFuCi0gKgotICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KLSAq
Ci0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtp
dF9kb21fZG9tX3dpbmRvd19maW5kKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2No
YXIqIHN0cmluZywgZ2Jvb2xlYW4gY2FzZVNlbnNpdGl2ZSwgZ2Jvb2xlYW4gYmFja3dhcmRzLCBn
Ym9vbGVhbiB3cmFwLCBnYm9vbGVhbiB3aG9sZVdvcmQsIGdib29sZWFuIHNlYXJjaEluRnJhbWVz
LCBnYm9vbGVhbiBzaG93RGlhbG9nKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
c2Nyb2xsX2J5OgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICogQHg6IEEgI2dk
b3VibGUKLSAqIEB5OiBBICNnZG91YmxlCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiov
Ci1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxfYnkoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZG91YmxlIHgsIGdkb3VibGUgeSk7Ci0KLS8qKgotICogd2Vi
a2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF90bzoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01X
aW5kb3cKLSAqIEB4OiBBICNnZG91YmxlCi0gKiBAeTogQSAjZ2RvdWJsZQotICoKLSAqIFN0YWJp
bGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5k
b3dfc2Nyb2xsX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBnZG91Ymxl
IHkpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGw6Ci0gKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKiBAeDogQSAjZ2RvdWJsZQotICogQHk6IEEgI2dkb3Vi
bGUKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X2RvbV9kb21fd2luZG93X3Njcm9sbChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3Vi
bGUgeCwgZ2RvdWJsZSB5KTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfbW92ZV9i
eToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEB4OiBBICNnZmxvYXQKLSAq
IEB5OiBBICNnZmxvYXQKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9B
UEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2luZG93X21vdmVfYnkoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19tb3ZlX3RvOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICogQHg6IEEg
I2dmbG9hdAotICogQHk6IEEgI2dmbG9hdAotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoq
LwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfbW92ZV90byhXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7Ci0KLS8qKgotICogd2Via2l0
X2RvbV9kb21fd2luZG93X3Jlc2l6ZV9ieToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5k
b3cKLSAqIEB4OiBBICNnZmxvYXQKLSAqIEB5OiBBICNnZmxvYXQKLSAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2luZG93X3Jl
c2l6ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7Ci0K
LS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X3Jlc2l6ZV90bzoKLSAqIEBzZWxmOiBBICNX
ZWJLaXRET01ET01XaW5kb3cKLSAqIEB3aWR0aDogQSAjZ2Zsb2F0Ci0gKiBAaGVpZ2h0OiBBICNn
ZmxvYXQKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAot
d2Via2l0X2RvbV9kb21fd2luZG93X3Jlc2l6ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYs
IGdmbG9hdCB3aWR0aCwgZ2Zsb2F0IGhlaWdodCk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21f
d2luZG93X21hdGNoX21lZGlhOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICog
QHF1ZXJ5OiBBICNnY2hhcgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NTWVkaWFRdWVyeUxpc3QKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NTWVkaWFRdWVyeUxpc3QqCi13ZWJraXRfZG9tX2RvbV93aW5kb3df
bWF0Y2hfbWVkaWEoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogcXVlcnkp
OwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY29tcHV0ZWRfc3R5bGU6Ci0g
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKiBAZWxlbWVudDogQSAjV2ViS2l0RE9N
RWxlbWVudAotICogQHBzZXVkb0VsZW1lbnQ6IChhbGxvdy1ub25lKTogQSAjZ2NoYXIKLSAqCi0g
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRp
b24KLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbioKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY29tcHV0ZWRf
c3R5bGUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBXZWJLaXRET01FbGVtZW50KiBlbGVtZW50
LCBjb25zdCBnY2hhciogcHNldWRvRWxlbWVudCk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21f
d2luZG93X3dlYmtpdF9jb252ZXJ0X3BvaW50X2Zyb21fcGFnZV90b19ub2RlOgotICogQHNlbGY6
IEEgI1dlYktpdERPTURPTVdpbmRvdwotICogQG5vZGU6IEEgI1dlYktpdERPTU5vZGUKLSAqIEBw
OiBBICNXZWJLaXRET01XZWJLaXRQb2ludAotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NV2ViS2l0UG9pbnQKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0q
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NV2ViS2l0UG9pbnQqCi13ZWJraXRfZG9tX2RvbV93aW5k
b3dfd2Via2l0X2NvbnZlcnRfcG9pbnRfZnJvbV9wYWdlX3RvX25vZGUoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlLCBXZWJLaXRET01XZWJLaXRQb2ludCogcCk7
Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9jb252ZXJ0X3BvaW50X2Zy
b21fbm9kZV90b19wYWdlOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICogQG5v
ZGU6IEEgI1dlYktpdERPTU5vZGUKLSAqIEBwOiBBICNXZWJLaXRET01XZWJLaXRQb2ludAotICoK
LSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NV2ViS2l0UG9pbnQKLSAq
Ci0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NV2ViS2l0
UG9pbnQqCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfd2Via2l0X2NvbnZlcnRfcG9pbnRfZnJvbV9u
b2RlX3RvX3BhZ2UoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2Rl
LCBXZWJLaXRET01XZWJLaXRQb2ludCogcCk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2NhbmNlbF9hbmltYXRpb25fZnJhbWU6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2lu
ZG93Ci0gKiBAaWQ6IEEgI2dsb25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1X
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19jYW5jZWxfYW5pbWF0aW9uX2Zy
YW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2xvbmcgaWQpOwotCi0vKioKLSAqIHdlYmtp
dF9kb21fZG9tX3dpbmRvd193ZWJraXRfY2FuY2VsX2FuaW1hdGlvbl9mcmFtZToKLSAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEBpZDogQSAjZ2xvbmcKLSAqCi0gKiBTdGFiaWxp
dHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2luZG93
X3dlYmtpdF9jYW5jZWxfYW5pbWF0aW9uX2ZyYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwg
Z2xvbmcgaWQpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd193ZWJraXRfY2FuY2Vs
X3JlcXVlc3RfYW5pbWF0aW9uX2ZyYW1lOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRv
dwotICogQGlkOiBBICNnbG9uZwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfd2Via2l0X2NhbmNlbF9yZXF1ZXN0
X2FuaW1hdGlvbl9mcmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdsb25nIGlkKTsKLQot
LyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2FwdHVyZV9ldmVudHM6Ci0gKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1X
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19jYXB0dXJlX2V2ZW50cyhXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19y
ZWxlYXNlX2V2ZW50czoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBT
dGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21f
d2luZG93X3JlbGVhc2VfZXZlbnRzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgot
ICogd2Via2l0X2RvbV9kb21fd2luZG93X2NsZWFyX3RpbWVvdXQ6Ci0gKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93Ci0gKiBAaGFuZGxlOiBBICNnbG9uZwotICoKLSAqIFN0YWJpbGl0eTog
VW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfY2xl
YXJfdGltZW91dChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdsb25nIGhhbmRsZSk7Ci0KLS8q
KgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2NsZWFyX2ludGVydmFsOgotICogQHNlbGY6IEEg
I1dlYktpdERPTURPTVdpbmRvdwotICogQGhhbmRsZTogQSAjZ2xvbmcKLSAqCi0gKiBTdGFiaWxp
dHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2luZG93
X2NsZWFyX2ludGVydmFsKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2xvbmcgaGFuZGxlKTsK
LQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYXRvYjoKLSAqIEBzZWxmOiBBICNXZWJL
aXRET01ET01XaW5kb3cKLSAqIEBzdHJpbmc6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNHRXJyb3IK
LSAqCi0gKiBSZXR1cm5zOiBBICNnY2hhcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoq
LwotV0VCS0lUX0FQSSBnY2hhcioKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19hdG9iKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHN0cmluZywgR0Vycm9yKiogZXJyb3IpOwot
Ci0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19idG9hOgotICogQHNlbGY6IEEgI1dlYktp
dERPTURPTVdpbmRvdwotICogQHN0cmluZzogQSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgot
ICoKLSAqIFJldHVybnM6IEEgI2djaGFyCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgotd2Via2l0X2RvbV9kb21fd2luZG93X2J0b2EoV2ViS2l0RE9N
RE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogc3RyaW5nLCBHRXJyb3IqKiBlcnJvcik7Ci0K
LS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW46Ci0gKiBAc2VsZjogQSAj
V2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNX
ZWJLaXRET01TY3JlZW4KLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NU2NyZWVuKgotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW4oV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X2hpc3Rvcnk6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IaXN0b3J5Ci0gKgotICogU3RhYmls
aXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhpc3RvcnkqCi13ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2hpc3RvcnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQot
LyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2xvY2F0aW9uYmFyOgotICogQHNlbGY6
IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NQmFyUHJvcAotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01CYXJQcm9wKgotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9sb2Nh
dGlvbmJhcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfbWVudWJhcjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cK
LSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUJhclByb3AKLSAq
Ci0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQmFyUHJv
cCoKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbWVudWJhcihXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGVyc29uYWxiYXI6
Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01CYXJQcm9wCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUJhclByb3AqCi13ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3BlcnNvbmFsYmFyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICog
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JvbGxiYXJzOgotICogQHNlbGY6IEEgI1dlYktp
dERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NQmFyUHJvcAotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01CYXJQcm9wKgotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JvbGxiYXJzKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9zdGF0dXNiYXI6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01CYXJQcm9wCi0gKgotICogU3Rh
YmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUJhclByb3AqCi13ZWJr
aXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1c2JhcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
OwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9vbGJhcjoKLSAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUJhclByb3AKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NQmFyUHJvcCoKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9v
bGJhcihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfbmF2aWdhdG9yOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwot
ICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTmF2aWdhdG9yCi0g
KgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5hdmln
YXRvcioKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbmF2aWdhdG9yKFdlYktpdERPTURPTVdp
bmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jbGllbnRf
aW5mb3JtYXRpb246Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01OYXZpZ2F0b3IKLSAqCi0gKiBTdGFi
aWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTmF2aWdhdG9yKgotd2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9jbGllbnRfaW5mb3JtYXRpb24oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lX2Vs
ZW1lbnQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKgotICogU3RhYmlsaXR5OiBV
bnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCi13ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X2ZyYW1lX2VsZW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQot
LyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29mZnNjcmVlbl9idWZmZXJpbmc6Ci0g
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
LXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb2Zmc2NyZWVuX2J1ZmZlcmluZyhXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0
ZXJfaGVpZ2h0OgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVy
bnM6IEEgI2dsb25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJ
IGdsb25nCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX2hlaWdodChXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0
ZXJfd2lkdGg6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJu
czogQSAjZ2xvbmcKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkg
Z2xvbmcKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfd2lkdGgoV2ViS2l0RE9NRE9N
V2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVy
X2hlaWdodDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5z
OiBBICNnbG9uZwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBn
bG9uZwotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl9oZWlnaHQoV2ViS2l0RE9NRE9N
V2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVy
X3dpZHRoOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6
IEEgI2dsb25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGds
b25nCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVyX3dpZHRoKFdlYktpdERPTURPTVdp
bmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5f
eDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiBBICNn
bG9uZwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnbG9uZwot
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5feChXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3k6Ci0gKiBA
c2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogQSAjZ2xvbmcKLSAq
Ci0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2xvbmcKLXdlYmtpdF9k
b21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3koV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQot
LyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl9sZWZ0OgotICogQHNlbGY6
IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6IEEgI2dsb25nCi0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdsb25nCi13ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X3NjcmVlbl9sZWZ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8q
KgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fdG9wOgotICogQHNlbGY6IEEg
I1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6IEEgI2dsb25nCi0gKgotICogU3Rh
YmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdsb25nCi13ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3NjcmVlbl90b3AoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0g
KiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF94OgotICogQHNlbGY6IEEgI1dlYktp
dERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6IEEgI2dsb25nCi0gKgotICogU3RhYmlsaXR5
OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdsb25nCi13ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X3Njcm9sbF94KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9zY3JvbGxfeToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01X
aW5kb3cKLSAqCi0gKiBSZXR1cm5zOiBBICNnbG9uZwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFi
bGUKLSoqLwotV0VCS0lUX0FQSSBnbG9uZwotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3Jv
bGxfeShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfcGFnZV94X29mZnNldDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5k
b3cKLSAqCi0gKiBSZXR1cm5zOiBBICNnbG9uZwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUK
LSoqLwotV0VCS0lUX0FQSSBnbG9uZwotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYWdlX3hf
b2Zmc2V0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9wYWdlX3lfb2Zmc2V0OgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdp
bmRvdwotICoKLSAqIFJldHVybnM6IEEgI2dsb25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCi1XRUJLSVRfQVBJIGdsb25nCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2Vf
eV9vZmZzZXQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X2Nsb3NlZDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cK
LSAqCi0gKiBSZXR1cm5zOiBBICNnYm9vbGVhbgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUK
LSoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jbG9z
ZWQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2xlbmd0aDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0g
KiBSZXR1cm5zOiBBICNndWxvbmcKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdF
QktJVF9BUEkgZ3Vsb25nCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2xlbmd0aChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
bmFtZToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiBB
ICNnY2hhcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnY2hh
cioKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfbmFtZToKLSAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEB2YWx1ZTogQSAjZ2NoYXIKLSAqCi0gKiBTdGFi
aWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9kb21fd2lu
ZG93X3NldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1czoKLSAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiBBICNnY2hhcgotICoKLSAq
IFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnY2hhcioKLXdlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgot
ICogd2Via2l0X2RvbV9kb21fd2luZG93X3NldF9zdGF0dXM6Ci0gKiBAc2VsZjogQSAjV2ViS2l0
RE9NRE9NV2luZG93Ci0gKiBAdmFsdWU6IEEgI2djaGFyCi0gKgotICogU3RhYmlsaXR5OiBVbnN0
YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3Rh
dHVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKLQotLyoq
Ci0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2RlZmF1bHRfc3RhdHVzOgotICogQHNlbGY6
IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6IEEgI2djaGFyCi0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdjaGFyKgotd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9kZWZhdWx0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwot
Ci0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXM6Ci0gKiBA
c2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKiBAdmFsdWU6IEEgI2djaGFyCi0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9t
X3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Vs
ZjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFN0YWJpbGl0eTogVW5z
dGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCi13ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X3NlbGYoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3dpbmRvdzoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01E
T01XaW5kb3cKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURP
TVdpbmRvdwotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01ET01XaW5kb3cqCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3dpbmRvdyhXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
ZnJhbWVzOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogU3RhYmlsaXR5
OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKLXdlYmtpdF9k
b21fZG9tX3dpbmRvd19nZXRfZnJhbWVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8q
KgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vcGVuZXI6Ci0gKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01ET01XaW5kb3cKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NRE9NV2luZG93Kgotd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vcGVuZXIo
V2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3BhcmVudDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0gKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFN0
YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCi13
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhcmVudChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
OwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9wOgotICogQHNlbGY6IEEg
I1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9w
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9kb2N1bWVudDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKLSAqCi0g
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50Kgot
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kb2N1bWVudChXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc3R5bGVfbWVkaWE6Ci0g
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBBICNXZWJLaXRET01TdHlsZU1lZGlhCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVN0eWxlTWVkaWEqCi13ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3N0eWxlX21lZGlhKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgot
ICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW86Ci0gKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczogQSAjZ2RvdWJsZQotICoK
LSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnZG91YmxlCi13ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2RldmljZV9waXhlbF9yYXRpbyhXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfYXBwbGljYXRpb25f
Y2FjaGU6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01BcHBsaWNhdGlvbkNhY2hlCi0gKgotICog
U3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTUFwcGxpY2F0
aW9uQ2FjaGUqCi13ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2FwcGxpY2F0aW9uX2NhY2hlKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9zZXNzaW9uX3N0b3JhZ2U6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0g
KiBAZXJyb3I6ICNHRXJyb3IKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dl
YktpdERPTVN0b3JhZ2UKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NU3RvcmFnZSoKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Vzc2lvbl9z
dG9yYWdlKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwotCi0vKioK
LSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbG9jYWxfc3RvcmFnZToKLSAqIEBzZWxmOiBB
ICNXZWJLaXRET01ET01XaW5kb3cKLSAqIEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NU3RvcmFnZQotICoKLSAqIFN0YWJpbGl0eTog
VW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01TdG9yYWdlKgotd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9sb2NhbF9zdG9yYWdlKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3JpZW50
YXRpb246Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93Ci0gKgotICogUmV0dXJuczog
QSAjZ2xvbmcKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2xv
bmcKLXdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3JpZW50YXRpb24oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BlcmZvcm1h
bmNlOgotICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6ICh0
cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NUGVyZm9ybWFuY2UKLSAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUGVyZm9ybWFuY2UqCi13ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X3BlcmZvcm1hbmNlKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7
Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zcGVlY2hfc3ludGhlc2lzOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwotICoKLSAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NU3BlZWNoU3ludGhlc2lzCi0gKgotICogU3RhYmlsaXR5OiBV
bnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVNwZWVjaFN5bnRoZXNpcyoKLXdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfc3BlZWNoX3N5bnRoZXNpcyhXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwotCi0KLUdfRU5EX0RFQ0xTCi0KKyNkZWZpbmUgX19XRUJLSVRET01fSF9JTlNJREVf
XworI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01ET01XaW5kb3cuaD4KKyN1bmRlZiBfX1dF
QktJVERPTV9IX0lOU0lERV9fCiAjZW5kaWYgLyogV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJ
ICovCisKICNlbmRpZiAvKiBXZWJLaXRET01ET01XaW5kb3dVbnN0YWJsZV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCmluZGV4IDcxYTY1MjIu
LmUyODJhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuY3BwCkBAIC0zMjUsMTMgKzMyNSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAg
ICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Nv
bXBhdF9tb2RlKHNlbGYpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX1dFQktJVF9J
U19GVUxMX1NDUkVFTjoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2lzX2Z1bGxfc2NyZWVuKHNlbGYpKTsKKyAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0
X2lzX2Z1bGxzY3JlZW4oc2VsZikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfV0VC
S0lUX0ZVTExfU0NSRUVOX0tFWUJPQVJEX0lOUFVUX0FMTE9XRUQ6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsX3Nj
cmVlbl9rZXlib2FyZF9pbnB1dF9hbGxvd2VkKHNlbGYpKTsKKyAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5f
a2V5Ym9hcmRfaW5wdXRfYWxsb3dlZChzZWxmKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UFJPUF9XRUJLSVRfQ1VSUkVOVF9GVUxMX1NDUkVFTl9FTEVNRU5UOgotICAgICAgICBnX3ZhbHVl
X3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9jdXJyZW50
X2Z1bGxfc2NyZWVuX2VsZW1lbnQoc2VsZikpOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9jdXJyZW50X2Z1bGxzY3JlZW5f
ZWxlbWVudChzZWxmKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9XRUJLSVRfRlVM
TFNDUkVFTl9FTkFCTEVEOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbmFibGVkKHNlbGYpKTsKQEAg
LTEzMzgsNyArMTMzOCw3IEBAIGdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfaGFzX2ZvY3Vz
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
d2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfY2FuY2VsX2Z1bGxfc2NyZWVuKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKQordm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X3dlYmtpdF9jYW5jZWxfZnVs
bHNjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKHNlbGYpKTsKQEAgLTE4NTQsNyArMTg1NCw3IEBAIGdjaGFyKiB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9jb21wYXRfbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZikKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1nYm9vbGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJr
aXRfaXNfZnVsbF9zY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCitnYm9vbGVhbiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfaXNfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1bWVu
dCogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFM
U0UpOwpAQCAtMTg2Myw3ICsxODYzLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfd2Via2l0X2lzX2Z1bGxfc2NyZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLWdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtp
dF9mdWxsX3NjcmVlbl9rZXlib2FyZF9pbnB1dF9hbGxvd2VkKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKQorZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5f
a2V5Ym9hcmRfaW5wdXRfYWxsb3dlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZikKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFMU0UpOwpAQCAtMTg3Miw3ICsx
ODcyLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxfc2Ny
ZWVuX2tleWJvYXJkX2lucHV0X2FsbG93ZWQoV2ViS2kKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfY3VycmVu
dF9mdWxsX3NjcmVlbl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQorV2ViS2l0RE9N
RWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVl
bl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRG9jdW1lbnQuaAppbmRleCA0MWY0OTQ5Li5mYmI4ZmFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCkBAIC04MzksNiArODM5LDI0MyBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hY3RpdmVfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiBXRUJLSVRfQVBJIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29tcGF0
X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCisvKioKKyAqIHdlYmtpdF9kb21fZG9j
dW1lbnRfY2FyZXRfcmFuZ2VfZnJvbV9wb2ludDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAorICogQHg6IEEgI2dsb25nCisgKiBAeTogQSAjZ2xvbmcKKyAqCisgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVJhbmdlCisgKgorICogU2luY2U6IDIuMTYKKyoq
LworV0VCS0lUX0FQSSBXZWJLaXRET01SYW5nZSoKK3dlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRf
cmFuZ2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcg
eSk7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfY2FuY2VsX2Z1bGxzY3Jl
ZW46CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgor
KiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2NhbmNlbF9m
dWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9t
X2RvY3VtZW50X3dlYmtpdF9leGl0X2Z1bGxzY3JlZW46CisgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF9kb21fZG9jdW1lbnRfd2Via2l0X2V4aXRfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9jazoK
KyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8K
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9jayhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfY29udGVudF90eXBlOgorICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgorICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIGdj
aGFyKgord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kaXI6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgZ2NoYXIqCit3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9k
b21fZG9jdW1lbnRfc2V0X2RpcjoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAorICog
QHZhbHVlOiBBICNnY2hhcgorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dl
YmtpdF9pc19mdWxsc2NyZWVuOgorICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgor
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfaXNfZnVsbHNjcmVl
bihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fa2V5Ym9hcmRfaW5wdXRfYWxsb3dlZDoKKyAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fa2V5Ym9hcmRfaW5wdXRfYWxsb3dlZChXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Vi
a2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50OgorICogQHNlbGY6IEEgI1dlYktpdERPTURv
Y3VtZW50CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
Kgord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVt
ZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbmFibGVkOgorICogQHNlbGY6IEEgI1dlYktpdERP
TURvY3VtZW50CisgKgorICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBTaW5jZTogMi4x
NgorKiovCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJr
aXRfZnVsbHNjcmVlbl9lbmFibGVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKKworLyoqCisg
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbGVtZW50OgorICog
QHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lU
X0FQSSBXZWJLaXRET01FbGVtZW50Kgord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1
bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfcG9pbnRlcl9sb2NrX2VsZW1lbnQ6CisgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTUVsZW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIFdlYktp
dERPTUVsZW1lbnQqCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2ludGVyX2xvY2tfZWxlbWVu
dChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfdmlzaWJpbGl0eV9zdGF0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAor
ICoKKyAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lU
X0FQSSBnY2hhcioKK3dlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Zpc2liaWxpdHlfc3RhdGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2hpZGRlbjoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBnYm9vbGVh
bgord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlkZGVuKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdDoKKyAq
IEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgor
KiovCitXRUJLSVRfQVBJIFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50Kgord2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfY3VycmVudF9zY3JpcHQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOworCisv
KioKKyAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X29yaWdpbjoKKyAqIEBzZWxmOiBBICNXZWJL
aXRET01Eb2N1bWVudAorICoKKyAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogU2luY2U6IDIu
MTYKKyoqLworV0VCS0lUX0FQSSBnY2hhcioKK3dlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X29yaWdp
bihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfc2Nyb2xsaW5nX2VsZW1lbnQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQK
KyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAq
CisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCit3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9zY3JvbGxpbmdfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW46CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogU2luY2U6IDIuMTYKKyoqLwor
V0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK3dlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9maXJzdF9lbGVtZW50X2NoaWxkOgorICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRE
T01FbGVtZW50CisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01F
bGVtZW50Kgord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZmlyc3RfZWxlbWVudF9jaGlsZChXZWJL
aXRET01Eb2N1bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
bGFzdF9lbGVtZW50X2NoaWxkOgorICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgor
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICog
U2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgord2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50
OgorICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgorICogUmV0dXJuczogQSAjZ3Vs
b25nCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBndWxvbmcKK3dlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NRG9jdW1lbnRfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21l
bnQuaAppbmRleCBiMmY3OGMwLi5jOGUyMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJh
Z21lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuaApAQCAtNDksNiArNDksODggQEAg
c3RydWN0IF9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Q2xhc3MgewogV0VCS0lUX0FQSSBHVHlw
ZQogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfdHlwZSh2b2lkKTsKIAorLyoqCisg
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9lbGVtZW50X2J5X2lkOgorICogQHNl
bGY6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqIEBlbGVtZW50SWQ6IEEgI2djaGFy
CisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50Cisg
KgorICogU2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgord2Vi
a2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudElkKTsKKworLyoqCisgKiB3
ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yOgorICogQHNlbGY6IEEg
I1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqIEBzZWxlY3RvcnM6IEEgI2djaGFyCisgKiBA
ZXJyb3I6ICNHRXJyb3IKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTUVsZW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIFdlYktpdERP
TUVsZW1lbnQqCit3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yKFdl
YktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdF
cnJvcioqIGVycm9yKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1
ZXJ5X3NlbGVjdG9yX2FsbDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50
CisgKiBAc2VsZWN0b3JzOiBBICNnY2hhcgorICogQGVycm9yOiAjR0Vycm9yCisgKgorICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAorICoKKyAqIFNpbmNl
OiAyLjE2CisgKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxpc3QqCit3ZWJraXRfZG9tX2Rv
Y3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yX2FsbChXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CisKKy8q
KgorICogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRyZW46CisgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudAorICoKKyAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBTaW5jZTogMi4xNgor
ICovCitXRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgord2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2Vs
Zik7CisKKy8qKgorICogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfZmlyc3RfZWxl
bWVudF9jaGlsZDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgor
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICog
U2luY2U6IDIuMTYKKyAqLworV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgord2Via2l0X2Rv
bV9kb2N1bWVudF9mcmFnbWVudF9nZXRfZmlyc3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdt
ZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudAorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
RWxlbWVudAorICoKKyAqIFNpbmNlOiAyLjE2CisgKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NRWxl
bWVudCoKK3dlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xhc3RfZWxlbWVudF9jaGls
ZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9t
X2RvY3VtZW50X2ZyYWdtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50OgorICogQHNlbGY6IEEg
I1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAq
CisgKiBTaW5jZTogMi4xNgorICovCitXRUJLSVRfQVBJIGd1bG9uZword2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudEZy
YWdtZW50KiBzZWxmKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdERPTURvY3Vt
ZW50RnJhZ21lbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50VW5zdGFi
bGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudFVuc3RhYmxlLmgKaW5kZXggMGE3Yzk5OC4uMTlh
NjBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50VW5zdGFibGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50RnJhZ21lbnRVbnN0YWJsZS5oCkBAIC0yMiw5NSArMjIsOSBAQAogI2RlZmlu
ZSBXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50VW5zdGFibGVfaAogCiAjaWZkZWYgV0VCS0lUX0RP
TV9VU0VfVU5TVEFCTEVfQVBJCi0KLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5l
cy11bnN0YWJsZS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfZWxlbWVudF9ieV9pZDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01E
b2N1bWVudEZyYWdtZW50Ci0gKiBAZWxlbWVudElkOiBBICNnY2hhcgotICoKLSAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAqIFN0YWJpbGl0eTog
VW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgotd2Via2l0X2RvbV9k
b2N1bWVudF9mcmFnbWVudF9nZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudElkKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9t
X2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yOgotICogQHNlbGY6IEEgI1dlYktpdERP
TURvY3VtZW50RnJhZ21lbnQKLSAqIEBzZWxlY3RvcnM6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNH
RXJyb3IKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1l
bnQKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
RWxlbWVudCoKLXdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3IoV2Vi
S2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vy
cm9yKiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVl
cnlfc2VsZWN0b3JfYWxsOgotICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQK
LSAqIEBzZWxlY3RvcnM6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNHRXJyb3IKLSAqCi0gKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5vZGVMaXN0Ci0gKgotICogU3RhYmls
aXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0Kgotd2Via2l0
X2RvbV9kb2N1bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3Ip
OwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2NoaWxkcmVuOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKLSAqCi0gKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCi0gKgotICogU3RhYmls
aXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgot
d2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVu
dF9nZXRfZmlyc3RfZWxlbWVudF9jaGlsZDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dEZyYWdtZW50Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01F
bGVtZW50Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUVsZW1lbnQqCi13ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9maXJzdF9lbGVt
ZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdl
YmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xhc3RfZWxlbWVudF9jaGlsZDoKLSAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Ci0gKgotICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCi13ZWJraXRfZG9tX2RvY3VtZW50
X2ZyYWdtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVu
dCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hp
bGRfZWxlbWVudF9jb3VudDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50
Ci0gKgotICogUmV0dXJuczogQSAjZ3Vsb25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQot
KiovCi1XRUJLSVRfQVBJIGd1bG9uZwotd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRf
Y2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKLQot
Ci1HX0VORF9ERUNMUwotCisjZGVmaW5lIF9fV0VCS0lURE9NX0hfSU5TSURFX18KKyNpbmNsdWRl
IDx3ZWJraXRkb20vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oPgorI3VuZGVmIF9fV0VCS0lU
RE9NX0hfSU5TSURFX18KICNlbmRpZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkgKi8K
KwogI2VuZGlmIC8qIFdlYktpdERPTURvY3VtZW50RnJhZ21lbnRVbnN0YWJsZV9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURvY3VtZW50VW5zdGFibGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRVbnN0YWJsZS5o
CmluZGV4IDgzNTdkMjIuLmM5OTM4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRVbnN0YWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRVbnN0YWJsZS5oCkBAIC0yMiwyNTAgKzIyLDkgQEAKICNk
ZWZpbmUgV2ViS2l0RE9NRG9jdW1lbnRVbnN0YWJsZV9oCiAKICNpZmRlZiBXRUJLSVRfRE9NX1VT
RV9VTlNUQUJMRV9BUEkKLQotI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLXVu
c3RhYmxlLmg+Ci0KLUdfQkVHSU5fREVDTFMKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50
X2NhcmV0X3JhbmdlX2Zyb21fcG9pbnQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQK
LSAqIEB4OiBBICNnbG9uZwotICogQHk6IEEgI2dsb25nCi0gKgotICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUK
LSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01SYW5nZSoKLXdlYmtpdF9kb21fZG9jdW1lbnRfY2Fy
ZXRfcmFuZ2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xv
bmcgeSk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfY2FuY2VsX2Z1bGxf
c2NyZWVuOgotICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICogU3RhYmlsaXR5
OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9jdW1lbnRfd2Vi
a2l0X2NhbmNlbF9mdWxsX3NjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgot
ICogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuOgotICogQHNlbGY6
IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1X
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2V4aXRfZnVsbHNjcmVl
bihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVu
dF9leGl0X3BvaW50ZXJfbG9jazoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAotICoK
LSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9t
X2RvY3VtZW50X2V4aXRfcG9pbnRlcl9sb2NrKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKLQot
LyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb250ZW50X3R5cGU6Ci0gKiBAc2VsZjog
QSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAqCi0gKiBSZXR1cm5zOiBBICNnY2hhcgotICoKLSAqIFN0
YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnY2hhcioKLXdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgot
ICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGlyOgotICogQHNlbGY6IEEgI1dlYktpdERPTURv
Y3VtZW50Ci0gKgotICogUmV0dXJuczogQSAjZ2NoYXIKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3Rh
YmxlCi0qKi8KLVdFQktJVF9BUEkgZ2NoYXIqCi13ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kaXIo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRf
c2V0X2RpcjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAotICogQHZhbHVlOiBBICNn
Y2hhcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0
X2lzX2Z1bGxfc2NyZWVuOgotICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxs
X3NjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfd2Via2l0X2Z1bGxfc2NyZWVuX2tleWJvYXJkX2lucHV0X2FsbG93ZWQ6Ci0g
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAqCi0gKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgot
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxfc2NyZWVuX2tleWJvYXJkX2lucHV0
X2FsbG93ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X3dlYmtpdF9jdXJyZW50X2Z1bGxfc2NyZWVuX2VsZW1lbnQ6Ci0gKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTUVsZW1lbnQKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKLXdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtp
dF9jdXJyZW50X2Z1bGxfc2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwot
Ci0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2VuYWJs
ZWQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAqCi0gKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgotd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVu
dAotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01F
bGVtZW50Kgotd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVu
dChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfcG9pbnRlcl9sb2NrX2VsZW1lbnQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnQKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQK
LSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxl
bWVudCoKLXdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BvaW50ZXJfbG9ja19lbGVtZW50KFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF92
aXNpYmlsaXR5X3N0YXRlOgotICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICog
UmV0dXJuczogQSAjZ2NoYXIKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCi13ZWJraXRfZG9tX2RvY3VtZW50X2dldF92aXNpYmlsaXR5X3N0YXRlKFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9oaWRkZW46Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAqCi0gKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgotd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlkZGVuKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3Nj
cmlwdDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAotICoKLSAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKLSAqCi0gKiBTdGFi
aWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1l
bnQqCi13ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdChXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3JpZ2luOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICogUmV0dXJuczogQSAjZ2NoYXIK
LSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2NoYXIqCi13ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwotCi0v
KioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Njcm9sbGluZ19lbGVtZW50OgotICogQHNl
bGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01FbGVtZW50Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCi13ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zY3Jv
bGxpbmdfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7Ci0KLS8qKgotICogd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW46Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnQKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xs
ZWN0aW9uCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKgotd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW4oV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2ZpcnN0X2VsZW1lbnRfY2hpbGQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKLSAq
Ci0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKLSAqCi0g
KiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoK
LXdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xhc3RfZWxl
bWVudF9jaGlsZDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAotICoKLSAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAqIFN0YWJpbGl0
eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgotd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50
OgotICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50Ci0gKgotICogUmV0dXJuczogQSAjZ3Vs
b25nCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGd1bG9uZwot
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7Ci0KLQotR19FTkRfREVDTFMKLQorI2RlZmluZSBfX1dFQktJVERPTV9IX0lO
U0lERV9fCisjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTURvY3VtZW50Lmg+CisjdW5kZWYg
X19XRUJLSVRET01fSF9JTlNJREVfXwogI2VuZGlmIC8qIFdFQktJVF9ET01fVVNFX1VOU1RBQkxF
X0FQSSAqLworCiAjZW5kaWYgLyogV2ViS2l0RE9NRG9jdW1lbnRVbnN0YWJsZV9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcAppbmRleCAyY2U1ZGM3
Li43YmFkOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVu
dC5jcHAKQEAgLTkxOCwxNCArOTE4LDYgQEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9lbGVtZW50X3dl
YmtpdF9tYXRjaGVzX3NlbGVjdG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnMKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfcmVxdWVz
dF9mdWxsX3NjcmVlbihXZWJLaXRET01FbGVtZW50KiBzZWxmLCBndXNob3J0IGZsYWdzKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT53ZWJraXRSZXF1ZXN0RnVs
bFNjcmVlbihmbGFncyk7Ci19Ci0KIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1
ZXN0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRWxlbWVudCogc2VsZikKIHsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRWxlbWVudC5oCmluZGV4IGQ1MDkyZmMuLjJkZmIxODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5oCkBAIC01MCw2ICs1MCwxMSBAQCBXRUJLSVRf
QVBJIEdUeXBlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgorICog
V0VCS0lUX0RPTV9FTEVNRU5UX0FMTE9XX0tFWUJPQVJEX0lOUFVUOgorICovCisjZGVmaW5lIFdF
QktJVF9ET01fRUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVCAxCisKKy8qKgogICogd2Via2l0
X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGU6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVu
dAogICogQG5hbWU6IEEgI2djaGFyCkBAIC02MzgsNiArNjQzLDEzMyBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2xhc3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIFdF
QktJVF9BUEkgZ3Vsb25nCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291
bnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKKy8qKgorICogd2Via2l0X2RvbV9lbGVtZW50
X21hdGNoZXM6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAorICogQHNlbGVjdG9yczog
QSAjZ2NoYXIKKyAqIEBlcnJvcjogI0dFcnJvcgorICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2Rv
bV9lbGVtZW50X21hdGNoZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNl
bGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOworCisvKioKKyAqIHdlYmtpdF9kb21fZWxlbWVudF9j
bG9zZXN0OgorICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqIEBzZWxlY3RvcnM6IEEg
I2djaGFyCisgKiBAZXJyb3I6ICNHRXJyb3IKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRf
QVBJIFdlYktpdERPTUVsZW1lbnQqCit3ZWJraXRfZG9tX2VsZW1lbnRfY2xvc2VzdChXZWJLaXRE
T01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7
CisKKy8qKgorICogd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9tYXRjaGVzX3NlbGVjdG9yOgor
ICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqIEBzZWxlY3RvcnM6IEEgI2djaGFyCisg
KiBAZXJyb3I6ICNHRXJyb3IKKyAqCisgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIFNp
bmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF93
ZWJraXRfbWF0Y2hlc19zZWxlY3RvcihXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CisKKy8qKgorICogd2Via2l0X2RvbV9lbGVt
ZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW46CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxl
bWVudAorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2Rv
bV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CisKKy8qKgorICogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50
OgorICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqIEB3aGVyZTogQSAjZ2NoYXIKKyAq
IEBlbGVtZW50OiBBICNXZWJLaXRET01FbGVtZW50CisgKiBAZXJyb3I6ICNHRXJyb3IKKyAqCisg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBT
aW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCit3ZWJraXRfZG9t
X2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2VsZW1lbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHdoZXJlLCBXZWJLaXRET01FbGVtZW50KiBlbGVtZW50LCBHRXJyb3IqKiBl
cnJvcik7CisKKy8qKgorICogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9odG1s
OgorICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqIEB3aGVyZTogQSAjZ2NoYXIKKyAq
IEBodG1sOiBBICNnY2hhcgorICogQGVycm9yOiAjR0Vycm9yCisgKgorICogU2luY2U6IDIuMTYK
KyoqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50
X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBjb25zdCBn
Y2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3IpOworCisvKioKKyAqIHdlYmtpdF9kb21fZWxlbWVu
dF9pbnNlcnRfYWRqYWNlbnRfdGV4dDoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50Cisg
KiBAd2hlcmU6IEEgI2djaGFyCisgKiBAdGV4dDogQSAjZ2NoYXIKKyAqIEBlcnJvcjogI0dFcnJv
cgorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9l
bGVtZW50X2luc2VydF9hZGphY2VudF90ZXh0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB3aGVyZSwgY29uc3QgZ2NoYXIqIHRleHQsIEdFcnJvcioqIGVycm9yKTsKKworLyoq
CisgKiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVxdWVzdF9wb2ludGVyX2xvY2s6CisgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X2RvbV9lbGVtZW50X3JlcXVlc3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmU6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAorICogQGVycm9yOiAjR0Vycm9yCisgKgorICogU2lu
Y2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3Zl
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKKworLyoqCisgKiB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX2xpc3Q6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxl
bWVudAorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0CisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01ET01U
b2tlbkxpc3QqCit3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX2xpc3QoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV9lbGVtZW50X2dldF93ZWJraXRfcmVn
aW9uX292ZXJzZXQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBnY2hhcioK
K3dlYmtpdF9kb21fZWxlbWVudF9nZXRfd2Via2l0X3JlZ2lvbl9vdmVyc2V0KFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NRWxlbWVu
dF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnRVbnN0YWJsZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50
VW5zdGFibGUuaAppbmRleCAzYTExMmE1Li5mMWZhZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1l
bnRVbnN0YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudFVuc3RhYmxlLmgKQEAgLTIyLDE1NSArMjIs
OSBAQAogI2RlZmluZSBXZWJLaXRET01FbGVtZW50VW5zdGFibGVfaAogCiAjaWZkZWYgV0VCS0lU
X0RPTV9VU0VfVU5TVEFCTEVfQVBJCi0KLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVm
aW5lcy11bnN0YWJsZS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLS8qKgotICogV0VCS0lUX0RPTV9F
TEVNRU5UX0FMTE9XX0tFWUJPQVJEX0lOUFVUOgotICovCi0jZGVmaW5lIFdFQktJVF9ET01fRUxF
TUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVCAxCi0KLS8qKgotICogd2Via2l0X2RvbV9lbGVtZW50
X21hdGNoZXM6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAotICogQHNlbGVjdG9yczog
QSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFJldHVybnM6IEEgI2dib29sZWFu
Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfZG9tX2VsZW1lbnRfbWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7Ci0KLS8qKgotICogd2Via2l0X2RvbV9l
bGVtZW50X2Nsb3Nlc3Q6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAotICogQHNlbGVj
dG9yczogQSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFi
bGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgotd2Via2l0X2RvbV9lbGVtZW50
X2Nsb3Nlc3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywg
R0Vycm9yKiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfbWF0
Y2hlc19zZWxlY3RvcjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKiBAc2VsZWN0
b3JzOiBBICNnY2hhcgotICogQGVycm9yOiAjR0Vycm9yCi0gKgotICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KLXdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfbWF0Y2hlc19zZWxlY3RvcihXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7Ci0K
LS8qKgotICogd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxfc2NyZWVuOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKLSAqIEBmbGFnczogQSAjZ3VzaG9ydAotICoK
LSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9t
X2VsZW1lbnRfd2Via2l0X3JlcXVlc3RfZnVsbF9zY3JlZW4oV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgZ3VzaG9ydCBmbGFncyk7Ci0KLS8qKgotICogd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9y
ZXF1ZXN0X2Z1bGxzY3JlZW46Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAq
IFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2Vs
ZW1lbnRfd2Via2l0X3JlcXVlc3RfZnVsbHNjcmVlbihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
LQotLyoqCi0gKiB3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2VsZW1lbnQ6Ci0g
KiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAotICogQHdoZXJlOiBBICNnY2hhcgotICogQGVs
ZW1lbnQ6IEEgI1dlYktpdERPTUVsZW1lbnQKLSAqIEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFJl
dHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAqIFN0YWJp
bGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgotd2Via2l0
X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgR0Vycm9y
KiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRf
aHRtbDoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKiBAd2hlcmU6IEEgI2djaGFy
Ci0gKiBAaHRtbDogQSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFN0YWJpbGl0
eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2VsZW1lbnRfaW5z
ZXJ0X2FkamFjZW50X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdo
ZXJlLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtp
dF9kb21fZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRfdGV4dDoKLSAqIEBzZWxmOiBBICNXZWJLaXRE
T01FbGVtZW50Ci0gKiBAd2hlcmU6IEEgI2djaGFyCi0gKiBAdGV4dDogQSAjZ2NoYXIKLSAqIEBl
cnJvcjogI0dFcnJvcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQ
SSB2b2lkCi13ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X3RleHQoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBjb25zdCBnY2hhciogdGV4dCwgR0Vy
cm9yKiogZXJyb3IpOwotCi0vKioKLSAqIHdlYmtpdF9kb21fZWxlbWVudF9yZXF1ZXN0X3BvaW50
ZXJfbG9jazoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKgotICogU3RhYmlsaXR5
OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fZWxlbWVudF9yZXF1
ZXN0X3BvaW50ZXJfbG9jayhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJr
aXRfZG9tX2VsZW1lbnRfcmVtb3ZlOgotICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKLSAq
IEBlcnJvcjogI0dFcnJvcgotICoKLSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
YXNzX2xpc3Q6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAotICoKLSAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NVG9rZW5MaXN0Ci0gKgotICogU3RhYmls
aXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2VuTGlzdCoKLXdl
YmtpdF9kb21fZWxlbWVudF9nZXRfY2xhc3NfbGlzdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
LQotLyoqCi0gKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3dlYmtpdF9yZWdpb25fb3ZlcnNldDoK
LSAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50Ci0gKgotICogUmV0dXJuczogQSAjZ2NoYXIK
LSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2NoYXIqCi13ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X3dlYmtpdF9yZWdpb25fb3ZlcnNldChXZWJLaXRET01FbGVtZW50
KiBzZWxmKTsKLQotCi1HX0VORF9ERUNMUwotCisjZGVmaW5lIF9fV0VCS0lURE9NX0hfSU5TSURF
X18KKyNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRWxlbWVudC5oPgorI3VuZGVmIF9fV0VC
S0lURE9NX0hfSU5TSURFX18KICNlbmRpZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkg
Ki8KKwogI2VuZGlmIC8qIFdlYktpdERPTUVsZW1lbnRVbnN0YWJsZV9oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKaW5kZXggNDU3MjViNDgu
LjMyZDg0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxF
bGVtZW50LmgKQEAgLTIxMyw2ICsyMTMsMTExIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3Nl
dF9jb250ZW50X2VkaXRhYmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnCiBX
RUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaXNfY29udGVu
dF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAKKy8qKgorICogd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RyYW5zbGF0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAorICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogU2luY2U6IDIu
MTYKKyoqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0
X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CisKKy8qKgorICogd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAorICogQHZhbHVlOiBBICNnYm9vbGVhbgorICoKKyAqIFNpbmNlOiAyLjE2Cisq
Ki8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0
ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOworCisvKioKKyAq
IHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kcmFnZ2FibGU6CisgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIFNp
bmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21faHRtbF9lbGVt
ZW50X2dldF9kcmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOworCisvKioKKyAq
IHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9kcmFnZ2FibGU6CisgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEVsZW1lbnQKKyAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KKyAqCisgKiBTaW5jZTog
Mi4xNgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9k
cmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKKwor
LyoqCisgKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfd2Via2l0ZHJvcHpvbmU6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgZ2NoYXIqCit3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9nZXRfd2Via2l0ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYp
OworCisvKioKKyAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZToK
KyAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICogQHZhbHVlOiBBICNnY2hhcgor
ICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9odG1s
X2VsZW1lbnRfc2V0X3dlYmtpdGRyb3B6b25lKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOworCisvKioKKyAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dl
dF9oaWRkZW46CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIFNpbmNlOiAyLjE2CisqKi8KK1dFQktJVF9BUEkgZ2Jv
b2xlYW4KK3dlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9oaWRk
ZW46CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9k
b21faHRtbF9lbGVtZW50X3NldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdi
b29sZWFuIHZhbHVlKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfc3Bl
bGxjaGVjazoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoKKyAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9z
cGVsbGNoZWNrOgorICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CisgKiBAdmFsdWU6
IEEgI2dib29sZWFuCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfc3BlbGxjaGVjayhXZWJLaXRET01IVE1MRWxlbWVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2Vi
S2l0RE9NSFRNTEVsZW1lbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudFVuc3Rh
YmxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbGVtZW50VW5zdGFibGUuaAppbmRleCAwMDFkYTg0Li45OTJiOWU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50VW5zdGFibGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxF
bGVtZW50VW5zdGFibGUuaApAQCAtMjIsMTE4ICsyMiw5IEBACiAjZGVmaW5lIFdlYktpdERPTUhU
TUxFbGVtZW50VW5zdGFibGVfaAogCiAjaWZkZWYgV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJ
Ci0KLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5lcy11bnN0YWJsZS5oPgotCi1H
X0JFR0lOX0RFQ0xTCi0KLS8qKgotICogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RyYW5z
bGF0ZToKLSAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAotICoKLSAqIFJldHVybnM6
IEEgI2dib29sZWFuCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCi13ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfdHJhbnNsYXRlKFdlYktpdERP
TUhUTUxFbGVtZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9z
ZXRfdHJhbnNsYXRlOgotICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50Ci0gKiBAdmFs
dWU6IEEgI2dib29sZWFuCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRf
QVBJIHZvaWQKLXdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90cmFuc2xhdGUoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9t
X2h0bWxfZWxlbWVudF9nZXRfZHJhZ2dhYmxlOgotICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bGVtZW50Ci0gKgotICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KLSAqCi0gKiBTdGFiaWxpdHk6IFVu
c3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF9kb21faHRtbF9lbGVtZW50
X2dldF9kcmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwotCi0vKioKLSAqIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9kcmFnZ2FibGU6Ci0gKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEVsZW1lbnQKLSAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KLSAqCi0gKiBTdGFiaWxpdHk6
IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
OwotCi0vKioKLSAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF93ZWJraXRkcm9wem9uZToK
LSAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAotICoKLSAqIFJldHVybnM6IEEgI2dj
aGFyCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIGdjaGFyKgot
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3dlYmtpdGRyb3B6b25lKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfd2Vi
a2l0ZHJvcHpvbmU6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKLSAqIEB2YWx1
ZTogQSAjZ2NoYXIKLSAqCi0gKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0qKi8KLVdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3dlYmtpdGRyb3B6b25lKFdlYktpdERP
TUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwotCi0vKioKLSAqIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF9oaWRkZW46Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEVsZW1lbnQKLSAqCi0gKiBSZXR1cm5zOiBBICNnYm9vbGVhbgotICoKLSAqIFN0YWJpbGl0eTog
VW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7Ci0KLS8qKgotICogd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2hpZGRlbjoKLSAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAotICogQHZhbHVlOiBBICNnYm9vbGVhbgotICoKLSAqIFN0YWJpbGl0eTogVW5z
dGFibGUKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRf
aGlkZGVuKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7Ci0KLS8q
KgotICogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2s6Ci0gKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKLSAqCi0gKiBSZXR1cm5zOiBBICNnYm9vbGVhbgotICoK
LSAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNl
bGYpOwotCi0vKioKLSAqIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9zcGVsbGNoZWNrOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50Ci0gKiBAdmFsdWU6IEEgI2dib29sZWFu
Ci0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiovCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF9kb21faHRtbF9lbGVtZW50X3NldF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBz
ZWxmLCBnYm9vbGVhbiB2YWx1ZSk7Ci0KLQotR19FTkRfREVDTFMKLQorI2RlZmluZSBfX1dFQktJ
VERPTV9IX0lOU0lERV9fCisjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUhUTUxFbGVtZW50
Lmg+CisjdW5kZWYgX19XRUJLSVRET01fSF9JTlNJREVfXwogI2VuZGlmIC8qIFdFQktJVF9ET01f
VVNFX1VOU1RBQkxFX0FQSSAqLworCiAjZW5kaWYgLyogV2ViS2l0RE9NSFRNTEVsZW1lbnRVbnN0
YWJsZV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzYmQ3NTBmLi5hMGNmYTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5jcHAK
QEAgLTE3OTAsMyArMTc5MCw5IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2NhcHR1cmUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwKICNlbmRpZiAvKiBF
TkFCTEUoTUVESUFfQ0FQVFVSRSkgKi8KIH0KIAorZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfSFRNTF9JTlBVVF9FTEVN
RU5UKGlucHV0KSwgRkFMU0UpOworCisgICAgcmV0dXJuIFdlYktpdDo6Y29yZShpbnB1dCktPmxh
c3RDaGFuZ2VXYXNVc2VyRWRpdCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA5YTlkODY1Li4zY2VlMGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQuaApAQCAtNDQ4LDYgKzQ0OCwxNCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVu
dF9zZXRfdXNlX21hcChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdAogV0VC
S0lUX0FQSSBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9jYXB0dXJl
X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKKy8qKgorICogd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNfZWRpdGVkOgorICogQGlucHV0OiBBICNXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50CisgKgorICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqLworV0VC
S0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9pc19lZGl0ZWQo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogaW5wdXQpOworCiBHX0VORF9ERUNMUwogCiAjZW5k
aWYgLyogV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggOWU2MDBk
MC4uYTllNzAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNjAwLDMgKzYwMCwxMCBAQCBXZWJLaXRET01ET01U
b2tlbkxpc3QqIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3JlbF9saXN0KFdlYktp
dERPTUhUTUxMaQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsK
IH0KIAordm9pZCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9zaXplcyhXZWJLaXRE
T01IVE1MTGlua0VsZW1lbnQqIGxpbmtFbGVtZW50LCBjb25zdCBnY2hhciogdmFsdWUpCit7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfTElOS19FTEVNRU5UKGxpbmtF
bGVtZW50KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisKKyAgICBXZWJLaXQ6OmNv
cmUobGlua0VsZW1lbnQpLT5zaXplcygpLnNldFZhbHVlKFN0cmluZzo6ZnJvbVVURjgodmFsdWUp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5r
RWxlbWVudC5oCmluZGV4IDNkYjhkMDcuLjQxNTlhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaApAQCAtMjIwLDYgKzIyMCwx
NiBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9N
SFRNTExpbmtFbGVtZW50KiBzZWxmLCBjb25zdAogV0VCS0lUX0FQSSBXZWJLaXRET01TdHlsZVNo
ZWV0Kgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfc2hlZXQoV2ViS2l0RE9NSFRN
TExpbmtFbGVtZW50KiBzZWxmKTsKIAorLyoqCisgKiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVt
ZW50X3NldF9zaXplczoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKKyAq
IEB2YWx1ZTogYSAjZ2NoYXIKKyAqCisgKiBTaW5jZTogMi4xNgorKiovCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3NpemVzKFdlYktpdERPTUhUTUxM
aW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmIC8qIFdlYktpdERPTUhUTUxMaW5rRWxlbWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApp
bmRleCAwYTNkNTMwLi45NjMwYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTEwNDgsMyArMTA0
OCw5IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9hdXRvY29t
cGxldGUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlCiAgICAgaXRlbS0+c2V0QXV0b2NvbXBsZXRl
KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX3RleHRfYXJl
YV9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBhcmVhKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfSFRNTF9URVhUX0FSRUFf
RUxFTUVOVChhcmVhKSwgRkFMU0UpOworCisgICAgcmV0dXJuIFdlYktpdDo6Y29yZShhcmVhKS0+
bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGI2MTk5ZjUuLjQ1
MzUzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0yNzUsNiArMjc1LDE0IEBAIHdlYmtpdF9kb21faHRt
bF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFy
ZWFFbGVtZW50CiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxl
bWVudF9zZXRfc2VsZWN0aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxm
LCBnbG9uZyB2YWx1ZSk7CiAKKy8qKgorICogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X2lzX2VkaXRlZDoKKyAqIEBpbnB1dDogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVu
dAorICoKKyAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKi8KK1dFQktJVF9BUEkgZ2Jvb2xlYW4g
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50KiBpbnB1dCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJL
aXRET01IVE1MVGV4dEFyZWFFbGVtZW50X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NUmFuZ2UuaAppbmRleCA2YjYyYmM2Li5hYzViODFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJh
bmdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01SYW5nZS5oCkBAIC0zOTcsNiArMzk3LDE3IEBAIHdlYmtpdF9kb21f
cmFuZ2VfZ2V0X2NvbW1vbl9hbmNlc3Rvcl9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IEdFcnJvcioqIGVyCiBXRUJLSVRfQVBJIGdjaGFyKgogd2Via2l0X2RvbV9yYW5nZV9nZXRfdGV4
dChXZWJLaXRET01SYW5nZSogc2VsZik7CiAKKy8qKgorICogd2Via2l0X2RvbV9yYW5nZV9leHBh
bmQ6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NUmFuZ2UKKyAqIEB1bml0OiBBICNnY2hhcgorICog
QGVycm9yOiAjR0Vycm9yCisgKgorICogU2luY2U6IDIuMTYKKyoqLworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfZG9tX3JhbmdlX2V4cGFuZChXZWJLaXRET01SYW5nZSogc2VsZiwgY29uc3QgZ2No
YXIqIHVuaXQsIEdFcnJvcioqIGVycm9yKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdl
YktpdERPTVJhbmdlX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2VVbnN0YWJsZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01SYW5nZVVuc3RhYmxlLmgKaW5kZXggZDMxMDllYS4uZjFlNDEwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01SYW5nZVVuc3RhYmxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZVVuc3RhYmxlLmgKQEAgLTIyLDI0ICsy
Miw5IEBACiAjZGVmaW5lIFdlYktpdERPTVJhbmdlVW5zdGFibGVfaAogCiAjaWZkZWYgV0VCS0lU
X0RPTV9VU0VfVU5TVEFCTEVfQVBJCi0KLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVm
aW5lcy11bnN0YWJsZS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLS8qKgotICogd2Via2l0X2RvbV9y
YW5nZV9leHBhbmQ6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NUmFuZ2UKLSAqIEB1bml0OiBBICNn
Y2hhcgotICogQGVycm9yOiAjR0Vycm9yCi0gKgotICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKiov
Ci1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fcmFuZ2VfZXhwYW5kKFdlYktpdERPTVJhbmdl
KiBzZWxmLCBjb25zdCBnY2hhciogdW5pdCwgR0Vycm9yKiogZXJyb3IpOwotCi0KLUdfRU5EX0RF
Q0xTCi0KKyNkZWZpbmUgX19XRUJLSVRET01fSF9JTlNJREVfXworI2luY2x1ZGUgPHdlYmtpdGRv
bS9XZWJLaXRET01SYW5nZS5oPgorI3VuZGVmIF9fV0VCS0lURE9NX0hfSU5TSURFX18KICNlbmRp
ZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkgKi8KKwogI2VuZGlmIC8qIFdlYktpdERP
TVJhbmdlVW5zdGFibGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRsZXJz
TmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAKaW5k
ZXggZGExN2JkMy4uNWZiNGZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRsZXJz
TmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgogI2lu
Y2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Vc2VyTWVzc2Fn
ZUhhbmRsZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZVByaXZhdGUuaCIKICNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMTA4LDMgKzEwOSwxMCBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2VfaW5pdChXZWJLaXRET01V
c2VyTWVzc2FnZQogICAgIG5ldyAocHJpdikgV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05h
bWVzcGFjZVByaXZhdGUoKTsKIH0KIAorV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyKiB3ZWJr
aXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2VfZ2V0X2hhbmRsZXIoV2ViS2l0
RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZSogaGFuZGxlcnNOYW1lc3BhY2UsIGNvbnN0
IGdjaGFyKiBuYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
VVNFUl9NRVNTQUdFX0hBTkRMRVJTX05BTUVTUEFDRShoYW5kbGVyc05hbWVzcGFjZSksIG51bGxw
dHIpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG5hbWUsIG51bGxwdHIpOworCisgICAgcmV0
dXJuIFdlYktpdDo6a2l0KFdlYktpdDo6Y29yZShoYW5kbGVyc05hbWVzcGFjZSktPmhhbmRsZXIo
U3RyaW5nOjpmcm9tVVRGOChuYW1lKSwgV2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Vc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmgKaW5kZXggYzQ3YmE2YS4uN2M0ZjBl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Vc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmgKQEAgLTI1LDcgKzI1LDYgQEAKIAog
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTU9i
amVjdC5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01DdXN0b21VbnN0YWJsZS5oPgog
I2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLXVuc3RhYmxlLmg+CiAKIEdfQkVH
SU5fREVDTFMKQEAgLTQ4LDYgKzQ3LDE4IEBAIHN0cnVjdCBfV2ViS2l0RE9NVXNlck1lc3NhZ2VI
YW5kbGVyc05hbWVzcGFjZUNsYXNzIHsKIFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fdXNl
cl9tZXNzYWdlX2hhbmRsZXJzX25hbWVzcGFjZV9nZXRfdHlwZSh2b2lkKTsKIAorLyoqCisgKiB3
ZWJraXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2VfZ2V0X2hhbmRsZXI6Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZQorICogQG5h
bWU6IGEgI2djaGFyCisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRE
T01Vc2VyTWVzc2FnZUhhbmRsZXIKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3RhYmxlCisgKi8KK1dF
QktJVF9BUEkgV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyICoKK3dlYmtpdF9kb21fdXNlcl9t
ZXNzYWdlX2hhbmRsZXJzX25hbWVzcGFjZV9nZXRfaGFuZGxlcihXZWJLaXRET01Vc2VyTWVzc2Fn
ZUhhbmRsZXJzTmFtZXNwYWNlKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CisKIEdfRU5EX0RF
Q0xTCiAKICNlbmRpZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
ZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNl
Y3Rpb25zLnR4dAppbmRleCBkMDA3MzU0Li5lODNmYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9t
Z3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0
CkBAIC0xLDEzICsxLDQgQEAKIDxTRUNUSU9OPgotPEZJTEU+V2ViS2l0RE9NQ3VzdG9tPC9GSUxF
PgotPFRJVExFPldlYktpdERPTUN1c3RvbTwvVElUTEU+Ci0KLXdlYmtpdF9kb21faHRtbF90ZXh0
X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQKLXdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2lz
X2VkaXRlZAotd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bv
c3RfbWVzc2FnZQotPC9TRUNUSU9OPgotCi08U0VDVElPTj4KIDxGSUxFPldlYktpdERPTUV2ZW50
VGFyZ2V0PC9GSUxFPgogPFRJVExFPldlYktpdERPTUV2ZW50VGFyZ2V0PC9USVRMRT4KIApAQCAt
NTE1LDYgKzUwNiwyOCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdf
bmFtZQogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnMKIHdl
YmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VudGl0eV9yZWZlcmVuY2UKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2RlZmF1bHRfY2hhcnNldAord2Via2l0X2RvbV9kb2N1bWVudF9jYXJldF9yYW5n
ZV9mcm9tX3BvaW50Cit3ZWJraXRfZG9tX2RvY3VtZW50X3dlYmtpdF9jYW5jZWxfZnVsbHNjcmVl
bgord2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuCit3ZWJraXRfZG9t
X2RvY3VtZW50X2V4aXRfcG9pbnRlcl9sb2NrCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb250
ZW50X3R5cGUKK3dlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rpcgord2Via2l0X2RvbV9kb2N1bWVu
dF9zZXRfZGlyCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfaXNfZnVsbHNjcmVlbgor
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fa2V5Ym9hcmRfaW5wdXRf
YWxsb3dlZAord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVl
bl9lbGVtZW50Cit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbmFi
bGVkCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbGVtZW50Cit3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2ludGVyX2xvY2tfZWxlbWVudAord2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZQord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlk
ZGVuCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdAord2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfb3JpZ2luCit3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zY3JvbGxpbmdfZWxl
bWVudAord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW4KK3dlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQKK3dlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xhc3Rf
ZWxlbWVudF9jaGlsZAord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3Vu
dAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdERPTURvY3VtZW50Q2xhc3MKQEAgLTUz
NCw3ICs1NDcsMTMgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdHlwZQogPFRJVExFPldlYktp
dERPTURvY3VtZW50RnJhZ21lbnQ8L1RJVExFPgogV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudAog
Ci0KK3dlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2VsZW1lbnRfYnlfaWQKK3dlYmtp
dF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3IKK3dlYmtpdF9kb21fZG9jdW1l
bnRfZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3JfYWxsCit3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdt
ZW50X2dldF9jaGlsZHJlbgord2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfZmlyc3Rf
ZWxlbWVudF9jaGlsZAord2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfbGFzdF9lbGVt
ZW50X2NoaWxkCit3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9jaGlsZF9lbGVtZW50
X2NvdW50CiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVu
dENsYXNzCkBAIC01NzksNiArNTk4LDggQEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF90
eXBlCiA8VElUTEU+V2ViS2l0RE9NRWxlbWVudDwvVElUTEU+CiBXZWJLaXRET01FbGVtZW50CiAK
K1dFQktJVF9ET01fRUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVAorCiB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2F0dHJpYnV0ZQogd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGUKIHdl
YmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlCkBAIC02NDIsNiArNjYzLDE4IEBAIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudAogd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVt
ZW50c19ieV90YWdfbmFtZV9ucwogd2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19ieV9j
bGFzc19uYW1lCit3ZWJraXRfZG9tX2VsZW1lbnRfbWF0Y2hlcword2Via2l0X2RvbV9lbGVtZW50
X2Nsb3Nlc3QKK3dlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfbWF0Y2hlc19zZWxlY3Rvcgord2Vi
a2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4KK3dlYmtpdF9kb21fZWxl
bWVudF9pbnNlcnRfYWRqYWNlbnRfZWxlbWVudAord2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9h
ZGphY2VudF9odG1sCit3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X3RleHQKK3dl
YmtpdF9kb21fZWxlbWVudF9yZXF1ZXN0X3BvaW50ZXJfbG9jaword2Via2l0X2RvbV9lbGVtZW50
X3JlbW92ZQord2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGFzc19saXN0Cit3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X3dlYmtpdF9yZWdpb25fb3ZlcnNldAorCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJk
PgogV2ViS2l0RE9NRWxlbWVudENsYXNzCkBAIC05ODksNiArMTAyMiw3IEBAIHdlYmtpdF9kb21f
cmFuZ2VfZ2V0X2VuZF9vZmZzZXQKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbGxhcHNlZAogd2Vi
a2l0X2RvbV9yYW5nZV9nZXRfY29tbW9uX2FuY2VzdG9yX2NvbnRhaW5lcgogd2Via2l0X2RvbV9y
YW5nZV9nZXRfdGV4dAord2Via2l0X2RvbV9yYW5nZV9leHBhbmQKIAogPFNVQlNFQ1RJT04gU3Rh
bmRhcmQ+CiBXZWJLaXRET01SYW5nZUNsYXNzCkBAIC0xNTg3LDYgKzE2MjEsMTYgQEAgd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfZ2V0X291dGVyX2h0bWwKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50
X2dldF9pbm5lcl9odG1sCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0ZXJfaHRtbAog
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2NoaWxkcmVuCit3ZWJraXRfZG9tX2h0bWxfZWxl
bWVudF9nZXRfdHJhbnNsYXRlCit3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfdHJhbnNsYXRl
Cit3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfZHJhZ2dhYmxlCit3ZWJraXRfZG9tX2h0bWxf
ZWxlbWVudF9zZXRfZHJhZ2dhYmxlCit3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfd2Via2l0
ZHJvcHpvbmUKK3dlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZQord2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2hpZGRlbgord2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X2hpZGRlbgord2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2sKK3dlYmtp
dF9kb21faHRtbF9lbGVtZW50X3NldF9zcGVsbGNoZWNrCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJk
PgogV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcwpAQCAtMjAwNyw2ICsyMDUxLDcgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3VzZV9tYXAKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X3NldF91c2VfbWFwCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRf
Y2FwdHVyZV90eXBlCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfY2FwdHVyZQor
d2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNfZWRpdGVkCiAKIDxTVUJTRUNUSU9OIFN0
YW5kYXJkPgogV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudENsYXNzCkBAIC0yMTEyLDYgKzIxNTcs
NyBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90YXJnZXQKIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxl
bWVudF9zZXRfdHlwZV9hdHRyCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaGVl
dAord2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfc2l6ZXMKIAogPFNVQlNFQ1RJT04g
U3RhbmRhcmQ+CiBXZWJLaXRET01IVE1MTGlua0VsZW1lbnRDbGFzcwpAQCAtMjgzNCw2ICsyODgw
LDcgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9zZWxlY3Rpb25fc3Rh
cnQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3N0YXJ0
CiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9lbmQKIHdl
YmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX2VuZAord2Via2l0
X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2lzX2VkaXRlZAogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KIFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzcwpAQCAtMjg5Nyw3ICsyOTQ0
LDU3IEBAIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9nZXRfdHlwZQogPFRJVExFPldl
YktpdERPTURPTVdpbmRvdzwvVElUTEU+CiBXZWJLaXRET01ET01XaW5kb3cKIAotCit3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbgord2Via2l0X2RvbV9kb21fd2luZG93X2ZvY3Vz
Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfYmx1cgord2Via2l0X2RvbV9kb21fd2luZG93X2Nsb3Nl
Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19zdG9w
Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfYWxlcnQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19jb25m
aXJtCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJvbXB0Cit3ZWJraXRfZG9tX2RvbV93aW5kb3df
ZmluZAord2Via2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF9ieQord2Via2l0X2RvbV9kb21fd2lu
ZG93X3Njcm9sbF90bword2Via2l0X2RvbV9kb21fd2luZG93X21vdmVfYnkKK3dlYmtpdF9kb21f
ZG9tX3dpbmRvd19tb3ZlX3RvCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX2J5Cit3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX3RvCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2Nv
bXB1dGVkX3N0eWxlCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2FwdHVyZV9ldmVudHMKK3dlYmtp
dF9kb21fZG9tX3dpbmRvd19yZWxlYXNlX2V2ZW50cword2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9mcmFtZV9lbGVtZW50Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29mZnNjcmVlbl9idWZm
ZXJpbmcKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfaGVpZ2h0Cit3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X291dGVyX3dpZHRoCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lu
bmVyX2hlaWdodAord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl93aWR0aAord2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5feAord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9z
Y3JlZW5feQord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fbGVmdAord2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9zY3JlZW5fdG9wCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Nj
cm9sbF94Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF95Cit3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X3BhZ2VfeF9vZmZzZXQKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGFn
ZV95X29mZnNldAord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9jbG9zZWQKK3dlYmtpdF9kb21f
ZG9tX3dpbmRvd19nZXRfbGVuZ3RoCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X25hbWUKK3dl
YmtpdF9kb21fZG9tX3dpbmRvd19zZXRfbmFtZQord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9z
dGF0dXMKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3RhdHVzCit3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2RlZmF1bHRfc3RhdHVzCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2V0X2RlZmF1
bHRfc3RhdHVzCit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGYKK3dlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfd2luZG93Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lcword2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9vcGVuZXIKK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
cGFyZW50Cit3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3RvcAord2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9kb2N1bWVudAord2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kZXZpY2VfcGl4ZWxf
cmF0aW8KK3dlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3JpZW50YXRpb24KK3dlYmtpdF9kb21f
ZG9tX3dpbmRvd193ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2UKIAogPFNVQlNF
Q1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRET01ET01XaW5kb3dDbGFzcwpAQCAtMjkxMyw2ICszMDEw
LDUwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdHlwZQogPC9TRUNUSU9OPgogCiA8U0VD
VElPTj4KKzxGSUxFPldlYktpdERPTURPTVNlbGVjdGlvbjwvRklMRT4KKzxUSVRMRT5XZWJLaXRE
T01ET01TZWxlY3Rpb248L1RJVExFPgorV2ViS2l0RE9NRE9NU2VsZWN0aW9uCisKK3dlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZQord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxh
cHNlX3RvX2VuZAord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0YXJ0Cit3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZGVsZXRlX2Zyb21fZG9jdW1lbnQKK3dlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9jb250YWluc19ub2RlCit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2Vs
ZWN0X2FsbF9jaGlsZHJlbgord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2V4dGVuZAord2Via2l0
X2RvbV9kb21fc2VsZWN0aW9uX2dldF9yYW5nZV9hdAord2Via2l0X2RvbV9kb21fc2VsZWN0aW9u
X3JlbW92ZV9hbGxfcmFuZ2VzCit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fYWRkX3JhbmdlCit3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVudAord2Via2l0X2RvbV9k
b21fc2VsZWN0aW9uX3NldF9wb3NpdGlvbgord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2VtcHR5
Cit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fbW9kaWZ5Cit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fZ2V0X2FuY2hvcl9ub2RlCit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2FuY2hvcl9v
ZmZzZXQKK3dlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNfbm9kZQord2Via2l0X2Rv
bV9kb21fc2VsZWN0aW9uX2dldF9mb2N1c19vZmZzZXQKK3dlYmtpdF9kb21fZG9tX3NlbGVjdGlv
bl9nZXRfaXNfY29sbGFwc2VkCit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3JhbmdlX2Nv
dW50Cit3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3NlbGVjdGlvbl90eXBlCit3ZWJraXRf
ZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZQord2Via2l0X2RvbV9kb21fc2VsZWN0aW9u
X2dldF9iYXNlX29mZnNldAord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9leHRlbnRfbm9k
ZQord2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9leHRlbnRfb2Zmc2V0CisKKzxTVUJTRUNU
SU9OIFN0YW5kYXJkPgorV2ViS2l0RE9NRE9NU2VsZWN0aW9uQ2xhc3MKK1dFQktJVF9ET01fVFlQ
RV9ET01fU0VMRUNUSU9OCitXRUJLSVRfRE9NX0RPTV9TRUxFQ1RJT04KK1dFQktJVF9ET01fSVNf
RE9NX1NFTEVDVElPTgorV0VCS0lUX0RPTV9ET01fU0VMRUNUSU9OX0NMQVNTCitXRUJLSVRfRE9N
X0lTX0RPTV9TRUxFQ1RJT05fQ0xBU1MKK1dFQktJVF9ET01fRE9NX1NFTEVDVElPTl9HRVRfQ0xB
U1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK3dlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRf
dHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElPTj4KIDxGSUxFPldlYktpdERPTVhQYXRoRXhwcmVz
c2lvbjwvRklMRT4KIDxUSVRMRT5XZWJLaXRET01YUGF0aEV4cHJlc3Npb248L1RJVExFPgogV2Vi
S2l0RE9NWFBhdGhFeHByZXNzaW9uCkBAIC0zMDA5LDYgKzMxNTAsMzMgQEAgd2Via2l0X2RvbV9o
dG1sX2Jhc2VfZm9udF9lbGVtZW50X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKIDxTRUNUSU9OPgor
PEZJTEU+V2ViS2l0RE9NRE9NVG9rZW5MaXN0PC9GSUxFPgorPFRJVExFPldlYktpdERPTURPTVRv
a2VuTGlzdDwvVElUTEU+CitXZWJLaXRET01ET01Ub2tlbkxpc3QKKword2Via2l0X2RvbV9kb21f
dG9rZW5fbGlzdF9pdGVtCit3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2NvbnRhaW5zCit3ZWJr
aXRfZG9tX2RvbV90b2tlbl9saXN0X2FkZAord2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9yZW1v
dmUKK3dlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfdG9nZ2xlCit3ZWJraXRfZG9tX2RvbV90b2tl
bl9saXN0X3JlcGxhY2UKK3dlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X2xlbmd0aAord2Vi
a2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfdmFsdWUKK3dlYmtpdF9kb21fZG9tX3Rva2VuX2xp
c3Rfc2V0X3ZhbHVlCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV0VCS0lUX0RPTV9UWVBFX0RP
TV9UT0tFTl9MSVNUCitXRUJLSVRfRE9NX0RPTV9UT0tFTl9MSVNUCitXRUJLSVRfRE9NX0lTX0RP
TV9UT0tFTl9MSVNUCitXRUJLSVRfRE9NX0RPTV9UT0tFTl9MSVNUX0NMQVNTCitXRUJLSVRfRE9N
X0lTX0RPTV9UT0tFTl9MSVNUX0NMQVNTCitXRUJLSVRfRE9NX0RPTV9UT0tFTl9MSVNUX0dFVF9D
TEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgord2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9n
ZXRfdHlwZQorPC9TRUNUSU9OPgorCis8U0VDVElPTj4KIDxGSUxFPndlYmtpdGRvbWRlZmluZXM8
L0ZJTEU+CiA8VElUTEU+V2ViS2l0RE9NRGVmaW5lczwvVElUTEU+CiA8U1VCU0VDVElPTiBQcml2
YXRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay1kb2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3Rr
LWRvY3Muc2dtbAppbmRleCA3OWEyNWJjLi44NjUyZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9t
Z3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLWRvY3Muc2dtbApAQCAtMTEsNyArMTEs
NiBAQAogCiAgIDxjaGFwdGVyPgogICAgIDx0aXRsZT5DbGFzcyBPdmVydmlldzwvdGl0bGU+Ci0g
ICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTUN1c3RvbS54bWwiLz4KICAgICA8eGk6
aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RE9NRXZlbnRUYXJnZXQueG1sIi8+CiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTU5vZGVGaWx0ZXIueG1sIi8+CiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL1dlYktpdERPTU9iamVjdC54bWwiLz4KQEAgLTEwNywxMCArMTA2LDEyIEBA
CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQueG1s
Ii8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQu
eG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTURPTVdpbmRvdy54bWwi
Lz4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RE9NRE9NU2VsZWN0aW9uLnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24ueG1s
Ii8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTVhQYXRoUmVzdWx0LnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRET01FbnRpdHlSZWZlcmVuY2UueG1s
Ii8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTUhUTUxCYXNlRm9udEVsZW1l
bnQueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdERPTURPTVRva2VuTGlz
dC54bWwiLz4KICAgPC9jaGFwdGVyPgogCiAgIDxpbmRleCBpZD0iaW5kZXgtYWxsIj4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vd2Via2l0ZG9tZGVmaW5lcy11bnN0YWJsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS93ZWJraXRkb21kZWZpbmVzLXVuc3RhYmxlLmgK
aW5kZXggNmZmZmE1Yi4uMmM3MmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS93ZWJraXRkb21kZWZpbmVzLXVuc3RhYmxl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS93ZWJraXRkb21kZWZpbmVzLXVuc3RhYmxlLmgKQEAgLTY2LDE4ICs2NiwxMiBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NUGx1Z2luQ2xhc3MgV2ViS2l0RE9NRE9NUGx1Z2luQ2xh
c3M7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NUGx1Z2luQXJyYXkgV2ViS2l0RE9NRE9N
UGx1Z2luQXJyYXk7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NUGx1Z2luQXJyYXlDbGFz
cyBXZWJLaXRET01ET01QbHVnaW5BcnJheUNsYXNzOwogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NRE9NU2VsZWN0aW9uIFdlYktpdERPTURPTVNlbGVjdGlvbjsKLXR5cGVkZWYgc3RydWN0IF9X
ZWJLaXRET01ET01TZWxlY3Rpb25DbGFzcyBXZWJLaXRET01ET01TZWxlY3Rpb25DbGFzczsKLQog
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVN0cmluZ0xpc3QgV2ViS2l0RE9NRE9NU3RyaW5n
TGlzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01TdHJpbmdMaXN0Q2xhc3MgV2ViS2l0
RE9NRE9NU3RyaW5nTGlzdENsYXNzOwogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NU3Ry
aW5nTWFwIFdlYktpdERPTURPTVN0cmluZ01hcDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01E
T01TdHJpbmdNYXBDbGFzcyBXZWJLaXRET01ET01TdHJpbmdNYXBDbGFzczsKIAotdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdERPTURPTVRva2VuTGlzdCBXZWJLaXRET01ET01Ub2tlbkxpc3Q7Ci10eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NVG9rZW5MaXN0Q2xhc3MgV2ViS2l0RE9NRE9NVG9rZW5M
aXN0Q2xhc3M7Ci0KIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMgV2ViS2l0RE9NRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTURPTVdpbmRvd1NwZWVjaFN5bnRoZXNpc0NsYXNzIFdlYktpdERPTURPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpc0NsYXNzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL3dlYmtpdGRvbWRlZmluZXMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vd2Via2l0
ZG9tZGVmaW5lcy5oCmluZGV4IGZkODJiNjUuLmVhMTM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vd2Via2l0ZG9tZGVm
aW5lcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vd2Via2l0ZG9tZGVmaW5lcy5oCkBAIC0zMDIsNiArMzAyLDkgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzIFdlYktpdERPTVByb2Nl
c3NpbmdJbnN0cnVjdGkKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01SYW5nZSBXZWJLaXRET01S
YW5nZTsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01SYW5nZUNsYXNzIFdlYktpdERPTVJhbmdl
Q2xhc3M7CiAKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01TZWxlY3Rpb24gV2ViS2l0RE9N
RE9NU2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVNlbGVjdGlvbkNsYXNz
IFdlYktpdERPTURPTVNlbGVjdGlvbkNsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9N
U3R5bGVTaGVldCBXZWJLaXRET01TdHlsZVNoZWV0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERP
TVN0eWxlU2hlZXRDbGFzcyBXZWJLaXRET01TdHlsZVNoZWV0Q2xhc3M7CiAKQEAgLTMxMSw2ICsz
MTQsOSBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NU3R5bGVTaGVldExpc3RDbGFzcyBXZWJL
aXRET01TdHlsZVNoZWV0TGlzdENsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRleHQg
V2ViS2l0RE9NVGV4dDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01UZXh0Q2xhc3MgV2ViS2l0
RE9NVGV4dENsYXNzOwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NVG9rZW5MaXN0IFdl
YktpdERPTURPTVRva2VuTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01Ub2tlbkxp
c3RDbGFzcyBXZWJLaXRET01ET01Ub2tlbkxpc3RDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTVRyZWVXYWxrZXIgV2ViS2l0RE9NVHJlZVdhbGtlcjsKIHR5cGVkZWYgc3RydWN0IF9X
ZWJLaXRET01UcmVlV2Fsa2VyQ2xhc3MgV2ViS2l0RE9NVHJlZVdhbGtlckNsYXNzOwogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzhhNzA0ZC4u
OWU2MzQwMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA5LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3ZlIHNvbWUgR09iamVjdCBET00g
dW5zdGFibGUgQVBJIHRvIHN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYxNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRG8gbm90IHVzZSB1c2VyIG1lc3NhZ2UgaGFuZGxlciB1bnN0YWJsZSBB
UEkgaW4gdGhlIHRlc3RzLCBzaW5jZSB3ZSBoYXZlIHN0YWJsZSBjb252ZW5pZW50IEFQSSBmb3Ig
dGhhdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHRlc3RVc2VyQ29udGVudE1hbmFn
ZXJTY3JpcHRNZXNzYWdlRnJvbURPTUJpbmRpbmdzKToKKyAgICAgICAgKHNlcnZlckNhbGxiYWNr
KTogRGVsZXRlZC4KKyAgICAgICAgKGJlZm9yZUFsbCk6IERlbGV0ZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwOgorICAgICAg
ICAoZG9jdW1lbnRMb2FkZWRDYWxsYmFjayk6CisgICAgICAgIChlbWl0VVJJQ2hhbmdlZCk6IERl
bGV0ZWQuCisKIDIwMTYtMDktMDYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDU1MjEsIHIyMDU1MjYs
IGFuZCByMjA1NTMyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCmlu
ZGV4IGU4NGNiNWMuLmRkNzQ3YzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFVzZXJDb250ZW50TWFu
YWdlci5jcHAKQEAgLTM1MSwxNiArMzUxLDYgQEAgc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50
TWFuYWdlclNjcmlwdE1lc3NhZ2VGcm9tRE9NQmluZGluZ3MoVXNlclNjcmlwdE1lc3NhZ2UKICAg
ICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAiRG9jdW1lbnRMb2FkZWQi
KTsKIAogICAgIHRlc3QtPnVucmVnaXN0ZXJIYW5kbGVyKCJkb20iKTsKLQotICAgIGdfYXNzZXJ0
KHRlc3QtPnJlZ2lzdGVySGFuZGxlcigiZG9tLWNvbnZlbmllbmNlIikpOwotCi0gICAgdGVzdC0+
bG9hZEh0bWwoIjxodG1sPjI8L2h0bWw+IiwgbnVsbHB0cik7Ci0gICAgamF2YXNjcmlwdFJlc3Vs
dCA9IHRlc3QtPndhaXRVbnRpbE1lc3NhZ2VSZWNlaXZlZCgiZG9tLWNvbnZlbmllbmNlIik7Ci0g
ICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7Ci0gICAgdmFsdWVTdHJpbmcucmVzZXQoV2Vi
Vmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOwot
ICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sICJEb2N1bWVudExvYWRl
ZCIpOwotCi0gICAgdGVzdC0+dW5yZWdpc3RlckhhbmRsZXIoImRvbS1jb252ZW5pZW5jZSIpOwog
fQogCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBN
ZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRhYmxlKiwgU291cENsaWVu
dENvbnRleHQqLCBncG9pbnRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCAzNzJjZmVhLi40ZTQw
MjUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2Vi
RXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBAIC0zMiwxMSArMzIsNiBAQAogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNk
ZWZpbmUgV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJCi0jaW5jbHVkZSA8d2Via2l0ZG9tL1dl
YktpdERPTVdlYktpdE5hbWVzcGFjZS5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01V
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktp
dERPTVVzZXJNZXNzYWdlSGFuZGxlci5oPgotCiBzdGF0aWMgY29uc3QgY2hhciBpbnRyb3NwZWN0
aW9uWE1MW10gPQogICAgICI8bm9kZT4iCiAgICAgIiA8aW50ZXJmYWNlIG5hbWU9J29yZy53ZWJr
aXQuZ3RrLldlYkV4dGVuc2lvblRlc3QnPiIKQEAgLTEwMSwxNiArOTYsOSBAQCBzdGF0aWMgdm9p
ZCBlbWl0RG9jdW1lbnRMb2FkZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogCiBzdGF0
aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdl
YktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogewotICAgIC8vIEZJWE1FOiBUb28gbXVjaCBj
b2RlIGp1c3QgdG8gc2VuZCBhIG1lc3NhZ2UsIHdlIG5lZWQgY29udmVuaWVudCBjdXN0b20gQVBJ
IGZvciB0aGlzLgogICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJf
cGFnZV9nZXRfZG9tX2RvY3VtZW50KHdlYlBhZ2UpOwogICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9N
V2luZG93PiB3aW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVs
dF92aWV3KGRvY3VtZW50KSk7Ci0gICAgaWYgKFdlYktpdERPTVdlYktpdE5hbWVzcGFjZSogd2Vi
a2l0ID0gd2Via2l0X2RvbV9kb21fd2luZG93X2dldF93ZWJraXRfbmFtZXNwYWNlKHdpbmRvdy5n
ZXQoKSkpIHsKLSAgICAgICAgV2ViS2l0RE9NVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZSog
bWVzc2FnZUhhbmRsZXJzID0gd2Via2l0X2RvbV93ZWJraXRfbmFtZXNwYWNlX2dldF9tZXNzYWdl
X2hhbmRsZXJzKHdlYmtpdCk7Ci0gICAgICAgIGlmIChXZWJLaXRET01Vc2VyTWVzc2FnZUhhbmRs
ZXIqIGhhbmRsZXIgPSB3ZWJraXRfZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyc19uYW1lc3BhY2Vf
Z2V0X2hhbmRsZXIobWVzc2FnZUhhbmRsZXJzLCAiZG9tIikpCi0gICAgICAgICAgICB3ZWJraXRf
ZG9tX3VzZXJfbWVzc2FnZV9oYW5kbGVyX3Bvc3RfbWVzc2FnZShoYW5kbGVyLCAiRG9jdW1lbnRM
b2FkZWQiLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB3ZWJraXRfZG9tX2RvbV93aW5kb3dfd2Vi
a2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKHdpbmRvdy5nZXQoKSwgImRvbS1jb252
ZW5pZW5jZSIsICJEb2N1bWVudExvYWRlZCIpOworICAgIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2Uod2luZG93LmdldCgpLCAiZG9tIiwg
IkRvY3VtZW50TG9hZGVkIik7CiAKICAgICBncG9pbnRlciBkYXRhID0gZ19vYmplY3RfZ2V0X2Rh
dGEoR19PQkpFQ1QoZXh0ZW5zaW9uKSwgImRidXMtY29ubmVjdGlvbiIpOwogICAgIGlmIChkYXRh
KQo=
</data>
<flag name="review"
          id="311512"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>