<?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>234415</bug_id>
          
          <creation_ts>2021-12-16 18:30:39 -0800</creation_ts>
          <short_desc>[libpas] update to b1531141d8d5831b0a37efb70f200f7e2c37ff3d (initial pgm support, refactorings to further distinguish exclusive from shared)</short_desc>
          <delta_ts>2021-12-17 18:30:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824937</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-16 18:30:39 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824940</commentid>
    <comment_count>1</comment_count>
      <attachid>447407</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-16 18:32:36 -0800</bug_when>
    <thetext>Created attachment 447407
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825029</commentid>
    <comment_count>2</comment_count>
      <attachid>447407</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-17 02:09:26 -0800</bug_when>
    <thetext>Comment on attachment 447407
the patch

Simple refactoring and PGM prototype. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825101</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-12-17 09:32:19 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/287192/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825102</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-17 09:33:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/86637236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825270</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-17 18:09:56 -0800</bug_when>
    <thetext>Committed r287215 (245378@trunk): &lt;https://commits.webkit.org/245378@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825272</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-17 18:30:22 -0800</bug_when>
    <thetext>Committed r287216 (245379@trunk): &lt;https://commits.webkit.org/245379@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447407</attachid>
            <date>2021-12-16 18:32:36 -0800</date>
            <delta_ts>2021-12-17 02:09:26 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>123538</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyMCBAQAorMjAyMS0xMi0xNiAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIHVwZGF0ZSB0byAw
ZDY5ZWM5ZjNhYzg2YTQwYTA0ZjdmMWUyMDVlNTg4YzZiMDFhMDgzIChpbml0aWFsIHBnbSBzdXBw
b3J0LCByZWZhY3RvcmluZ3MgdG8gZnVydGhlciBkaXN0aW5ndWlzaCBleGNsdXNpdmUgZnJvbSBz
aGFyZWQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzQ0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGluY2x1ZGVzIHR3byBtYWluIGNoYW5nZXM6CisKKyAgICAgICAgLSBJbml0aWFsIFBHTSBz
dXBwb3J0IHRoYW5rcyB0byBCcmFuZG9uIFN0ZXdhcnQuCisKKyAgICAgICAgLSBSZWZhY3Rvcmlu
Z3MgdG8gZW5hYmxlIG1vcmUgZGlmZmVyZW5jZXMgaW4gYmVoYXZpb3IgYmV0d2VlbiBleGNsdXNp
dmUgcGFnZXMgYW5kIHNoYXJlZCBwYWdlcy4gVGhpcworICAgICAgICAgIGlzIHRoZSBvbmx5IHVz
ZWZ1bCBwYXJ0IG9mIG15IGF0dGVtcHQgdG8gYWRkIGxpbmUgYWxsb2NhdGlvbiwgd2hpY2ggdHVy
bmVkIG91dCBub3QgdG8gYmUgYSB3aW4uCisKKyAgICAgICAgKiBibWFsbG9jLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzLy5naXRpZ25vcmU6CisgICAgICAgICog
bGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jOgorICAgICAgICAoaml0X3NtYWxsX2JpdGZp
dF9jcmVhdGVfcGFnZV9oZWFkZXIpOgorICAgICAgICAoaml0X21lZGl1bV9iaXRmaXRfY3JlYXRl
X3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25m
aWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5j
OgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jOgorICAgICAgICAocGFzX2JpdGZp
dF9wYWdlX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfdmVyaWZ5KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuaDoKKyAgICAgICAgKHBh
c19iaXRmaXRfcGFnZV9vZmZzZXRfdG9fZmlyc3Rfb2JqZWN0KToKKyAgICAgICAgKHBhc19iaXRm
aXRfcGFnZV9vZmZzZXRfdG9fZW5kX29mX2xhc3Rfb2JqZWN0KToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmg6CisgICAgICAgIChwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX29iamVjdF9wYXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeSk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmg6
IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVn
YXRlZF9oZWFwcy5jOgorICAgICAgICAoZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KToKKyAgICAg
ICAgKGVudW1lcmF0ZV9zaGFyZWRfdmlldyk6CisgICAgICAgIChlbnVtZXJhdGVfcGFydGlhbF92
aWV3KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMu
aDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZS5jOgorICAgICAgICAocGFz
X3BhZ2VfYmFzZV9oZWFkZXJfc2l6ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3BhZ2VfYmFzZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2Vf
Y29uZmlnLmg6CisgICAgICAgIChwYXNfcGFnZV9iYXNlX2NvbmZpZ19pc19iaXRmaXQpOgorICAg
ICAgICAocGFzX3BhZ2VfYmFzZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9t
X2JvdW5kYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFn
ZV9iYXNlX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmM6IEFkZGVkLgor
ICAgICAgICAocGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKToKKyAgICAg
ICAgKHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKToKKyAgICAgICAg
KHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY190cmlnZ2VyKToKKyAgICAgICAgKHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19jYW5fdXNlKToKKyAgICAgICAgKHBhc19wcm9iYWJp
bGlzdGljX2d1YXJkX21hbGxvY19zaG91bGRfdXNlKToKKyAgICAgICAgKHBhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV92aXJ0dWFsX21lbW9yeSk6CisgICAgICAgIChwYXNf
cHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfd2FzdGVkX21lbW9yeSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2Fs
bG9jYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldy5jOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5X2ltcGwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAg
ICAgKGNvbXB1dGVfaWRlYWxfb2JqZWN0X3NpemUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemUpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVyaWZ5X2dy
YW51bGVzKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVyaWZ5X251bV9ub25fZW1w
dHlfd29yZHMpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2UuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5
X3RvX2ZpcnN0X29iamVjdF9mb3JfaHVnZ2luZ19tb2RlKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Rf
Zm9yX2h1Z2dpbmdfbW9kZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9v
YmplY3RfcGF5bG9hZF9zaXplX2Zvcl9odWdnaW5nX21vZGUpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9iZXN0X2h1Z2dpbmdfbW9kZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0X2V4Y2x1c2l2ZSk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
dG9fZW5kX29mX2xhc3Rfb2JqZWN0X2V4Y2x1c2l2ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYWdlX3VzZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHMpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9ieXRlc19kaXJ0aWVkX3Blcl9vYmplY3QpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ192YWxpZGF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3BheWxvYWRfb2Zmc2V0X2Zvcl9yb2xlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3BheWxvYWRfc2l6ZV9mb3Jfcm9sZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUpOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9tX2Jv
dW5kYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbml0aWFsaXplX2Z1bGxfdXNlX2NvdW50cyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5j
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tbWl0X3BhZ2UpOgorICAg
ICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfY2FuX2J1bXApOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29t
cHV0ZV9uZXdfYnVtcCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3ZpZXcuYzoKKyAgICAgICAgKGZvcl9lYWNoX2xpdmVfb2JqZWN0KToK
KyAgICAgICAgKHNob3VsZF9iZV9lbGlnaWJsZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbmcpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYzoKKyAgICAgICAgKHJlcG9ydF9zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9jb250ZW50cyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKHBhc191dGlsaXR5X2hlYXBfY3Jl
YXRlX3BhZ2VfaGVhZGVyKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9z
VGVzdHMuY3BwOgorICAgICAgICAoc3RkOjphZGRUaGVUZXN0cyk6CisgICAgICAgICogbGlicGFz
L3NyYy90ZXN0L1BHTVRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6OnRlc3RQR01TaW5n
bGVBbGxvYyk6CisgICAgICAgIChzdGQ6OnRlc3RQR01NdWx0aXBsZUFsbG9jKToKKyAgICAgICAg
KHN0ZDo6dGVzdFBHTUVycm9ycyk6CisgICAgICAgIChhZGRQR01UZXN0cyk6CisgICAgICAgICog
bGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5j
cHA6CisgICAgICAgIChzdGQ6OnRlc3RGcmVlTGlzdFJlZmlsbFNwYW5zKToKKyAgICAgICAgKHN0
ZDo6dGVzdFNwdXJpb3VzRWxpZ2liaWxpdHkpOgorCiAyMDIxLTEyLTE1ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW2xpYnBhc10gSW1wbGVtZW50IGF0b21p
Y3MgaW4gaW5saW5lIGFzc2VtYmx5IGlmIGNvbXBpbGVyIGlzIHVzaW5nIEFSTTY0CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYyMyw2ICs2MjMsOSBAQAogCQkyQ0UyQUUz
MTI3NTk2REVCMDBEMDJCQkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRf
cm9sZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNF
MkFFMkEyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
YW5kX3JvbGUuYyAqLzsgfTsKIAkJMkNFMkFFMzIyNzU5NkRFQjAwRDAyQkJDIC8qIHBhc19nZXRf
cGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9zbWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUyQjI3NTk2
REVCMDBEMDJCQkMgLyogcGFzX2dldF9wYWdlX2Jhc2VfYW5kX2tpbmRfZm9yX3NtYWxsX290aGVy
X2luX2Zhc3RfbWVnYXBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkyQ0UyQUUzMzI3NTk2REVCMDBEMDJCQkMgLyogcGFzX3NlZ3JlZ2F0ZWRf
ZGVhbGxvY2F0aW9uX2xvZ2dpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFMkMyNzU5NkRFQjAwRDAyQkJDIC8qIHBhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9sb2dnaW5nX21vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyQ0UyQUU1RDI3Njk5MjgzMDBEMDJCQkMgLyogcGFz
X2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUU1MTI3Njk5MjgyMDBEMDJCQkMgLyogcGFzX2NvbXBhY3Rf
dGFnZ2VkX3ZvaWRfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMkNFMkFFNjMyNzY5OTI4MzAwRDAyQkJDIC8qIHBhc19wcm9iYWJpbGlzdGlj
X2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDRTJBRTU3Mjc2OTkyODMwMEQwMkJCQyAvKiBwYXNfcHJvYmFiaWxp
c3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgKi87IH07CisJCTJDRTJBRTY0Mjc2OTkyODMw
MEQwMkJCQyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUU1ODI3Njk5
MjgzMDBEMDJCQkMgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5o
ICovOyB9OwogCQk0NDI2RTI4MDFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI3RTFDODM4RUUw
MDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi87IH07CiAJCTQ0MjZFMjgxMUM4MzhFRTAwMDhFQjA0
MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3
MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyRjQ3MjQ4MjEwQkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNT
UEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTI3OSw2ICsxMjgyLDkgQEAKIAkJMkNFMkFFMkEyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5jOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9h
bmRfcm9sZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0UyQUUyQjI3NTk2REVC
MDBEMDJCQkMgLyogcGFzX2dldF9wYWdlX2Jhc2VfYW5kX2tpbmRfZm9yX3NtYWxsX290aGVyX2lu
X2Zhc3RfbWVnYXBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2dl
dF9wYWdlX2Jhc2VfYW5kX2tpbmRfZm9yX3NtYWxsX290aGVyX2luX2Zhc3RfbWVnYXBhZ2UuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfcGFnZV9iYXNlX2FuZF9raW5kX2Zvcl9z
bWFsbF9vdGhlcl9pbl9mYXN0X21lZ2FwYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJDRTJBRTJDMjc1OTZERUIwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fbG9nZ2luZ19tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19z
ZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9sb2dnaW5nX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9sb2dnaW5nX21vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNFMkFFNTEyNzY5OTI4MjAwRDAyQkJDIC8qIHBhc19j
b21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQ0UyQUU1NzI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRf
bWFsbG9jX2FsbG9jYXRvci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNf
cHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmM7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDRTJBRTU4Mjc2OTkyODMwMEQwMkJCQyAvKiBwYXNf
cHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3Iu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxv
Y19hbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyNkUyN0UxQzgz
OEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTG9nZ2luZy5jcHA7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2lu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBhdGggPSBi
bWFsbG9jL0xvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJGNDcyNDgy
MTBCQTJGNTAwQjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBNZW1vcnlTdGF0dXNTUEkuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL01l
bW9yeVN0YXR1c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1Miw2ICsx
NTU4LDcgQEAKIAkJCQkwRjVGRTdEOTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzEyNDUxNDk1
RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywKIAkJCQkwRkM0MDk5RjI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oICovLAor
CQkJCTJDRTJBRTUxMjc2OTkyODIwMEQwMkJCQyAvKiBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9w
dHIuaCAqLywKIAkJCQkwRkM0MDk5QTI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5z
aWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzkyNDUxNDk1RjAwODc2REEwIC8qIHBhc19jb21w
dXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICovLAogCQkJCTBGQzQwOUIzMjQ1MTQ5NjIw
MDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCAqLywKQEAg
LTE3NTcsNiArMTc2NCw4IEBACiAJCQkJRTM4QTlFM0IyNzQyNjUxNDAwMEJCRDQ5IC8qIHBhc19w
bGF0Zm9ybS5oICovLAogCQkJCTBGQzQwQTQzMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfcHJpbWl0
aXZlX2hlYXBfcmVmLmMgKi8sCiAJCQkJMEZDNDBBRjgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19w
cmltaXRpdmVfaGVhcF9yZWYuaCAqLywKKwkJCQkyQ0UyQUU1NzI3Njk5MjgzMDBEMDJCQkMgLyog
cGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovLAorCQkJCTJDRTJB
RTU4Mjc2OTkyODMwMEQwMkJCQyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxs
b2NhdG9yLmggKi8sCiAJCQkJMEY4NzAwNTcyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wcm9tb3Rl
X2ludHJpbnNpY19oZWFwLmggKi8sCiAJCQkJMEY4NzAwNDYyNUFGOEExODAwMEUxQUJGIC8qIHBh
c19wdHJfaGFzaF9tYXAuaCAqLywKIAkJCQkwRkM0MEFDMzI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X3B0cl9oYXNoX3NldC5oICovLApAQCAtMjIwMCw2ICsyMjA5LDcgQEAKIAkJCQkwRkM0MDlENzI0
NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY29uZmlnLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDlDRDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMTQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNFMkFFNjQyNzY5OTI4MzAwRDAyQkJD
IC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzQwQTAwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX2NvdW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3NTQ5ODIyNDg2OTc0MDAwMkE0QzdEIC8qIHBhc19h
bGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUUzMjQ1MTQ5NjQwMDg3
NkRBMCAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMjEwLDYgKzIyMjAsNyBAQAogCQkJCTBGODdGRkUyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
YmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlG
QzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwOUQ0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzaWNfaGVhcF9y
dW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNFMkFFNUQyNzY5OTI4MzAwRDAy
QkJDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY4NzAwMDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyQ0UyQUUzMjI3NTk2REVCMDBEMDJCQkMgLyogcGFzX2dldF9w
YWdlX2Jhc2VfYW5kX2tpbmRfZm9yX3NtYWxsX290aGVyX2luX2Zhc3RfbWVnYXBhZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQTBCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYml0ZmllbGRf
dmVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzIsNiArMjY0Myw3IEBACiAJCQkJNjU5OUM1
Q0MxRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjUxNjc3NDFGQUQ2ODVDMDA4MjM2QTggLyogYm1hbGxvYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjhBODEzNjI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMgaW4gU291
cmNlcyAqLywKKwkJCQkyQ0UyQUU2MzI3Njk5MjgzMDBEMDJCQkMgLyogcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4QTgxMkMy
NUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAog
CQkJCTJDMTFFODk2MjcyOERFMjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RjI3MUM0MThFQTM5N0IwMDhDMTUyRiAvKiBDYWNoZS5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy8uZ2l0aWdub3JlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy8uZ2l0aWdub3JlCShyZXZpc2lvbiAyODcxNjcpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvLmdpdGlnbm9yZQkod29ya2luZyBjb3B5KQpAQCAtNCwz
ICs0LDQgQEAKIGJ1aWxkCiBidWlsZC0qCiAqfgorLnZzY29kZQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NDgsNiArNTQ4LDkgQEAKIAkJ
MEZGOEQ2MjcyMkMwNEE3NzAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmQuZGVmIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZG
OEQ2MjYyMkMwNEE2RDAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
ZGVmICovOyB9OwogCQkwRkY4RDYyOTIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkY4RDYyODIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxp
bmVzLmggKi87IH07CiAJCTBGRkZENTE1MjU2QjBGQkQwMDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0
aW9uX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRkZENTE0MjU2QjBGQkMwMDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCAqLzsg
fTsKKwkJMkIyQTU4OTkyNzQyRDgwMzAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJk
X21hbGxvY19hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJCMkE1ODk3Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19n
dWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggKi87IH07CisJCTJCMkE1ODlBMjc0MkQ4MDMwMDVFRTA3
QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQjJBNTg5ODI3NDJEODAyMDA1
RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovOyB9
OworCQkyQjJBNTg5QzI3NDJEODE1MDA1RUUwN0MgLyogUEdNVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkIyQTU4OUIyNzQyRDgxNTAwNUVF
MDdDIC8qIFBHTVRlc3RzLmNwcCAqLzsgfTsKIAkJMkMxMUU4OEUyNzI4QTc4MzAwMjE2MkQwIC8q
IGJtYWxsb2NfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkMxMUU4OEMyNzI4QTc4MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovOyB9Owog
CQkyQzExRTg4RjI3MjhBNzgzMDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg4RDI3MjhBNzgzMDAy
MTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgKi87IH07CiAJCTJDMTFFODkxMjcyOEE4OTMwMDIx
NjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDMTFFODkwMjcyOEE4OTMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyAq
LzsgfTsKQEAgLTEyMzMsNiArMTIzNiw5IEBACiAJCTBGRjhENjI2MjJDMDRBNkQwMEVDNzJGRSAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGlu
ZyA9IDQ7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGOEQ2MjgyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZGRkQ1MTQyNTZCMEZCQzAwMUVCOTRDIC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZGVhbGxvY2F0aW9uX21vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkIyQTU4OTcyNzQyRDgwMjAwNUVFMDdD
IC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2Fs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQjJBNTg5ODI3NDJEODAy
MDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9t
YWxsb2NfYWxsb2NhdG9yLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJCMkE1ODlC
Mjc0MkQ4MTUwMDVFRTA3QyAvKiBQR01UZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQR01UZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJDMTFFODhDMjcyOEE3ODMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gYm1hbGxvY190eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJDMTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NpbXBsZV90eXBlLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMTFFODkwMjcyOEE4OTMwMDIxNjJEMCAvKiBibWFs
bG9jX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gYm1hbGxvY190eXBl
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQ4LDYgKzEzNTQsNyBAQAogCQkJ
CTBGREVBNDVEMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcCAqLywK
IAkJCQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3BwICovLAogCQkJ
CTBGNTMxODEwMjJDOTU0RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi8sCisJCQkJ
MkIyQTU4OUIyNzQyRDgxNTAwNUVFMDdDIC8qIFBHTVRlc3RzLmNwcCAqLywKIAkJCQkwRjMxQTY2
NzIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCAqLywKIAkJCQkwRkM2
ODIzNjIxMjlENEVCMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCAqLywKIAkJCQkyQzQ4MTMy
QzI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCAqLywKQEAgLTEz
NjEsNiArMTM2OCw3IEBACiAJCQkJMEZENDhCNjYyM0I1ODk5MTAwMjZDNDZEIC8qIElzb0hlYXBQ
YXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAgKi8sCiAJCQkJMEY1QjYwOTMyMzVFOTE5OTAwQ0FF
NjI5IC8qIElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCAqLywKIAkJCQkwRjUxOTNFNjI2
NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCAqLywKKwkJCQkyQjhCQ0FDNjI3MzlB
NDc5MDBCMUE0NkYgLyogUEdNVGVzdHMuY3BwICovLAogCQkJCTBGQzY0MTkwMjEzNzQ1RkEwMDQw
Q0U1RSAvKiBMYXJnZUZyZWVIZWFwVGVzdHMuY3BwICovLAogCQkJCTBGRUI2NjY2MjMxQzg3QkMw
MDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5jcHAgKi8sCiAJCQkJMEZFQjY2NjcyMzFD
ODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xEdW1wLmggKi8sCkBAIC0xNDAyLDYgKzE0
MTAsOCBAQAogCQkJCTBGNUZFN0EzMjVCNjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVz
LmggKi8sCiAJCQkJMEY1MTZFRTYyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMu
aCAqLywKIAkJCQkwRjUyOURERTI0NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggKi8s
CisJCQkJMkIyQTU4OTgyNzQyRDgwMjAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJk
X21hbGxvY19hbGxvY2F0b3IuYyAqLywKKwkJCQkyQjJBNTg5NzI3NDJEODAyMDA1RUUwN0MgLyog
cGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5oICovLAogCQkJCTBGRTdF
RTc0MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5jICovLAogCQkJCTBGRTdFRTc1MjI5RjAx
MEYwMDRGNDE2NiAvKiBpc29faGVhcC5oICovLAogCQkJCTBGNUU1Q0U4MjNCRUYzNUYwMEFBMEI2
RiAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5jICovLApAQCAtMTczMiw2ICsxNzQyLDggQEAKIAkJ
CQkwRkQyMkNGRDIyQ0MwMUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggKi8s
CiAJCQkJMEY0RjYxQzkyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9u
X3BhZ2VfbGlzdC5jICovLAogCQkJCTBGNEY2MUM4MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5
bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLywKKwkJCQkyQjhCQ0FDMzI3MzlBNDU5MDBC
MUE0NkYgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovLAor
CQkJCTJCOEJDQUMyMjczOUE0NTkwMEIxQTQ2RiAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9t
YWxsb2NfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEY2RDU0NzMyM0M1NzNFMDAwRjQwREJCIC8qIHBh
c19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmggKi8sCiAJCQkJMEZGMjQ4
RjcyMkZDOUVEQTAwNzcyMDJFIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyAq
LywKIAkJCQkwRjc4MDg4NjIyRkEyRTQ5MDBGMzc0NTEgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbi5oICovLApAQCAtMjAxOCw2ICsyMDMwLDcgQEAKIAkJCQkwRkU3RUUwMzIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY5QTFEMDcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDA4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkIyQTU4OTkyNzQyRDgwMzAwNUVF
MDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOUExRDFEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9j
YXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwMjI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDE0
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTMsNiArMjYwNiw3IEBACiAJCQkJMEZFQjY2NjgyMzFDODdCQzAwOUMw
MDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xEdW1wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUI2
NjZBMjMxREE4NkYwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFQTQ1QkYyMzZDREFFRDAwQjVBMzc1IC8qIExvY2tGcmVlUmVhZFB0clB0
ckhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJCMkE1ODlDMjc0MkQ4MTUw
MDVFRTA3QyAvKiBQR01UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQyMkQwODIyQ0Q4
QTc1MDBCMjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNUU0
ODNBMjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZGMDhGMzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNrVHJlZVRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjYyNyw2ICsyNjQxLDcgQEAKIAkJCQkwRkQ0OEI0NjIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY0N0MzMUUyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNjMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNl
bGluZV9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAorCQkJCTJCMkE1ODlBMjc0MkQ4MDMwMDVF
RTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQ0OEIzRjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OUEzOUMyNjY4NDRBMzAwQTM4
NjU3IC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGOUExRDEwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
ci5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9qaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MiwxMyArMTUyLDE0IEBAIHZvaWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVf
cGFnZSgKIH0KIAogcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9jcmVhdGVfcGFnZV9o
ZWFkZXIoCi0gICAgdm9pZCogYm91bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tf
aG9sZF9tb2RlKQorICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19s
b2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIHBhc19wYWdlX2Jhc2Uq
IHJlc3VsdDsKKyAgICBQQVNfQVNTRVJUKGtpbmQgPT0gcGFzX3NtYWxsX2JpdGZpdF9wYWdlX2tp
bmQpOwogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwogICAgIHJlc3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQoJmppdF9zbWFs
bF9iaXRmaXRfcGFnZV9oZWFkZXJfdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBKSVRfU01BTExfUEFHRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSklUX0hFQVBfQ09ORklHLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5w
YWdlX2hlYWRlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9wYWdlX2hlYWRlcl9zaXplKEpJVF9IRUFQX0NPTkZJRy5zbWFsbF9iaXRmaXRf
Y29uZmlnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5
KTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xODQsMTMgKzE4NSwxNCBAQCB2b2lkKiBq
aXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogfQogCiBwYXNfcGFnZV9iYXNlKiBqaXRf
bWVkaXVtX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAgdm9pZCogYm91bmRhcnksIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQorICAgIHZvaWQqIGJvdW5kYXJ5
LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9t
b2RlKQogewogICAgIHBhc19wYWdlX2Jhc2UqIHJlc3VsdDsKKyAgICBQQVNfQVNTRVJUKGtpbmQg
PT0gcGFzX21lZGl1bV9iaXRmaXRfcGFnZV9raW5kKTsKICAgICBwYXNfaGVhcF9sb2NrX2xvY2tf
Y29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICByZXN1bHQgPSBwYXNfcGFn
ZV9oZWFkZXJfdGFibGVfYWRkKCZqaXRfbWVkaXVtX2JpdGZpdF9wYWdlX2hlYWRlcl90YWJsZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJVF9NRURJVU1fUEFHRV9T
SVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSklUX0hFQVBfQ09O
RklHLm1lZGl1bV9iaXRmaXRfY29uZmlnLmJhc2UucGFnZV9oZWFkZXJfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9oZWFkZXJfc2l6
ZShKSVRfSEVBUF9DT05GSUcubWVkaXVtX2JpdGZpdF9jb25maWcpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRhcnkpOwogICAgIHBhc19oZWFwX2xvY2tfdW5s
b2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZp
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9o
ZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEs
NyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X3NtYWxsCiBQQVNfQVBJIHZv
aWQqIGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7
CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9zbWFsbF9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVh
ZGVyKAotICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CisgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogUEFTX0FQSSB2b2lkIGppdF9zbWFs
bF9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlcigKICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLCBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKQEAgLTgxLDcgKzgxLDcg
QEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIAogUEFTX0FQSSB2b2lk
KiBqaXRfbWVkaXVtX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKTsK
IFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X21lZGl1bV9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVh
ZGVyKAotICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CisgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogUEFTX0FQSSB2b2lkIGppdF9tZWRp
dW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCiAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCkBAIC0xMjQsMjIgKzEy
NCwxOCBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJCiAgICAgICAg
ICAgICAubWluX2FsaWduX3NoaWZ0ID0gSklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfTUlO
X0FMSUdOX1NISUZULCBcCiAgICAgICAgICAgICAucGFnZV9zaXplID0gSklUXyAjIyB2YXJpYW50
X3VwcGVyY2FzZSAjIyBfUEFHRV9TSVpFLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0g
SklUXyAjIyB2YXJpYW50X3VwcGVyY2FzZSAjIyBfR1JBTlVMRV9TSVpFLCBcCi0gICAgICAgICAg
ICAucGFnZV9oZWFkZXJfc2l6ZSA9IFBBU19CSVRGSVRfUEFHRV9IRUFERVJfU0laRSggXAotICAg
ICAgICAgICAgICAgIEpJVF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX1BBR0VfU0laRSwgXAot
ICAgICAgICAgICAgICAgIEpJVF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX0dSQU5VTEVfU0la
RSwgXAotICAgICAgICAgICAgICAgIEpJVF8gIyMgdmFyaWFudF91cHBlcmNhc2UgIyMgX01JTl9B
TElHTl9TSElGVCksIFwKICAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUgPSBcCiAgICAgICAg
ICAgICAgICAgUEFTX0JJVEZJVF9NQVhfRlJFRV9NQVhfVkFMSUQgPDwgSklUXyAjIyB2YXJpYW50
X3VwcGVyY2FzZSAjIyBfTUlOX0FMSUdOX1NISUZULCBcCiAgICAgICAgICAgICAucGFnZV9oZWFk
ZXJfZm9yX2JvdW5kYXJ5ID0gaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X3Bh
Z2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAogICAgICAgICAgICAgLmJvdW5kYXJ5X2Zvcl9wYWdl
X2hlYWRlciA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9ib3VuZGFyeV9m
b3JfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlf
cmVtb3RlID0gaml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUsIFwKLSAgICAgICAg
ICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9IDAsIFwKLSAgICAgICAgICAgIC5wYWdl
X29iamVjdF9wYXlsb2FkX3NpemUgPSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9QQUdF
X1NJWkUsIFwKICAgICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBqaXRfICMjIHZhcmlh
bnRfbG93ZXJjYXNlICMjIF9iaXRmaXRfY3JlYXRlX3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAg
ICAuZGVzdHJveV9wYWdlX2hlYWRlciA9IGppdF8gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2Jp
dGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXAogICAgICAgICAudmFyaWFu
dCA9IHBhc18gIyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJp
YW50LCBcCiAgICAgICAgIC5raW5kID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2ppdF8g
IyMgdmFyaWFudF9sb3dlcmNhc2UgIyMgX2JpdGZpdCwgXAorICAgICAgICAucGFnZV9vYmplY3Rf
cGF5bG9hZF9vZmZzZXQgPSAwLCBcCisgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUg
PSBKSVRfICMjIHZhcmlhbnRfdXBwZXJjYXNlICMjIF9QQUdFX1NJWkUsIFwKICAgICAgICAgLnBh
Z2VfYWxsb2NhdG9yID0gaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X2FsbG9j
YXRlX3BhZ2UsIFwKICAgICAgICAgUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElP
TlMoaml0XyAjIyB2YXJpYW50X2xvd2VyY2FzZSAjIyBfYml0Zml0X3BhZ2VfY29uZmlnKSBcCiAg
ICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9h
bGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjUsOCArMTI1LDEyIEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0
X3ZpZXcocGEKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvZygicGFnZV9ib3VuZGFyeSA9ICVwLCBkaWRfc3VjY2VlZCA9ICVkXG4iLCB2aWV3
LT5wYWdlX2JvdW5kYXJ5LCBkaWRfc3VjY2VlZCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKGRpZF9zdWNjZWVkKQotICAgICAgICAgICAgICAgICAgICBjb25maWctPmJh
c2UuY3JlYXRlX3BhZ2VfaGVhZGVyKHZpZXctPnBhZ2VfYm91bmRhcnksIHBhc19sb2NrX2lzX2hl
bGQpOworICAgICAgICAgICAgICAgIGlmIChkaWRfc3VjY2VlZCkgeworICAgICAgICAgICAgICAg
ICAgICBjb25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAorICAgICAgICAgICAgICAgICAg
ICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX2tpbmRfZm9yX2JpdGZpdF92YXJpYW50KGNvbmZpZy0+dmFyaWFudCksCisgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAg
ICAgICAgICAgICAgICBpZiAocGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9lbmQoJnRy
YW5zYWN0aW9uKSkKQEAgLTE3NCw3ICsxNzgsMTAgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRv
cl9jb21taXRfdmlldyhwYQogCiAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoCiAgICAg
ICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKLSAg
ICAgICAgY29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5
LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgICAgIGNvbmZpZy0+YmFzZS5jcmVhdGVfcGFn
ZV9oZWFkZXIoCisgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LAorICAgICAgICAgICAg
cGFzX3BhZ2Vfa2luZF9mb3JfYml0Zml0X3ZhcmlhbnQoY29uZmlnLT52YXJpYW50KSwKKyAgICAg
ICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIAogICAgICAgICBwYXNfbG9ja19sb2NrKCZ2
aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jCShyZXZpc2lvbiAyODcxNjcpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMTAzLDkgKzEwMyw4IEBAIHZvaWQgcGFzX2JpdGZpdF9wYWdlX2NvbnN0cnVj
dChwYXNfYml0ZmkKICAgICAgICAgCiAgICAgICAgIC8qIElmIHRoZXJlIGFyZSBhbnkgYnl0ZXMg
aW4gdGhlIHBhZ2Ugbm90IG1hZGUgYXZhaWxhYmxlIGZvciBhbGxvY2F0aW9uIHRoZW4gbWFrZSBz
dXJlCiAgICAgICAgICAgIHRoYXQgdGhlIHVzZSBjb3VudHMga25vdyBhYm91dCBpdC4gKi8KLSAg
ICAgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IGNvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRf
b2Zmc2V0OwotICAgICAgICBlbmRfb2ZfcGF5bG9hZCA9Ci0gICAgICAgICAgICBjb25maWcuYmFz
ZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCArIGNvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfc2l6ZTsKKyAgICAgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IGNvbmZpZy5wYWdlX29iamVj
dF9wYXlsb2FkX29mZnNldDsKKyAgICAgICAgZW5kX29mX3BheWxvYWQgPSBjb25maWcucGFnZV9v
YmplY3RfcGF5bG9hZF9vZmZzZXQgKyBjb25maWcucGFnZV9vYmplY3RfcGF5bG9hZF9zaXplOwog
CiAgICAgICAgIHBhc19wYWdlX2dyYW51bGVfaW5jcmVtZW50X3VzZXNfZm9yX3JhbmdlKAogICAg
ICAgICAgICAgdXNlX2NvdW50cywgMCwgc3RhcnRfb2ZfcGF5bG9hZCwKQEAgLTI5OSw5ICsyOTgs
OCBAQCB2b2lkIHBhc19iaXRmaXRfcGFnZV92ZXJpZnkocGFzX2JpdGZpdF9wCiAgICAgZGF0YS5i
b3VuZGFyeSA9ICh1aW50cHRyX3QpcGFzX2JpdGZpdF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIGNvbmZp
Zyk7CiAgICAgcGFzX3plcm9fbWVtb3J5KGRhdGEubXlfdXNlX2NvdW50cywgUEFTX01BWF9HUkFO
VUxFUyk7CiAgICAgCi0gICAgc3RhcnRfb2ZfcGF5bG9hZCA9IGNvbmZpZy5iYXNlLnBhZ2Vfb2Jq
ZWN0X3BheWxvYWRfb2Zmc2V0OwotICAgIGVuZF9vZl9wYXlsb2FkID0KLSAgICAgICAgY29uZmln
LmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgKyBjb25maWcuYmFzZS5wYWdlX29iamVj
dF9wYXlsb2FkX3NpemU7CisgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IGNvbmZpZy5wYWdlX29iamVj
dF9wYXlsb2FkX29mZnNldDsKKyAgICBlbmRfb2ZfcGF5bG9hZCA9IGNvbmZpZy5wYWdlX29iamVj
dF9wYXlsb2FkX29mZnNldCArIGNvbmZpZy5wYWdlX29iamVjdF9wYXlsb2FkX3NpemU7CiAgICAg
CiAgICAgcGFzX3BhZ2VfZ3JhbnVsZV9pbmNyZW1lbnRfdXNlc19mb3JfcmFuZ2UoCiAgICAgICAg
IGRhdGEubXlfdXNlX2NvdW50cywgMCwgc3RhcnRfb2ZfcGF5bG9hZCwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5oCShyZXZp
c2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBQQVNfQVBJIHZvaWQg
cGFzX2JpdGZpdF9wYWdlX2NvbnN0cnVjdChwCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWlu
dHB0cl90CiBwYXNfYml0Zml0X3BhZ2Vfb2Zmc2V0X3RvX2ZpcnN0X29iamVjdChwYXNfYml0Zml0
X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewotICAgIHJldHVybiBwYXNfcm91bmRfdXBfdG9f
cG93ZXJfb2ZfMihwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0LAor
ICAgIHJldHVybiBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihwYWdlX2NvbmZpZy5wYWdlX29i
amVjdF9wYXlsb2FkX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3BhZ2VfYmFzZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnLmJhc2UpKTsKIH0K
IApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QK
IHBhc19iaXRmaXRfcGFnZV9vZmZzZXRfdG9fZW5kX29mX2xhc3Rfb2JqZWN0KHBhc19iaXRmaXRf
cGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgcmV0dXJuIHBhc19yb3VuZF9kb3duX3Rv
X3Bvd2VyX29mXzIoCi0gICAgICAgIHBhc19wYWdlX2Jhc2VfY29uZmlnX29iamVjdF9wYXlsb2Fk
X2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeShwYWdlX2NvbmZpZy5iYXNlKSwKKyAgICAgICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRh
cnkocGFnZV9jb25maWcpLAogICAgICAgICBwYXNfcGFnZV9iYXNlX2NvbmZpZ19taW5fYWxpZ24o
cGFnZV9jb25maWcuYmFzZSkpOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZpc2lv
biAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3BhZ2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEyIEBAIHN0cnVjdCBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnIHsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Zhcmlh
bnQgdmFyaWFudDsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQga2luZDsKIAorICAg
IC8qIFdoYXQncyB0aGUgZmlyc3QgYnl0ZSBhdCB3aGljaCB0aGUgb2JqZWN0IHBheWxvYWQgY291
bGQgc3RhcnQgcmVsYXRpdmUgdG8gdGhlIGJvdW5kYXJ5PyAqLworICAgIHVpbnRwdHJfdCBwYWdl
X29iamVjdF9wYXlsb2FkX29mZnNldDsKKworICAgIC8qIEhvdyBtYW55IGJ5dGVzIGFyZSBwcm92
aXNpb25lZCBmb3Igb2JqZWN0cyBwYXN0IHRoYXQgb2Zmc2V0PyAqLworICAgIHNpemVfdCBwYWdl
X29iamVjdF9wYXlsb2FkX3NpemU7CisKICAgICAvKiBUaGlzIGlzIHRoZSBhbGxvY2F0b3IgdXNl
ZCB0byBjcmVhdGUgcGFnZXMuICovCiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19wYWdlX2Fs
bG9jYXRvciBwYWdlX2FsbG9jYXRvcjsKIApAQCAtMTQxLDYgKzE0NywxMiBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgcGFzX2JpdGZpdF9wYWdlX2NvbmZpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90CitwYXNfYml0Zml0X3BhZ2VfY29uZmln
X29iamVjdF9wYXlsb2FkX2VuZF9vZmZzZXRfZnJvbV9ib3VuZGFyeShwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnIGNvbmZpZykKK3sKKyAgICByZXR1cm4gY29uZmlnLnBhZ2Vfb2JqZWN0X3BheWxvYWRf
b2Zmc2V0ICsgY29uZmlnLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZTsKK30KKwogc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX251bV9hbGxvY19i
aXRzKHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnKQogewogICAgIHJldHVybiBQQVNfQklU
RklUX1BBR0VfQ09ORklHX05VTV9BTExPQ19CSVRTKGNvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RhZ2dlZF92
b2lkX3B0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RhZ2dlZF92b2lkX3B0ci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9UQUdHRURfVk9JRF9QVFJf
SAorI2RlZmluZSBQQVNfQ09NUEFDVF9UQUdHRURfVk9JRF9QVFJfSAorCisjaW5jbHVkZSAicGFz
X2NvbXBhY3RfdGFnZ2VkX3B0ci5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK1BBU19ERUZJ
TkVfQ09NUEFDVF9UQUdHRURfUFRSKHZvaWQqLCBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIp
OworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1RfVEFHR0VEX1ZP
SURfUFRSX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMJKHJl
dmlzaW9uIDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19l
bnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsNyArMzQ0
LDggQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KHBhcwogICAgICAgICBl
bnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7CiAgICAgUEFTX0FTU0VSVChwYWdlKTsK
IAotICAgIHBhZ2UgPSBwYXNfZW51bWVyYXRvcl9yZWFkKGVudW1lcmF0b3IsIHBhZ2UsIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmlnKSk7CisgICAgcGFnZSA9IHBh
c19lbnVtZXJhdG9yX3JlYWQoCisgICAgICAgIGVudW1lcmF0b3IsIHBhZ2UsIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2V4
Y2x1c2l2ZV9yb2xlKSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTQwNCw3ICs0MDUsOSBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfc2hhcmVkX3ZpZXcocGFz
X2VuCiAgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnkpOwog
ICAgICAgICAgICAgUEFTX0FTU0VSVChwYWdlKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cGFnZSA9IHBhc19lbnVtZXJhdG9yX3JlYWQoZW51bWVyYXRvciwgcGFnZSwgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9oZWFkZXJfc2l6ZSgqcGFnZV9jb25maWcpKTsKKyAgICAgICAgICAgIHBhZ2UgPSBw
YXNfZW51bWVyYXRvcl9yZWFkKAorICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsIHBhZ2UsCisg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfc2l6ZSgqcGFnZV9jb25m
aWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpKTsKICAgICAgICAgICAgIGlmICgh
cGFnZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTQzMCw5
ICs0MzMsMTAgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX3NoYXJlZF92aWV3KHBhc19lbgogICAg
ICAgICAKICAgICAgICAgUEFTX0FTU0VSVChwYWdlKTsKICAgICAgICAgCi0gICAgICAgIHBheWxv
YWRfYmVnaW4gPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihwYWdlX2NvbmZpZy0+YmFzZS5w
YWdlX29iamVjdF9wYXlsb2FkX29mZnNldCwKKyAgICAgICAgcGF5bG9hZF9iZWdpbiA9IHBhc19y
b3VuZF91cF90b19wb3dlcl9vZl8yKHBhZ2VfY29uZmlnLT5zaGFyZWRfcGF5bG9hZF9vZmZzZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oKnBhZ2VfY29uZmlnKSk7Ci0gICAgICAg
IHBheWxvYWRfZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfb2JqZWN0X3BheWxvYWRf
ZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KCpwYWdlX2NvbmZpZyk7CisgICAgICAgIHBheWxvYWRf
ZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9y
b2xlKAorICAgICAgICAgICAgKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJl
ZF9yb2xlKTsKICAgICAgICAgCiAgICAgICAgIHJlY29yZF9wYWdlX3BheWxvYWRfYW5kX21ldGEo
ZW51bWVyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZywKQEAgLTQ4MSw3ICs0ODUsOCBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfcGFydGlhbF92
aWV3KHBhc19lCiAgICAgICAgIGVudW1lcmF0b3IsICh2b2lkKilwYWdlX2JvdW5kYXJ5KTsKICAg
ICBQQVNfQVNTRVJUKHBhZ2UpOwogICAgIAotICAgIHBhZ2UgPSBwYXNfZW51bWVyYXRvcl9yZWFk
KGVudW1lcmF0b3IsIHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2Vf
Y29uZmlnKSk7CisgICAgcGFnZSA9IHBhc19lbnVtZXJhdG9yX3JlYWQoCisgICAgICAgIGVudW1l
cmF0b3IsIHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmln
LCBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlKSk7CiAgICAgaWYgKCFwYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODcx
NjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdf
dXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDI1ICsxMDcsMTMgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAg
LmdyYW51bGVfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUsIFwK
LSAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9zaXplID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFH
RV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlm
dCwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAotICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKLSAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUg
PSBQQVNfTUFYX09CSkVDVF9TSVpFKFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfU0laRSgg
XAorICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9IFBBU19NQVhfT0JKRUNUX1NJWkUoUEFT
X0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9TSVpFX0VYQ0xVU0lWRSggXAogICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCwgXAogICAgICAgICAgICAgICAgICgocGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVk
X3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Fy
Z3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSkpLCBcCiAg
ICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gbmFtZSAjIyBfc21hbGxfc2Vn
cmVnYXRlZF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKICAgICAgICAgICAgIC5ib3VuZGFy
eV9mb3JfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9zbWFsbF9zZWdyZWdhdGVkX2JvdW5kYXJ5X2Zv
cl9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9y
ZW1vdGUgPSBuYW1lICMjIF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFy
eV9yZW1vdGUsIFwKLSAgICAgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9IFBB
U19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfT0ZGU0VUKCBcCi0gICAgICAgICAgICAgICAgKChw
YXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3Jl
Z2F0ZWRfbWluX2FsaWduX3NoaWZ0LCBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVh
cF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9z
aXplLCBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRz
KXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplKSwgXAotICAgICAgICAg
ICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxP
QURfU0laRSggXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCwgXAot
ICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9B
UkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAotICAgICAgICAgICAgICAgICgo
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdy
ZWdhdGVkX3BhZ2Vfc2l6ZSksIFwKICAgICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBu
YW1lICMjIF9zbWFsbF9zZWdyZWdhdGVkX2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAg
ICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9zbWFsbF9zZWdyZWdhdGVkX2Rlc3Ry
b3lfcGFnZV9oZWFkZXIgXAogICAgICAgICB9LCBcCkBAIC0xMzgsNiArMTI2LDIyIEBAIHR5cGVk
ZWYgc3RydWN0IHsKICAgICAgICAgLm51bV9hbGxvY19iaXRzID0gUEFTX0JBU0lDX1NFR1JFR0FU
RURfTlVNX0FMTE9DX0JJVFMoIFwKICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlm
dCwgXAogICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZB
X0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplKSwgXAorICAgICAgICAuc2hhcmVk
X3BheWxvYWRfb2Zmc2V0ID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9PRkZTRVRfU0hB
UkVEKCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19f
VkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQsIFwKKyAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXpl
KSwgXAorICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0ID0gUEFTX0JBU0lDX1NFR1JF
R0FURURfUEFZTE9BRF9PRkZTRVRfRVhDTFVTSVZFKCBcCisgICAgICAgICAgICAoKHBhc19iYXNp
Y19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9t
aW5fYWxpZ25fc2hpZnQsIFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Fy
Z3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSwgXAorICAg
ICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30p
LnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplKSwgXAorICAgICAgICAuc2hhcmVkX3BheWxvYWRf
c2l6ZSA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfU0laRV9TSEFSRUQoIFwKKyAgICAg
ICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5z
bWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCwgXAorICAgICAgICAgICAgKChwYXNfYmFz
aWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRf
cGFnZV9zaXplLCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUpLCBcCisgICAgICAg
IC5leGNsdXNpdmVfcGF5bG9hZF9zaXplID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9T
SVpFX0VYQ0xVU0lWRSggXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJn
dW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0LCBc
CisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUsIFwKKyAgICAgICAgICAgICgocGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVk
X3BhZ2Vfc2l6ZSksIFwKICAgICAgICAgLnNoYXJlZF9sb2dnaW5nX21vZGUgPSBcCiAgICAgICAg
ICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21h
bGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2RlLCBcCiAgICAgICAgIC5leGNsdXNpdmVf
bG9nZ2luZ19tb2RlID0gXApAQCAtMTY5LDE5ICsxNzMsMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9B
UkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCiAgICAgICAgICAgICAuZ3JhbnVsZV9zaXplID0g
XAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5ncmFudWxlX3NpemUsIFwKLSAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9zaXpl
ID0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRp
dW1fc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19i
YXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6
ZSwgXAotICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7
X19WQV9BUkdTX199KS5ncmFudWxlX3NpemUpLCBcCiAgICAgICAgICAgICAubWF4X29iamVjdF9z
aXplID0gUEFTX01BWF9PQkpFQ1RfU0laRSggXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplKSwg
XAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSA9IG5hbWUgIyMgX21lZGl1
bV9zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSwgXAogICAgICAgICAgICAgLmJv
dW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciA9IG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX2JvdW5k
YXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeV9yZW1vdGUgPSBcCiAgICAgICAgICAgICAgICAgbmFtZSAjIyBfbWVkaXVtX3NlZ3JlZ2F0
ZWRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAotICAgICAgICAgICAgLnBhZ2Vf
b2JqZWN0X3BheWxvYWRfb2Zmc2V0ID0gMCwgXAotICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAg
LmNyZWF0ZV9wYWdlX2hlYWRlciA9IG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX2NyZWF0ZV9w
YWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBuYW1lICMj
IF9tZWRpdW1fc2VncmVnYXRlZF9kZXN0cm95X3BhZ2VfaGVhZGVyIFwKICAgICAgICAgfSwgXApA
QCAtMTk0LDYgKzE5MSwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgIC5udW1fYWxsb2Nf
Yml0cyA9IFBBU19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRTKCBcCiAgICAgICAgICAg
ICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVt
X3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0LCBcCiAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSksIFwK
KyAgICAgICAgLnNoYXJlZF9wYXlsb2FkX29mZnNldCA9IDAsIFwKKyAgICAgICAgLmV4Y2x1c2l2
ZV9wYXlsb2FkX29mZnNldCA9IDAsIFwKKyAgICAgICAgLnNoYXJlZF9wYXlsb2FkX3NpemUgPSBc
CisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSwgXAorICAgICAgICAuZXhjbHVzaXZlX3BheWxvYWRfc2l6
ZSA9IFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCiAgICAgICAgIC5zaGFyZWRfbG9nZ2luZ19t
b2RlID0gXAogICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLm1lZGl1bV9zaGFyZWRfc2VncmVnYXRlZF9sb2dnaW5nX21vZGUsIFwKICAg
ICAgICAgLmV4Y2x1c2l2ZV9sb2dnaW5nX21vZGUgPSBcCkBAIC0yMjIsMTAgKzIyNSw2IEBAIHR5
cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAogICAgICAg
ICAgICAgLmdyYW51bGVfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFw
X2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwg
XAotICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX3NpemUgPSBQQVNfQklURklUX1BBR0VfSEVBREVS
X1NJWkUoIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAotICAgICAgICAgICAg
ICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFs
bF9iaXRmaXRfcGFnZV9zaXplLCBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hp
ZnQpLCBcCiAgICAgICAgICAgICAubWF4X29iamVjdF9zaXplID0gUEFTX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUoIFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1
bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSAtIFwKICAgICAgICAg
ICAgICAgICBQQVNfQklURklUX1BBR0VfSEVBREVSX1NJWkUoIFwKQEAgLTIzNiwyMSArMjM1LDIx
IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRh
cnkgPSBuYW1lICMjIF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5LCBcCiAg
ICAgICAgICAgICAuYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfc21hbGxfYml0
Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVy
X2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBuYW1lICMjIF9zbWFsbF9iaXRmaXRfcGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5X3JlbW90ZSwgXAotICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRf
b2Zmc2V0ID0gUEFTX0JJVEZJVF9QQUdFX0hFQURFUl9TSVpFKCBcCi0gICAgICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2Jp
dGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAotICAg
ICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdT
X199KS5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAotICAgICAgICAgICAgLnBhZ2Vf
b2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFw
X2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSAt
IFwKLSAgICAgICAgICAgICAgICBQQVNfQklURklUX1BBR0VfSEVBREVSX1NJWkUoIFwKLSAgICAg
ICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FS
R1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAgICAgKChw
YXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZp
dF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25m
aWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQp
LCBcCiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfc21hbGxfYml0
Zml0X2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFk
ZXIgPSBuYW1lICMjIF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlciBcCiAgICAgICAg
IH0sIFwKICAgICAgICAgLnZhcmlhbnQgPSBwYXNfc21hbGxfYml0Zml0X3BhZ2VfY29uZmlnX3Zh
cmlhbnQsIFwKICAgICAgICAgLmtpbmQgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfICMj
IG5hbWUgIyMgX3NtYWxsX2JpdGZpdCwgXAorICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9v
ZmZzZXQgPSBQQVNfQklURklUX1BBR0VfSEVBREVSX1NJWkUoIFwKKyAgICAgICAgICAgICgocGFz
X2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRf
cGFnZV9zaXplLCBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAorICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2Jp
dGZpdF9taW5fYWxpZ25fc2hpZnQpLCBcCisgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3Np
emUgPSBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19f
VkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSAtIFwKKyAgICAgICAgICAgIFBBU19C
SVRGSVRfUEFHRV9IRUFERVJfU0laRSggXAorICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9iaXRmaXRfcGFnZV9zaXpl
LCBcCisgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKKyAgICAgICAgICAgICAgICAo
KHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0
Zml0X21pbl9hbGlnbl9zaGlmdCksIFwKICAgICAgICAgLnBhZ2VfYWxsb2NhdG9yID0gbmFtZSAj
IyBfaGVhcF9jb25maWdfYWxsb2NhdGVfc21hbGxfYml0Zml0X3BhZ2UsIFwKICAgICAgICAgUEFT
X0JJVEZJVF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobmFtZSAjIyBfc21hbGxfYml0Zml0
X3BhZ2VfY29uZmlnKSBcCiAgICAgfSwgXApAQCAtMjY3LDI0ICsyNjYsMjAgQEAgdHlwZWRlZiBz
dHJ1Y3QgewogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50
cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBcCiAgICAgICAgICAgICAuZ3JhbnVs
ZV9zaXplID0gXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5ncmFudWxlX3NpemUsIFwKLSAgICAgICAgICAgIC5wYWdlX2hl
YWRlcl9zaXplID0gUEFTX0JJVEZJVF9QQUdFX0hFQURFUl9TSVpFKCBcCi0gICAgICAgICAgICAg
ICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1
bV9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuZ3JhbnVsZV9zaXplLCBcCi0gICAgICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9i
aXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9
IFBBU19NQVhfQklURklUX09CSkVDVF9TSVpFKCBcCiAgICAgICAgICAgICAgICAgKChwYXNfYmFz
aWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9wYWdlX3NpemUs
IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19f
VkFfQVJHU19ffSkubWVkaXVtX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQpLCBcCiAgICAgICAgICAg
ICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gbmFtZSAjIyBfbWVkaXVtX2JpdGZpdF9wYWdl
X2hlYWRlcl9mb3JfYm91bmRhcnksIFwKICAgICAgICAgICAgIC5ib3VuZGFyeV9mb3JfcGFnZV9o
ZWFkZXIgPSBuYW1lICMjIF9tZWRpdW1fYml0Zml0X2JvdW5kYXJ5X2Zvcl9wYWdlX2hlYWRlciwg
XAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUgPSBuYW1lICMj
IF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUsIFwKLSAgICAg
ICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCA9IDAsIFwKLSAgICAgICAgICAgIC5w
YWdlX29iamVjdF9wYXlsb2FkX3NpemUgPSBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNf
aGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1lZGl1bV9wYWdlX3NpemUsIFwK
ICAgICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9tZWRpdW1fYml0Zml0
X2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLmRlc3Ryb3lfcGFnZV9oZWFkZXIg
PSBuYW1lICMjIF9tZWRpdW1fYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIgXAogICAgICAgICB9
LCBcCiAgICAgICAgIC52YXJpYW50ID0gcGFzX21lZGl1bV9iaXRmaXRfcGFnZV9jb25maWdfdmFy
aWFudCwgXAogICAgICAgICAua2luZCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF8gIyMg
bmFtZSAjIyBfbWVkaXVtX2JpdGZpdCwgXAorICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9v
ZmZzZXQgPSAwLCBcCisgICAgICAgIC5wYWdlX29iamVjdF9wYXlsb2FkX3NpemUgPSBcCisgICAg
ICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSku
bWVkaXVtX3BhZ2Vfc2l6ZSwgXAogICAgICAgICAucGFnZV9hbGxvY2F0b3IgPSBuYW1lICMjIF9o
ZWFwX2NvbmZpZ19hbGxvY2F0ZV9tZWRpdW1fYml0Zml0X3BhZ2UsIFwKICAgICAgICAgUEFTX0JJ
VEZJVF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobmFtZSAjIyBfbWVkaXVtX2JpdGZpdF9w
YWdlX2NvbmZpZykgXAogICAgIH0sIFwKQEAgLTMwMSwyNCArMjk2LDIwIEBAIHR5cGVkZWYgc3Ry
dWN0IHsKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMp
e19fVkFfQVJHU19ffSkubWFyZ2VfYml0Zml0X3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAgLmdy
YW51bGVfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuZ3JhbnVsZV9zaXplLCBcCi0gICAgICAgICAgICAucGFn
ZV9oZWFkZXJfc2l6ZSA9IFBBU19CSVRGSVRfUEFHRV9IRUFERVJfU0laRSggXAotICAgICAgICAg
ICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5t
YXJnZV9iaXRmaXRfcGFnZV9zaXplLCBcCi0gICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVh
cF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmdyYW51bGVfc2l6ZSwgXAotICAgICAg
ICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199
KS5tYXJnZV9iaXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAgLm1heF9vYmpl
Y3Rfc2l6ZSA9IFBBU19NQVhfQklURklUX09CSkVDVF9TSVpFKCBcCiAgICAgICAgICAgICAgICAg
KChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1hcmdlX2Jp
dGZpdF9wYWdlX3NpemUsIFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWFyZ2VfYml0Zml0X21pbl9hbGlnbl9zaGlmdCks
IFwKICAgICAgICAgICAgIC5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkgPSBuYW1lICMjIF9tYXJn
ZV9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5LCBcCiAgICAgICAgICAgICAuYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWFyZ2VfYml0Zml0X2JvdW5kYXJ5X2Zvcl9w
YWdlX2hlYWRlciwgXAogICAgICAgICAgICAgLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1v
dGUgPSBuYW1lICMjIF9tYXJnZV9iaXRmaXRfcGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90
ZSwgXAotICAgICAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ID0gMCwgXAotICAg
ICAgICAgICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICAo
KHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWFyZ2VfYml0
Zml0X3BhZ2Vfc2l6ZSwgXAogICAgICAgICAgICAgLmNyZWF0ZV9wYWdlX2hlYWRlciA9IG5hbWUg
IyMgX21hcmdlX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5kZXN0
cm95X3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWFyZ2VfYml0Zml0X2Rlc3Ryb3lfcGFnZV9oZWFk
ZXIgXAogICAgICAgICB9LCBcCiAgICAgICAgIC52YXJpYW50ID0gcGFzX21hcmdlX2JpdGZpdF9w
YWdlX2NvbmZpZ192YXJpYW50LCBcCiAgICAgICAgIC5raW5kID0gcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ19raW5kXyAjIyBuYW1lICMjIF9tYXJnZV9iaXRmaXQsIFwKKyAgICAgICAgLnBhZ2Vfb2Jq
ZWN0X3BheWxvYWRfb2Zmc2V0ID0gMCwgXAorICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9z
aXplID0gXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLm1hcmdlX2JpdGZpdF9wYWdlX3NpemUsIFwKICAgICAgICAgLnBhZ2VfYWxs
b2NhdG9yID0gbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWFyZ2VfYml0Zml0X3BhZ2Us
IFwKICAgICAgICAgUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobmFtZSAj
IyBfbWFyZ2VfYml0Zml0X3BhZ2VfY29uZmlnKSBcCiAgICAgfSwgXApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2Fs
bG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjQsMTQgKzMyNCwxNSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9mcmVl
X2JpdHMocGFzCiAgICAgaWYgKHZpZXdfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19raW5kKSB7CiAgICAgICAgIHVuc2lnbmVkIGJlZ2luX29mZnNldDsKICAgICAgICAgdW5z
aWduZWQgZW5kX29mZnNldDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSogZGF0YTsKIAogICAgICAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBw
YWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2luc3RhbGxfZnVsbF91c2VfY291bnRzKChwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyopdmlldyk7CiAKLSAgICAgICAgYmVnaW5fb2Zmc2V0ID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKLSAg
ICAgICAgICAgIHBhZ2UsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcpOwotICAgICAgICBlbmRfb2Zm
c2V0ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVs
bCgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmRhdGEpLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKKyAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7
CisKKyAgICAgICAgYmVnaW5fb2Zmc2V0ID0gZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFy
eV90b19maXJzdF9vYmplY3Q7CisgICAgICAgIGVuZF9vZmZzZXQgPSBkYXRhLT5vZmZzZXRfZnJv
bV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKIAogICAgICAgICBiZWdpbl9v
ZmZzZXQgPSBQQVNfQklUVkVDVE9SX1dPUkQ2NF9JTkRFWCgKICAgICAgICAgICAgICh1bnNpZ25l
ZClwYXNfcGFnZV9iYXNlX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFz
ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX2Jhc2UuYwkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfYmFzZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDYgKzMyLDIzIEBACiAj
aW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5oIgogCitzaXplX3QgcGFzX3BhZ2VfYmFzZV9oZWFkZXJfc2l6ZShwYXNfcGFnZV9iYXNlX2Nv
bmZpZyogY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vf
a2luZCBwYWdlX2tpbmQpCit7CisgICAgc3dpdGNoIChjb25maWctPnBhZ2VfY29uZmlnX2tpbmQp
IHsKKyAgICBjYXNlIHBhc19wYWdlX2NvbmZpZ19raW5kX3NlZ3JlZ2F0ZWQ6CisgICAgICAgIFBB
U19BU1NFUlQocGFzX3BhZ2Vfa2luZF9nZXRfY29uZmlnX2tpbmQocGFnZV9raW5kKSA9PSBwYXNf
cGFnZV9jb25maWdfa2luZF9zZWdyZWdhdGVkKTsKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaGVhZGVyX3NpemUoCisgICAgICAgICAgICAqcGFzX3BhZ2VfYmFzZV9jb25maWdf
Z2V0X3NlZ3JlZ2F0ZWQoY29uZmlnKSwKKyAgICAgICAgICAgIHBhc19wYWdlX2tpbmRfZ2V0X3Nl
Z3JlZ2F0ZWRfcm9sZShwYWdlX2tpbmQpKTsKKyAgICBjYXNlIHBhc19wYWdlX2NvbmZpZ19raW5k
X2JpdGZpdDoKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9raW5kX2dldF9jb25maWdfa2lu
ZChwYWdlX2tpbmQpID09IHBhc19wYWdlX2NvbmZpZ19raW5kX2JpdGZpdCk7CisgICAgICAgIHJl
dHVybiBwYXNfYml0Zml0X3BhZ2VfaGVhZGVyX3NpemUoKnBhc19wYWdlX2Jhc2VfY29uZmlnX2dl
dF9iaXRmaXQoY29uZmlnKSk7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJl
IHJlYWNoZWQiKTsKKyAgICByZXR1cm4gMDsKK30KKwogcGFzX3BhZ2VfYmFzZV9jb25maWcqIHBh
c19wYWdlX2Jhc2VfZ2V0X2NvbmZpZyhwYXNfcGFnZV9iYXNlKiBwYWdlKQogewogICAgIHN3aXRj
aCAocGFzX3BhZ2VfYmFzZV9nZXRfY29uZmlnX2tpbmQocGFnZSkpIHsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlLmgJKHJldmlzaW9u
IDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC02MCw2ICs2MCw5IEBAIHN0cnVjdCBwYXNfcGFnZV9iYXNlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzaWNhbGx5IGFueSByZWFzb24uICovCiB9Owog
CitQQVNfQVBJIHNpemVfdCBwYXNfcGFnZV9iYXNlX2hlYWRlcl9zaXplKHBhc19wYWdlX2Jhc2Vf
Y29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19wYWdlX2tpbmQgcGFnZV9raW5kKTsKKwogc3RhdGljIGlubGluZSB2b2lkIHBhc19wYWdl
X2Jhc2VfY29uc3RydWN0KHBhc19wYWdlX2Jhc2UqIHBhZ2VfYmFzZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9raW5kIHBhZ2Vfa2luZCkKIHsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29u
ZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3BhZ2VfYmFzZV9jb25maWcuaAkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKICNpbmNsdWRlICJwYXNf
cGFnZV9jb25maWdfa2luZC5oIgorI2luY2x1ZGUgInBhc19wYWdlX2tpbmQuaCIKICNpbmNsdWRl
ICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgog
CkBAIC01NSw3ICs1Niw3IEBAIHR5cGVkZWYgdm9pZCogKCpwYXNfcGFnZV9iYXNlX2NvbmZpZ19i
b3UKIHR5cGVkZWYgcGFzX3BhZ2VfYmFzZSogKCpwYXNfcGFnZV9iYXNlX2NvbmZpZ19wYWdlX2hl
YWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlKSgKICAgICBwYXNfZW51bWVyYXRvciogZW51bWVyYXRv
ciwgdm9pZCogYm91bmRhcnkpOwogdHlwZWRlZiBwYXNfcGFnZV9iYXNlKiAoKnBhc19wYWdlX2Jh
c2VfY29uZmlnX2NyZWF0ZV9wYWdlX2hlYWRlcikoCi0gICAgdm9pZCogYm91bmRhcnksIHBhc19s
b2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICB2b2lkKiBib3VuZGFyeSwg
cGFzX3BhZ2Vfa2luZCBraW5kLCBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CiB0eXBlZGVmIHZvaWQgKCpwYXNfcGFnZV9iYXNlX2NvbmZpZ19kZXN0cm95X3BhZ2VfaGVh
ZGVyKSgKICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlX2Jhc2UsIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKIApAQCAtODIsMTAgKzgzLDYgQEAgc3RydWN0IHBhc19wYWdl
X2Jhc2VfY29uZmlnIHsKICAgICAvKiBUaGUgY29tbWl0IGdyYW51bGUgc2l6ZS4gKi8KICAgICBz
aXplX3QgZ3JhbnVsZV9zaXplOwogCi0gICAgLyogVGhlIGhlYWRlciBzaXplLiBUaGlzIGNhbiBi
ZSBjb21wdXRlZCBpZiB5b3Uga25vdyB0aGUga2luZCBvZiBwYWdlIGNvbmZpZyB3ZSdyZSBkZWFs
aW5nCi0gICAgICAgd2l0aC4gQnV0IHdlIGRvbid0IGFsd2F5cywgc28gaXQncyBiZXN0IHRvIHN0
b3JlIGl0LiAqLwotICAgIHNpemVfdCBwYWdlX2hlYWRlcl9zaXplOwotICAgIAogICAgIC8qIEhh
cmQgY3V0LW9mZiBmb3Igb2JqZWN0IHNpemVzIGZvciB0aGlzIHZhcmlhbnQuIEZvciBzZWdyZWdh
dGVkIHBhZ2UgY29uZmlncywgaXQncyByZWNvbW1lbmRlZAogICAgICAgIHRoYXQgdGhpcyBpcyBz
b21ldGhpbmcgdGhhdCBkaXZpZGVzIGNsZWFubHkgaW50byBwYWdlX29iamVjdF9wYXlsb2FkX3Np
emUuIEZvciBiaXRmaXQgcGFnZQogICAgICAgIGNvbmZpZ3MsIHRoaXMgbXVzdCBiZSBzdHJpY3Rs
eSBzbWFsbGVyIHRoYW4gUEFTX0JJVEZJVF9NQVhfRlJFRV9VTlBST0NFU1NFRCAqIG1pbl9hbGln
bi4gKi8KQEAgLTk4LDEyICs5NSw2IEBAIHN0cnVjdCBwYXNfcGFnZV9iYXNlX2NvbmZpZyB7CiAg
ICAgLyogTmVlZCB0byBhbHNvIGJlIGFibGUgdG8gZ2V0IHRoZSBwYWdlIGhlYWRlciByZW1vdGVs
eSBkdXJpbmcgZW51bWVyYXRpb24uICovCiAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWdfcGFnZV9o
ZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSBwYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3Rl
OwogICAgIAotICAgIC8qIFdoYXQncyB0aGUgZmlyc3QgYnl0ZSBhdCB3aGljaCB0aGUgb2JqZWN0
IHBheWxvYWQgY291bGQgc3RhcnQgcmVsYXRpdmUgdG8gdGhlIGJvdW5kYXJ5PyAqLwotICAgIHVp
bnRwdHJfdCBwYWdlX29iamVjdF9wYXlsb2FkX29mZnNldDsKLQotICAgIC8qIEhvdyBtYW55IGJ5
dGVzIGFyZSBwcm92aXNpb25lZCBmb3Igb2JqZWN0cyBwYXN0IHRoYXQgb2Zmc2V0PyAqLwotICAg
IHNpemVfdCBwYWdlX29iamVjdF9wYXlsb2FkX3NpemU7Ci0KICAgICAvKiBTb21lIGNvbmZpZ3Vy
YXRpb25zIG5lZWQgdG8gYmUgYWJsZSB0byBhbGxvY2F0ZS9mcmVlIHRoZSBwYWdlIGhlYWRlci4g
VGhlIGFsbG9jYXRpb24gd291bGQKICAgICAgICBoYXBwZW4gYWZ0ZXIgcGFnZSBhbGxvY2F0aW9u
IG9yIGNvbW1pdCwgYW5kIHRoZSBkZWFsbG9jYXRpb24gd291bGQgaGFwcGVuIHJpZ2h0IGJlZm9y
ZSBvcgogICAgICAgIHJpZ2h0IGFmdGVyIHBhZ2UgZGVjb21taXQuICovCkBAIC0xMTYsMTIgKzEw
Nyw2IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QgcGFzX3BhZ2UKICAgICByZXR1
cm4gKHNpemVfdCkxIDw8IChzaXplX3QpY29uZmlnLm1pbl9hbGlnbl9zaGlmdDsKIH0KIAotc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnRwdHJfdAotcGFzX3BhZ2VfYmFzZV9jb25maWdfb2Jq
ZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KHBhc19wYWdlX2Jhc2VfY29uZmln
IGNvbmZpZykKLXsKLSAgICByZXR1cm4gY29uZmlnLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0
ICsgY29uZmlnLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZTsKLX0KLQogI2RlZmluZSBQQVNfUEFH
RV9CQVNFX0NPTkZJR19OVU1fR1JBTlVMRV9CWVRFUyhudW1fZ3JhbnVsZXMpIFwKICAgICAoKG51
bV9ncmFudWxlcykgPT0gMSA/IDAgOiAobnVtX2dyYW51bGVzKSAqIHNpemVvZihwYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudCkpCiAKQEAgLTEzOCw3ICsxMjMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgYm9vbCBwYXNfcGFnZV9iCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29s
IHBhc19wYWdlX2Jhc2VfY29uZmlnX2lzX2JpdGZpdChwYXNfcGFnZV9iYXNlX2NvbmZpZyBjb25m
aWcpCiB7Ci0gICAgcmV0dXJuIGNvbmZpZy5wYWdlX2NvbmZpZ19raW5kID09IHBhc19wYWdlX2Nv
bmZpZ19raW5kX3NlZ3JlZ2F0ZWQ7CisgICAgcmV0dXJuIGNvbmZpZy5wYWdlX2NvbmZpZ19raW5k
ID09IHBhc19wYWdlX2NvbmZpZ19raW5kX2JpdGZpdDsKIH0KIAogc3RhdGljIGlubGluZSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyoKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAko
cmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBA
QCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgbmFtZSAjIyBfcGFnZV9oZWFkZXJfZm9yX2JvdW5k
YXJ5X3JlbW90ZShwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwgdm9pZCogYm91bmRhcnkpOyBc
CiAgICAgXAogICAgIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogbmFtZSAjIyBfY3JlYXRlX3BhZ2Vf
aGVhZGVyKCBcCi0gICAgICAgIHZvaWQqIGJvdW5kYXJ5LCBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7IFwKKyAgICAgICAgdm9pZCogYm91bmRhcnksIHBhc19wYWdlX2tp
bmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOyBcCiAgICAg
UEFTX0FQSSB2b2lkIG5hbWUgIyMgX2Rlc3Ryb3lfcGFnZV9oZWFkZXIoIFwKICAgICAgICAgcGFz
X3BhZ2VfYmFzZSogcGFnZSwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2Vf
Y29uZmlnX3V0aWxzX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHJldmlz
aW9uIDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdl
X2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjks
NyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgfSBcCiAgICAgXAogICAgIHBhc19wYWdlX2Jhc2Uq
IG5hbWUgIyMgX2NyZWF0ZV9wYWdlX2hlYWRlciggXAotICAgICAgICB2b2lkKiBib3VuZGFyeSwg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpIFwKKyAgICAgICAgdm9pZCog
Ym91bmRhcnksIHBhc19wYWdlX2tpbmQga2luZCwgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpIFwKICAgICB7IFwKICAgICAgICAgcGFzX2Jhc2ljX3BhZ2VfYmFzZV9jb25m
aWdfZGVmaW5pdGlvbnNfYXJndW1lbnRzIGFyZ3VtZW50cyA9IFwKICAgICAgICAgICAgICgocGFz
X2Jhc2ljX3BhZ2VfYmFzZV9jb25maWdfZGVmaW5pdGlvbnNfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pOyBcCkBAIC04NCwxMCArODQsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICBjYXNl
IHBhc19wYWdlX2hlYWRlcl9pbl90YWJsZTogeyBcCiAgICAgICAgICAgICBwYXNfcGFnZV9iYXNl
KiByZXN1bHQ7IFwKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5
KGhlYXBfbG9ja19ob2xkX21vZGUpOyBcCi0gICAgICAgICAgICByZXN1bHQgPSBwYXNfcGFnZV9o
ZWFkZXJfdGFibGVfYWRkKGFyZ3VtZW50cy5oZWFkZXJfdGFibGUsIFwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzLnBhZ2VfY29uZmlnLnBh
Z2Vfc2l6ZSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmd1bWVudHMucGFnZV9jb25maWcucGFnZV9oZWFkZXJfc2l6ZSwgXAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZGFyeSk7IFwKKyAgICAgICAg
ICAgIHJlc3VsdCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZV9hZGQoIFwKKyAgICAgICAgICAgICAg
ICBhcmd1bWVudHMuaGVhZGVyX3RhYmxlLCBcCisgICAgICAgICAgICAgICAgYXJndW1lbnRzLnBh
Z2VfY29uZmlnLnBhZ2Vfc2l6ZSwgXAorICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaGVh
ZGVyX3NpemUoYXJndW1lbnRzLnBhZ2VfY29uZmlnLnBhZ2VfY29uZmlnX3B0ciwga2luZCksIFwK
KyAgICAgICAgICAgICAgICBib3VuZGFyeSk7IFwKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7IFwKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7IFwKICAgICAgICAgfSB9IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3Iu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcHJv
YmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFs
bG9jX2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzA4IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vCisvLyBQcm9iYWJpbGlz
dGljIEd1YXJkIE1hbGxvYyAoUEdNKSBpcyBhIG5ldyBhbGxvY2F0b3IgZGVzaWduZWQgdG8gY2F0
Y2ggdXNlIGFmdGVyIGZyZWUgYXR0ZW1wdHMgYW5kIG91dCBvZiBib3VuZHMgYWNjZXNzZXMuCisv
LyBJdCBiZWhhdmVzIHNpbWlsYXJseSB0byBBZGRyZXNzU2FuaXRpemVyIChBU0FOKSwgYnV0IGFp
bXMgdG8gaGF2ZSBtaW5pbWFsIHJ1bnRpbWUgb3ZlcmhlYWQuCisvLworLy8gVGhlIGRlc2lnbiBv
ZiBQR00gaXMgcXVpdGUgc2ltcGxlLiBFYWNoIHRpbWUgYW4gYWxsb2NhdGlvbiBpcyBwZXJmb3Jt
ZWQgYW4gYWRkaXRpb25hbCBndWFyZCBwYWdlIGlzIGFkZGVkIGFib3ZlIGFuZCBiZWxvdyB0aGUg
bmV3bHkKKy8vIGFsbG9jYXRlZCBwYWdlKHMpLiBBbiBhbGxvY2F0aW9uIG1heSBzcGFuIG11bHRp
cGxlIHBhZ2VzLiBXaGVuIGEgZGVhbGxvY2F0aW9uIGlzIHBlcmZvcm1lZCwgdGhlIHBhZ2Uocykg
YWxsb2NhdGVkIHdpbGwgYmUgcHJvdGVjdGVkCisvLyB1c2luZyBtcHJvdGVjdCB0byBlbnN1cmUg
dGhhdCBhbnkgdXNlIGFmdGVyIGZyZWVzIHdpbGwgdHJpZ2dlciBhIGNyYXNoLiBWaXJ0dWFsIG1l
bW9yeSBhZGRyZXNzZXMgYXJlIG5ldmVyIHJldXNlZCwgc28gd2Ugd2lsbCBuZXZlciBydW4KKy8v
IGludG8gYSBjYXNlIHdoZXJlIG9iamVjdCAxIGlzIGZyZWVkLCBvYmplY3QgMiBpcyBhbGxvY2F0
ZWQgb3ZlciB0aGUgc2FtZSBhZGRyZXNzIHNwYWNlLCBhbmQgb2JqZWN0IDEgdGhlbiBhY2Nlc3Nl
cyB0aGUgbWVtb3J5IGFkZHJlc3MKKy8vIHNwYWNlIG9mIG5vdyBvYmplY3QgMi4KKy8vCisvLyBQ
R00gZG9lcyBhZGQgbm90YWJsZSBtZW1vcnkgb3ZlcmhlYWQuIEVhY2ggYWxsb2NhdGlvbiwgbm8g
bWF0dGVyIHRoZSBzaXplLCBhZGRzIGFuIGFkZGl0aW9uYWwgMiBndWFyZCBwYWdlcyAoOEtCIGZv
ciBYODZfNjQgYW5kIDMyS0IKKy8vIGZvciBBUk02NCkuIEluIGFkZGl0aW9uLCB0aGVyZSBtYXkg
YmUgZnJlZSBtZW1vcnkgbGVmdCBvdmVyIGluIHRoZSBwYWdlKHMpIGFsbG9jYXRlZCBmb3IgdGhl
IHVzZXIuIFRoaXMgbWVtb3J5IG1heSBub3QgYmUgdXNlZCBieSBhbnkKKy8vIG90aGVyIGFsbG9j
YXRpb24uCisvLworLy8gV2UgYWRkZWQgbGltaXRzIG9uIHZpcnR1YWwgbWVtb3J5IGFuZCB3YXN0
ZWQgbWVtb3J5IHRvIGhlbHAgbGltaXQgdGhlIG1lbW9yeSBpbXBhY3Qgb24gdGhlIG92ZXJhbGwg
c3lzdGVtLiBWaXJ0dWFsIG1lbW9yeSBmb3IgdGhpcworLy8gYWxsb2NhdG9yIGlzIGxpbWl0ZWQg
dG8gMUdCLiBXYXN0ZWQgbWVtb3J5LCB3aGljaCBpcyB0aGUgdW51c2VkIG1lbW9yeSBpbiB0aGUg
cGFnZShzKSBhbGxvY2F0ZWQgYnkgdGhlIHVzZXIsIGlzIGxpbWl0ZWQgdG8gMU1CLgorLy8gVGhl
c2Ugb3ZlcmFsbCBsaW1pdHMgc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBtZW1vcnkgaW1wYWN0IG9u
IHRoZSBzeXN0ZW0gaXMgbWluaW1hbCwgd2hpbGUgaGVscGluZyB0byB0YWNrbGUgdGhlIHByb2Js
ZW1zIG9mIGNhdGNoaW5nCisvLyB1c2UgYWZ0ZXIgZnJlZXMgYW5kIG91dCBvZiBib3VuZHMgYWNj
ZXNzZXMuCisvLworCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+
CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlICJw
YXNfdXRpbHMuaCIKKyNpbmNsdWRlICJwYXNfaGVhcC5oIgorI2luY2x1ZGUgInBhc19wcm9iYWJp
bGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfaGVh
cC5oIgorI2luY2x1ZGUgInBhc19wdHJfaGFzaF9tYXAuaCIKKyNpbmNsdWRlICJpc29faGVhcF9j
b25maWcuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKKworLy8g
ZGVidWcgdG9nZ2xlCitib29sIHBnbV92ZXJib3NlID0gZmFsc2U7CisKKy8vIG1heCBhbW91bnQg
b2YgZnJlZSBtZW1vcnkgdGhhdCBjYW4gYmUgd2FzdGVkICgxTUIpCisjZGVmaW5lIE1BWF9XQVNU
RURfTUVNT1JZICgxMDI0ICogMTAyNCkKKworLy8gbWF4IGFtb3VudCBvZiB2aXJ0dWFsIG1lbW9y
eSB0aGF0IGNhbiBiZSB1c2VkIGJ5IFBHTSAoMUdCKQorLy8gaW5jbHVkaW5nIGd1YXJkIHBhZ2Vz
IGFuZCB3YXN0ZWQgbWVtb3J5CisjZGVmaW5lIE1BWF9WSVJUVUFMX01FTU9SWSAoMTAyNCAqIDEw
MjQgKiAxMDI0KQorCitib29sIHBnbV9lbmFibGVkID0gdHJ1ZTsKKworc2l6ZV90IGZyZWVfd2Fz
dGVkX21lbSAgPSBNQVhfV0FTVEVEX01FTU9SWTsKK3NpemVfdCBmcmVlX3ZpcnR1YWxfbWVtID0g
TUFYX1ZJUlRVQUxfTUVNT1JZOworCisvLyBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgbWV0YWRhdGEg
b2YgcGdtIGFsbG9jYXRpb25zCit0eXBlZGVmIHN0cnVjdCBwZ21fc3RvcmFnZSBwZ21fc3RvcmFn
ZTsKK3N0cnVjdCBwZ21fc3RvcmFnZSB7CisgICAgc2l6ZV90IGFsbG9jYXRpb25fc2l6ZV9yZXF1
ZXN0ZWQ7CisgICAgc2l6ZV90IHNpemVfb2ZfZGF0YV9wYWdlczsKKyAgICBzaXplX3QgbWVtX3Rv
X3dhc3RlOworICAgIHNpemVfdCBtZW1fdG9fYWxsb2M7CisgICAgdWludHB0cl90IHN0YXJ0X29m
X2RhdGFfcGFnZXM7CisgICAgdWludHB0cl90IHVwcGVyX2d1YXJkX3BhZ2U7CisgICAgdWludHB0
cl90IGxvd2VyX2d1YXJkX3BhZ2U7Cit9OworCisvLyB0aGUgaGFzaCBtYXAgaXMgdXNlZCB0byBr
ZWVwIHRyYWNrIG9mIGFsbCBwZ20gYWxsb2NhdGlvbnMKKy8vIGtleSAgIDogdXNlcidzIHN0YXJ0
aW5nIG1lbW9yeSBhZGRyZXNzCisvLyB2YWx1ZSA6IG1ldGFkYXRhIGZvciB0cmFja2luZyB0aGF0
IGFsbG9jYXRpb24gKHBnbV9zdG9yYWdlKQorcGFzX3B0cl9oYXNoX21hcCBwZ21faGFzaF9tYXAg
PSBQQVNfSEFTSFRBQkxFX0lOSVRJQUxJWkVSOworCisKKyNwcmFnbWEgbWFyayAtCisjcHJhZ21h
IG1hcmsgQUxMT0MvREVBTExPQworCit2b2lkKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxs
b2NfYWxsb2NhdGUoc2l6ZV90IHNpemUsIHBhc19oZWFwKiBoZWFwLCBwYXNfaGVhcF9jb25maWcq
IGhlYXBfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKSB7CisgICAg
cGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgLy8gaW5wdXQgY2hlY2tpbmcKKyAg
ICBpZiAoIWhlYXAgfHwgIXNpemUgfHwgIWhlYXBfY29uZmlnIHx8ICF0cmFuc2FjdGlvbikKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBnZXQgcGFnZSBzaXplCisgICAgY29uc3Qgc2l6
ZV90IHBhZ2Vfc2l6ZSA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKTsKKworICAgIC8vIGNh
bGN1bGF0ZSB3YXN0ZWQgbWVtb3J5CisgICAgc2l6ZV90IG1lbV90b193YXN0ZSA9IHBhZ2Vfc2l6
ZSAtIChzaXplICUgcGFnZV9zaXplKTsKKyAgICBpZiAobWVtX3RvX3dhc3RlID4gZnJlZV93YXN0
ZWRfbWVtKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIGNhbGN1bGF0ZSB2aXJ0dWFs
IG1lbW9yeQorICAgIC8vCisgICAgLy8gKi0tLS0tLS0tLS0tLS0tLS0tLSogKi0tLS0tLS0tLS0t
LS0tLS0tLSogKi0tLS0tLS0tLS0tLS0tLS0tLSoKKyAgICAvLyB8IGxvd2VyIGd1YXJkIHBhZ2Ug
fCB8IHVzZXIgYWxsb2MgcGFnZXMgfCB8IHVwcGVyIGd1YXJkIHBhZ2UgfAorICAgIC8vICotLS0t
LS0tLS0tLS0tLS0tLS0qICotLS0tLS0tLS0tLS0tLS0tLS0qICotLS0tLS0tLS0tLS0tLS0tLS0q
CisgICAgc2l6ZV90IG1lbV90b19hbGxvYyA9ICgyICogcGFnZV9zaXplKSArIHNpemUgKyBtZW1f
dG9fd2FzdGU7CisgICAgaWYgKG1lbV90b19hbGxvYyA+IGZyZWVfdmlydHVhbF9tZW0pCisgICAg
ICAgIHJldHVybiBOVUxMOworCisgICAgLy8gYWxsb2NhdGUgbWVtb3J5CisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0IHJlc3VsdCA9IHBhc19sYXJnZV9oZWFwX3RyeV9hbGxvY2F0ZV9hbmRfZm9y
Z2V0KCZoZWFwLT5sYXJnZV9oZWFwLCBtZW1fdG9fYWxsb2MsIHBhZ2Vfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVhcF9jb25maWcsIHRyYW5zYWN0aW9uKTsKKyAgICBpZiAoIXJlc3VsdC5kaWRf
c3VjY2VlZCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBwcm90ZWN0IGd1YXJkIHBh
Z2VzIGZyb20gYmVpbmcgYWNjZXNzZWQKKyAgICB1aW50cHRyX3QgbG93ZXJfZ3VhcmRfcGFnZSA9
IHJlc3VsdC5iZWdpbjsKKyAgICB1aW50cHRyX3QgdXBwZXJfZ3VhcmRfcGFnZSA9IHJlc3VsdC5i
ZWdpbiArIChtZW1fdG9fYWxsb2MgLSBwYWdlX3NpemUpOworCisgICAgaW50IG1wcm90ZWN0X3Jl
cyA9IG1wcm90ZWN0KCAodm9pZCAqKSBsb3dlcl9ndWFyZF9wYWdlLCBwYWdlX3NpemUsIFBST1Rf
Tk9ORSk7CisgICAgUEFTX0FTU0VSVCghbXByb3RlY3RfcmVzKTsKKworICAgIG1wcm90ZWN0X3Jl
cyA9IG1wcm90ZWN0KCAodm9pZCAqKSB1cHBlcl9ndWFyZF9wYWdlLCBwYWdlX3NpemUsIFBST1Rf
Tk9ORSk7CisgICAgUEFTX0FTU0VSVCghbXByb3RlY3RfcmVzKTsKKworICAgIC8vIGVuc3VyZSBw
aHlzaWNhbCBhZGRyZXNzZXMgYXJlIHJlbGVhc2VkCisgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUg
dXNpbmcgTUFEVl9GUkVFX1JFVVNBQkxFIGluc3RlYWQKKyAgICBpbnQgbWFkdmlzZV9yZXMgPSBt
YWR2aXNlKCh2b2lkICopIHVwcGVyX2d1YXJkX3BhZ2UsIHBhZ2Vfc2l6ZSwgTUFEVl9GUkVFKTsK
KyAgICBQQVNfQVNTRVJUKCFtYWR2aXNlX3Jlcyk7CisKKyAgICBtYWR2aXNlX3JlcyA9IG1hZHZp
c2UoKHZvaWQgKikgbG93ZXJfZ3VhcmRfcGFnZSwgcGFnZV9zaXplLCBNQURWX0ZSRUUpOworICAg
IFBBU19BU1NFUlQoIW1hZHZpc2VfcmVzKTsKKworICAgIC8vIHRoZSBrZXkgaXMgdGhlIGxvY2F0
aW9uIHdoZXJlIHRoZSB1c2VyJ3Mgc3RhcnRpbmcgbWVtb3J5IGFkZHJlc3MgaXMgbG9jYXRlZC4K
KyAgICAvLyBhbGxvY2F0aW9ucyBhcmUgcmlnaHQgYWxpZ25lZCwgc28gdGhlIGVuZCBiYWNrcyB1
cCB0byB0aGUgdXBwZXIgZ3VhcmQgcGFnZS4KKyAgICB2b2lkICoga2V5ID0gKHZvaWQqKSAocmVz
dWx0LmJlZ2luICsgcGFnZV9zaXplICsgbWVtX3RvX3dhc3RlKTsKKworICAgIC8vIGNyZWF0ZSBz
dHJ1Y3QgdG8gaG9sZCBoYXNoIG1hcCB2YWx1ZQorICAgIHBnbV9zdG9yYWdlICp2YWx1ZSA9IG1h
bGxvYyhzaXplb2YocGdtX3N0b3JhZ2UpKTsKKyAgICBQQVNfQVNTRVJUKHZhbHVlKTsKKworICAg
IHZhbHVlLT5tZW1fdG9fYWxsb2MgICAgICAgICAgICAgID0gbWVtX3RvX2FsbG9jOworICAgIHZh
bHVlLT5tZW1fdG9fd2FzdGUgICAgICAgICAgICAgID0gbWVtX3RvX3dhc3RlOworICAgIHZhbHVl
LT5zaXplX29mX2RhdGFfcGFnZXMgICAgICAgID0gc2l6ZSArIG1lbV90b193YXN0ZTsKKyAgICB2
YWx1ZS0+bG93ZXJfZ3VhcmRfcGFnZSAgICAgICAgICA9IGxvd2VyX2d1YXJkX3BhZ2U7CisgICAg
dmFsdWUtPnVwcGVyX2d1YXJkX3BhZ2UgICAgICAgICAgPSB1cHBlcl9ndWFyZF9wYWdlOworICAg
IHZhbHVlLT5zdGFydF9vZl9kYXRhX3BhZ2VzICAgICAgID0gcmVzdWx0LmJlZ2luICsgcGFnZV9z
aXplOworICAgIHZhbHVlLT5hbGxvY2F0aW9uX3NpemVfcmVxdWVzdGVkID0gc2l6ZTsKKworICAg
IC8vIGFkZCB0byBoYXNoIG1hcAorICAgIHBhc19wdHJfaGFzaF9tYXBfYWRkX3Jlc3VsdCBhZGRf
cmVzdWx0ID0gcGFzX3B0cl9oYXNoX21hcF9hZGQoJnBnbV9oYXNoX21hcCwga2V5LCBOVUxMLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZyk7
CisgICAgUEFTX0FTU0VSVChhZGRfcmVzdWx0LmlzX25ld19lbnRyeSk7CisKKyAgICBhZGRfcmVz
dWx0LmVudHJ5LT5rZXkgPSBrZXk7CisgICAgYWRkX3Jlc3VsdC5lbnRyeS0+dmFsdWUgPSB2YWx1
ZTsKKworICAgIC8vIHVwZGF0ZSBnbG9iYWwgdmlydHVhbCBhbmQgd2FzdGVkIG1lbW9yeQorICAg
IGZyZWVfd2FzdGVkX21lbSAgLT0gbWVtX3RvX3dhc3RlOworICAgIGZyZWVfdmlydHVhbF9tZW0g
LT0gbWVtX3RvX2FsbG9jOworCisgICAgaWYgKHBnbV92ZXJib3NlKSB7CisgICAgICAgIHByaW50
ZigiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
XG4iCisgICAgICAgICAgICAgICAiIEFsbG9jYXRpbmcgTWVtb3J5XG5cbiIKKyAgICAgICAgICAg
ICAgICIgT3ZlcmFsbCBTeXN0ZW0gU3RhdHMiCisgICAgICAgICAgICAgICAiIGZyZWVfd2FzdGVk
X21lbSAgOiAlenVcbiIKKyAgICAgICAgICAgICAgICIgZnJlZV92aXJ0dWFsX21lbSA6ICV6dVxu
IgorICAgICAgICAgICAgICAgIlxuIgorICAgICAgICAgICAgICAgIiBBbGxvY2F0aW9uXG4iCisg
ICAgICAgICAgICAgICAiIEFsbG9jYXRpb24gU2l6ZSBSZXF1ZXN0ZWQgOiAlenUgXG4iCisgICAg
ICAgICAgICAgICAiIE1lbW9yeSBBbGxvY2F0ZWQgICAgICAgICAgOiAlenUgXG4iCisgICAgICAg
ICAgICAgICAiIE1lbW9yeSBXYXN0ZWQgICAgICAgICAgICAgOiAlenUgXG4iCisgICAgICAgICAg
ICAgICAiIFNpemUgb2YgRGF0YSBQYWdlcyAgICAgICAgOiAlenUgXG4iCisgICAgICAgICAgICAg
ICAiIExvd2VyIEd1YXJkIFBhZ2UgQWRkcmVzcyAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAi
IFVwcGVyIEd1YXJkIFBhZ2UgQWRkcmVzcyAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiIFN0
YXJ0IG9mIERhdGEgUGFnZXMgICAgICAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiIE1lbW9y
eSBBZGRyZXNzIGZvciBVc2VyICAgOiAlcCAgXG4iCisgICAgICAgICAgICAgICAiKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblxuIiwKKyAg
ICAgICAgICAgICAgIGZyZWVfd2FzdGVkX21lbSwKKyAgICAgICAgICAgICAgIGZyZWVfdmlydHVh
bF9tZW0sCisgICAgICAgICAgICAgICB2YWx1ZS0+YWxsb2NhdGlvbl9zaXplX3JlcXVlc3RlZCwK
KyAgICAgICAgICAgICAgIHZhbHVlLT5tZW1fdG9fYWxsb2MsCisgICAgICAgICAgICAgICB2YWx1
ZS0+bWVtX3RvX3dhc3RlLAorICAgICAgICAgICAgICAgdmFsdWUtPnNpemVfb2ZfZGF0YV9wYWdl
cywKKyAgICAgICAgICAgICAgICh1aW50cHRyX3QgKikgdmFsdWUtPmxvd2VyX2d1YXJkX3BhZ2Us
CisgICAgICAgICAgICAgICAodWludHB0cl90ICopIHZhbHVlLT51cHBlcl9ndWFyZF9wYWdlLAor
ICAgICAgICAgICAgICAgKHVpbnRwdHJfdCAqKSB2YWx1ZS0+c3RhcnRfb2ZfZGF0YV9wYWdlcywK
KyAgICAgICAgICAgICAgIGtleSk7CisgICAgfQorCisgICAgcmV0dXJuIGtleTsKK30KKwordm9p
ZCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBtZW0pIHsK
KyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBpZiAocGdtX3ZlcmJvc2Up
CisgICAgICAgIHByaW50ZigiTWVtb3J5IEFkZHJlc3MgUmVxdWVzdGVkIHRvIERlYWxsb2NhdGUg
JXBcbiIsIG1lbSk7CisKKyAgICB1aW50cHRyX3QgKiBrZXkgPSAodWludHB0cl90ICopIG1lbTsK
KworICAgIC8vIGdldCB2YWx1ZSBmcm9tIGhhc2ggbWFwCisgICAgcGFzX3B0cl9oYXNoX21hcF9l
bnRyeSAqIGVudHJ5ID0gcGFzX3B0cl9oYXNoX21hcF9maW5kKCZwZ21faGFzaF9tYXAsIGtleSk7
CisgICAgaWYgKCFlbnRyeSB8fCAhZW50cnktPnZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBwcm90ZWN0IHRoZSBwYWdlcworICAgIHBnbV9zdG9yYWdlICogdmFsdWUgPSAocGdtX3N0
b3JhZ2UgKikgZW50cnktPnZhbHVlOworICAgIGludCBtcHJvdGVjdF9yZXMgPSBtcHJvdGVjdCgg
KHZvaWQgKikgdmFsdWUtPnN0YXJ0X29mX2RhdGFfcGFnZXMsIHZhbHVlLT5zaXplX29mX2RhdGFf
cGFnZXMsIFBST1RfTk9ORSk7CisgICAgUEFTX0FTU0VSVCghbXByb3RlY3RfcmVzKTsKKworICAg
IC8vIGVuc3VyZSBwaHlzaWNhbCBhZGRyZXNzZXMgYXJlIHJlbGVhc2VkCisgICAgLy8gVE9ETzog
aW52ZXN0aWdhdGUgdXNpbmcgTUFEVl9GUkVFX1JFVVNBQkxFIGluc3RlYWQKKyAgICBpbnQgbWFk
dmlzZV9yZXMgPSBtYWR2aXNlKCh2b2lkICopIHZhbHVlLT5zdGFydF9vZl9kYXRhX3BhZ2VzLCB2
YWx1ZS0+c2l6ZV9vZl9kYXRhX3BhZ2VzLCBNQURWX0ZSRUUpOworICAgIFBBU19BU1NFUlQoIW1h
ZHZpc2VfcmVzKTsKKworICAgIC8vIHJlbW92ZSB2YWx1ZSBmcm9tIGhhc2ggbWFwCisgICAgYm9v
bCByZW1vdmVkID0gcGFzX3B0cl9oYXNoX21hcF9yZW1vdmUoJnBnbV9oYXNoX21hcCwga2V5LCBO
VUxMLCAmcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnKTsKKyAg
ICBQQVNfQVNTRVJUKHJlbW92ZWQpOworCisgICAgLy8gdXBkYXRlIGdsb2JhbCB2aXJ0dWFsIGFu
ZCB3YXN0ZWQgbWVtb3J5CisgICAgZnJlZV93YXN0ZWRfbWVtICArPSB2YWx1ZS0+bWVtX3RvX3dh
c3RlOworICAgIGZyZWVfdmlydHVhbF9tZW0gKz0gdmFsdWUtPm1lbV90b19hbGxvYzsKKworICAg
IGlmIChwZ21fdmVyYm9zZSkgeworICAgICAgICBwcmludGYoIioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIgorICAgICAgICAgICAgICAgIiBE
ZWFsbG9jYXRpbmcgTWVtb3J5XG5cbiIKKyAgICAgICAgICAgICAgICIgT3ZlcmFsbCBTeXN0ZW0g
U3RhdHMiCisgICAgICAgICAgICAgICAiIGZyZWVfd2FzdGVkX21lbSAgOiAlenVcbiIKKyAgICAg
ICAgICAgICAgICIgZnJlZV92aXJ0dWFsX21lbSA6ICV6dVxuIgorICAgICAgICAgICAgICAgIlxu
IgorICAgICAgICAgICAgICAgIiBEZWFsbG9jYXRpb25cbiIKKyAgICAgICAgICAgICAgICIgQWxs
b2NhdGlvbiBTaXplIFJlcXVlc3RlZCA6ICV6dSBcbiIKKyAgICAgICAgICAgICAgICIgTWVtb3J5
IEFsbG9jYXRlZCAgICAgICAgICA6ICV6dSBcbiIKKyAgICAgICAgICAgICAgICIgTWVtb3J5IFdh
c3RlZCAgICAgICAgICAgICA6ICV6dSBcbiIKKyAgICAgICAgICAgICAgICIgU2l6ZSBvZiBEYXRh
IFBhZ2VzICAgICAgICA6ICV6dSBcbiIKKyAgICAgICAgICAgICAgICIgTG93ZXIgR3VhcmQgUGFn
ZSBBZGRyZXNzICA6ICVwICBcbiIKKyAgICAgICAgICAgICAgICIgVXBwZXIgR3VhcmQgUGFnZSBB
ZGRyZXNzICA6ICVwICBcbiIKKyAgICAgICAgICAgICAgICIgU3RhcnQgb2YgRGF0YSBQYWdlcyAg
ICAgICA6ICVwICBcbiIKKyAgICAgICAgICAgICAgICIgTWVtb3J5IEFkZHJlc3MgZm9yIFVzZXIg
ICA6ICVwICBcbiIKKyAgICAgICAgICAgICAgICIqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKipcblxuXG4iLAorICAgICAgICAgICAgICAgZnJlZV93
YXN0ZWRfbWVtLAorICAgICAgICAgICAgICAgZnJlZV92aXJ0dWFsX21lbSwKKyAgICAgICAgICAg
ICAgIHZhbHVlLT5hbGxvY2F0aW9uX3NpemVfcmVxdWVzdGVkLAorICAgICAgICAgICAgICAgdmFs
dWUtPm1lbV90b19hbGxvYywKKyAgICAgICAgICAgICAgIHZhbHVlLT5tZW1fdG9fd2FzdGUsCisg
ICAgICAgICAgICAgICB2YWx1ZS0+c2l6ZV9vZl9kYXRhX3BhZ2VzLAorICAgICAgICAgICAgICAg
KHVpbnRwdHJfdCAqKSB2YWx1ZS0+bG93ZXJfZ3VhcmRfcGFnZSwKKyAgICAgICAgICAgICAgICh1
aW50cHRyX3QgKikgdmFsdWUtPnVwcGVyX2d1YXJkX3BhZ2UsCisgICAgICAgICAgICAgICAodWlu
dHB0cl90ICopIHZhbHVlLT5zdGFydF9vZl9kYXRhX3BhZ2VzLAorICAgICAgICAgICAgICAga2V5
KTsKKyAgICB9CisKKyAgICAvLyBmcmVlIG1lbW9yeQorICAgIGZyZWUodmFsdWUpOworfQorCisK
KyNwcmFnbWEgbWFyayAtCisjcHJhZ21hIG1hcmsgRGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIFBH
TQorCit2b2lkIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY190cmlnZ2VyKHZvaWQpIHsK
KyAgICAvLyA/Pz8KK30KKworYm9vbCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfY2Fu
X3VzZSh2b2lkKSB7CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYg
KCFwZ21fZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFmcmVlX3dh
c3RlZF9tZW0gfHwgIWZyZWVfdmlydHVhbF9tZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxv
Y19zaG91bGRfdXNlKHZvaWQpIHsKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisK
KyAgICBpZiAoIXBnbV9lbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworI3ByYWdtYSBtYXJrIC0KKyNwcmFnbWEgbWFyayBIZWxwZXIgRnVuY3Rp
b25zCisKK3NpemVfdCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfdmly
dHVhbF9tZW1vcnkoKSB7CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIHJl
dHVybiBmcmVlX3ZpcnR1YWxfbWVtOworfQorCitzaXplX3QgcGFzX3Byb2JhYmlsaXN0aWNfZ3Vh
cmRfbWFsbG9jX2dldF9mcmVlX3dhc3RlZF9tZW1vcnkoKSB7CisgICAgcGFzX2hlYXBfbG9ja19h
c3NlcnRfaGVsZCgpOworICAgIHJldHVybiBmcmVlX3dhc3RlZF9tZW07Cit9CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxs
b2NfYWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lm
bmRlZiBQQVNfUFJPQkFCSUxJU1RJQ19HVUFSRF9NQUxMT0NfQUxMT0NBVE9SCisjZGVmaW5lIFBB
U19QUk9CQUJJTElTVElDX0dVQVJEX01BTExPQ19BTExPQ0FUT1IKKworI2luY2x1ZGUgInBhc191
dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKKy8qIEluaXRpYWwgRnVuY3Rpb24gRGVm
aW5pdGlvbnMgKi8KKwordm9pZCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfdHJpZ2dl
cih2b2lkKTsKK2Jvb2wgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2Nhbl91c2Uodm9p
ZCk7Citib29sIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19zaG91bGRfdXNlKHZvaWQp
OworCit2b2lkKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdGUoc2l6ZV90
IHNpemUsIHBhc19oZWFwKiBoZWFwLCBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnLCBwYXNf
cGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7Cit2b2lkIHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKHZvaWQqIG1lbW9yeSk7CisKKy8qIEhl
bHBlciBmdW5jdGlvbnMgKi8KK3NpemVfdCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2Nf
Z2V0X2ZyZWVfdmlydHVhbF9tZW1vcnkodm9pZCk7CitzaXplX3QgcGFzX3Byb2JhYmlsaXN0aWNf
Z3VhcmRfbWFsbG9jX2dldF9mcmVlX3dhc3RlZF9tZW1vcnkodm9pZCk7CisKK1BBU19FTkRfRVhU
RVJOX0M7CisKKyNlbmRpZgpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jCShy
ZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsOCArMTIx
LDcgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5XwogCiAgICAgb2Jq
ZWN0X3NpemUgPSBzaXplX2RpcmVjdG9yeS0+b2JqZWN0X3NpemU7CiAKLSAgICBiZWdpbiA9IHBh
c19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmpl
Y3QoCi0gICAgICAgIHBhZ2UsIHNpemVfZGlyZWN0b3J5LCBwYWdlX2NvbmZpZyk7CisgICAgYmVn
aW4gPSBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdDsKICAg
ICBlbmQgPSBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29i
amVjdDsKIAogICAgIHBhc19wYWdlX2Jhc2VfYWRkX2ZyZWVfcmFuZ2UoCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVh
cC5jCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTg5OSw3ICs4OTksOCBA
QCBzdGF0aWMgc2l6ZV90IGNvbXB1dGVfaWRlYWxfb2JqZWN0X3NpemUoCiAgICAgYWxpZ25tZW50
ID0gUEFTX01BWChhbGlnbm1lbnQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGln
bihwYWdlX2NvbmZpZykpOwogICAgIAogICAgIG51bV9vYmplY3RzID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9udW1iZXJfb2Zfb2JqZWN0cygodW5zaWduZWQpb2JqZWN0X3NpemUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmln
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpOwogICAg
IAogICAgIHBhcmVudF9oZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcChoZWFwKTsK
IApAQCAtOTIxLDcgKzkyMiw4IEBAIHN0YXRpYyBzaXplX3QgY29tcHV0ZV9pZGVhbF9vYmplY3Rf
c2l6ZSgKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX251bWJlcl9vZl9vYmplY3RzKCh1bnNpZ25lZCluZXh0X29iamVjdF9zaXpl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdl
X2NvbmZpZykgIT0gbnVtX29iamVjdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9y
b2xlKSAhPSBudW1fb2JqZWN0cykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICAg
ICAgb2JqZWN0X3NpemUgPSBuZXh0X29iamVjdF9zaXplOwpAQCAtMTU3Myw3ICsxNTc1LDggQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBieXRlc19k
aXJ0aWVkX3Blcl9vYmplY3QgPQotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdChvYmplY3Rfc2l6ZV9mb3JfY29uZmlnLCBwYWdl
X2NvbmZpZyk7CisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfYnl0ZXNf
ZGlydGllZF9wZXJfb2JqZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3NpemVf
Zm9yX2NvbmZpZywgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3Jv
bGUpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkJ5dGVzIGRpcnRpZWQgcGVyIG9iamVjdCBmb3Ig
JXMsICV6dTogJWxmLlxuIiwKQEAgLTE2MTcsNyArMTYyMCw4IEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBieXRlc19kaXJ0aWVkX3Bl
cl9vYmplY3RfYnlfY2FuZGlkYXRlID0KICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9ieXRlc19kaXJ0aWVkX3Blcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjYW5kaWRhdGUtPm9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgKnBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhjYW5kaWRhdGUtPmJhc2UucGFn
ZV9jb25maWdfa2luZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgKnBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhjYW5kaWRhdGUtPmJhc2UucGFnZV9jb25maWdf
a2luZCksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1
c2l2ZV9yb2xlKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGJ5dGVzX2Rp
cnRpZWRfcGVyX29iamVjdF9ieV9jYW5kaWRhdGUgPSBjYW5kaWRhdGUtPm9iamVjdF9zaXplOwog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZS5jCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAg
LTI3OCw5ICsyNzgsOCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KHBhc19z
CiAgICAgICAgIAogICAgICAgICAvKiBJZiB0aGVyZSBhcmUgYW55IGJ5dGVzIGluIHRoZSBwYWdl
IG5vdCBtYWRlIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbiB0aGVuIG1ha2Ugc3VyZQogICAgICAg
ICAgICB0aGF0IHRoZSB1c2UgY291bnRzIGtub3cgYWJvdXQgaXQuICovCi0gICAgICAgIHN0YXJ0
X29mX3BheWxvYWQgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0
OwotICAgICAgICBlbmRfb2ZfcGF5bG9hZCA9Ci0gICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNl
LnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ICsgcGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVj
dF9wYXlsb2FkX3NpemU7CisgICAgICAgIHN0YXJ0X29mX3BheWxvYWQgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19wYXlsb2FkX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSk7
CisgICAgICAgIGVuZF9vZl9wYXlsb2FkID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5
bG9hZF9lbmRfb2Zmc2V0X2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKTsKIAogICAgICAgICBw
YXNfcGFnZV9ncmFudWxlX2luY3JlbWVudF91c2VzX2Zvcl9yYW5nZSgKICAgICAgICAgICAgIHVz
ZV9jb3VudHMsIDAsIHN0YXJ0X29mX3BheWxvYWQsCkBAIC01ODQsNiArNTgzLDcgQEAgdm9pZCBw
YXNfc2VncmVnYXRlZF9wYWdlX3ZlcmlmeV9ncmFudWxlcwogICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZzsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZTsKICAgICBwYXNf
cGFnZV9ncmFudWxlX3VzZV9jb3VudCBjb3JyZWN0X3VzZV9jb3VudHNbUEFTX01BWF9HUkFOVUxF
U107CiAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7CiAgICAgdWlu
dHB0cl90IG51bV9ncmFudWxlczsKQEAgLTU5Myw2ICs1OTMsNyBAQCB2b2lkIHBhc19zZWdyZWdh
dGVkX3BhZ2VfdmVyaWZ5X2dyYW51bGVzCiAgICAgdmVyaWZ5X2dyYW51bGVzX2RhdGEgZGF0YTsK
IAogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfY29uZmln
KHBhZ2UtPm93bmVyKTsKKyAgICByb2xlID0gcGFzX3BhZ2Vfa2luZF9nZXRfc2VncmVnYXRlZF9y
b2xlKHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQoJnBhZ2UtPmJhc2UpKTsKIAogICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICBwYXNfbG9nKCJWZXJpZnlpbmcgZ3JhbnVsZXMgaW4gcGFnZSAlcC5cbiIs
IHBhZ2UpOwpAQCAtNjA0LDEwICs2MDUsOCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVy
aWZ5X2dyYW51bGVzCiAgICAgCiAgICAgLyogSWYgdGhlcmUgYXJlIGFueSBieXRlcyBpbiB0aGUg
cGFnZSBub3QgbWFkZSBhdmFpbGFibGUgZm9yIGFsbG9jYXRpb24gdGhlbiBtYWtlIHN1cmUKICAg
ICAgICB0aGF0IHRoZSB1c2UgY291bnRzIGtub3cgYWJvdXQgaXQuICovCi0gICAgc3RhcnRfb2Zf
cGF5bG9hZCA9Ci0gICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9v
ZmZzZXQ7Ci0gICAgZW5kX29mX3BheWxvYWQgPQotICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ICsgcGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9w
YXlsb2FkX3NpemU7CisgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3BheWxvYWRfb2Zmc2V0X2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKTsKKyAgICBl
bmRfb2ZfcGF5bG9hZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfZW5kX29m
ZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSk7CiAgICAgCiAgICAgcGFzX3BhZ2VfZ3Jh
bnVsZV9pbmNyZW1lbnRfdXNlc19mb3JfcmFuZ2UoCiAgICAgICAgIGNvcnJlY3RfdXNlX2NvdW50
cywgMCwgc3RhcnRfb2ZfcGF5bG9hZCwKQEAgLTgxMCwyMCArODA5LDQgQEAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9hbmRfY29uZmlnX2Zvcl9hZGRyZQogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9w
YWdlX2FuZF9jb25maWdfY3JlYXRlX2VtcHR5KCk7CiB9CiAKLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV92ZXJpZnlfbnVtX25vbl9lbXB0eV93b3JkcyhwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKLXsKLSAgICBzaXplX3QgbXlf
bnVtX25vbl9lbXB0eV93b3JkczsKLSAgICBzaXplX3QgaW5kZXg7Ci0KLSAgICBteV9udW1fbm9u
X2VtcHR5X3dvcmRzID0gMDsKLQotICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19udW1fYWxsb2Nfd29yZHMoKnBhZ2VfY29uZmlnKTsgaW5kZXgtLTspIHsKLSAgICAg
ICAgaWYgKHBhZ2UtPmFsbG9jX2JpdHNbaW5kZXhdKQotICAgICAgICAgICAgbXlfbnVtX25vbl9l
bXB0eV93b3JkcysrOwotICAgIH0KLQotICAgIFBBU19BU1NFUlQocGFnZS0+bnVtX25vbl9lbXB0
eV93b3JkcyA9PSBteV9udW1fbm9uX2VtcHR5X3dvcmRzKTsKLX0KLQogI2VuZGlmIC8qIExJQlBB
U19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyOCw4ICsxMjgsMTEgQEAgZXh0ZXJuIFBBU19BUEkgYm9vbCBwYXNfc2Vn
cmVnYXRlZF9wYWdlXwogICAgICAgICAgc2l6ZW9mKHVpbnQ2NF90KSkpCiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfc2l6ZSgKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKKyAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3Jv
bGUgcm9sZSkKIHsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHJvbGUpOyAvKiBUaGlzIGlzIHBhc3Nl
ZCBoZXJlIGluIGFudGljaXBhdGlvbiBvZiBhIHRpbWUgd2hlbiB0aGUgaGVhZGVyIHNpemUgY2Fu
IHZhcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlZCBvbiByb2xlLiAqLwog
ICAgIHJldHVybiBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFKAogICAgICAgICBwYWdl
X2NvbmZpZy5udW1fYWxsb2NfYml0cywKICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CkBAIC0xMzksNiArMTQyLDcgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9wYWdlX29m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0X2Zvcl9odWdnaW5nX21vZGUo
CiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgcGFnZV9jb25maWcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9odWdnaW5nX21vZGUgbW9kZSkKIHsKICAgICBQQVNfQVNTRVJU
KHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19t
aW5fYWxpZ24ocGFnZV9jb25maWcpKSk7CkBAIC0xNDcsMTMgKzE1MSwxNCBAQCBwYXNfc2VncmVn
YXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19sZWZ0OgogICAgICAgICByZXR1cm4gKHVuc2ln
bmVkKSgKLSAgICAgICAgICAgICgocGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9wYXlsb2Fk
X29mZnNldCArIG9iamVjdF9zaXplIC0gMSkgLworICAgICAgICAgICAgKChwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19wYXlsb2FkX29mZnNldF9mb3Jfcm9sZShwYWdlX2NvbmZpZywgcm9sZSkg
KyBvYmplY3Rfc2l6ZSAtIDEpIC8KICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rf
c2l6ZSk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19yaWdodDoKICAgICAgICAg
cmV0dXJuICh1bnNpZ25lZCkoCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6
ZSAtIAotICAgICAgICAgICAgKChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAtIHBhZ2VfY29u
ZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQpIC8KLSAgICAgICAgICAgICBvYmpl
Y3Rfc2l6ZSkgKiBvYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAoKHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplCisgICAgICAgICAgICAgIC0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5
bG9hZF9vZmZzZXRfZm9yX3JvbGUocGFnZV9jb25maWcsIHJvbGUpKQorICAgICAgICAgICAgIC8g
b2JqZWN0X3NpemUpICogb2JqZWN0X3NpemUpOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KQEAg
LTE2Miw2ICsxNjcsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQgCiBwYXNf
c2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rf
b2JqZWN0X2Zvcl9odWdnaW5nX21vZGUoCiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9yb2xlIHJvbGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9odWdnaW5nX21vZGUg
bW9kZSkKIHsKICAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24ocGFnZV9jb25maWcpKSk7CkBAIC0xNzAs
MTMgKzE3NiwxMyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91CiAg
ICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19sZWZ0
OgogICAgICAgICByZXR1cm4gKHVuc2lnbmVkKSgKLSAgICAgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRhcnkocGFn
ZV9jb25maWcpIC8KLSAgICAgICAgICAgICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rfc2l6ZSk7Cisg
ICAgICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0
X2Zvcl9yb2xlKHBhZ2VfY29uZmlnLCByb2xlKSAvIG9iamVjdF9zaXplKQorICAgICAgICAgICAg
KiBvYmplY3Rfc2l6ZSk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19yaWdodDoK
ICAgICAgICAgcmV0dXJuICh1bnNpZ25lZCkoCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNl
LnBhZ2Vfc2l6ZSAtCiAgICAgICAgICAgICAoKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC0K
LSAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfb2JqZWN0X3BheWxvYWRf
ZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KHBhZ2VfY29uZmlnKSArCisgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9sZShwYWdl
X2NvbmZpZywgcm9sZSkgKwogICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSAtIDEpIC8KICAgICAg
ICAgICAgICBvYmplY3Rfc2l6ZSkgKiBvYmplY3Rfc2l6ZSk7CiAgICAgfQpAQCAtMTg2LDI4ICsx
OTIsMzIgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdQogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdXNlZnVsX29i
amVjdF9wYXlsb2FkX3NpemVfZm9yX2h1Z2dpbmdfbW9kZSgKICAgICB1bnNpZ25lZCBvYmplY3Rf
c2l6ZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2h1
Z2dpbmdfbW9kZSBtb2RlKQogewogICAgIHJldHVybgogICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0X2Zvcl9o
dWdnaW5nX21vZGUoCiAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwKICAgICAgICAgICAgIHBhZ2Vf
Y29uZmlnLAorICAgICAgICAgICAgcm9sZSwKICAgICAgICAgICAgIG1vZGUpIC0KICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29i
amVjdF9mb3JfaHVnZ2luZ19tb2RlKAogICAgICAgICAgICAgb2JqZWN0X3NpemUsCiAgICAgICAg
ICAgICBwYWdlX2NvbmZpZywKKyAgICAgICAgICAgIHJvbGUsCiAgICAgICAgICAgICBtb2RlKTsK
IH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3BhZ2VfaHVnZ2lu
Z19tb2RlCiBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKHVuc2lnbmVkIG9i
amVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
cm9sZSByb2xlKQogewogICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9vYmplY3Rf
cGF5bG9hZF9zaXplX2Zvcl9odWdnaW5nX21vZGUoCi0gICAgICAgICAgICBvYmplY3Rfc2l6ZSwg
cGFnZV9jb25maWcsCisgICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHJvbGUs
CiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19sZWZ0KSA+PQogICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplX2Zvcl9odWdnaW5n
X21vZGUoCi0gICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsCisgICAgICAgICAg
ICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHJvbGUsCiAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2h1Z19yaWdodCkpCiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdl
X2h1Z19sZWZ0OwogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX2h1Z19yaWdodDsKQEAg
LTIxOSw3ICsyMjksOCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3RfZm9yX2h1Z2dpbmdfbW9kZSgKLSAgICAgICAgb2JqZWN0X3NpemUsIHBhZ2VfY29u
ZmlnLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKG9iamVjdF9zaXplLCBw
YWdlX2NvbmZpZykpOworICAgICAgICBvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUsCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
YmVzdF9odWdnaW5nX21vZGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1
bnNpZ25lZCAKQEAgLTIyOCwzMCArMjM5LDMzIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0
X2Zyb21fcGFnZV9ib3UKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZykKIHsKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdF9mb3JfaHVnZ2luZ19tb2RlKAotICAgICAgICBv
YmplY3Rfc2l6ZSwgcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYmVzdF9odWdnaW5n
X21vZGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnKSk7CisgICAgICAgIG9iamVjdF9zaXplLCBw
YWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSwKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9iZXN0X2h1Z2dpbmdfbW9kZShvYmplY3Rfc2l6ZSwgcGFnZV9j
b25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpKTsKIH0KIAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9v
YmplY3RfcGF5bG9hZF9zaXplKHVuc2lnbmVkIG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyBwYWdlX2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
cm9sZSByb2xlKQogewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9vYmpl
Y3RfcGF5bG9hZF9zaXplX2Zvcl9odWdnaW5nX21vZGUoCi0gICAgICAgIG9iamVjdF9zaXplLCBw
YWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9iZXN0X2h1Z2dpbmdfbW9kZShvYmplY3Rf
c2l6ZSwgcGFnZV9jb25maWcpKTsKKyAgICAgICAgb2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnLCBy
b2xlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Jlc3RfaHVnZ2luZ19tb2RlKG9iamVjdF9zaXplLCBw
YWdlX2NvbmZpZywgcm9sZSkpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWdu
ZWQKIHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHModW5zaWduZWQgb2JqZWN0
X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xl
IHJvbGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIHVu
c2lnbmVkIHJlc3VsdDsKICAgICAKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX3Vz
ZWZ1bF9vYmplY3RfcGF5bG9hZF9zaXplKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZykgLyBvYmpl
Y3Rfc2l6ZTsKKyAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX3VzZWZ1bF9vYmplY3Rf
cGF5bG9hZF9zaXplKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZywgcm9sZSkgLyBvYmplY3Rfc2l6
ZTsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJmaXJzdCBvYmpl
Y3Qgb2Zmc2V0ID0gJXVcbiIsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9i
b3VuZGFyeV90b19maXJzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZp
ZykpOwogICAgICAgICBwYXNfbG9nKCJlbmQgb2YgbGFzdCBvYmplY3Qgb2Zmc2V0ID0gJXVcbiIs
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2Zf
bGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZykpOwotICAgICAg
ICBwYXNfbG9nKCJwYXlsb2FkIG9mZnNldCA9ICVsdVxuIiwgcGFnZV9jb25maWcuYmFzZS5wYWdl
X29iamVjdF9wYXlsb2FkX29mZnNldCk7CisgICAgICAgIHBhc19sb2coInBheWxvYWQgb2Zmc2V0
ID0gJWx1XG4iLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX29mZnNldF9mb3Jf
cm9sZShwYWdlX2NvbmZpZywgcm9sZSkpOwogICAgICAgICBwYXNfbG9nKCJvYmplY3Rfc2l6ZSA9
ICV1LCBzbyBudW1iZXJfb2Zfb2JqZWN0cyA9ICV1XG4iLCBvYmplY3Rfc2l6ZSwgcmVzdWx0KTsK
ICAgICB9CiAgICAgCkBAIC0yNjIsNyArMjc2LDggQEAgUEFTX0FQSSBleHRlcm4gZG91YmxlIHBh
c19zZWdyZWdhdGVkX3BhZwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgZG91YmxlCiBwYXNf
c2VncmVnYXRlZF9wYWdlX2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCh1bnNpZ25lZCBvYmplY3Rf
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX3JvbGUgcm9sZSkKIHsKICAgICBkb3VibGUgZXh0cmFfaGFuZGljYXA7
CiAKQEAgLTI3MSw3ICsyODYsNyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2J5dGVzX2RpcnRpZWRf
cGVyX29iCiAgICAgICAgIHBhZ2VfY29uZmlnLnZhcmlhbnRdOwogICAgIAogICAgIHJldHVybiAo
ZG91YmxlKXBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8KLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cyhvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcpICoKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cyhvYmplY3Rfc2l6ZSwg
cGFnZV9jb25maWcsIHJvbGUpICoKICAgICAgICAgcGFnZV9jb25maWcud2FzdGVhZ2VfaGFuZGlj
YXAgKiBleHRyYV9oYW5kaWNhcDsKIH0KIApAQCAtNDQ0LDkgKzQ1OSw2IEBAIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZm9yX2FkZHJlc3NfYW5kX2hlYXAKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9hbmRfY29uZmlnX2Zvcl9hZGRyZXNzX2FuZF9oZWFwX2NvbmZpZyhiZWdpbiwgY29uZmln
KS5wYWdlOwogfQogCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV92ZXJpZnlfbnVt
X25vbl9lbXB0eV93b3JkcyhwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKLQogUEFTX0VORF9FWFRFUk5fQzsKIAog
I2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1BBR0VfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZy5jCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDQsMTUgKzQ0LDE5IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFsaWRhdGUK
IHsKICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2RvX3ZhbGlkYXRlKQogICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgUEFTX0FTU0VSVChjb25maWctPmJhc2UucGFnZV9vYmpl
Y3RfcGF5bG9hZF9zaXplIDw9IGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOworCisgICAgUEFTX0FT
U0VSVChjb25maWctPmV4Y2x1c2l2ZV9wYXlsb2FkX3NpemUgPD0gY29uZmlnLT5iYXNlLnBhZ2Vf
c2l6ZSk7CisgICAgUEFTX0FTU0VSVChjb25maWctPnNoYXJlZF9wYXlsb2FkX3NpemUgPD0gY29u
ZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19taW5fYWxpZ24oKmNvbmZpZykgPCBjb25maWctPmJhc2UubWF4X29iamVjdF9zaXpl
KTsKLSAgICBQQVNfQVNTRVJUKGNvbmZpZy0+YmFzZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNl
dCA8IGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwotICAgIFBBU19BU1NFUlQoY29uZmlnLT5iYXNl
Lm1heF9vYmplY3Rfc2l6ZSA8PSBjb25maWctPmJhc2UucGFnZV9vYmplY3RfcGF5bG9hZF9zaXpl
KTsKKyAgICBQQVNfQVNTRVJUKGNvbmZpZy0+ZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0IDwgY29u
ZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgUEFTX0FTU0VSVChjb25maWctPnNoYXJlZF9wYXls
b2FkX29mZnNldCA8IGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOworICAgIFBBU19BU1NFUlQoY29u
ZmlnLT5iYXNlLm1heF9vYmplY3Rfc2l6ZSA8PSBjb25maWctPmV4Y2x1c2l2ZV9wYXlsb2FkX3Np
emUpOworICAgIFBBU19BU1NFUlQoY29uZmlnLT5iYXNlLm1heF9vYmplY3Rfc2l6ZSA8PSBjb25m
aWctPnNoYXJlZF9wYXlsb2FkX3NpemUpOwogICAgIFBBU19BU1NFUlQoY29uZmlnLT5udW1fYWxs
b2NfYml0cyA+PQotICAgICAgICAgICAgICAgKGNvbmZpZy0+YmFzZS5wYWdlX29iamVjdF9wYXls
b2FkX3NpemUgPj4gY29uZmlnLT5iYXNlLm1pbl9hbGlnbl9zaGlmdCkpOwotICAgIFBBU19BU1NF
UlQoKGNvbmZpZy0+YmFzZS5wYWdlX29iamVjdF9wYXlsb2FkX29mZnNldCArCi0gICAgICAgICAg
ICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSkgPD0gY29uZmlnLT5i
YXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9yb2xlKAorICAgICAgICAgICAgICAgICAgICpjb25m
aWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpID4+IGNvbmZpZy0+YmFzZS5taW5f
YWxpZ25fc2hpZnQpKTsKKyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9sZSgKKyAgICAgICAgICAgICAgICAgICAqY29uZmln
LCBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSA8PSBjb25maWctPmJhc2UucGFn
ZV9zaXplKTsKICAgICBQQVNfQVNTRVJUKCEoY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSAlIGNvbmZp
Zy0+YmFzZS5ncmFudWxlX3NpemUpKTsKICAgICBQQVNfQVNTRVJUKGNvbmZpZy0+YmFzZS5wYWdl
X3NpemUgPj0gY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSk7CiAgICAgUEFTX0FTU0VSVCghKGNv
bmZpZy0+YmFzZS5ncmFudWxlX3NpemUgJSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpKTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAkocmV2aXNpb24gMjg3MTY3KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDYgKzE0MSwxNCBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcgewogICAgICAgIGFuZCB3aGVyZSB5b3UgcGxhY2UgdGhlIGhlYWRlci4g
Ki8KICAgICBzaXplX3QgbnVtX2FsbG9jX2JpdHM7CiAKKyAgICAvKiBXaGF0J3MgdGhlIGZpcnN0
IGJ5dGUgYXQgd2hpY2ggdGhlIG9iamVjdCBwYXlsb2FkIGNvdWxkIHN0YXJ0IHJlbGF0aXZlIHRv
IHRoZSBib3VuZGFyeT8gKi8KKyAgICB1aW50cHRyX3Qgc2hhcmVkX3BheWxvYWRfb2Zmc2V0Owor
ICAgIHVpbnRwdHJfdCBleGNsdXNpdmVfcGF5bG9hZF9vZmZzZXQ7CisKKyAgICAvKiBIb3cgbWFu
eSBieXRlcyBhcmUgcHJvdmlzaW9uZWQgZm9yIG9iamVjdHMgcGFzdCB0aGF0IG9mZnNldD8gKi8K
KyAgICBzaXplX3Qgc2hhcmVkX3BheWxvYWRfc2l6ZTsKKyAgICBzaXplX3QgZXhjbHVzaXZlX3Bh
eWxvYWRfc2l6ZTsKKwogICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9sb2dnaW5nX21v
ZGUgc2hhcmVkX2xvZ2dpbmdfbW9kZTsKICAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
bG9nZ2luZ19tb2RlIGV4Y2x1c2l2ZV9sb2dnaW5nX21vZGU7CiAKQEAgLTIzNSw5ICsyNDMsMzkg
QEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKHBhcwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90Ci1wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19v
YmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zyb21fYm91bmRhcnkocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgY29uZmlnKQorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9vZmZz
ZXRfZm9yX3JvbGUocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9yb2xlIHJvbGUpCit7CisgICAgc3dpdGNoIChyb2xlKSB7CisgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlOgorICAgICAgICByZXR1cm4gY29uZmlnLnNoYXJlZF9w
YXlsb2FkX29mZnNldDsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3Jv
bGU6CisgICAgICAgIHJldHVybiBjb25maWcuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0OworICAg
IH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJu
IDA7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3BheWxvYWRfc2l6ZV9mb3Jfcm9sZShwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlIHJvbGUpCit7CisgICAgc3dpdGNoIChyb2xl
KSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlOgorICAgICAgICBy
ZXR1cm4gY29uZmlnLnNoYXJlZF9wYXlsb2FkX3NpemU7CisgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlOgorICAgICAgICByZXR1cm4gY29uZmlnLmV4Y2x1c2l2ZV9w
YXlsb2FkX3NpemU7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNo
ZWQiKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnRw
dHJfdAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9y
b2xlKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X3JvbGUgcm9sZSkKIHsKLSAgICByZXR1cm4gcGFzX3BhZ2VfYmFzZV9jb25maWdfb2JqZWN0X3Bh
eWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KGNvbmZpZy5iYXNlKTsKKyAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcGF5bG9hZF9vZmZzZXRfZm9yX3JvbGUoY29uZmln
LCByb2xlKQorICAgICAgICArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfc2l6
ZV9mb3Jfcm9sZShjb25maWcsIHJvbGUpOwogfQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BB
R0VfQ09ORklHX05VTV9BTExPQ19XT1JEUyhudW1fYWxsb2NfYml0cykgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRp
bHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNiArMzksMjggQEAgUEFTX0JFR0lOX0VYVEVS
Tl9DOwogI2RlZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9OVU1fQUxMT0NfQklUUyhtaW5fYWxp
Z25fc2hpZnQsIHBhZ2Vfc2l6ZSkgXAogICAgICgocGFnZV9zaXplKSA+PiAobWluX2FsaWduX3No
aWZ0KSkKIAotI2RlZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFKG1p
bl9hbGlnbl9zaGlmdCwgcGFnZV9zaXplLCBncmFudWxlX3NpemUpIFwKKyNkZWZpbmUgUEFTX0JB
U0lDX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRV9FWENMVVNJVkUobWluX2FsaWduX3NoaWZ0
LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6ZSkgXAogICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfSEVB
REVSX1NJWkUoIFwKICAgICAgICAgUEFTX0JBU0lDX1NFR1JFR0FURURfTlVNX0FMTE9DX0JJVFMo
KG1pbl9hbGlnbl9zaGlmdCksIChwYWdlX3NpemUpKSwgXAogICAgICAgICAocGFnZV9zaXplKSAv
IChncmFudWxlX3NpemUpKQogCi0jZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURf
T0ZGU0VUKG1pbl9hbGlnbl9zaGlmdCwgcGFnZV9zaXplLCBncmFudWxlX3NpemUpIFwKLSAgICBQ
QVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFKChtaW5fYWxpZ25fc2hpZnQpLCAo
cGFnZV9zaXplKSwgKGdyYW51bGVfc2l6ZSkpCisjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVE
X1BBWUxPQURfT0ZGU0VUX0VYQ0xVU0lWRShtaW5fYWxpZ25fc2hpZnQsIHBhZ2Vfc2l6ZSwgZ3Jh
bnVsZV9zaXplKSBcCisgICAgUEFTX0JBU0lDX1NFR1JFR0FURURfUEFHRV9IRUFERVJfU0laRV9F
WENMVVNJVkUoKG1pbl9hbGlnbl9zaGlmdCksIChwYWdlX3NpemUpLCAoZ3JhbnVsZV9zaXplKSkK
IAotI2RlZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlMT0FEX1NJWkUobWluX2FsaWduX3No
aWZ0LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6ZSkgXAotICAgICgocGFnZV9zaXplKSAtIFBBU19C
QVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfT0ZGU0VUKChtaW5fYWxpZ25fc2hpZnQpLCAocGFnZV9z
aXplKSwgKGdyYW51bGVfc2l6ZSkpKQorI2RlZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlM
T0FEX1NJWkVfRVhDTFVTSVZFKG1pbl9hbGlnbl9zaGlmdCwgcGFnZV9zaXplLCBncmFudWxlX3Np
emUpIFwKKyAgICAoKHBhZ2Vfc2l6ZSkgLSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlMT0FEX09G
RlNFVF9FWENMVVNJVkUoIFwKKyAgICAgICAgIChtaW5fYWxpZ25fc2hpZnQpLCAocGFnZV9zaXpl
KSwgKGdyYW51bGVfc2l6ZSkpKQorCisjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBR0Vf
SEVBREVSX1NJWkVfU0hBUkVEKG1pbl9hbGlnbl9zaGlmdCwgcGFnZV9zaXplLCBncmFudWxlX3Np
emUpIFwKKyAgICBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9TSVpFKCBcCisgICAgICAgIFBB
U19CQVNJQ19TRUdSRUdBVEVEX05VTV9BTExPQ19CSVRTKChtaW5fYWxpZ25fc2hpZnQpLCAocGFn
ZV9zaXplKSksIFwKKyAgICAgICAgKHBhZ2Vfc2l6ZSkgLyAoZ3JhbnVsZV9zaXplKSkKKworI2Rl
ZmluZSBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQVlMT0FEX09GRlNFVF9TSEFSRUQobWluX2FsaWdu
X3NoaWZ0LCBwYWdlX3NpemUsIGdyYW51bGVfc2l6ZSkgXAorICAgIFBBU19CQVNJQ19TRUdSRUdB
VEVEX1BBR0VfSEVBREVSX1NJWkVfU0hBUkVEKChtaW5fYWxpZ25fc2hpZnQpLCAocGFnZV9zaXpl
KSwgKGdyYW51bGVfc2l6ZSkpCisKKyNkZWZpbmUgUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9B
RF9TSVpFX1NIQVJFRChtaW5fYWxpZ25fc2hpZnQsIHBhZ2Vfc2l6ZSwgZ3JhbnVsZV9zaXplKSBc
CisgICAgKChwYWdlX3NpemUpIC0gUEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9PRkZTRVRf
U0hBUkVEKChtaW5fYWxpZ25fc2hpZnQpLCAocGFnZV9zaXplKSwgKGdyYW51bGVfc2l6ZSkpKQog
CiAjZGVmaW5lIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0ZPUldBUkRfREVDTEFS
QVRJT05TKG5hbWUpIFwKICAgICBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVDSUFMSVpB
VElPTl9ERUNMQVJBVElPTlMobmFtZSAjIyBfcGFnZV9jb25maWcpOyBcCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaAkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDQyICs0MCw3IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotLyogT0sg
dG8gcGFzcyBOVUxMIHBhZ2UgaWYgeW91IHBhc3Mgbm9uLU5VTEwgZGlyZWN0b3J5LiAqLwotc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9wYWdlX29mZnNl
dF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KAotICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICB1
aW50cHRyX3QgcmVzdWx0OwotCi0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2Vu
YWJsZWQpOwotICAgIAotICAgIGlmICghcGFnZSB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKHBhZ2UtPm93bmVyKSkgewotICAgICAgICBpZiAoIXBhZ2UpCi0gICAgICAg
ICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhj
bHVzaXZlKHBhZ2UtPm93bmVyKS0+ZGlyZWN0b3J5KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxs
KCZkaXJlY3RvcnktPmRhdGEpCi0gICAgICAgICAgICAtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfdG9fZmlyc3Rfb2JqZWN0OwotICAgIH0KLQotICAgIHJlc3VsdCA9IHBhc19yb3VuZF91cF90
b19wb3dlcl9vZl8yKAotICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3BheWxv
YWRfb2Zmc2V0LAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24o
cGFnZV9jb25maWcpKTsKLQotICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKXJlc3VsdCA9PSByZXN1
bHQpOwotICAgIHJldHVybiAodW5zaWduZWQpcmVzdWx0OwotfQotCi0vKiBSZXR1cm5zIHRydWUg
aWYgaXQgY292ZXJlZCBldmVyeXRoaW5nLiBPSyB0byBwYXNzIE5VTEwgcGFnZS4gUGFzc2luZyBO
VUxMIGZvciB0aGUgZGlyZWN0b3J5Ci0gICBtZWFucyB0aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4g
bGVhdmluZyB6ZXJvZXMgd2hlcmUgdGhlIG9iamVjdHMgZ28sIHdoaWNoIGlzIHVzZWZ1bCBmb3IK
LSAgIGJyaW5naW5nIHVwIHNoYXJlZCB2aWV3cy4gKi8KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2Vf
Y291bnRzLAogICAgIHVpbnRwdHJfdCBlbmRfZ3JhbnVsZV9pbmRleCwKQEAgLTkyLDYgKzU3LDcg
QEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZwogICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAKICAgICBQQVNfQVNTRVJUKHBhZ2Vf
Y29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisgICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwogICAg
IAogICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9j
b25maWcuYmFzZS5ncmFudWxlX3NpemU7CiAgICAgUEFTX0FTU0VSVChlbmRfZ3JhbnVsZV9pbmRl
eCA8PSBudW1fZ3JhbnVsZXMpOwpAQCAtMTAzLDkgKzY5LDEwIEBAIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBib29sIHBhc19zZWdyZWcKICAgICAvKiBJZiB0aGVyZSBhcmUgYW55IGJ5dGVzIGlu
IHRoZSBwYWdlIG5vdCBtYWRlIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbiB0aGVuIG1ha2Ugc3Vy
ZQogICAgICAgIHRoYXQgdGhlIHVzZSBjb3VudHMga25vdyBhYm91dCBpdC4gKi8KICAgICBzdGFy
dF9vZl9wYXlsb2FkID0KLSAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX29iamVjdF9wYXls
b2FkX29mZnNldDsKKyAgICAgICAgcGFnZV9jb25maWcuZXhjbHVzaXZlX3BheWxvYWRfb2Zmc2V0
OwogICAgIGVuZF9vZl9wYXlsb2FkID0KLSAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX29i
amVjdF9wYXlsb2FkX29mZnNldCArIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9vYmplY3RfcGF5bG9h
ZF9zaXplOworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9v
ZmZzZXRfZm9yX3JvbGUoCisgICAgICAgICAgICBwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9leGNsdXNpdmVfcm9sZSk7CiAKICAgICBpZiAoc3RhcnRfb2ZfcGF5bG9hZCkgewogICAg
ICAgICBpZiAoIWVuZF9ncmFudWxlX29mZnNldCkKQEAgLTExOSwxNCArODYsOSBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgaWYgKHN0YXJ0X29mX3BheWxv
YWQgPiBlbmRfZ3JhbnVsZV9vZmZzZXQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
ICghZGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gZW5kX2dyYW51bGVfb2Zmc2V0ID09IHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplOwotCiAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CiAKLSAg
ICBzdGFydF9vZl9maXJzdF9vYmplY3QgPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX29m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KAotICAgICAgICAgICAgcGFn
ZSwgZGlyZWN0b3J5LCBwYWdlX2NvbmZpZyk7CisgICAgc3RhcnRfb2ZfZmlyc3Rfb2JqZWN0ID0g
ZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Q7CiAgICAgZW5k
X29mX2xhc3Rfb2JqZWN0ID0gZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRf
b2ZfbGFzdF9vYmplY3Q7CiAKICAgICBvYmplY3Rfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3Np
emU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMJKHJldmlzaW9uIDI4NzE2NykKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3LmMJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw3ICsxNDQsMTEgQEAgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX2hhbmRsZSogcGFzX3NlZ3JlZwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBw
YWdlID0gKHBhc19zZWdyZWdhdGVkX3BhZ2UqKQotICAgICAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5jcmVhdGVfcGFnZV9oZWFkZXIocGFnZV9ib3VuZGFyeSwgcGFzX2xvY2tfaXNfaGVsZCk7Cisg
ICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICAgICAg
ICAgICAgICBwYWdlX2JvdW5kYXJ5LAorICAgICAgICAgICAgICAgIHBhc19wYWdlX2tpbmRfZm9y
X3NlZ3JlZ2F0ZWRfdmFyaWFudF9hbmRfcm9sZSgKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9j
b25maWcudmFyaWFudCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSksCisgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgIAogICAgICAgICBwYXNfaGVhcF9s
b2NrX3VubG9ja19jb25kaXRpb25hbGx5KAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOwpAQCAtMTUyLDggKzE1
Niw3IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHBhc19zZWdyZWcKICAgICAgICAg
aGFuZGxlLT5wYWdlX2JvdW5kYXJ5ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdl
LCBwYWdlX2NvbmZpZyk7CiAKICAgICAgICAgdmlldy0+YnVtcF9vZmZzZXQgPSAodW5zaWduZWQp
cGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoCi0gICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNl
LnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0LAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnKSk7CisgICAgICAgICAgICBwYWdlX2Nv
bmZpZy5zaGFyZWRfcGF5bG9hZF9vZmZzZXQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21p
bl9hbGlnbihwYWdlX2NvbmZpZykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChQQVNfREVC
VUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVj
dHJ1bV9hZGQoCkBAIC0xNjUsNyArMTY4LDExIEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5k
bGUqIHBhc19zZWdyZWcKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hl
YXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKIAogICAgICAgICBwYXNfcGFnZV9tYWxs
b2NfY29tbWl0KGhhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emUpOwotICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcihoYW5kbGUt
PnBhZ2VfYm91bmRhcnksIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgcGFnZV9jb25m
aWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCisgICAgICAgICAgICBoYW5kbGUtPnBhZ2VfYm91
bmRhcnksCisgICAgICAgICAgICBwYXNfcGFnZV9raW5kX2Zvcl9zZWdyZWdhdGVkX3ZhcmlhbnRf
YW5kX3JvbGUoCisgICAgICAgICAgICAgICAgcGFnZV9jb25maWcudmFyaWFudCwgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zaGFyZWRfcm9sZSksCisgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVs
ZCk7CiAgICAgfQogCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QoCkBAIC0yNjMs
NyArMjcwLDcgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KAogCiAg
ICAgc3RhcnRfb2ZfcGFnZSA9IDA7CiAgICAgc3RhcnRfb2ZfcGF5bG9hZCA9IHBhc19yb3VuZF91
cF90b19wb3dlcl9vZl8yKAotICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfb2JqZWN0X3Bh
eWxvYWRfb2Zmc2V0LAorICAgICAgICBwYWdlX2NvbmZpZy5zaGFyZWRfcGF5bG9hZF9vZmZzZXQs
CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihwYWdlX2NvbmZp
ZykpOwogICAgIGVuZF9vZl9wYXlsb2FkID0gdmlldy0+YnVtcF9vZmZzZXQ7CiAgICAgZW5kX29m
X3BhZ2UgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXcuaAkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAt
MTE5LDcgKzExOSw3IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2Nhbl9idW1wKAogICAg
IHVuc2lnbmVkIGJ1bXBfbGltaXQ7CiAKICAgICBidW1wX2xpbWl0ID0gKHVuc2lnbmVkKQotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRfb2Zmc2V0
X2Zyb21fYm91bmRhcnkocGFnZV9jb25maWcpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUocGFnZV9jb25maWcsIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpOwogICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2NvbXB1dGVfaW5pdGlhbF9uZXdfYnVtcCh2aWV3LCBzaXplLCBhbGlnbm1lbnQs
IHBhZ2VfY29uZmlnKTsKIAogICAgIHJldHVybiByZXN1bHQubmV3X2J1bXAgPD0gYnVtcF9saW1p
dDsKQEAgLTEzOCw3ICsxMzgsNyBAQCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jb21wdXRl
X25ld19iCiAKICAgICB0b3RhbF9zaGlmdCA9IHBhZ2VfY29uZmlnLmJhc2UubWluX2FsaWduX3No
aWZ0ICsgcGFnZV9jb25maWcuc2hhcmluZ19zaGlmdDsKICAgICBidW1wX2xpbWl0ID0gKHVuc2ln
bmVkKQotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9l
bmRfb2Zmc2V0X2Zyb21fYm91bmRhcnkocGFnZV9jb25maWcpOworICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19wYXlsb2FkX2VuZF9vZmZzZXRfZm9yX3JvbGUocGFnZV9jb25maWcs
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVkX3JvbGUpOwogICAgIHJlc3VsdCA9IHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3X2NvbXB1dGVfaW5pdGlhbF9uZXdfYnVtcCh2aWV3LCBzaXplLCBh
bGlnbm1lbnQsIHBhZ2VfY29uZmlnKTsKIAogICAgIGlmIChyZXN1bHQubmV3X2J1bXAgPiBidW1w
X2xpbWl0KQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAy
ODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNyArNDAwLDcgQEAgdm9p
ZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibAogICAgICAgICAgICAgcGFzX29i
amVjdF9hbGxvY2F0aW9uKTsKIAogICAgICAgICBpbml0aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCi0gICAgICAgICAgICBOVUxM
LCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7
CisgICAgICAgICAgICBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBw
YWdlX2NvbmZpZyk7CiAKICAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFsaXplZCBh
bGwgb2YgdGhlIGJpdHMuICovCiAgICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9yZXN1bHQp
OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
dmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3ZpZXcuYwkocmV2aXNpb24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBA
IC0zNzYsMTMgKzM3Niw3IEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAg
ICAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2VuZCk7CiAgICAgfQogCi0g
ICAgLyogRklYTUU6IFByZXR0eSBzdXJlIHRoaXMgY2FuIGp1c3Qgc3RhcnQgYXQgd29yZF9pbmRl
eF9iZWdpbi4gKi8KLSAgICBmb3IgKGluZGV4ID0gUEFTX01BWCgKLSAgICAgICAgICAgICBQQVNf
QklUVkVDVE9SX0JJVF9JTkRFWChmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbiksCi0g
ICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeSgKLSAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKLSAgICAgICAgICAgICAgICAg
ICAgIHBhZ2UsIE5VTEwsIHBhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgcGFnZV9jb25m
aWcuYmFzZSkpOworICAgIGZvciAoaW5kZXggPSBQQVNfQklUVkVDVE9SX0JJVF9JTkRFWChmdWxs
X2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbik7CiAgICAgICAgICBpbmRleCA8IFBBU19CSVRW
RUNUT1JfQklUX0lOREVYKGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2VuZCk7CiAgICAgICAg
ICArK2luZGV4KSB7CiAgICAgICAgIHVpbnRwdHJfdCBvYmplY3Q7CkBAIC00NjMsNyArNDU3LDgg
QEAgc3RhdGljIHBhc190cmlfc3RhdGUgc2hvdWxkX2JlX2VsaWdpYmxlKAogICAgICAgICAgICAg
cGFzX2xvZygiQ2hlY2tpbmcgaWYgY2FuIGJ1bXAgZm9yIHNoYXJlZCB2aWV3ICVwLCBidW1wICV1
LCBtYXggb2JqZWN0IHNpemUgJXp1LCAiCiAgICAgICAgICAgICAgICAgICAgICJidW1wIGxpbWl0
ICV6dVxuIiwKICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3ZpZXcsIHNoYXJlZF92aWV3LT5i
dW1wX29mZnNldCwgcGFnZV9jb25maWctPmJhc2UubWF4X29iamVjdF9zaXplLAotICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19vYmplY3RfcGF5bG9hZF9lbmRf
b2Zmc2V0X2Zyb21fYm91bmRhcnkoKnBhZ2VfY29uZmlnKSk7CisgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3BheWxvYWRfZW5kX29mZnNldF9mb3Jfcm9sZSgK
KyAgICAgICAgICAgICAgICAgICAgICAgICpwYWdlX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9zaGFyZWRfcm9sZSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBQQVNfQVNTRVJU
KCh1bnNpZ25lZClwYWdlX2NvbmZpZy0+YmFzZS5tYXhfb2JqZWN0X3NpemUgPT0gcGFnZV9jb25m
aWctPmJhc2UubWF4X29iamVjdF9zaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92
aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NzE2NykKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNyw4IEBAIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfd2lsbF9zdGFydF9hbGxvY2F0aW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5jcmVhdGVfcGFnZV9o
ZWFkZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9i
b3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfa2luZF9m
b3Jfc2VncmVnYXRlZF92YXJpYW50X2FuZF9yb2xlKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFnZV9jb25maWcudmFyaWFudCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNs
dXNpdmVfcm9sZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lz
X2hlbGQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKQEAgLTE4Nyw2ICsxODksOCBAQCBwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxs
b2NhdGluCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJh
c2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAogICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBh
Z2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2tpbmRfZm9yX3NlZ3Jl
Z2F0ZWRfdmFyaWFudF9hbmRfcm9sZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29u
ZmlnLnZhcmlhbnQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3JvbGUpLAogICAgICAg
ICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkocmV2aXNp
b24gMjg3MTY3KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1
c19yZXBvcnRlci5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNTcsOSArMjU3LDEwIEBAIHN0YXRpYyB2
b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9yeV8KICAgICAgICAgcGFnZV9jb25maWcgPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5wYWdl
X2NvbmZpZ19raW5kKTsKIAogICAgICAgICBwYXlsb2FkX2JlZ2luID0gcGFzX3JvdW5kX3VwX3Rv
X3Bvd2VyX29mXzIoCi0gICAgICAgICAgICBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX29iamVjdF9w
YXlsb2FkX29mZnNldCwKKyAgICAgICAgICAgIHBhZ2VfY29uZmlnLT5zaGFyZWRfcGF5bG9hZF9v
ZmZzZXQsCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24o
KnBhZ2VfY29uZmlnKSk7Ci0gICAgICAgIHBheWxvYWRfZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfb2JqZWN0X3BheWxvYWRfZW5kX29mZnNldF9mcm9tX2JvdW5kYXJ5KCpwYWdlX2Nv
bmZpZyk7CisgICAgICAgIHBheWxvYWRfZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
cGF5bG9hZF9lbmRfb2Zmc2V0X2Zvcl9yb2xlKAorICAgICAgICAgICAgKnBhZ2VfY29uZmlnLCBw
YXNfc2VncmVnYXRlZF9wYWdlX3NoYXJlZF9yb2xlKTsKICAgICAgICAgCiAgICAgICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgICAgICBCdW1wOiAiLCBwcmVmaXgpOwogICAgICAg
ICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShk
aXJlY3RvcnkpOyArK2luZGV4KSB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmgJKHJldmlzaW9u
IDI4NzE2NykKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5
X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDE1ICszNiwxMCBAQCBQQVNfQkVH
SU5fRVhURVJOX0M7CiAgICAgUEFTX0JBU0lDX1NFR1JFR0FURURfTlVNX0FMTE9DX0JJVFMoUEFT
X0lOVEVSTkFMX01JTl9BTElHTl9TSElGVCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSkKIAotI2RlZmluZSBQQVNf
VVRJTElUWV9IRUFQX0hFQURFUl9TSVpFIFwKLSAgICBQQVNfQkFTSUNfU0VHUkVHQVRFRF9QQUdF
X0hFQURFUl9TSVpFKFBBU19JTlRFUk5BTF9NSU5fQUxJR05fU0hJRlQsIFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0la
RSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX1NNQUxM
X1BBR0VfREVGQVVMVF9TSVpFKQotCiAjZGVmaW5lIFBBU19VVElMSVRZX0hFQVBfUEFZTE9BRF9P
RkZTRVQgXAotICAgIFBBU19CQVNJQ19TRUdSRUdBVEVEX1BBWUxPQURfT0ZGU0VUKFBBU19JTlRF
Uk5BTF9NSU5fQUxJR05fU0hJRlQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUpCisgICAg
UEFTX0JBU0lDX1NFR1JFR0FURURfUEFZTE9BRF9PRkZTRVRfRVhDTFVTSVZFKFBBU19JTlRFUk5B
TF9NSU5fQUxJR05fU0hJRlQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19TTUFMTF9QQUdFX0RF
RkFVTFRfU0laRSkKIAogc3RhdGljIGlubGluZSBwYXNfcGFnZV9iYXNlKiBwYXNfdXRpbGl0eV9o
ZWFwX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBhbGxvY2F0aW9uKQogewpAQCAtNjQs
OSArNTksMTAgQEAgcGFzX3V0aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3BhZ2Vf
YmFzZSogcGFzX3V0aWxpdHlfaGVhcF9jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAgdm9pZCogYm91
bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQorICAgIHZvaWQq
IGJvdW5kYXJ5LCBwYXNfcGFnZV9raW5kIGtpbmQsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKQogewogICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CisgICAgUEFTX0FTU0VSVChraW5kID09IHBhc19zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRl
ZF9wYWdlX2tpbmQpOwogICAgIHJldHVybiAocGFzX3BhZ2VfYmFzZSopYm91bmRhcnk7CiB9CiAK
QEAgLTEwMywxNCArOTksMTAgQEAgUEFTX0FQSSB2b2lkIHBhc191dGlsaXR5X2hlYXBfY29uZmln
X2R1bQogICAgICAgICAgICAgICAgIC5taW5fYWxpZ25fc2hpZnQgPSBQQVNfSU5URVJOQUxfTUlO
X0FMSUdOX1NISUZULCBcCiAgICAgICAgICAgICAgICAgLnBhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9Q
QUdFX0RFRkFVTFRfU0laRSwgXAogICAgICAgICAgICAgICAgIC5ncmFudWxlX3NpemUgPSBQQVNf
U01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKLSAgICAgICAgICAgICAgICAucGFnZV9oZWFkZXJf
c2l6ZSA9IFBBU19VVElMSVRZX0hFQVBfSEVBREVSX1NJWkUsIFwKICAgICAgICAgICAgICAgICAu
bWF4X29iamVjdF9zaXplID0gUEFTX1VUSUxJVFlfTE9PS1VQX1NJWkVfVVBQRVJfQk9VTkQsIFwK
ICAgICAgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5ID0gcGFzX3V0aWxpdHlf
aGVhcF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnksIFwKICAgICAgICAgICAgICAgICAuYm91bmRh
cnlfZm9yX3BhZ2VfaGVhZGVyID0gcGFzX3V0aWxpdHlfaGVhcF9ib3VuZGFyeV9mb3JfcGFnZV9o
ZWFkZXIsIFwKICAgICAgICAgICAgICAgICAucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90
ZSA9IE5VTEwsIFwKLSAgICAgICAgICAgICAgICAucGFnZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQg
PSBQQVNfVVRJTElUWV9IRUFQX1BBWUxPQURfT0ZGU0VULCBcCi0gICAgICAgICAgICAgICAgLnBh
Z2Vfb2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICAgICAgUEFTX1NNQUxM
X1BBR0VfREVGQVVMVF9TSVpFIC0gUEFTX1VUSUxJVFlfSEVBUF9QQVlMT0FEX09GRlNFVCwgXAog
ICAgICAgICAgICAgICAgIC5jcmVhdGVfcGFnZV9oZWFkZXIgPSBwYXNfdXRpbGl0eV9oZWFwX2Ny
ZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAgICAgIC5kZXN0cm95X3BhZ2VfaGVhZGVy
ID0gcGFzX3V0aWxpdHlfaGVhcF9kZXN0cm95X3BhZ2VfaGVhZGVyLCBcCiAgICAgICAgICAgICB9
LCBcCkBAIC0xMTksNiArMTExLDExIEBAIFBBU19BUEkgdm9pZCBwYXNfdXRpbGl0eV9oZWFwX2Nv
bmZpZ19kdW0KICAgICAgICAgICAgIC53YXN0ZWFnZV9oYW5kaWNhcCA9IDEuLCBcCiAgICAgICAg
ICAgICAuc2hhcmluZ19zaGlmdCA9IFBBU19TTUFMTF9TSEFSSU5HX1NISUZULCBcCiAgICAgICAg
ICAgICAubnVtX2FsbG9jX2JpdHMgPSBQQVNfVVRJTElUWV9OVU1fQUxMT0NfQklUUywgXAorICAg
ICAgICAgICAgLnNoYXJlZF9wYXlsb2FkX29mZnNldCA9IDAsIFwKKyAgICAgICAgICAgIC5leGNs
dXNpdmVfcGF5bG9hZF9vZmZzZXQgPSBQQVNfVVRJTElUWV9IRUFQX1BBWUxPQURfT0ZGU0VULCBc
CisgICAgICAgICAgICAuc2hhcmVkX3BheWxvYWRfc2l6ZSA9IDAsIFwKKyAgICAgICAgICAgIC5l
eGNsdXNpdmVfcGF5bG9hZF9zaXplID0gXAorICAgICAgICAgICAgICAgIFBBU19TTUFMTF9QQUdF
X0RFRkFVTFRfU0laRSAtIFBBU19VVElMSVRZX0hFQVBfUEFZTE9BRF9PRkZTRVQsIFwKICAgICAg
ICAgICAgIC5zaGFyZWRfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X25vX2xvZ2dpbmdfbW9kZSwgXAogICAgICAgICAgICAgLmV4Y2x1c2l2ZV9sb2dnaW5nX21vZGUg
PSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbm9fbG9nZ2luZ19tb2RlLCBcCiAgICAgICAg
ICAgICAudXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMu
Y3BwCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
SXNvSGVhcENoYW9zVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NDYsMTAgKzk0NiwxMCBA
QCB2b2lkIGFkZFRoZVRlc3RzKHVuc2lnbmVkIG11bHRpcGxpZXIsIGJvCiAgICAgQUREX1RFU1Qo
dGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMCwgMTAwMCAqIG11bHRpcGxpZXIsIDIwMDAwMCAqIG11
bHRpcGxpZXIsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAxMDAwMDAwMCAqIG11bHRpcGxp
ZXIsIGZhbHNlKSk7CiAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEw
MDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCB1bmlmb3JtbHlSYW5kb21VcFRv
NTAwMCwgMTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkpOwogICAgIGlmICh0ZXN0RW51bWVy
YXRvcikgewotICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAsIDEwMDAs
IDcwMDAsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAxMDAwMDAwMCwgdHJ1ZSkpOwotICAg
ICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDEwLCAxMDAwLCA3MDAwLCB1bmlm
b3JtbHlSYW5kb21VcFRvNTAwMCwgMTAwMDAwMDAsIHRydWUpKTsKLSAgICAgICAgQUREX1RFU1Qo
dGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMCwgMTAwMCwgNDAwMCwgdW5pZm9ybWx5UmFuZG9tVXBU
bzUwMDAsIDEwMDAwMDAwLCB0cnVlKSk7Ci0gICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9u
Q2hhb3MoMTAsIDEwLCAxMDAwLCA0MDAwLCBzb21ldGltZXNTbWFsbFNvbWV0aW1lc0JpZywgMTAw
MDAwMDAsIHRydWUpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAw
LCAxMDAwLCA3MDAwLCBzb21ldGltZXNTbWFsbFNvbWV0aW1lc0JpZywgMTAwMDAwMDAsIHRlc3RF
bnVtZXJhdG9yKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAs
IDEwMDAsIDcwMDAsIHVuaWZvcm1seVJhbmRvbVVwVG81MDAwLCAxMDAwMDAwMCwgdGVzdEVudW1l
cmF0b3IpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMCwgMTAw
MCwgNDAwMCwgdW5pZm9ybWx5UmFuZG9tVXBUbzUwMDAsIDEwMDAwMDAwLCB0ZXN0RW51bWVyYXRv
cikpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEwLCAxMCwgMTAwMCwg
NDAwMCwgc29tZXRpbWVzU21hbGxTb21ldGltZXNCaWcsIDEwMDAwMDAwLCB0ZXN0RW51bWVyYXRv
cikpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1BH
TVRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
UEdNVGVzdHMuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9QR01UZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgPHVuaXN0
ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKKyNp
bmNsdWRlICJwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmgiCisjaW5j
bHVkZSAicGFzX2hlYXAuaCIKKyNpbmNsdWRlICJpc29faGVhcC5oIgorI2luY2x1ZGUgImlzb19o
ZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19oZWFwX3JlZl9raW5kLmgiCisKKwordXNpbmcg
bmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIHsKKwordm9pZCB0ZXN0UEdNU2luZ2xlQWxsb2Mo
KSB7CisgICAgcGFzX2hlYXBfcmVmIGhlYXBSZWYgPSBJU09fSEVBUF9SRUZfSU5JVElBTElaRVJf
V0lUSF9BTElHTk1FTlQoZ2V0cGFnZXNpemUoKSAqIDEwMCwgZ2V0cGFnZXNpemUoKSk7CisgICAg
cGFzX2hlYXAqIGhlYXAgPSBpc29faGVhcF9yZWZfZ2V0X2hlYXAoJmhlYXBSZWYpOworICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CisgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV90cmFuc2FjdGlvbl9jb25zdHJ1Y3QoJnRyYW5zYWN0aW9uKTsKKworICAgIHBh
c19oZWFwX2xvY2tfbG9jaygpOworCisgICAgc2l6ZV90IGluaXRfZnJlZV92aXJ0X21lbSA9IHBh
c19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV92aXJ0dWFsX21lbW9yeSgpOwor
ICAgIHNpemVfdCBpbml0X2ZyZWVfd2FzdGVkX21lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJk
X21hbGxvY19nZXRfZnJlZV93YXN0ZWRfbWVtb3J5KCk7CisKKyAgICBzaXplX3QgYWxsb2Nfc2l6
ZSA9IDEwMjQ7CisgICAgdm9pZCAqIG1lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxv
Y19hbGxvY2F0ZShhbGxvY19zaXplLCBoZWFwLCAmaXNvX2hlYXBfY29uZmlnLCAmdHJhbnNhY3Rp
b24pOworICAgIENIRUNLKG1lbSk7CisKKyAgICBzaXplX3QgdXBkYXRlZF9mcmVlX3ZpcnRfbWVt
ID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2dldF9mcmVlX3ZpcnR1YWxfbWVtb3J5
KCk7CisgICAgc2l6ZV90IHVwZGF0ZWRfZnJlZV93YXN0ZWRfbWVtID0gcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2dldF9mcmVlX3dhc3RlZF9tZW1vcnkoKTsKKworICAgIENIRUNLX0VR
VUFMKGluaXRfZnJlZV92aXJ0X21lbSAtICgzICogZ2V0cGFnZXNpemUoKSksIHVwZGF0ZWRfZnJl
ZV92aXJ0X21lbSk7CisgICAgQ0hFQ0tfRVFVQUwoaW5pdF9mcmVlX3dhc3RlZF9tZW0gLSAoZ2V0
cGFnZXNpemUoKSAtIGFsbG9jX3NpemUpLCB1cGRhdGVkX2ZyZWVfd2FzdGVkX21lbSk7CisKKyAg
ICBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZShtZW0pOworCisgICAg
dXBkYXRlZF9mcmVlX3ZpcnRfbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2dl
dF9mcmVlX3ZpcnR1YWxfbWVtb3J5KCk7CisgICAgdXBkYXRlZF9mcmVlX3dhc3RlZF9tZW0gPSBw
YXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfd2FzdGVkX21lbW9yeSgpOwor
CisgICAgQ0hFQ0tfRVFVQUwoaW5pdF9mcmVlX3ZpcnRfbWVtLCB1cGRhdGVkX2ZyZWVfdmlydF9t
ZW0pOworICAgIENIRUNLX0VRVUFMKGluaXRfZnJlZV93YXN0ZWRfbWVtLCB1cGRhdGVkX2ZyZWVf
d2FzdGVkX21lbSk7CisKKyAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworICAgIHJldHVybjsK
K30KKworCit2b2lkIHRlc3RQR01NdWx0aXBsZUFsbG9jKCkgeworICAgIHBhc19oZWFwX3JlZiBo
ZWFwUmVmID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKGdldHBhZ2Vz
aXplKCkgKiAxMDAsIGdldHBhZ2VzaXplKCkpOworICAgIHBhc19oZWFwKiBoZWFwID0gaXNvX2hl
YXBfcmVmX2dldF9oZWFwKCZoZWFwUmVmKTsKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5z
YWN0aW9uIHRyYW5zYWN0aW9uOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb25f
Y29uc3RydWN0KCZ0cmFuc2FjdGlvbik7CisKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKKwor
ICAgIHNpemVfdCBpbml0X2ZyZWVfdmlydF9tZW0gPSBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9t
YWxsb2NfZ2V0X2ZyZWVfdmlydHVhbF9tZW1vcnkoKTsKKyAgICBzaXplX3QgaW5pdF9mcmVlX3dh
c3RlZF9tZW0gPSBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZ2V0X2ZyZWVfd2FzdGVk
X21lbW9yeSgpOworCisgICAgc2l6ZV90IG51bV9hbGxvY2F0aW9ucyA9IDEwMDsKKyAgICB2b2lk
KiBtZW1fc3RvcmFnZVtudW1fYWxsb2NhdGlvbnNdOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBudW1fYWxsb2NhdGlvbnM7IGkrKyApIHsKKyAgICAgICAgc2l6ZV90IGFsbG9jX3NpemUg
PSByYW5kb20oKSAlIDEwMDAwMDsKKyAgICAgICAgbWVtX3N0b3JhZ2VbaV0gPSBwYXNfcHJvYmFi
aWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdGUoYWxsb2Nfc2l6ZSwgaGVhcCwgJmlzb19oZWFw
X2NvbmZpZywgJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgdm9pZCAqIG1lbSA9IG1lbV9zdG9yYWdl
W2ldOworICAgICAgICBtZW1zZXQobWVtLCAweDQyLCBhbGxvY19zaXplKTsKKyAgICB9CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bV9hbGxvY2F0aW9uczsgaSsrICkgeworICAgICAg
ICBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZShtZW1fc3RvcmFnZVtp
XSk7CisgICAgfQorCisgICAgc2l6ZV90IHVwZGF0ZWRfZnJlZV92aXJ0X21lbSA9IHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19nZXRfZnJlZV92aXJ0dWFsX21lbW9yeSgpOworICAgIHNp
emVfdCB1cGRhdGVkX2ZyZWVfd2FzdGVkX21lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21h
bGxvY19nZXRfZnJlZV93YXN0ZWRfbWVtb3J5KCk7CisKKyAgICBDSEVDS19FUVVBTChpbml0X2Zy
ZWVfdmlydF9tZW0sIHVwZGF0ZWRfZnJlZV92aXJ0X21lbSk7CisgICAgQ0hFQ0tfRVFVQUwoaW5p
dF9mcmVlX3dhc3RlZF9tZW0sIHVwZGF0ZWRfZnJlZV93YXN0ZWRfbWVtKTsKKworICAgIHBhc19o
ZWFwX2xvY2tfdW5sb2NrKCk7Cit9CisKK3ZvaWQgdGVzdFBHTUVycm9ycygpIHsKKyAgICBwYXNf
aGVhcF9yZWYgaGVhcFJlZiA9IElTT19IRUFQX1JFRl9JTklUSUFMSVpFUl9XSVRIX0FMSUdOTUVO
VChnZXRwYWdlc2l6ZSgpICogMTAwLCBnZXRwYWdlc2l6ZSgpKTsKKyAgICBwYXNfaGVhcCogaGVh
cCA9IGlzb19oZWFwX3JlZl9nZXRfaGVhcCgmaGVhcFJlZik7CisKKyAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
dHJhbnNhY3Rpb25fY29uc3RydWN0KCZ0cmFuc2FjdGlvbik7CisKKyAgICBwYXNfaGVhcF9sb2Nr
X2xvY2soKTsKKworICAgIHZvaWQgKm1lbSA9IE5VTEw7CisKKyAgICAvLyBUZXN0IGludmFsaWQg
YWxsb2Mgc2l6ZQorICAgIG1lbSA9IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxv
Y2F0ZSgwLCBoZWFwLCAmaXNvX2hlYXBfY29uZmlnLCAmdHJhbnNhY3Rpb24pOworICAgIENIRUNL
KCFtZW0pOworCisgICAgLy8gVGVzdCBOVUxMIGhlYXAKKyAgICBtZW0gPSBwYXNfcHJvYmFiaWxp
c3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdGUoMTAyNCwgTlVMTCwgJmlzb19oZWFwX2NvbmZpZywg
JnRyYW5zYWN0aW9uKTsKKyAgICBDSEVDSyghbWVtKTsKKworICAgIC8vIFRlc3QgYWxsb2NhdGlu
ZyBtb3JlIHRoYW4gdmlydHVhbCBtZW1vcnkgYXZhaWxhYmxlCisgICAgbWVtID0gcGFzX3Byb2Jh
YmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKDEwMjQgKiAxMDI0ICogMTAyNCArIDEsIE5V
TEwsICZpc29faGVhcF9jb25maWcsICZ0cmFuc2FjdGlvbik7CisgICAgQ0hFQ0soIW1lbSk7CisK
KyAgICAvLyBUZXN0IGFsbG9jYXRpbmcgd2hlbiB3YXN0ZWQgbWVtb3J5IGlzIGZ1bGwKKyAgICBz
aXplX3QgbnVtX2FsbG9jYXRpb25zID0gMTAwMDsKKyAgICB2b2lkKiBtZW1fc3RvcmFnZVtudW1f
YWxsb2NhdGlvbnNdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX2FsbG9jYXRpb25z
OyBpKysgKSB7CisgICAgICAgIHNpemVfdCBhbGxvY19zaXplID0gMTsgLy8gQSBzbWFsbCBhbGxv
YyBzaXplIHdhc3RlcyBtb3JlIG1lbW9yeQorICAgICAgICBtZW1fc3RvcmFnZVtpXSA9IHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0ZShhbGxvY19zaXplLCBoZWFwLCAmaXNv
X2hlYXBfY29uZmlnLCAmdHJhbnNhY3Rpb24pOworICAgIH0KKworICAgIG1lbSA9IHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0ZSgxLCBoZWFwLCAmaXNvX2hlYXBfY29uZmln
LCAmdHJhbnNhY3Rpb24pOworICAgIENIRUNLKCFtZW0pOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1fYWxsb2NhdGlvbnM7IGkrKyApIHsKKyAgICAgICAgcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUobWVtX3N0b3JhZ2VbaV0pOworICAgIH0KKworICAg
IC8vIFRlc3QgZGVhbGxvY2F0aW5nIGludmFsaWQgbWVtb3J5IGxvY2F0aW9ucworICAgIHBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKE5VTEwpOworICAgIHBhc19wcm9i
YWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKCh2b2lkICopIC0xKTsKKyAgICBwYXNf
cHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfZGVhbGxvY2F0ZSgodm9pZCAqKSAweDQyKTsKKwor
ICAgIC8vIFRlc3QgZGVhbGxvY2F0aW5nIHNhbWUgbWVtb3J5IGxvY2F0aW9uIG11bHRpcGxlIHRp
bWVzCisgICAgbWVtID0gcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKDEs
IGhlYXAsICZpc29faGVhcF9jb25maWcsICZ0cmFuc2FjdGlvbik7CisgICAgQ0hFQ0sobWVtKTsK
KworICAgIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19kZWFsbG9jYXRlKG1lbSk7Cisg
ICAgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUobWVtKTsKKworICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQor
Cit2b2lkIGFkZFBHTVRlc3RzKCkgeworICAgIEFERF9URVNUKHRlc3RQR01TaW5nbGVBbGxvYygp
KTsKKyAgICBBRERfVEVTVCh0ZXN0UEdNTXVsdGlwbGVBbGxvYygpKTsKKyAgICBBRERfVEVTVCh0
ZXN0UEdNRXJyb3JzKCkpOworfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1Rlc3RIYXJuZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L3Rlc3QvVGVzdEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODcxNjcpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQs
NiArMzU0LDcgQEAgdm9pZCBhZGRMYXJnZUZyZWVIZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VT
aGFyaW5nUG9vbFRlc3RzKCk7CiB2b2lkIGFkZExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRl
c3RzKCk7CiB2b2lkIGFkZE1pbkhlYXBUZXN0cygpOwordm9pZCBhZGRQR01UZXN0cygpOwogdm9p
ZCBhZGRSYWNlVGVzdHMoKTsKIHZvaWQgYWRkUmVkQmxhY2tUcmVlVGVzdHMoKTsKIHZvaWQgYWRk
VFNEVGVzdHMoKTsKQEAgLTcxNyw2ICs3MTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgQUREX1NVSVRFKExhcmdlU2hhcmluZ1Bvb2wpOwogICAgIEFERF9TVUlURShM
b2NrRnJlZVJlYWRQdHJQdHJIYXNodGFibGUpOwogICAgIEFERF9TVUlURShNaW5IZWFwKTsKKyAg
ICBBRERfU1VJVEUoUEdNKTsKICAgICBBRERfU1VJVEUoUmFjZSk7CiAgICAgQUREX1NVSVRFKFJl
ZEJsYWNrVHJlZSk7CiAgICAgQUREX1NVSVRFKFRTRCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGls
aXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHJldmlzaW9uIDI4NzE2NykKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJ0aGluZ3lf
aGVhcF9jb25maWcuaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG1hcD4KLSNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlICJwYXNfYWxsX2hlYXBzLmgiCiAjaW5jbHVkZSAicGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgogI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJl
ZV9oZWFwLmgiCkBAIC03NTMsNyArNzUyLDggQEAgdm9pZCB0ZXN0RnJlZUxpc3RSZWZpbGxTcGFu
cyh1bnNpZ25lZCBwcgogICAgICAgICBvYmplY3RTaXplLAogICAgICAgICAqcGFzX2hlYXBfY29u
ZmlnX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJpYW50KAogICAgICAgICAgICAg
JnRoaW5neV9oZWFwX2NvbmZpZywKLSAgICAgICAgICAgIHZhcmlhbnQpKTsKKyAgICAgICAgICAg
IHZhcmlhbnQpLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKTsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNQZXJTcGFuID0gbnVtYmVyT2ZPYmplY3RzIC8g
bnVtYmVyT2ZTcGFuczsKICAgICBDSEVDSyhudW1iZXJPZk9iamVjdHNQZXJTcGFuID49IDEpOwog
ICAgIHVuc2lnbmVkIG51bWJlck9mT2JqZWN0c0luTGFzdFNwYW4gPSBudW1iZXJPZk9iamVjdHMg
LSBudW1iZXJPZk9iamVjdHNQZXJTcGFuICogKG51bWJlck9mU3BhbnMgLSAxKTsKQEAgLTExODEs
NyArMTE4MSw4IEBAIHZvaWQgdGVzdFNwdXJpb3VzRWxpZ2liaWxpdHkoKQogICAgIHVuc2lnbmVk
IG9iamVjdFNpemUgPSAxNjsKICAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHMgPQogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX251bWJlcl9vZl9vYmplY3RzKG9iamVjdFNpemUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEhJTkdZX0hFQVBfQ09O
RklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUSElOR1lfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZP
YmplY3RzSW5GaXJzdFNwYW4gPSBudW1iZXJPZk9iamVjdHMgLyAyOwogICAgIHVuc2lnbmVkIG51
bWJlck9mT2JqZWN0c0luU2Vjb25kU3BhbiA9IG51bWJlck9mT2JqZWN0cyAtIG51bWJlck9mT2Jq
ZWN0c0luRmlyc3RTcGFuOwogCg==
</data>
<flag name="review"
          id="473021"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>