<?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>224366</bug_id>
          
          <creation_ts>2021-04-09 05:52:37 -0700</creation_ts>
          <short_desc>[WPE][GTK] Use g_object_notify_by_pspec() whenever possible</short_desc>
          <delta_ts>2021-04-12 01:13:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>pnormand</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748704</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-04-09 05:52:37 -0700</bug_when>
    <thetext>In the WebKit code base, every single time we tell GObject to emit
a “notify::&lt;propetyname&gt;” signal we use “g_object_notify()”, which
will do a lookup for the property given its name. Ideally the code
should use “g_object_notify_by_pspec()” and avoid those lookups
altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749026</commentid>
    <comment_count>1</comment_count>
      <attachid>425689</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-04-10 14:36:25 -0700</bug_when>
    <thetext>Created attachment 425689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749027</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-04-10 14:37:29 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749153</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-12 01:13:24 -0700</bug_when>
    <thetext>Committed r275816 (236386@main): &lt;https://commits.webkit.org/236386@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425689.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425689</attachid>
            <date>2021-04-10 14:36:25 -0700</date>
            <delta_ts>2021-04-12 01:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224366-20210411003623.patch</filename>
            <type>text/plain</type>
            <size>156883</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1YjAyZDgxNGMzZWIw
ZjY0MzliMWY0OWI1YTIwMGVmNjU1ZjMzYi4uZDJhMWQ4ZTM4ZTIyMGE2ZTUxM2QxOTBkYTYzNzEx
OTc5NjgzOTBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTEwICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1b
R1RLXSBVc2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgd2hlbmV2ZXIgcG9zc2libGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM2NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEtlZXAgYSBzdGF0
aWMgYXJyYXkgd2l0aCB0aGUgR1BhcmFtU3BlYyBwb2ludGVyIGZvciBlYWNoIHByb3BlcnR5LCBh
bmQgdHJpZ2dlcgorICAgICAgICBwcm9wZXJ0eSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2luZyBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSB0byBhdm9pZCBsb29raW5nCisgICAgICAgIHVwIGJ5
IGl0cyBuYW1lIGVhY2ggdGltZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RleHRDb21iaW5lclBhZEdTdHJl
YW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfdGV4dF9jb21iaW5lcl9wYWRfY2xhc3NfaW5pdCk6
CisKIDIwMjEtMDQtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbIG1hY09TIF0gMyB3ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LyBsYXlvdXQtdGVzdHMg
YXJlIGZsYWtleSB0ZXh0IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiNTU0YjgxYjM1MDZkNmY1MTY0
MTc5OTZhYmEyMjJlZmU3Njk2ZTIuLmVjZTlhZjFkNGYwYWNiZTAyYThiYTM1Y2FkMTVjNDllZTlm
Y2IwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM1IEBACisyMDIxLTA0LTEwICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBV
c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgd2hlbmV2ZXIgcG9zc2libGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEtlZXAgYSBzdGF0aWMgYXJy
YXkgd2l0aCB0aGUgR1BhcmFtU3BlYyBwb2ludGVyIGZvciBlYWNoIHByb3BlcnR5LCBhbmQgdHJp
Z2dlcgorICAgICAgICBwcm9wZXJ0eSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2luZyBnX29iamVj
dF9ub3RpZnlfYnlfcHNwZWMoKSB0byBhdm9pZCBsb29raW5nCisgICAgICAgIHVwIGJ5IGl0cyBu
YW1lIGVhY2ggdGltZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdF91cmlfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAg
ICAgKHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0RG93bmxvYWQuY3BwOgorICAgICAgICAod2Via2l0RG93bmxvYWREZWNpZGVE
ZXN0aW5hdGlvbik6CisgICAgICAgICh3ZWJraXRfZG93bmxvYWRfY2xhc3NfaW5pdCk6CisgICAg
ICAgICh3ZWJraXREb3dubG9hZFNldFJlc3BvbnNlKToKKyAgICAgICAgKHdlYmtpdERvd25sb2Fk
Tm90aWZ5UHJvZ3Jlc3MpOgorICAgICAgICAod2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlv
bik6CisgICAgICAgICh3ZWJraXRfZG93bmxvYWRfc2V0X2FsbG93X292ZXJ3cml0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVkaXRvclN0YXRlLmNwcDoKKyAgICAgICAg
KHdlYmtpdF9lZGl0b3Jfc3RhdGVfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRFZGl0b3JT
dGF0ZVNldFR5cGluZ0F0dHJpYnV0ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAod2Via2l0R2VvbG9jYXRpb25N
YW5hZ2VyU2V0RW5hYmxlSGlnaEFjY3VyYWN5KToKKyAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlv
bl9tYW5hZ2VyX2NsYXNzX2luaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X2lucHV0X21ldGhvZF9j
b250ZXh0X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0
X3NldF9pbnB1dF9wdXJwb3NlKToKKyAgICAgICAgKHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4
dF9zZXRfaW5wdXRfaGludHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAg
ICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhc2NyaXB0KToKKyAgICAgICAgKHdl
YmtpdF9zZXR0aW5nc19zZXRfYXV0b19sb2FkX2ltYWdlcyk6CisgICAgICAgICh3ZWJraXRfc2V0
dGluZ3Nfc2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKToKKyAgICAg
ICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0aW9uX2Nh
Y2hlKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2h0bWw1X2xvY2FsX3N0
b3JhZ2UpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfaHRtbDVfZGF0YWJh
c2UpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfeHNzX2F1ZGl0b3IpOgor
ICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhKToKKyAgICAgICAgKHdlYmtp
dF9zZXR0aW5nc19zZXRfamF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzX2F1dG9tYXRpY2FsbHkp
OgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfaHlwZXJsaW5rX2F1ZGl0aW5n
KToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZGVmYXVsdF9mb250X2ZhbWlseSk6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X21vbm9zcGFjZV9mb250X2ZhbWlseSk6CisgICAg
ICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X3NlcmlmX2ZvbnRfZmFtaWx5KToKKyAgICAgICAgKHdl
YmtpdF9zZXR0aW5nc19zZXRfc2Fuc19zZXJpZl9mb250X2ZhbWlseSk6CisgICAgICAgICh3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2N1cnNpdmVfZm9udF9mYW1pbHkpOgorICAgICAgICAod2Via2l0X3Nl
dHRpbmdzX3NldF9mYW50YXN5X2ZvbnRfZmFtaWx5KToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19zZXRfcGljdG9ncmFwaF9mb250X2ZhbWlseSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
c2V0X2RlZmF1bHRfZm9udF9zaXplKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZGVm
YXVsdF9tb25vc3BhY2VfZm9udF9zaXplKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRf
bWluaW11bV9mb250X3NpemUpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9kZWZhdWx0
X2NoYXJzZXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZGV2ZWxvcGVy
X2V4dHJhcyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9yZXNpemFibGVf
dGV4dF9hcmVhcyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV90YWJzX3Rv
X2xpbmtzKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2Ruc19wcmVmZXRj
aGluZyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9jYXJldF9icm93c2lu
Zyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9mdWxsc2NyZWVuKToKKyAg
ICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfcHJpbnRfYmFja2dyb3VuZHMpOgorICAgICAgICAo
d2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfd2ViYXVkaW8pOgorICAgICAgICAod2Via2l0X3Nl
dHRpbmdzX3NldF9lbmFibGVfd2ViZ2wpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9h
bGxvd19tb2RhbF9kaWFsb2dzKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfem9vbV90
ZXh0X29ubHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9qYXZhc2NyaXB0X2Nhbl9h
Y2Nlc3NfY2xpcGJvYXJkKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfcGxh
eWJhY2tfcmVxdWlyZXNfdXNlcl9nZXN0dXJlKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19z
ZXRfbWVkaWFfcGxheWJhY2tfYWxsb3dzX2lubGluZSk6CisgICAgICAgICh3ZWJraXRfc2V0dGlu
Z3Nfc2V0X2RyYXdfY29tcG9zaXRpbmdfaW5kaWNhdG9ycyk6CisgICAgICAgICh3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9zaXRlX3NwZWNpZmljX3F1aXJrcyk6CisgICAgICAgICh3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9wYWdlX2NhY2hlKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19zZXRfdXNlcl9hZ2VudCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9z
bW9vdGhfc2Nyb2xsaW5nKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3dy
aXRlX2NvbnNvbGVfbWVzc2FnZXNfdG9fc3Rkb3V0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX21lZGlhX3N0cmVhbSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9tb2NrX2NhcHR1cmVfZGV2aWNlcyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
c2V0X2VuYWJsZV9zcGF0aWFsX25hdmlnYXRpb24pOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfbWVkaWFzb3VyY2UpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9l
bmFibGVfZW5jcnlwdGVkX21lZGlhKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX21lZGlhX2NhcGFiaWxpdGllcyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2Fs
bG93X2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19zZXRfYWxsb3dfdW5pdmVyc2FsX2FjY2Vzc19mcm9tX2ZpbGVfdXJscyk6CisgICAgICAgICh3
ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93X3RvcF9uYXZpZ2F0aW9uX3RvX2RhdGFfdXJscyk6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3kp
OgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfYmFja19mb3J3YXJkX25hdmln
YXRpb25fZ2VzdHVyZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfamF2
YXNjcmlwdF9tYXJrdXApOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVk
aWEpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3Jl
cXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVy
dHkpOgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFNldFByb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4
dF9zZXRfdXNlX3N5c3RlbV9hcHBlYXJhbmNlX2Zvcl9zY3JvbGxiYXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3VyY2UuY3BwOgorICAgICAgICAod2Via2l0
X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdFdlYlJlc291cmNlVXBk
YXRlVVJJKToKKyAgICAgICAgKHdlYmtpdFdlYlJlc291cmNlU2V0UmVzcG9uc2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdTZXRJc0xvYWRpbmcpOgorICAgICAgICAod2Via2l0V2ViVmlld0lzUGxheWluZ0F1
ZGlvQ2hhbmdlZCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3VXBkYXRlRmF2aWNvbik6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
TG9hZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0RpZENoYW5nZVBhZ2VJRCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkKToKKyAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zZXRfc2V0dGluZ3MpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF96b29t
X2xldmVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93aW5kb3dfcHJvcGVydGllc19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtp
dFdpbmRvd1Byb3BlcnRpZXNTZXRHZW9tZXRyeSk6CisgICAgICAgICh3ZWJraXRXaW5kb3dQcm9w
ZXJ0aWVzU2V0VG9vbGJhclZpc2libGUpOgorICAgICAgICAod2Via2l0V2luZG93UHJvcGVydGll
c1NldE1lbnViYXJWaXNpYmxlKToKKyAgICAgICAgKHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRT
dGF0dXNiYXJWaXNpYmxlKToKKyAgICAgICAgKHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRMb2Nh
dGlvbmJhclZpc2libGUpOgorICAgICAgICAod2Via2l0V2luZG93UHJvcGVydGllc1NldFNjcm9s
bGJhcnNWaXNpYmxlKToKKyAgICAgICAgKHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRSZXNpemFi
bGUpOgorICAgICAgICAod2Via2l0V2luZG93UHJvcGVydGllc1NldEZ1bGxzY3JlZW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuY3BwOgor
ICAgICAgICAod2Via2l0X2NvbG9yX2Nob29zZXJfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAg
ICAgKHdlYmtpdF9jb2xvcl9jaG9vc2VyX3JlcXVlc3Rfc2V0X3JnYmEpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9wcmludF9vcGVyYXRpb25fY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfcHJpbnRfb3Bl
cmF0aW9uX3NldF9wcmludF9zZXR0aW5ncyk6CisgICAgICAgICh3ZWJraXRfcHJpbnRfb3BlcmF0
aW9uX3NldF9wYWdlX3NldHVwKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5p
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRX
ZWJQYWdlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlBhZ2VTZXRVUkkpOgorICAgICAgICAod2Vi
a2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOgorCiAyMDIxLTA0LTEwICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc1Nzk0
LCByMjc1Nzg0LCByMjc1Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVGV4dENvbWJpbmVyUGFkR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0Q29tYmluZXJQYWRHU3RyZWFt
ZXIuY3BwCmluZGV4IDJkYWVlZDY3NTc2NWI0Y2I0OTNiM2ZjODFhOGVjYWVkYjRiYzE5ZjUuLjll
NWUxNzczYzY0NzRmODkwMGIyMzZkM2FlMzViYThiY2NlNDA0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UZXh0Q29tYmluZXJQYWRHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UZXh0Q29tYmluZXJQYWRHU3RyZWFtZXIuY3BwCkBAIC00Miw4ICs0MiwxMSBAQCBlbnVtIHsK
ICAgICBQUk9QX1BBRF8wLAogICAgIFBST1BfUEFEX1RBR1MsCiAgICAgUFJPUF9JTk5FUl9DT01C
SU5FUl9QQUQsCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMqIHNP
YmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKICNkZWZpbmUgd2Vi
a2l0X3RleHRfY29tYmluZXJfcGFkX3BhcmVudF9jbGFzcyBwYXJlbnRfY2xhc3MKIFdFQktJVF9E
RUZJTkVfVFlQRShXZWJLaXRUZXh0Q29tYmluZXJQYWQsIHdlYmtpdF90ZXh0X2NvbWJpbmVyX3Bh
ZCwgR1NUX1RZUEVfR0hPU1RfUEFEKTsKIApAQCAtNjYsNyArNjksNyBAQCBzdGF0aWMgZ2Jvb2xl
YW4gd2Via2l0VGV4dENvbWJpbmVyUGFkRXZlbnQoR3N0UGFkKiBwYWQsIEdzdE9iamVjdCogcGFy
ZW50LCBHc3RFdgogICAgICAgICAgICAgZ3N0X3RhZ19saXN0X2luc2VydChjb21iaW5lclBhZC0+
cHJpdi0+dGFncy5nZXQoKSwgdGFncywgR1NUX1RBR19NRVJHRV9SRVBMQUNFKTsKICAgICAgICAg
R1NUX09CSkVDVF9VTkxPQ0socGFkKTsKIAotICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpF
Q1QocGFkKSwgInRhZ3MiKTsKKyAgICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JK
RUNUKHBhZCksIHNPYmpQcm9wZXJ0aWVzW1BST1BfUEFEX1RBR1NdKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGRlZmF1bHQ6CkBAIC0xMjYsMTMgKzEyOSwxNSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfdGV4dF9jb21iaW5lcl9wYWRfY2xhc3NfaW5pdChXZWJLaXRUZXh0Q29tYmluZXJQYWRD
bGFzcyoga2xhcwogICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gR1NUX0RFQlVHX0ZV
TkNQVFIod2Via2l0VGV4dENvbWJpbmVyUGFkR2V0UHJvcGVydHkpOwogICAgIGdvYmplY3RDbGFz
cy0+c2V0X3Byb3BlcnR5ID0gR1NUX0RFQlVHX0ZVTkNQVFIod2Via2l0VGV4dENvbWJpbmVyUGFk
U2V0UHJvcGVydHkpOwogCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2Jq
ZWN0Q2xhc3MsIFBST1BfUEFEX1RBR1MsCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9QQURfVEFH
U10gPQogICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoInRhZ3MiLCAiVGFncyIsICJUaGUgY3Vy
cmVudGx5IGFjdGl2ZSB0YWdzIG9uIHRoZSBwYWQiLCBHU1RfVFlQRV9UQUdfTElTVCwKLSAgICAg
ICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURBQkxFIHwgR19QQVJB
TV9TVEFUSUNfU1RSSU5HUykpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdz
PihHX1BBUkFNX1JFQURBQkxFIHwgR19QQVJBTV9TVEFUSUNfU1RSSU5HUykpOwogCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsIFBST1BfSU5ORVJfQ09N
QklORVJfUEFELAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfSU5ORVJfQ09NQklORVJfUEFEXSA9
CiAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoImlubmVyLWNvbWJpbmVyLXBhZCIsICJJbnRl
cm5hbCBDb21iaW5lciBQYWQiLCAiVGhlIGludGVybmFsIGZ1bm5lbCAob3IgY29uY2F0KSBwYWQg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFkIiwgR1NUX1RZUEVfUEFELAotICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNf
U1RSSU5HUykpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFN
X1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKTsKKworICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydGllcyhnb2JqZWN0Q2xhc3MsIE5fUFJPUEVSVElFUywgc09ialBy
b3BlcnRpZXMpOwogfQogCiBHc3RQYWQqIHdlYktpdFRleHRDb21iaW5lclBhZExlYWtJbnRlcm5h
bFBhZFJlZihXZWJLaXRUZXh0Q29tYmluZXJQYWQqIHBhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggOWZlNTk1NzIwNGNj
Nzk5M2ViYzA4ODg4YmQxZjg5MzFlYTRlYjAwMS4uYTYzMGQ0MzgzODI5YTZiOGEyMGY5MTMzNDNm
NzdmZWY1YTAyOWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIv
V2ViS2l0VVJJUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIv
V2ViS2l0VVJJUmVxdWVzdC5jcHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiBlbnVtIHsKICAgICBQ
Uk9QXzAsCi0KLSAgICBQUk9QX1VSSQorICAgIFBST1BfVVJJLAorICAgIE5fUFJPUEVSVElFUywK
IH07CiAKK3N0YXRpYyBHUGFyYW1TcGVjKiBzT2JqUHJvcGVydGllc1tOX1BST1BFUlRJRVNdID0g
eyBudWxscHRyLCB9OworCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLyoqCkBAIC05MSwx
MiArOTMsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X2NsYXNzX2luaXQoV2Vi
S2l0VVJJUmVxdWVzdENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAgICAgICoKICAgICAgKiBUaGUgVVJJ
IHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4KICAgICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1VSSSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlVSSSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJUaGUgVVJJIHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImFib3V0OmJsYW5rIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVCkpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1VS
SV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgInVyaSIsCisg
ICAgICAgICAgICBfKCJVUkkiKSwKKyAgICAgICAgICAgIF8oIlRoZSBVUkkgdG8gd2hpY2ggdGhl
IHJlcXVlc3Qgd2lsbCBiZSBtYWRlLiIpLAorICAgICAgICAgICAgImFib3V0OmJsYW5rIiwKKyAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
IHwgR19QQVJBTV9DT05TVFJVQ1QpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydGllcyhvYmplY3RDbGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7CiB9CiAK
IC8qKgpAQCAtMTQ1LDcgKzE1MCw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgICAgICByZXR1
cm47CiAKICAgICByZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3Quc2V0VVJMKHVybCk7Ci0g
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHJlcXVlc3QpLCAidXJpIik7CisgICAgZ19vYmpl
Y3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHJlcXVlc3QpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X1VSSV0pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdERvd25sb2FkLmNwcAppbmRleCAxNTg4YmFmZThjMTQyMjc2ZmFlZWE5ZGU4NTU0
YWE3ZTcyMDBiYTIyLi4yNTBhMWI5N2RhZDM0MmY2MDI2NmFhMWU4YTRlMmJiNzAyZjQ0Y2FkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXREb3dubG9h
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RG93bmxv
YWQuY3BwCkBAIC02MiwxMyArNjIsMTUgQEAgZW51bSB7CiAKIGVudW0gewogICAgIFBST1BfMCwK
LQogICAgIFBST1BfREVTVElOQVRJT04sCiAgICAgUFJPUF9SRVNQT05TRSwKICAgICBQUk9QX0VT
VElNQVRFRF9QUk9HUkVTUywKLSAgICBQUk9QX0FMTE9XX09WRVJXUklURQorICAgIFBST1BfQUxM
T1dfT1ZFUldSSVRFLAorICAgIE5fUFJPUEVSVElFUywKIH07CiAKK3N0YXRpYyBHUGFyYW1TcGVj
KiBzT2JqUHJvcGVydGllc1tOX1BST1BFUlRJRVNdID0geyBudWxscHRyLCB9OworCiBzdHJ1Y3Qg
X1dlYktpdERvd25sb2FkUHJpdmF0ZSB7CiAgICAgfl9XZWJLaXREb3dubG9hZFByaXZhdGUoKQog
ICAgIHsKQEAgLTE0Myw3ICsxNDUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0RG93bmxvYWRE
ZWNpZGVEZXN0aW5hdGlvbihXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0CiAgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBkZXN0aW5hdGlvbihnX2J1aWxkX2ZpbGVuYW1lKGRvd25sb2Fkc0Rpciwg
ZmlsZW5hbWUuZ2V0KCksIE5VTEwpKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRlc3RpbmF0aW9u
VVJJKGdfZmlsZW5hbWVfdG9fdXJpKGRlc3RpbmF0aW9uLmdldCgpLCAwLCAwKSk7CiAgICAgZG93
bmxvYWQtPnByaXYtPmRlc3RpbmF0aW9uVVJJID0gZGVzdGluYXRpb25VUkkuZ2V0KCk7Ci0gICAg
Z19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGRvd25sb2FkKSwgImRlc3RpbmF0aW9uIik7CisgICAg
Z19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKGRvd25sb2FkKSwgc09ialByb3BlcnRp
ZXNbUFJPUF9ERVNUSU5BVElPTl0pOwogICAgIHJldHVybiBUUlVFOwogfQogCkBAIC0xNjAsMjYg
KzE2MiwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG93bmxvYWRfY2xhc3NfaW5pdChXZWJLaXRE
b3dubG9hZENsYXNzKiBkb3dubG9hZENsYXNzKQogICAgICAqCiAgICAgICogVGhlIGxvY2FsIFVS
SSB0byB3aGVyZSB0aGUgZG93bmxvYWQgd2lsbCBiZSBzYXZlZC4KICAgICAgKi8KLSAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERVNUSU5BVElPTiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImRlc3RpbmF0aW9uIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
RGVzdGluYXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIGxvY2FsIFVSSSB0byB3aGVyZSB0aGUgZG93bmxvYWQgd2ls
bCBiZSBzYXZlZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKyAgICBzT2JqUHJvcGVy
dGllc1tQUk9QX0RFU1RJTkFUSU9OXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisg
ICAgICAgICAgICAiZGVzdGluYXRpb24iLAorICAgICAgICAgICAgXygiRGVzdGluYXRpb24iKSwK
KyAgICAgICAgICAgIF8oIlRoZSBsb2NhbCBVUkkgdG8gd2hlcmUgdGhlIGRvd25sb2FkIHdpbGwg
YmUgc2F2ZWQiKSwKKyAgICAgICAgICAgIG51bGxwdHIsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0RG93bmxvYWQ6cmVzcG9uc2U6
CiAgICAgICoKICAgICAgKiBUaGUgI1dlYktpdFVSSVJlc3BvbnNlIGFzc29jaWF0ZWQgd2l0aCB0
aGlzIGRvd25sb2FkLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9Q
X1JFU1BPTlNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX29iamVjdCgicmVzcG9uc2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJSZXNwb25zZSIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgcmVzcG9uc2Ugb2Yg
dGhlIGRvd25sb2FkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVNQT05TRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9SRVNQT05TRV0gPQorICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgInJlc3BvbnNlIiwKKyAgICAgICAgICAg
IF8oIlJlc3BvbnNlIiksCisgICAgICAgICAgICBfKCJUaGUgcmVzcG9uc2Ugb2YgdGhlIGRvd25s
b2FkIiksCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UsCisgICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0RG93bmxv
YWQ6ZXN0aW1hdGVkLXByb2dyZXNzOgpAQCAtMTkxLDEzICsxOTMsMTMgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2Rvd25sb2FkX2NsYXNzX2luaXQoV2ViS2l0RG93bmxvYWRDbGFzcyogZG93bmxvYWRD
bGFzcykKICAgICAgKiBJZiB5b3UgbmVlZCBhIG1vcmUgYWNjdXJhdGUgcHJvZ3Jlc3MgaW5mb3Jt
YXRpb24geW91IGNhbiBjb25uZWN0IHRvCiAgICAgICogI1dlYktpdERvd25sb2FkOjpyZWNlaXZl
ZC1kYXRhIHNpZ25hbCB0byB0cmFjayB0aGUgcHJvZ3Jlc3MuCiAgICAgICovCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfRVNUSU1BVEVEX1BST0dSRVNTLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2RvdWJsZSgiZXN0aW1hdGVkLXBy
b2dyZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiRXN0aW1hdGVkIFByb2dyZXNzIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRldGVybWluZXMgdGhlIGN1cnJl
bnQgcHJvZ3Jlc3Mgb2YgdGhlIGRvd25sb2FkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMCwgMS4wLCAxLjAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRVNUSU1BVEVEX1BST0dSRVNT
XSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19kb3VibGUoCisgICAgICAgICAgICAiZXN0aW1hdGVk
LXByb2dyZXNzIiwKKyAgICAgICAgICAgIF8oIkVzdGltYXRlZCBQcm9ncmVzcyIpLAorICAgICAg
ICAgICAgXygiRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgZG93bmxvYWQi
KSwKKyAgICAgICAgICAgIDAuMCwgMS4wLCAxLjAsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0RG93bmxvYWQ6YWxsb3ctb3Zlcndy
aXRlOgpAQCAtMjA4LDE1ICsyMTAsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rvd25sb2FkX2Ns
YXNzX2luaXQoV2ViS2l0RG93bmxvYWRDbGFzcyogZG93bmxvYWRDbGFzcykKICAgICAgKgogICAg
ICAqIFNpbmNlOiAyLjYKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KAotICAgICAgICBvYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9BTExPV19PVkVSV1JJVEUs
CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9BTExPV19PVkVSV1JJVEVdID0KICAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiYWxsb3ctb3ZlcndyaXRlIiwKICAgICAg
ICAgICAgIF8oIkFsbG93IE92ZXJ3cml0ZSIpLAogICAgICAgICAgICAgXygiV2hldGhlciB0aGUg
ZGVzdGluYXRpb24gbWF5IGJlIG92ZXJ3cml0dGVuIiksCiAgICAgICAgICAgICBGQUxTRSwKLSAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEV1JJVEUpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVz
KG9iamVjdENsYXNzLCBOX1BST1BFUlRJRVMsIHNPYmpQcm9wZXJ0aWVzKTsKIAogICAgIC8qKgog
ICAgICAqIFdlYktpdERvd25sb2FkOjpyZWNlaXZlZC1kYXRhOgpAQCAtMzM5LDcgKzM0MSw3IEBA
IHZvaWQgd2Via2l0RG93bmxvYWRTdGFydGVkKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKIHZv
aWQgd2Via2l0RG93bmxvYWRTZXRSZXNwb25zZShXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIFdl
YktpdFVSSVJlc3BvbnNlKiByZXNwb25zZSkKIHsKICAgICBkb3dubG9hZC0+cHJpdi0+cmVzcG9u
c2UgPSByZXNwb25zZTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QoZG93bmxvYWQpLCAi
cmVzcG9uc2UiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QoZG93bmxv
YWQpLCBzT2JqUHJvcGVydGllc1tQUk9QX1JFU1BPTlNFXSk7CiB9CiAKIHZvaWQgd2Via2l0RG93
bmxvYWRTZXRXZWJWaWV3KFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgV2ViS2l0V2ViVmlldyog
d2ViVmlldykKQEAgLTM4MSw3ICszODMsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJv
Z3Jlc3MoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogICAg
IH0KICAgICBwcml2LT5sYXN0RWxhcHNlZCA9IGN1cnJlbnRFbGFwc2VkOwogICAgIHByaXYtPmxh
c3RQcm9ncmVzcyA9IGN1cnJlbnRQcm9ncmVzczsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpF
Q1QoZG93bmxvYWQpLCAiZXN0aW1hdGVkLXByb2dyZXNzIik7CisgICAgZ19vYmplY3Rfbm90aWZ5
X2J5X3BzcGVjKEdfT0JKRUNUKGRvd25sb2FkKSwgc09ialByb3BlcnRpZXNbUFJPUF9FU1RJTUFU
RURfUFJPR1JFU1NdKTsKIH0KIAogdm9pZCB3ZWJraXREb3dubG9hZEZhaWxlZChXZWJLaXREb3du
bG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCkBAIC01
MDMsNyArNTA1LDcgQEAgdm9pZCB3ZWJraXRfZG93bmxvYWRfc2V0X2Rlc3RpbmF0aW9uKFdlYktp
dERvd25sb2FkKiBkb3dubG9hZCwgY29uc3QgZ2NoYXIqIHVyaSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgcHJpdi0+ZGVzdGluYXRpb25VUkkgPSB1cmk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKGRvd25sb2FkKSwgImRlc3RpbmF0aW9uIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5
X3BzcGVjKEdfT0JKRUNUKGRvd25sb2FkKSwgc09ialByb3BlcnRpZXNbUFJPUF9ERVNUSU5BVElP
Tl0pOwogfQogCiAvKioKQEAgLTY2MSw1ICs2NjMsNSBAQCB2b2lkIHdlYmtpdF9kb3dubG9hZF9z
ZXRfYWxsb3dfb3ZlcndyaXRlKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgZ2Jvb2xlYW4gYWxs
bwogICAgICAgICByZXR1cm47CiAKICAgICBkb3dubG9hZC0+cHJpdi0+YWxsb3dPdmVyd3JpdGUg
PSBhbGxvd2VkOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChkb3dubG9hZCksICJhbGxv
dy1vdmVyd3JpdGUiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QoZG93
bmxvYWQpLCBzT2JqUHJvcGVydGllc1tQUk9QX0FMTE9XX09WRVJXUklURV0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RWRpdG9yU3RhdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RWRpdG9yU3RhdGUu
Y3BwCmluZGV4IDBjYzA4NGVmYWU4Y2I5MWQyZWZmZTI2MzQxY2IyMDcyNTEwN2I3MjkuLjBlNGJi
MDM3NWU5ODVlYTYwZjhjMmEyMTBlN2RjMjMwZGVhNWFhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEVkaXRvclN0YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRFZGl0b3JTdGF0ZS5jcHAKQEAgLTQz
LDEwICs0MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBlbnVtIHsKICAgICBQUk9Q
XzAsCi0KLSAgICBQUk9QX1RZUElOR19BVFRSSUJVVEVTCisgICAgUFJPUF9UWVBJTkdfQVRUUklC
VVRFUywKKyAgICBOX1BST1BFUlRJRVMsCiB9OwogCitzdGF0aWMgR1BhcmFtU3BlYyogc09ialBy
b3BlcnRpZXNbTl9QUk9QRVJUSUVTXSA9IHsgbnVsbHB0ciwgfTsKKwogc3RydWN0IF9XZWJLaXRF
ZGl0b3JTdGF0ZVByaXZhdGUgewogICAgIFdlYlBhZ2VQcm94eSogcGFnZTsKICAgICB1bnNpZ25l
ZCB0eXBpbmdBdHRyaWJ1dGVzOwpAQCAtODUsMTUgKzg3LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9lZGl0b3Jfc3RhdGVfY2xhc3NfaW5pdChXZWJLaXRFZGl0b3JTdGF0ZUNsYXNzKiBlZGl0b3JT
dGF0ZUNsCiAgICAgICoKICAgICAgKiBTaW5jZTogMi4xMAogICAgICAqLwotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIG9iamVjdENsYXNzLAotICAgICAgICBQ
Uk9QX1RZUElOR19BVFRSSUJVVEVTLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfVFlQSU5HX0FU
VFJJQlVURVNdID0KICAgICAgICAgZ19wYXJhbV9zcGVjX3VpbnQoCiAgICAgICAgICAgICAidHlw
aW5nLWF0dHJpYnV0ZXMiLAogICAgICAgICAgICAgXygiVHlwaW5nIEF0dHJpYnV0ZXMiKSwKICAg
ICAgICAgICAgIF8oIkZsYWdzIHdpdGggdGhlIHR5cGluZyBhdHRyaWJ1dGVzIiksCiAgICAgICAg
ICAgICAwLCBHX01BWFVJTlQsIDAsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUp
KTsKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnRpZXMob2JqZWN0Q2xhc3MsIE5fUFJPUEVSVElFUywgc09ialBy
b3BlcnRpZXMpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRFZGl0b3JTdGF0ZVNldFR5cGluZ0F0
dHJpYnV0ZXMoV2ViS2l0RWRpdG9yU3RhdGUqIGVkaXRvclN0YXRlLCB1bnNpZ25lZCB0eXBpbmdB
dHRyaWJ1dGVzKQpAQCAtMTAyLDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEVkaXRvclN0
YXRlU2V0VHlwaW5nQXR0cmlidXRlcyhXZWJLaXRFZGl0b3JTdGF0ZSogZWRpdG9yU3RhdGUsCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGVkaXRvclN0YXRlLT5wcml2LT50eXBpbmdBdHRyaWJ1dGVz
ID0gdHlwaW5nQXR0cmlidXRlczsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QoZWRpdG9y
U3RhdGUpLCAidHlwaW5nLWF0dHJpYnV0ZXMiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNw
ZWMoR19PQkpFQ1QoZWRpdG9yU3RhdGUpLCBzT2JqUHJvcGVydGllc1tQUk9QX1RZUElOR19BVFRS
SUJVVEVTXSk7CiB9CiAKIFdlYktpdEVkaXRvclN0YXRlKiB3ZWJraXRFZGl0b3JTdGF0ZUNyZWF0
ZShXZWJQYWdlUHJveHkmIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCBmNzA2
MmRmNjUzODAzNGIzNTY1ODg3NDAxZTI1MDFjNzU0OTRlNThmLi5kYjEzOGJhODQ1ZjE3MmNkZWFi
NDJlNDYwYzRmMzRhZGZhOGI5OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTQ5
LDEwICs0OSwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogZW51bSB7CiAgICAgUFJP
UF8wLAotCi0gICAgUFJPUF9FTkFCTEVfSElHSF9BQ0NVUkFDWQorICAgIFBST1BfRU5BQkxFX0hJ
R0hfQUNDVVJBQ1ksCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMq
IHNPYmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKIGVudW0gewog
ICAgIFNUQVJULAogICAgIFNUT1AsCkBAIC0yNzcsNyArMjc5LDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0R2VvbG9jYXRpb25NYW5hZ2VyU2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdlYktpdEdlb2xvY2F0
aW9uTWFuYWcKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFuYWdlci0+cHJpdi0+aGlnaEFjY3Vy
YWN5RW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG1hbmFn
ZXIpLCAiZW5hYmxlLWhpZ2gtYWNjdXJhY3kiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNw
ZWMoR19PQkpFQ1QobWFuYWdlciksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0hJR0hfQUND
VVJBQ1ldKTsKICAgICBpZiAobWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyKQogICAgICAg
ICBtYW5hZ2VyLT5wcml2LT5nZW9jbHVlUHJvdmlkZXItPnNldEVuYWJsZUhpZ2hBY2N1cmFjeShl
bmFibGVkKTsKIH0KQEAgLTM1MSwxNSArMzUzLDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9nZW9s
b2NhdGlvbl9tYW5hZ2VyX2NsYXNzX2luaXQoV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyQ2xhc3Mq
CiAgICAgICoKICAgICAgKiBTaW5jZTogMi4yNgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9F
TkFCTEVfSElHSF9BQ0NVUkFDWSwKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9ISUdI
X0FDQ1VSQUNZXSA9CiAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAg
ImVuYWJsZS1oaWdoLWFjY3VyYWN5IiwKICAgICAgICAgICAgIF8oIkVuYWJsZSBoaWdoIGFjY3Vy
YWN5IiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIGhpZ2ggYWNjdXJhY3kgaXMgZW5hYmxlZCIp
LAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUp
KTsKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnRpZXMoZ09iamVjdENsYXNzLCBOX1BST1BFUlRJRVMsIHNPYmpQ
cm9wZXJ0aWVzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlcjo6
c3RhcnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcAppbmRleCBlMjlmZmU2MmMzYjFkZTNjNTk1
ZjJlMmYxZjZhNWUxNDk1N2M4ZWEzLi5lODdmODU4ZjcwZDMxYTUzNjYyYjVjYmE3OGIzMGVjNTdm
NzBmNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAKQEAgLTQ5LDExICs0OSwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogZW51bSB7CiAgICAgUFJPUF8wLAotCiAgICAgUFJP
UF9JTlBVVF9QVVJQT1NFLAotICAgIFBST1BfSU5QVVRfSElOVFMKKyAgICBQUk9QX0lOUFVUX0hJ
TlRTLAorICAgIE5fUFJPUEVSVElFUywKIH07CiAKK3N0YXRpYyBHUGFyYW1TcGVjKiBzT2JqUHJv
cGVydGllc1tOX1BST1BFUlRJRVNdID0geyBudWxscHRyLCB9OworCiBlbnVtIHsKICAgICBQUkVF
RElUX1NUQVJURUQsCiAgICAgUFJFRURJVF9DSEFOR0VELApAQCAtMjE3LDE2ICsyMTksMTQgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2lucHV0X21ldGhvZF9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0
SW5wdXRNZXRob2RDb250ZXh0Q2xhc3MKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjI4CiAgICAg
ICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVj
dENsYXNzLAotICAgICAgICBQUk9QX0lOUFVUX1BVUlBPU0UsCisgICAgc09ialByb3BlcnRpZXNb
UFJPUF9JTlBVVF9QVVJQT1NFXSA9CiAgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKAogICAgICAg
ICAgICAgImlucHV0LXB1cnBvc2UiLAogICAgICAgICAgICAgXygiSW5wdXQgUHVycG9zZSIpLAog
ICAgICAgICAgICAgXygiVGhlIHB1cnBvc2Ugb2YgdGhlIGlucHV0IGFzc29jaWF0ZWQiKSwKICAg
ICAgICAgICAgIFdFQktJVF9UWVBFX0lOUFVUX1BVUlBPU0UsCiAgICAgICAgICAgICBXRUJLSVRf
SU5QVVRfUFVSUE9TRV9GUkVFX0ZPUk0sCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdS
SVRFKSk7CisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKTsKIAogICAgIC8qKgog
ICAgICAqIFdlYktpdElucHV0TWV0aG9kQ29udGV4dDo6aW5wdXQtaGludHM6CkBAIC0yMzUsMTYg
KzIzNSwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfaW5wdXRfbWV0aG9kX2NvbnRleHRfY2xhc3Nf
aW5pdChXZWJLaXRJbnB1dE1ldGhvZENvbnRleHRDbGFzcwogICAgICAqCiAgICAgICogU2luY2U6
IDIuMjgKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAg
ICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfSU5QVVRfSElOVFMsCisgICAgc09ialBy
b3BlcnRpZXNbUFJPUF9JTlBVVF9ISU5UU10gPQogICAgICAgICBnX3BhcmFtX3NwZWNfZmxhZ3Mo
CiAgICAgICAgICAgICAiaW5wdXQtaGludHMiLAogICAgICAgICAgICAgXygiSW5wdXQgSGludHMi
KSwKICAgICAgICAgICAgIF8oIlRoZSBoaW50cyBvZiB0aGUgaW5wdXQgYXNzb2NpYXRlZCIpLAog
ICAgICAgICAgICAgV0VCS0lUX1RZUEVfSU5QVVRfSElOVFMsCiAgICAgICAgICAgICBXRUJLSVRf
SU5QVVRfSElOVF9OT05FLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwor
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSk7CisKKyAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnRpZXMoZ09iamVjdENsYXNzLCBOX1BST1BFUlRJRVMsIHNPYmpQcm9w
ZXJ0aWVzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdElucHV0TWV0aG9kQ29udGV4dDo6cHJl
ZWRpdC1zdGFydGVkOgpAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgd2Via2l0X2lucHV0X21ldGhv
ZF9jb250ZXh0X3NldF9pbnB1dF9wdXJwb3NlKFdlYktpdElucHV0TWV0aG9kQ29udGV4dCogY29u
CiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnRleHQtPnByaXYtPnB1cnBvc2UgPSBwdXJwb3Nl
OwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChjb250ZXh0KSwgImlucHV0LXB1cnBvc2Ui
KTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QoY29udGV4dCksIHNPYmpQ
cm9wZXJ0aWVzW1BST1BfSU5QVVRfUFVSUE9TRV0pOwogfQogCiAvKioKQEAgLTU3Myw1ICs1NzMs
NSBAQCB2b2lkIHdlYmtpdF9pbnB1dF9tZXRob2RfY29udGV4dF9zZXRfaW5wdXRfaGludHMoV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0KiBjb250ZQogICAgICAgICByZXR1cm47CiAKICAgICBjb250
ZXh0LT5wcml2LT5oaW50cyA9IGhpbnRzOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChj
b250ZXh0KSwgImlucHV0LWhpbnRzIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdf
T0JKRUNUKGNvbnRleHQpLCBzT2JqUHJvcGVydGllc1tQUk9QX0lOUFVUX0hJTlRTXSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5j
cHAKaW5kZXggYjJkZDRjYmExMDZlMzVkZjQ3YTUyYWQ2MDM4MGE0YWQ4YzdlZThmOC4uOWZhMjRi
YmM3MGUwMTBlZTY3MzNkNzkyZjg2Y2I2NWM3MmE1NmMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMTA4LDcgKzEw
OCw2IEBAIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRTZXR0aW5ncywgd2Via2l0X3NldHRpbmdz
LCBHX1RZUEVfT0JKRUNUKQogCiBlbnVtIHsKICAgICBQUk9QXzAsCi0KICAgICBQUk9QX0VOQUJM
RV9KQVZBU0NSSVBULAogICAgIFBST1BfQVVUT19MT0FEX0lNQUdFUywKICAgICBQUk9QX0xPQURf
SUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HLApAQCAtMTcyLDggKzE3MSwxMSBAQCBl
bnVtIHsKICAgICBQUk9QX0VOQUJMRV9KQVZBU0NSSVBUX01BUktVUCwKICAgICBQUk9QX0VOQUJM
RV9NRURJQSwKICAgICBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJF
X1NVUFBPUlQsCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMqIHNP
YmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKIHN0YXRpYyB2b2lk
IHdlYktpdFNldHRpbmdzRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0X3NldHRpbmdzX3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKQEAg
LTYwNywxMyArNjA5LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0
KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3
aGV0aGVyIG9yIG5vdCBKYXZhU2NyaXB0IGV4ZWN1dGVzIHdpdGhpbiBhIHBhZ2UuCiAgICAgICov
Ci0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9KQVZBU0NSSVBULAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4o
ImVuYWJsZS1qYXZhc2NyaXB0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBKYXZhU2NyaXB0IiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUg
SmF2YVNjcmlwdC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7Cisg
ICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfSkFWQVNDUklQVF0gPQorICAgICAgICBnX3Bh
cmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtamF2YXNjcmlwdCIsCisgICAg
ICAgICAgICBfKCJFbmFibGUgSmF2YVNjcmlwdCIpLAorICAgICAgICAgICAgXygiRW5hYmxlIEph
dmFTY3JpcHQuIiksCisgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29u
c3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczphdXRv
LWxvYWQtaW1hZ2VzOgpAQCAtNjIyLDEzICs2MjQsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3Nl
dHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogT24g
ZGV2aWNlcyB3aGVyZSBuZXR3b3JrIGJhbmR3aWR0aCBpcyBvZiBjb25jZXJuLCBpdCBtaWdodCBi
ZQogICAgICAqIHVzZWZ1bCB0byB0dXJuIHRoaXMgcHJvcGVydHkgb2ZmLgogICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BVVRPX0xPQURfSU1BR0VTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImF1dG8t
bG9hZC1pbWFnZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiQXV0byBsb2FkIGltYWdlcyIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTG9hZCBpbWFnZXMgYXV0
b21hdGljYWxseS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7Cisg
ICAgc09ialByb3BlcnRpZXNbUFJPUF9BVVRPX0xPQURfSU1BR0VTXSA9CisgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImF1dG8tbG9hZC1pbWFnZXMiLAorICAgICAg
ICAgICAgXygiQXV0byBsb2FkIGltYWdlcyIpLAorICAgICAgICAgICAgXygiTG9hZCBpbWFnZXMg
YXV0b21hdGljYWxseS4iKSwKKyAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICByZWFkV3Jp
dGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdz
OmxvYWQtaWNvbnMtaWdub3JpbmctaW1hZ2UtbG9hZC1zZXR0aW5nOgpAQCAtNjM2LDEzICs2Mzgs
MTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGlu
Z3NDbGFzcyoga2xhc3MpCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2l0ZSBjYW4gbG9h
ZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKICAgICAgKiBvZiB0aGUgdmFsdWUgb2YgI1dlYktpdFNl
dHRpbmdzOmF1dG8tbG9hZC1pbWFnZXMuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImxv
YWQtaWNvbnMtaWdub3JpbmctaW1hZ2UtbG9hZC1zZXR0aW5nIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkxvYWQgaWNvbnMgaWdu
b3JpbmcgaW1hZ2UgbG9hZCBzZXR0aW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGxvYWQgc2l0ZSBpY29u
cyBpZ25vcmluZyBpbWFnZSBsb2FkIHNldHRpbmcuIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0
cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0xPQURfSUNPTlNfSUdO
T1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
KAorICAgICAgICAgICAgImxvYWQtaWNvbnMtaWdub3JpbmctaW1hZ2UtbG9hZC1zZXR0aW5nIiwK
KyAgICAgICAgICAgIF8oIkxvYWQgaWNvbnMgaWdub3JpbmcgaW1hZ2UgbG9hZCBzZXR0aW5nIiks
CisgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGxvYWQgc2l0ZSBpY29ucyBpZ25vcmluZyBpbWFn
ZSBsb2FkIHNldHRpbmcuIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIHJlYWRX
cml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGlu
Z3M6ZW5hYmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uLWNhY2hlOgpAQCAtNjU0LDEzICs2NTYs
MTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGlu
Z3NDbGFzcyoga2xhc3MpCiAgICAgICogSFRNTDUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb24gc3Bl
Y2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgYXQKICAgICAgKiBodHRwOi8vZGV2LnczLm9yZy9odG1s
NS9zcGVjL29mZmxpbmUuaHRtbC4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OX0NBQ0hFLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1v
ZmZsaW5lLXdlYi1hcHBsaWNhdGlvbi1jYWNoZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgb2ZmbGluZSB3ZWIgYXBw
bGljYXRpb24gY2FjaGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIG9mZmxpbmUgd2ViIGFwcGxp
Y2F0aW9uIGNhY2hlLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTl9D
QUNIRV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFi
bGUtb2ZmbGluZS13ZWItYXBwbGljYXRpb24tY2FjaGUiLAorICAgICAgICAgICAgXygiRW5hYmxl
IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9uIGNhY2hlIiksCisgICAgICAgICAgICBfKCJXaGV0aGVy
IHRvIGVuYWJsZSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbiBjYWNoZS4iKSwKKyAgICAgICAgICAg
IFRSVUUsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAg
IC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlOgpA
QCAtNjcxLDI2ICs2NzMsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2lu
aXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogSFRNTDUgbG9jYWwgc3RvcmFn
ZSBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSBhdAogICAgICAqIGh0dHA6Ly9kZXYudzMub3Jn
L2h0bWw1L3dlYnN0b3JhZ2UvLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9FTkFCTEVfSFRNTDVfTE9DQUxfU1RPUkFHRSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtaHRtbDUtbG9jYWwt
c3RvcmFnZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJFbmFibGUgSFRNTDUgbG9jYWwgc3RvcmFnZSIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0
byBlbmFibGUgSFRNTDUgTG9jYWwgU3RvcmFnZSBzdXBwb3J0LiIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0
ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9I
VE1MNV9MT0NBTF9TVE9SQUdFXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAg
ICAgICAgICAgImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIiwKKyAgICAgICAgICAgIF8oIkVu
YWJsZSBIVE1MNSBsb2NhbCBzdG9yYWdlIiksCisgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVu
YWJsZSBIVE1MNSBMb2NhbCBTdG9yYWdlIHN1cHBvcnQuIiksCisgICAgICAgICAgICBUUlVFLAor
ICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAg
ICAgKiBXZWJLaXRTZXR0aW5nczplbmFibGUtaHRtbDUtZGF0YWJhc2U6CiAgICAgICoKICAgICAg
KiBXaGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBjbGllbnQtc2lkZSBTUUwgZGF0YWJhc2Ugc3VwcG9y
dCAoSW5kZXhlZERCKS4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfRU5BQkxFX0hUTUw1X0RBVEFCQVNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1odG1sNS1kYXRhYmFzZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJF
bmFibGUgSFRNTDUgZGF0YWJhc2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIEhUTUw1IGRhdGFi
YXNlIHN1cHBvcnQuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOwor
ICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0hUTUw1X0RBVEFCQVNFXSA9CisgICAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVuYWJsZS1odG1sNS1kYXRhYmFz
ZSIsCisgICAgICAgICAgICBfKCJFbmFibGUgSFRNTDUgZGF0YWJhc2UiKSwKKyAgICAgICAgICAg
IF8oIldoZXRoZXIgdG8gZW5hYmxlIEhUTUw1IGRhdGFiYXNlIHN1cHBvcnQuIiksCisgICAgICAg
ICAgICBUUlVFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAK
ICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczplbmFibGUteHNzLWF1ZGl0b3I6CkBAIC02
OTgsMTQgKzcwMCwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChX
ZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUg
WFNTIGF1ZGl0b3IuIFRoaXMgZmVhdHVyZSBmaWx0ZXJzIHNvbWUga2luZHMgb2YKICAgICAgKiBy
ZWZsZWN0aXZlIFhTUyBhdHRhY2tzIG9uIHZ1bG5lcmFibGUgd2ViIHNpdGVzLgogICAgICAqLwot
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfWFNTX0FVRElUT1IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigi
ZW5hYmxlLXhzcy1hdWRpdG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBYU1MgYXVkaXRvciIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhl
ciB0byBlbmFibGUgdGhlIFhTUyBhdWRpdG9yLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVj
dFBhcmFtRmxhZ3MpKTsKLQorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX1hTU19BVURJ
VE9SXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVuYWJs
ZS14c3MtYXVkaXRvciIsCisgICAgICAgICAgICBfKCJFbmFibGUgWFNTIGF1ZGl0b3IiKSwKKyAg
ICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIHRoZSBYU1MgYXVkaXRvci4iKSwKKyAgICAg
ICAgICAgIFRSVUUsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsK
IAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1mcmFtZS1mbGF0dGVuaW5n
OgpAQCAtNzE0LDEzICs3MTUsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNz
X2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogdG8gaXRzIGNvbnRlbnRz
LCB3aGljaCB3aWxsIGZsYXR0ZW4gYWxsIHRoZSBmcmFtZXMgdG8gYmVjb21lIG9uZSBzY3JvbGxh
YmxlIHBhZ2UuCiAgICAgICogT24gdG91Y2ggZGV2aWNlcyBzY3JvbGxhYmxlIHN1YmZyYW1lcyBv
biBhIHBhZ2UgY2FuIHJlc3VsdCBpbiBhIGNvbmZ1c2luZyB1c2VyIGV4cGVyaWVuY2UuCiAgICAg
ICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9GUkFNRV9GTEFU
VEVOSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X2Jvb2xlYW4oImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBmcmFtZSBmbGF0
dGVuaW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJsZSBmcmFtZSBmbGF0dGVuaW5nLiIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNb
UFJPUF9FTkFCTEVfRlJBTUVfRkxBVFRFTklOR10gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigKKyAgICAgICAgICAgICJlbmFibGUtZnJhbWUtZmxhdHRlbmluZyIsCisgICAgICAgICAg
ICBfKCJFbmFibGUgZnJhbWUgZmxhdHRlbmluZyIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0
byBlbmFibGUgZnJhbWUgZmxhdHRlbmluZy4iKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBX
ZWJLaXRTZXR0aW5nczplbmFibGUtcGx1Z2luczoKQEAgLTcyOSwyNiArNzMwLDI2IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGts
YXNzKQogICAgICAqCiAgICAgICogRGVwcmVjYXRlZDogMi4zMgogICAgICAqLwotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfUExVR0lOUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtcGx1Z2lu
cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJFbmFibGUgcGx1Z2lucyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIGVtYmVkZGVkIHBsdWdpbiBvYmpl
Y3RzLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09i
alByb3BlcnRpZXNbUFJPUF9FTkFCTEVfUExVR0lOU10gPQorICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtcGx1Z2lucyIsCisgICAgICAgICAgICBfKCJF
bmFibGUgcGx1Z2lucyIpLAorICAgICAgICAgICAgXygiRW5hYmxlIGVtYmVkZGVkIHBsdWdpbiBv
YmplY3RzLiIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICByZWFkV3JpdGVDb25z
dHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJs
ZS1qYXZhOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBKYXZhIGlz
IGVuYWJsZWQgb24gdGhlIHBhZ2UuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQUk9QX0VOQUJMRV9KQVZBLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1qYXZhIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBKYXZhIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJXaGV0aGVyIEphdmEgc3VwcG9ydCBzaG91bGQgYmUgZW5hYmxlZC4iKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9F
TkFCTEVfSkFWQV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAg
ICJlbmFibGUtamF2YSIsCisgICAgICAgICAgICBfKCJFbmFibGUgSmF2YSIpLAorICAgICAgICAg
ICAgXygiV2hldGhlciBKYXZhIHN1cHBvcnQgc2hvdWxkIGJlIGVuYWJsZWQuIiksCisgICAgICAg
ICAgICBUUlVFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAK
ICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczpqYXZhc2NyaXB0LWNhbi1vcGVuLXdpbmRv
d3MtYXV0b21hdGljYWxseToKQEAgLTc1NiwxMyArNzU3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAq
IFdoZXRoZXIgSmF2YVNjcmlwdCBjYW4gb3BlbiBwb3B1cCB3aW5kb3dzIGF1dG9tYXRpY2FsbHkg
d2l0aG91dCB1c2VyCiAgICAgICogaW50ZXJ2ZW50aW9uLgogICAgICAqLwotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1NfQVVUT01B
VElDQUxMWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuKCJqYXZhc2NyaXB0LWNhbi1vcGVuLXdpbmRvd3MtYXV0b21hdGljYWxseSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJKYXZhU2NyaXB0IGNhbiBvcGVuIHdpbmRvd3MgYXV0b21hdGljYWxseSIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhl
ciBKYXZhU2NyaXB0IGNhbiBvcGVuIHdpbmRvd3MgYXV0b21hdGljYWxseS4iKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1Bf
SkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFldID0KKyAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5k
b3dzLWF1dG9tYXRpY2FsbHkiLAorICAgICAgICAgICAgXygiSmF2YVNjcmlwdCBjYW4gb3BlbiB3
aW5kb3dzIGF1dG9tYXRpY2FsbHkiKSwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgSmF2YVNjcmlw
dCBjYW4gb3BlbiB3aW5kb3dzIGF1dG9tYXRpY2FsbHkuIiksCisgICAgICAgICAgICBGQUxTRSwK
KyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAg
ICAgICogV2ViS2l0U2V0dGluZ3M6ZW5hYmxlLWh5cGVybGluay1hdWRpdGluZzoKQEAgLTc3Miwy
NiArNzczLDI2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktp
dFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqIFRoZSBoeXBlcmxpbmsgYXVkaXRpbmcgc3Bl
Y2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgYXQKICAgICAgKiBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5odG1sI2h5cGVybGlu
ay1hdWRpdGluZy4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
RU5BQkxFX0hZUEVSTElOS19BVURJVElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtaHlwZXJsaW5rLWF1ZGl0aW5nIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIkVuYWJsZSBoeXBlcmxpbmsgYXVkaXRpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgPGEgcGluZz4gc2hv
dWxkIGJlIGFibGUgdG8gc2VuZCBwaW5ncy4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQ
YXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfSFlQRVJMSU5LX0FV
RElUSU5HXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVu
YWJsZS1oeXBlcmxpbmstYXVkaXRpbmciLAorICAgICAgICAgICAgXygiRW5hYmxlIGh5cGVybGlu
ayBhdWRpdGluZyIpLAorICAgICAgICAgICAgXygiV2hldGhlciA8YSBwaW5nPiBzaG91bGQgYmUg
YWJsZSB0byBzZW5kIHBpbmdzLiIpLAorICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgIHJl
YWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0
dGluZ3M6ZGVmYXVsdC1mb250LWZhbWlseToKICAgICAgKgogICAgICAqIFRoZSBmb250IGZhbWls
eSB0byB1c2UgYXMgdGhlIGRlZmF1bHQgZm9yIGNvbnRlbnQgdGhhdCBkb2VzIG5vdCBzcGVjaWZ5
IGEgZm9udC4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdP
YmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfREVG
QVVMVF9GT05UX0ZBTUlMWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoImRlZmF1bHQtZm9udC1mYW1pbHkiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJEZWZhdWx0IGZvbnQg
ZmFtaWx5IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIlRoZSBmb250IGZhbWlseSB0byB1c2UgYXMgdGhlIGRlZmF1bHQgZm9yIGNv
bnRlbnQgdGhhdCBkb2VzIG5vdCBzcGVjaWZ5IGEgZm9udC4iKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNhbnMtc2VyaWYiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFk
V3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9ERUZB
VUxUX0ZPTlRfRkFNSUxZXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAg
ICAgICAiZGVmYXVsdC1mb250LWZhbWlseSIsCisgICAgICAgICAgICBfKCJEZWZhdWx0IGZvbnQg
ZmFtaWx5IiksCisgICAgICAgICAgICBfKCJUaGUgZm9udCBmYW1pbHkgdG8gdXNlIGFzIHRoZSBk
ZWZhdWx0IGZvciBjb250ZW50IHRoYXQgZG9lcyBub3Qgc3BlY2lmeSBhIGZvbnQuIiksCisgICAg
ICAgICAgICAic2Fucy1zZXJpZiIsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJh
bUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOm1vbm9zcGFjZS1mb250
LWZhbWlseToKQEAgLTc5OSw3OCArODAwLDc4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5n
c19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqIFRoZSBmb250
IGZhbWlseSB1c2VkIGFzIHRoZSBkZWZhdWx0IGZvciBjb250ZW50IHVzaW5nIGEgbW9ub3NwYWNl
IGZvbnQuCiAgICAgICoKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfTU9OT1NQQUNFX0ZPTlRfRkFNSUxZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygibW9ub3NwYWNlLWZvbnQtZmFtaWx5IiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTW9u
b3NwYWNlIGZvbnQgZmFtaWx5IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBmb250IGZhbWlseSB1c2VkIGFzIHRoZSBkZWZh
dWx0IGZvciBjb250ZW50IHVzaW5nIG1vbm9zcGFjZSBmb250LiIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9ub3NwYWNlIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVh
ZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfTU9O
T1NQQUNFX0ZPTlRfRkFNSUxZXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAg
ICAgICAgICAibW9ub3NwYWNlLWZvbnQtZmFtaWx5IiwKKyAgICAgICAgICAgIF8oIk1vbm9zcGFj
ZSBmb250IGZhbWlseSIpLAorICAgICAgICAgICAgXygiVGhlIGZvbnQgZmFtaWx5IHVzZWQgYXMg
dGhlIGRlZmF1bHQgZm9yIGNvbnRlbnQgdXNpbmcgbW9ub3NwYWNlIGZvbnQuIiksCisgICAgICAg
ICAgICAibW9ub3NwYWNlIiwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGluZ3M6c2VyaWYtZm9udC1mYW1pbHk6
CiAgICAgICoKICAgICAgKiBUaGUgZm9udCBmYW1pbHkgdXNlZCBhcyB0aGUgZGVmYXVsdCBmb3Ig
Y29udGVudCB1c2luZyBhIHNlcmlmIGZvbnQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9QX1NFUklGX0ZPTlRfRkFNSUxZLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic2VyaWYtZm9udC1mYW1pbHkiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJTZXJpZiBmb250IGZhbWlseSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZm9udCBmYW1pbHkgdXNlZCBhcyB0aGUgZGVm
YXVsdCBmb3IgY29udGVudCB1c2luZyBzZXJpZiBmb250LiIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VyaWYiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVD
b25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9TRVJJRl9GT05U
X0ZBTUlMWV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgInNl
cmlmLWZvbnQtZmFtaWx5IiwKKyAgICAgICAgICAgIF8oIlNlcmlmIGZvbnQgZmFtaWx5IiksCisg
ICAgICAgICAgICBfKCJUaGUgZm9udCBmYW1pbHkgdXNlZCBhcyB0aGUgZGVmYXVsdCBmb3IgY29u
dGVudCB1c2luZyBzZXJpZiBmb250LiIpLAorICAgICAgICAgICAgInNlcmlmIiwKKyAgICAgICAg
ICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2Vi
S2l0U2V0dGluZ3M6c2Fucy1zZXJpZi1mb250LWZhbWlseToKICAgICAgKgogICAgICAqIFRoZSBm
b250IGZhbWlseSB1c2VkIGFzIHRoZSBkZWZhdWx0IGZvciBjb250ZW50IHVzaW5nIGEgc2Fucy1z
ZXJpZiBmb250LgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9T
QU5TX1NFUklGX0ZPTlRfRkFNSUxZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX3N0cmluZygic2Fucy1zZXJpZi1mb250LWZhbWlseSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNhbnMt
c2VyaWYgZm9udCBmYW1pbHkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGZvbnQgZmFtaWx5IHVzZWQgYXMgdGhlIGRlZmF1
bHQgZm9yIGNvbnRlbnQgdXNpbmcgc2Fucy1zZXJpZiBmb250LiIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Fucy1zZXJpZiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
YWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1NB
TlNfU0VSSUZfRk9OVF9GQU1JTFldID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAg
ICAgICAgICAgICJzYW5zLXNlcmlmLWZvbnQtZmFtaWx5IiwKKyAgICAgICAgICAgIF8oIlNhbnMt
c2VyaWYgZm9udCBmYW1pbHkiKSwKKyAgICAgICAgICAgIF8oIlRoZSBmb250IGZhbWlseSB1c2Vk
IGFzIHRoZSBkZWZhdWx0IGZvciBjb250ZW50IHVzaW5nIHNhbnMtc2VyaWYgZm9udC4iKSwKKyAg
ICAgICAgICAgICJzYW5zLXNlcmlmIiwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBh
cmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGluZ3M6Y3Vyc2l2ZS1mb250
LWZhbWlseToKICAgICAgKgogICAgICAqIFRoZSBmb250IGZhbWlseSB1c2VkIGFzIHRoZSBkZWZh
dWx0IGZvciBjb250ZW50IHVzaW5nIGEgY3Vyc2l2ZSBmb250LgogICAgICAqLwotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9DVVJTSVZFX0ZPTlRfRkFNSUxZLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygiY3Vyc2l2ZS1m
b250LWZhbWlseSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkN1cnNpdmUgZm9udCBmYW1pbHkiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGZvbnQgZmFtaWx5
IHVzZWQgYXMgdGhlIGRlZmF1bHQgZm9yIGNvbnRlbnQgdXNpbmcgY3Vyc2l2ZSBmb250LiIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c2VyaWYiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRp
ZXNbUFJPUF9DVVJTSVZFX0ZPTlRfRkFNSUxZXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJp
bmcoCisgICAgICAgICAgICAiY3Vyc2l2ZS1mb250LWZhbWlseSIsCisgICAgICAgICAgICBfKCJD
dXJzaXZlIGZvbnQgZmFtaWx5IiksCisgICAgICAgICAgICBfKCJUaGUgZm9udCBmYW1pbHkgdXNl
ZCBhcyB0aGUgZGVmYXVsdCBmb3IgY29udGVudCB1c2luZyBjdXJzaXZlIGZvbnQuIiksCisgICAg
ICAgICAgICAic2VyaWYiLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFn
cyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczpmYW50YXN5LWZvbnQtZmFtaWx5
OgogICAgICAqCiAgICAgICogVGhlIGZvbnQgZmFtaWx5IHVzZWQgYXMgdGhlIGRlZmF1bHQgZm9y
IGNvbnRlbnQgdXNpbmcgYSBmYW50YXN5IGZvbnQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX0ZBTlRBU1lfRk9OVF9GQU1JTFksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJmYW50YXN5LWZvbnQtZmFt
aWx5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiRmFudGFzeSBmb250IGZhbWlseSIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZm9udCBmYW1pbHkgdXNlZCBh
cyB0aGUgZGVmYXVsdCBmb3IgY29udGVudCB1c2luZyBmYW50YXN5IGZvbnQuIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJpZiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9Q
X0ZBTlRBU1lfRk9OVF9GQU1JTFldID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAg
ICAgICAgICAgICJmYW50YXN5LWZvbnQtZmFtaWx5IiwKKyAgICAgICAgICAgIF8oIkZhbnRhc3kg
Zm9udCBmYW1pbHkiKSwKKyAgICAgICAgICAgIF8oIlRoZSBmb250IGZhbWlseSB1c2VkIGFzIHRo
ZSBkZWZhdWx0IGZvciBjb250ZW50IHVzaW5nIGZhbnRhc3kgZm9udC4iKSwKKyAgICAgICAgICAg
ICJzZXJpZiIsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAog
ICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOnBpY3RvZ3JhcGgtZm9udC1mYW1pbHk6CiAg
ICAgICoKICAgICAgKiBUaGUgZm9udCBmYW1pbHkgdXNlZCBhcyB0aGUgZGVmYXVsdCBmb3IgY29u
dGVudCB1c2luZyBhIHBpY3RvZ3JhcGggZm9udC4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST1BfUElDVE9HUkFQSF9GT05UX0ZBTUlMWSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInBpY3RvZ3JhcGgtZm9u
dC1mYW1pbHkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJQaWN0b2dyYXBoIGZvbnQgZmFtaWx5IiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBmb250IGZhbWls
eSB1c2VkIGFzIHRoZSBkZWZhdWx0IGZvciBjb250ZW50IHVzaW5nIHBpY3RvZ3JhcGggZm9udC4i
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNlcmlmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfUElDVE9HUkFQSF9GT05UX0ZBTUlMWV0gPQorICAgICAgICBnX3BhcmFtX3Nw
ZWNfc3RyaW5nKAorICAgICAgICAgICAgInBpY3RvZ3JhcGgtZm9udC1mYW1pbHkiLAorICAgICAg
ICAgICAgXygiUGljdG9ncmFwaCBmb250IGZhbWlseSIpLAorICAgICAgICAgICAgXygiVGhlIGZv
bnQgZmFtaWx5IHVzZWQgYXMgdGhlIGRlZmF1bHQgZm9yIGNvbnRlbnQgdXNpbmcgcGljdG9ncmFw
aCBmb250LiIpLAorICAgICAgICAgICAgInNlcmlmIiwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNv
bnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGluZ3M6ZGVm
YXVsdC1mb250LXNpemU6CkBAIC04NzgsMTMgKzg3OSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
c2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBU
aGUgZGVmYXVsdCBmb250IHNpemUgaW4gcGl4ZWxzIHRvIHVzZSBmb3IgY29udGVudCBkaXNwbGF5
ZWQgaWYKICAgICAgKiBubyBmb250IHNpemUgaXMgc3BlY2lmaWVkLgogICAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERUZBVUxUX0ZPTlRfU0laRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJkZWZhdWx0LWZv
bnQtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJEZWZhdWx0IGZvbnQgc2l6ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGRlZmF1bHQgZm9udCBzaXplIHVz
ZWQgdG8gZGlzcGxheSB0ZXh0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhVSU5ULCAxNiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBh
cmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0RFRkFVTFRfRk9OVF9TSVpFXSA9
CisgICAgICAgIGdfcGFyYW1fc3BlY191aW50KAorICAgICAgICAgICAgImRlZmF1bHQtZm9udC1z
aXplIiwKKyAgICAgICAgICAgIF8oIkRlZmF1bHQgZm9udCBzaXplIiksCisgICAgICAgICAgICBf
KCJUaGUgZGVmYXVsdCBmb250IHNpemUgdXNlZCB0byBkaXNwbGF5IHRleHQuIiksCisgICAgICAg
ICAgICAwLCBHX01BWFVJTlQsIDE2LAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFy
YW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczpkZWZhdWx0LW1vbm9z
cGFjZS1mb250LXNpemU6CkBAIC04OTIsMTMgKzg5MywxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
c2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBU
aGUgZGVmYXVsdCBmb250IHNpemUgaW4gcGl4ZWxzIHRvIHVzZSBmb3IgY29udGVudCBkaXNwbGF5
ZWQgaW4KICAgICAgKiBtb25vc3BhY2UgZm9udCBpZiBubyBmb250IHNpemUgaXMgc3BlY2lmaWVk
LgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENs
YXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERUZBVUxUX01P
Tk9TUEFDRV9GT05UX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfdWludCgiZGVmYXVsdC1tb25vc3BhY2UtZm9udC1zaXplIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRlZmF1bHQg
bW9ub3NwYWNlIGZvbnQgc2l6ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGRlZmF1bHQgZm9udCBzaXplIHVzZWQgdG8gZGlz
cGxheSBtb25vc3BhY2UgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsIEdfTUFYVUlOVCwgMTMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQ
YXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9ERUZBVUxUX01PTk9TUEFDRV9G
T05UX1NJWkVdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3VpbnQoCisgICAgICAgICAgICAiZGVm
YXVsdC1tb25vc3BhY2UtZm9udC1zaXplIiwKKyAgICAgICAgICAgIF8oIkRlZmF1bHQgbW9ub3Nw
YWNlIGZvbnQgc2l6ZSIpLAorICAgICAgICAgICAgXygiVGhlIGRlZmF1bHQgZm9udCBzaXplIHVz
ZWQgdG8gZGlzcGxheSBtb25vc3BhY2UgdGV4dC4iKSwKKyAgICAgICAgICAgIDAsIEdfTUFYVUlO
VCwgMTMsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAg
IC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOm1pbmltdW0tZm9udC1zaXplOgpAQCAtOTA3LDI2
ICs5MDgsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0
U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogY29udHJvbHMgdGhlIGFic29sdXRlIHNtYWxs
ZXN0IHNpemUuIFZhbHVlcyBvdGhlciB0aGFuIDAgY2FuCiAgICAgICogcG90ZW50aWFsbHkgYnJl
YWsgcGFnZSBsYXlvdXRzLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9NSU5JTVVNX0ZPTlRfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY191aW50KCJtaW5pbXVtLWZvbnQtc2l6ZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJNaW5pbXVtIGZvbnQg
c2l6ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiVGhlIG1pbmltdW0gZm9udCBzaXplIHVzZWQgdG8gZGlzcGxheSB0ZXh0LiIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
R19NQVhVSU5ULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfTUlOSU1VTV9GT05UX1NJWkVdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3Vp
bnQoCisgICAgICAgICAgICAibWluaW11bS1mb250LXNpemUiLAorICAgICAgICAgICAgXygiTWlu
aW11bSBmb250IHNpemUiKSwKKyAgICAgICAgICAgIF8oIlRoZSBtaW5pbXVtIGZvbnQgc2l6ZSB1
c2VkIHRvIGRpc3BsYXkgdGV4dC4iKSwKKyAgICAgICAgICAgIDAsIEdfTUFYVUlOVCwgMCwKKyAg
ICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAg
ICogV2ViS2l0U2V0dGluZ3M6ZGVmYXVsdC1jaGFyc2V0OgogICAgICAqCiAgICAgICogVGhlIGRl
ZmF1bHQgdGV4dCBjaGFyc2V0IHVzZWQgd2hlbiBpbnRlcnByZXRpbmcgY29udGVudCB3aXRoIGFu
IHVuc3BlY2lmaWVkIGNoYXJzZXQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQUk9QX0RFRkFVTFRfQ0hBUlNFVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImRlZmF1bHQtY2hhcnNldCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRlZmF1bHQg
Y2hhcnNldCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJUaGUgZGVmYXVsdCB0ZXh0IGNoYXJzZXQgdXNlZCB3aGVuIGludGVycHJl
dGluZyBjb250ZW50IHdpdGggdW5zcGVjaWZpZWQgY2hhcnNldC4iKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlzby04ODU5LTEiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9E
RUZBVUxUX0NIQVJTRVRdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAg
ICAgICJkZWZhdWx0LWNoYXJzZXQiLAorICAgICAgICAgICAgXygiRGVmYXVsdCBjaGFyc2V0Iiks
CisgICAgICAgICAgICBfKCJUaGUgZGVmYXVsdCB0ZXh0IGNoYXJzZXQgdXNlZCB3aGVuIGludGVy
cHJldGluZyBjb250ZW50IHdpdGggdW5zcGVjaWZpZWQgY2hhcnNldC4iKSwKKyAgICAgICAgICAg
ICJpc28tODg1OS0xIiwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3Mp
OwogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8qKgpAQCAtOTM3LDEzICs5MzgsMTMgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyog
a2xhc3MpCiAgICAgICoKICAgICAgKiBEZXByZWNhdGVkOiAyLjE2LiBVc2UgI1dlYktpdFdlYlZp
ZXc6aXMtZXBoZW1lcmFsIG9yICNXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXI6aXMtZXBoZW1lcmFs
IGluc3RlYWQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
T2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VO
QUJMRV9QUklWQVRFX0JST1dTSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1wcml2YXRlLWJyb3dzaW5nIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVu
YWJsZSBwcml2YXRlIGJyb3dzaW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJsZSBwcml2YXRlIGJy
b3dzaW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihyZWFkV3JpdGVDb25z
dHJ1Y3RQYXJhbUZsYWdzIHwgR19QQVJBTV9ERVBSRUNBVEVEKSkpOworICAgIHNPYmpQcm9wZXJ0
aWVzW1BST1BfRU5BQkxFX1BSSVZBVEVfQlJPV1NJTkddID0KKyAgICAgICAgZ19wYXJhbV9zcGVj
X2Jvb2xlYW4oCisgICAgICAgICAgICAiZW5hYmxlLXByaXZhdGUtYnJvd3NpbmciLAorICAgICAg
ICAgICAgXygiRW5hYmxlIHByaXZhdGUgYnJvd3NpbmciKSwKKyAgICAgICAgICAgIF8oIldoZXRo
ZXIgdG8gZW5hYmxlIHByaXZhdGUgYnJvd3NpbmciKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFt
RmxhZ3MgfCBHX1BBUkFNX0RFUFJFQ0FURUQpKTsKICNlbmRpZgogCiAgICAgLyoqCkBAIC05NTEs
MjYgKzk1MiwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJL
aXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKgogICAgICAqIERldGVybWluZXMgd2hldGhl
ciBvciBub3QgZGV2ZWxvcGVyIHRvb2xzLCBzdWNoIGFzIHRoZSBXZWIgSW5zcGVjdG9yLCBhcmUg
ZW5hYmxlZC4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdP
YmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5B
QkxFX0RFVkVMT1BFUl9FWFRSQVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLWRldmVsb3Blci1leHRyYXMiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5h
YmxlIGRldmVsb3BlciBleHRyYXMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIGRldmVsb3BlciBl
eHRyYXMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNP
YmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0RFVkVMT1BFUl9FWFRSQVNdID0KKyAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiZW5hYmxlLWRldmVsb3Blci1leHRyYXMi
LAorICAgICAgICAgICAgXygiRW5hYmxlIGRldmVsb3BlciBleHRyYXMiKSwKKyAgICAgICAgICAg
IF8oIldoZXRoZXIgdG8gZW5hYmxlIGRldmVsb3BlciBleHRyYXMiKSwKKyAgICAgICAgICAgIEZB
TFNFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAv
KioKICAgICAgKiBXZWJLaXRTZXR0aW5nczplbmFibGUtcmVzaXphYmxlLXRleHQtYXJlYXM6CiAg
ICAgICoKICAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRleHQgYXJlYXMgY2FuIGJl
IHJlc2l6ZWQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
T2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VO
QUJMRV9SRVNJWkFCTEVfVEVYVF9BUkVBUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtcmVzaXphYmxlLXRleHQtYXJlYXMi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiRW5hYmxlIHJlc2l6YWJsZSB0ZXh0IGFyZWFzIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJs
ZSByZXNpemFibGUgdGV4dCBhcmVhcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFt
RmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9SRVNJWkFCTEVfVEVYVF9B
UkVBU10gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFi
bGUtcmVzaXphYmxlLXRleHQtYXJlYXMiLAorICAgICAgICAgICAgXygiRW5hYmxlIHJlc2l6YWJs
ZSB0ZXh0IGFyZWFzIiksCisgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJsZSByZXNpemFi
bGUgdGV4dCBhcmVhcyIpLAorICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgIHJlYWRXcml0
ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGluZ3M6
ZW5hYmxlLXRhYnMtdG8tbGlua3M6CkBAIC05ODAsMTMgKzk4MSwxMyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAg
ICAgKiBpbiB0aGUgcGFnZSBieSBwcmVzc2luZyB0aGUgdGFiIGtleS4gSWYgdGhlIHNlbGVjdGVk
IGVsZW1lbnQgaXMgZWRpdGFibGUsCiAgICAgICogdGhlbiBwcmVzc2luZyB0YWIga2V5IHdpbGwg
aW5zZXJ0IHRoZSB0YWIgY2hhcmFjdGVyLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9FTkFCTEVfVEFCU19UT19MSU5LUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtdGFicy10by1saW5r
cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJFbmFibGUgdGFicyB0byBsaW5rcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0byBlbmFibGUgdGFi
cyB0byBsaW5rcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAg
ICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9UQUJTX1RPX0xJTktTXSA9CisgICAgICAgIGdf
cGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVuYWJsZS10YWJzLXRvLWxpbmtzIiwK
KyAgICAgICAgICAgIF8oIkVuYWJsZSB0YWJzIHRvIGxpbmtzIiksCisgICAgICAgICAgICBfKCJX
aGV0aGVyIHRvIGVuYWJsZSB0YWJzIHRvIGxpbmtzIiksCisgICAgICAgICAgICBUUlVFLAorICAg
ICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAg
KiBXZWJLaXRTZXR0aW5nczplbmFibGUtZG5zLXByZWZldGNoaW5nOgpAQCAtOTk0LDI2ICs5OTUs
MjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGlu
Z3NDbGFzcyoga2xhc3MpCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcmVm
ZXRjaCBkb21haW4gbmFtZXMuIEROUyBwcmVmZXRjaGluZyBhdHRlbXB0cwogICAgICAqIHRvIHJl
c29sdmUgZG9tYWluIG5hbWVzIGJlZm9yZSBhIHVzZXIgdHJpZXMgdG8gZm9sbG93IGEgbGluay4K
ICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFz
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0ROU19Q
UkVGRVRDSElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1f
c3BlY19ib29sZWFuKCJlbmFibGUtZG5zLXByZWZldGNoaW5nIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBETlMgcHJl
ZmV0Y2hpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIEROUyBwcmVmZXRjaGluZyIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNb
UFJPUF9FTkFCTEVfRE5TX1BSRUZFVENISU5HXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuKAorICAgICAgICAgICAgImVuYWJsZS1kbnMtcHJlZmV0Y2hpbmciLAorICAgICAgICAgICAg
XygiRW5hYmxlIEROUyBwcmVmZXRjaGluZyIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0byBl
bmFibGUgRE5TIHByZWZldGNoaW5nIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAg
IHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0
U2V0dGluZ3M6ZW5hYmxlLWNhcmV0LWJyb3dzaW5nOgogICAgICAqCiAgICAgICogV2hldGhlciB0
byBlbmFibGUgYWNjZXNzaWJpbGl0eSBlbmhhbmNlZCBrZXlib2FyZCBuYXZpZ2F0aW9uLgogICAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfQ0FSRVRfQlJP
V1NJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigiZW5hYmxlLWNhcmV0LWJyb3dzaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBDYXJldCBCcm93c2lu
ZyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiV2hldGhlciB0byBlbmFibGUgYWNjZXNzaWJpbGl0eSBlbmhhbmNlZCBrZXlib2Fy
ZCBuYXZpZ2F0aW9uIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9DQVJFVF9CUk9XU0lOR10gPQorICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtY2FyZXQtYnJvd3Np
bmciLAorICAgICAgICAgICAgXygiRW5hYmxlIENhcmV0IEJyb3dzaW5nIiksCisgICAgICAgICAg
ICBfKCJXaGV0aGVyIHRvIGVuYWJsZSBhY2Nlc3NpYmlsaXR5IGVuaGFuY2VkIGtleWJvYXJkIG5h
dmlnYXRpb24iKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29u
c3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczplbmFi
bGUtZnVsbHNjcmVlbjoKQEAgLTEwMjMsMjYgKzEwMjQsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICog
dGhlIGN1cnJlbnQgZHJhZnQgb2YgdGhlIHNwZWM6CiAgICAgICogaHR0cDovL3d3dy53My5vcmcv
VFIvZnVsbHNjcmVlbi8KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9FTkFCTEVfRlVMTFNDUkVFTiwKLSAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1mdWxsc2NyZWVuIiwKKyAgICBzT2JqUHJv
cGVydGllc1tQUk9QX0VOQUJMRV9GVUxMU0NSRUVOXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19i
b29sZWFuKAorICAgICAgICAgICAgImVuYWJsZS1mdWxsc2NyZWVuIiwKICAgICAgICAgICAgIF8o
IkVuYWJsZSBGdWxsc2NyZWVuIiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJsZSB0
aGUgSmF2YXNjcmlwdCBGdWxsc2NyZWVuIEFQSSIpLAogICAgICAgICAgICAgVFJVRSwKLSAgICAg
ICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICAgICAgICAgIHJlYWRX
cml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGlu
Z3M6cHJpbnQtYmFja2dyb3VuZHM6CiAgICAgICoKICAgICAgKiBXaGV0aGVyIGJhY2tncm91bmQg
aW1hZ2VzIHNob3VsZCBiZSBkcmF3biBkdXJpbmcgcHJpbnRpbmcuCiAgICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1BSSU5UX0JBQ0tHUk9VTkRTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInByaW50LWJh
Y2tncm91bmRzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIlByaW50IEJhY2tncm91bmRzIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIGJhY2tncm91
bmQgaW1hZ2VzIHNob3VsZCBiZSBkcmF3biBkdXJpbmcgcHJpbnRpbmciKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFk
V3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9QUklO
VF9CQUNLR1JPVU5EU10gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAg
ICAgICJwcmludC1iYWNrZ3JvdW5kcyIsCisgICAgICAgICAgICBfKCJQcmludCBCYWNrZ3JvdW5k
cyIpLAorICAgICAgICAgICAgXygiV2hldGhlciBiYWNrZ3JvdW5kIGltYWdlcyBzaG91bGQgYmUg
ZHJhd24gZHVyaW5nIHByaW50aW5nIiksCisgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRT
ZXR0aW5nczplbmFibGUtd2ViYXVkaW86CkBAIC0xMDUzLDE1ICsxMDU0LDEzIEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNz
KQogICAgICAqCiAgICAgICogU2VlIGFsc28gaHR0cHM6Ly93ZWJhdWRpby5naXRodWIuaW8vd2Vi
LWF1ZGlvLWFwaQogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Ci0gICAgICAgIGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9FTkFCTEVfV0VCQVVESU8sCisg
ICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfV0VCQVVESU9dID0KICAgICAgICAgZ19wYXJh
bV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiZW5hYmxlLXdlYmF1ZGlvIiwKICAgICAgICAg
ICAgIF8oIkVuYWJsZSBXZWJBdWRpbyIpLAogICAgICAgICAgICAgXygiV2hldGhlciBXZWJBdWRp
byBjb250ZW50IHNob3VsZCBiZSBoYW5kbGVkIiksCiAgICAgICAgICAgICBUUlVFLAotICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdy
aXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAqIFdlYktpdFNldHRpbmdz
OmVuYWJsZS13ZWJnbDoKQEAgLTEwNjksMTUgKzEwNjgsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgKiBF
bmFibGUgb3IgZGlzYWJsZSBzdXBwb3J0IGZvciBXZWJHTCBvbiBwYWdlcy4gV2ViR0wgZW5hYmxl
cyB3ZWIKICAgICAqIGNvbnRlbnQgdG8gdXNlIGFuIEFQSSBiYXNlZCBvbiBPcGVuR0wgRVMgMi4w
LgogICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAg
Z09iamVjdENsYXNzLAotICAgICAgICBQUk9QX0VOQUJMRV9XRUJHTCwKKyAgICBzT2JqUHJvcGVy
dGllc1tQUk9QX0VOQUJMRV9XRUJHTF0gPQogICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigK
ICAgICAgICAgICAgICJlbmFibGUtd2ViZ2wiLAogICAgICAgICAgICAgXygiRW5hYmxlIFdlYkdM
IiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIFdlYkdMIGNvbnRlbnQgc2hvdWxkIGJlIHJlbmRl
cmVkIiksCiAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0
UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7
CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczphbGxvdy1tb2RhbC1kaWFsb2dzOgpA
QCAtMTA4OSwxMyArMTA4NiwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3Nf
aW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBuZXcgbW9kYWwgZGlhbG9n
cywgc28gbm90IGV2ZW4gdGhlICNXZWJLaXRXZWJWaWV3OjpjcmVhdGUKICAgICAgKiBzaWduYWwg
d2lsbCBiZSBlbWl0dGVkLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9BTExPV19NT0RBTF9ESUFMT0dTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImFsbG93LW1vZGFsLWRpYWxvZ3MiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxs
b3cgbW9kYWwgZGlhbG9ncyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUg
bW9kYWwgZGlhbG9ncyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7
CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9BTExPV19NT0RBTF9ESUFMT0dTXSA9CisgICAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImFsbG93LW1vZGFsLWRpYWxvZ3Mi
LAorICAgICAgICAgICAgXygiQWxsb3cgbW9kYWwgZGlhbG9ncyIpLAorICAgICAgICAgICAgXygi
V2hldGhlciBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgbW9kYWwgZGlhbG9ncyIpLAorICAgICAg
ICAgICAgRkFMU0UsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsK
IAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOnpvb20tdGV4dC1vbmx5OgpAQCAtMTEw
NSwxMyArMTEwMiwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChX
ZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBsaWtlIGZvcm0gY29udHJvbHMgd2ls
bCBiZSBhbHNvIGFmZmVjdGVkIGJ5IHpvb20gZmFjdG9yIHdoZW4KICAgICAgKiB0aGlzIHByb3Bl
cnR5IGlzIGVuYWJsZWQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX1pPT01fVEVYVF9PTkxZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2Jvb2xlYW4oInpvb20tdGV4dC1vbmx5IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlpvb20gVGV4dCBPbmx5
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJXaGV0aGVyIHpvb20gbGV2ZWwgb2Ygd2ViIHZpZXcgY2hhbmdlcyBvbmx5IHRoZSB0
ZXh0IHNpemUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAg
IHNPYmpQcm9wZXJ0aWVzW1BST1BfWk9PTV9URVhUX09OTFldID0KKyAgICAgICAgZ19wYXJhbV9z
cGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiem9vbS10ZXh0LW9ubHkiLAorICAgICAgICAgICAg
XygiWm9vbSBUZXh0IE9ubHkiKSwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgem9vbSBsZXZlbCBv
ZiB3ZWIgdmlldyBjaGFuZ2VzIG9ubHkgdGhlIHRleHQgc2l6ZSIpLAorICAgICAgICAgICAgRkFM
U0UsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8q
KgogICAgICAqIFdlYktpdFNldHRpbmdzOmphdmFzY3JpcHQtY2FuLWFjY2Vzcy1jbGlwYm9hcmQ6
CkBAIC0xMTIwLDEzICsxMTE3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFz
c19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqIHNldCB0byAlVFJVRSwg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoKSBhbGxvd3MgY3V0LCBjb3B5IGFuZCBwYXN0ZSBjb21tYW5k
cy4KICAgICAgKgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9K
QVZBU0NSSVBUX0NBTl9BQ0NFU1NfQ0xJUEJPQVJELAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImphdmFzY3JpcHQtY2FuLWFjY2Vzcy1j
bGlwYm9hcmQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiSmF2YVNjcmlwdCBjYW4gYWNjZXNzIGNsaXBib2FyZCIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hl
dGhlciBKYXZhU2NyaXB0IGNhbiBhY2Nlc3MgQ2xpcGJvYXJkIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0
ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0pBVkFTQ1JJ
UFRfQ0FOX0FDQ0VTU19DTElQQk9BUkRdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4o
CisgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tYWNjZXNzLWNsaXBib2FyZCIsCisgICAgICAg
ICAgICBfKCJKYXZhU2NyaXB0IGNhbiBhY2Nlc3MgY2xpcGJvYXJkIiksCisgICAgICAgICAgICBf
KCJXaGV0aGVyIEphdmFTY3JpcHQgY2FuIGFjY2VzcyBDbGlwYm9hcmQiKSwKKyAgICAgICAgICAg
IEZBTFNFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAg
ICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczptZWRpYS1wbGF5YmFjay1yZXF1aXJlcy11c2Vy
LWdlc3R1cmU6CkBAIC0xMTM3LDEzICsxMTM0LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0
aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqIFNldHRp
bmcgaXQgb24gcmVxdWlyZXMgYSBnZXN0dXJlIGJ5IHRoZSB1c2VyIHRvIHN0YXJ0IHBsYXliYWNr
LCBvciB0bwogICAgICAqIGxvYWQgdGhlIG1lZGlhLgogICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUFJPUF9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19VU0VSX0dFU1RVUkUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVh
bigibWVkaWEtcGxheWJhY2stcmVxdWlyZXMtdXNlci1nZXN0dXJlIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1lZGlhIHBsYXli
YWNrIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciBtZWRpYSBwbGF5YmFjayBy
ZXF1aXJlcyB1c2VyIGdlc3R1cmUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1G
bGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNf
VVNFUl9HRVNUVVJFXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAg
ICAgIm1lZGlhLXBsYXliYWNrLXJlcXVpcmVzLXVzZXItZ2VzdHVyZSIsCisgICAgICAgICAgICBf
KCJNZWRpYSBwbGF5YmFjayByZXF1aXJlcyB1c2VyIGdlc3R1cmUiKSwKKyAgICAgICAgICAgIF8o
IldoZXRoZXIgbWVkaWEgcGxheWJhY2sgcmVxdWlyZXMgdXNlciBnZXN0dXJlIiksCisgICAgICAg
ICAgICBGQUxTRSwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwog
CiAgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGluZ3M6bWVkaWEtcGxheWJhY2stYWxsb3dzLWlu
bGluZToKQEAgLTExNTIsMTMgKzExNDksMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdz
X2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogVGhpcyBpcyAl
VFJVRSBieSBkZWZhdWx0LCBzbyBtZWRpYSBwbGF5YmFjayBjYW4gYmUgaW5saW5lLiBTZXR0aW5n
IGl0IHRvCiAgICAgICogJUZBTFNFIGFsbG93cyBzcGVjaWZ5aW5nIHRoYXQgbWVkaWEgcGxheWJh
Y2sgc2hvdWxkIGJlIGFsd2F5cyBmdWxsc2NyZWVuLgogICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUFJPUF9NRURJQV9QTEFZQkFDS19BTExPV1NfSU5MSU5FLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oIm1lZGlh
LXBsYXliYWNrLWFsbG93cy1pbmxpbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTWVkaWEgcGxheWJhY2sgYWxsb3dzIGlubGlu
ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiV2hldGhlciBtZWRpYSBwbGF5YmFjayBhbGxvd3MgaW5saW5lIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1Bf
TUVESUFfUExBWUJBQ0tfQUxMT1dTX0lOTElORV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigKKyAgICAgICAgICAgICJtZWRpYS1wbGF5YmFjay1hbGxvd3MtaW5saW5lIiwKKyAgICAg
ICAgICAgIF8oIk1lZGlhIHBsYXliYWNrIGFsbG93cyBpbmxpbmUiKSwKKyAgICAgICAgICAgIF8o
IldoZXRoZXIgbWVkaWEgcGxheWJhY2sgYWxsb3dzIGlubGluZSIpLAorICAgICAgICAgICAgVFJV
RSwKKyAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoq
CiAgICAgICogV2ViS2l0U2V0dGluZ3M6ZHJhdy1jb21wb3NpdGluZy1pbmRpY2F0b3JzOgpAQCAt
MTE2NywxMyArMTE2NCwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiB3aXRoIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nIGlzc3VlcyByZWxhdGVkCiAg
ICAgICogdG8gd2ViIGNvbnRlbnQgdGhhdCBpcyBjb21wb3NpdGVkIHdpdGggdGhlIEdQVS4KICAg
ICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRFJBV19DT01QT1NJVElO
R19JTkRJQ0FUT1JTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX2Jvb2xlYW4oImRyYXctY29tcG9zaXRpbmctaW5kaWNhdG9ycyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJEcmF3IGNv
bXBvc2l0aW5nIGluZGljYXRvcnMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZHJhdyBjb21wb3NpdGluZyBi
b3JkZXJzIGFuZCByZXBhaW50IGNvdW50ZXJzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVj
dFBhcmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0RSQVdfQ09NUE9TSVRJTkdf
SU5ESUNBVE9SU10gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAg
ICJkcmF3LWNvbXBvc2l0aW5nLWluZGljYXRvcnMiLAorICAgICAgICAgICAgXygiRHJhdyBjb21w
b3NpdGluZyBpbmRpY2F0b3JzIiksCisgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGRyYXcgY29t
cG9zaXRpbmcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVycyIpLAorICAgICAgICAgICAgRkFM
U0UsCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8q
KgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1zaXRlLXNwZWNpZmljLXF1aXJrczoKQEAg
LTExODUsMTUgKzExODIsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2lu
aXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICogd29ya2Fyb3VuZHMuIEJ5IHR1
cm5pbmcgb24gc2l0ZS1zcGVjaWZpYyBxdWlya3MsIFdlYktpdCB3aWxsCiAgICAgICogc3BlY2lh
bC1jYXNlIHRoaXMgYW5kIG90aGVyIGNhc2VzIHRvIG1ha2Ugc29tZSBzcGVjaWZpYyBzaXRlcyB3
b3JrLgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAg
ICAgIGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9FTkFCTEVfU0lURV9TUEVDSUZJQ19RVUlS
S1MsCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfU0lURV9TUEVDSUZJQ19RVUlSS1Nd
ID0KICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiZW5hYmxlLXNp
dGUtc3BlY2lmaWMtcXVpcmtzIiwKICAgICAgICAgICAgIF8oIkVuYWJsZSBTaXRlIFNwZWNpZmlj
IFF1aXJrcyIpLAogICAgICAgICAgICAgXygiRW5hYmxlcyB0aGUgc2l0ZS1zcGVjaWZpYyBjb21w
YXRpYmlsaXR5IHdvcmthcm91bmRzIiksCiAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdyaXRlQ29u
c3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczplbmFi
bGUtcGFnZS1jYWNoZToKQEAgLTEyMDgsMTMgKzEyMDMsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICog
b2YgY2FjaGVzIGFuZCB0aGVpciBwdXJwb3NlcyBzZWU6CiAgICAgICogaHR0cDovL3dlYmtpdC5v
cmcvYmxvZy80Mjcvd2Via2l0LXBhZ2UtY2FjaGUtaS10aGUtYmFzaWNzLwogICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfUEFHRV9DQUNIRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFi
bGUtcGFnZS1jYWNoZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJFbmFibGUgcGFnZSBjYWNoZSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0aGUg
cGFnZSBjYWNoZSBzaG91bGQgYmUgdXNlZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBh
cmFtRmxhZ3MpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9QQUdFX0NBQ0hFXSA9
CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVuYWJsZS1wYWdl
LWNhY2hlIiwKKyAgICAgICAgICAgIF8oIkVuYWJsZSBwYWdlIGNhY2hlIiksCisgICAgICAgICAg
ICBfKCJXaGV0aGVyIHRoZSBwYWdlIGNhY2hlIHNob3VsZCBiZSB1c2VkIiksCisgICAgICAgICAg
ICBUUlVFLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAg
ICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczp1c2VyLWFnZW50OgpAQCAtMTIyOCwyNiArMTIy
MywyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0
aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byB0aGUg
ZW1wdHkgc3RyaW5nIG9yICVOVUxMLCBpdCB3aWxsIHJldmVydCB0byB0aGUgc3RhbmRhcmQKICAg
ICAgKiB1c2VyLWFnZW50LgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ09iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9VU0VSX0FHRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX3N0cmluZygidXNlci1hZ2VudCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVzZXIgYWdlbnQgc3RyaW5nIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlRoZSB1c2VyIGFnZW50IHN0cmluZyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAvLyBBIG51bGwgc3RyaW5nIGZvcmNlcyB0aGUg
c3RhbmRhcmQgdXNlciBhZ2VudC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAg
IHNPYmpQcm9wZXJ0aWVzW1BST1BfVVNFUl9BR0VOVF0gPQorICAgICAgICBnX3BhcmFtX3NwZWNf
c3RyaW5nKAorICAgICAgICAgICAgInVzZXItYWdlbnQiLAorICAgICAgICAgICAgXygiVXNlciBh
Z2VudCBzdHJpbmciKSwKKyAgICAgICAgICAgIF8oIlRoZSB1c2VyIGFnZW50IHN0cmluZyIpLAor
ICAgICAgICAgICAgbnVsbHB0ciwgLy8gQSBudWxsIHN0cmluZyBmb3JjZXMgdGhlIHN0YW5kYXJk
IHVzZXIgYWdlbnQuCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsK
IAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1zbW9vdGgtc2Nyb2xsaW5n
OgogICAgICAqCiAgICAgICogRW5hYmxlIG9yIGRpc2FibGUgc21vb3RoIHNjcm9sbGluZy4KICAg
ICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX1NNT09USF9T
Q1JPTExJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfYm9vbGVhbigiZW5hYmxlLXNtb290aC1zY3JvbGxpbmciLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIHNtb290aCBz
Y3JvbGxpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIHNtb290aCBzY3JvbGxpbmciKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVz
W1BST1BfRU5BQkxFX1NNT09USF9TQ1JPTExJTkddID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jv
b2xlYW4oCisgICAgICAgICAgICAiZW5hYmxlLXNtb290aC1zY3JvbGxpbmciLAorICAgICAgICAg
ICAgXygiRW5hYmxlIHNtb290aCBzY3JvbGxpbmciKSwKKyAgICAgICAgICAgIF8oIldoZXRoZXIg
dG8gZW5hYmxlIHNtb290aCBzY3JvbGxpbmciKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBX
ZWJLaXRTZXR0aW5nczplbmFibGUtYWNjZWxlcmF0ZWQtMmQtY2FudmFzOgpAQCAtMTI2MSwxMyAr
MTI1NiwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRT
ZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKgogICAgICAqIERlcHJlY2F0ZWQ6IDIuMzIuCiAg
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3Ms
Ci0gICAgICAgIFBST1BfRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUywKLSAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiLAorICAgIHNP
YmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBU10gPQorICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtYWNjZWxlcmF0ZWQt
MmQtY2FudmFzIiwKICAgICAgICAgICAgIF8oIkVuYWJsZSBhY2NlbGVyYXRlZCAyRCBjYW52YXMi
KSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIGFjY2VsZXJhdGVkIDJEIGNhbnZh
cyIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQ
YXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsK
IAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS13cml0ZS1jb25zb2xlLW1l
c3NhZ2VzLXRvLXN0ZG91dDoKQEAgLTEyNzcsMTMgKzEyNzIsMTMgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAg
ICoKICAgICAgKiBTaW5jZTogMi4yCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfRU5BQkxFX1dSSVRFX0NPTlNP
TEVfTUVTU0FHRVNfVE9fU1RET1VULAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5h
YmxlLXdyaXRlLWNvbnNvbGUtbWVzc2FnZXMtdG8tc3Rkb3V0IiwKKyAgICBzT2JqUHJvcGVydGll
c1tQUk9QX0VOQUJMRV9XUklURV9DT05TT0xFX01FU1NBR0VTX1RPX1NURE9VVF0gPQorICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtd3JpdGUtY29uc29s
ZS1tZXNzYWdlcy10by1zdGRvdXQiLAogICAgICAgICAgICAgXygiV3JpdGUgY29uc29sZSBtZXNz
YWdlcyBvbiBzdGRvdXQiKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gd3JpdGUgY29uc29s
ZSBtZXNzYWdlcyBvbiBzdGRvdXQiKSwKICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdyaXRlQ29u
c3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5nczplbmFi
bGUtbWVkaWEtc3RyZWFtOgpAQCAtMTI5NiwxMyArMTI5MSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAg
KgogICAgICAqIFNpbmNlOiAyLjQKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9FTkFCTEVfTUVESUFfU1RSRUFN
LAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLW1lZGlhLXN0cmVhbSIsCisg
ICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfTUVESUFfU1RSRUFNXSA9CisgICAgICAgIGdf
cGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVuYWJsZS1tZWRpYS1zdHJlYW0iLAog
ICAgICAgICAgICAgXygiRW5hYmxlIE1lZGlhU3RyZWFtIiksCiAgICAgICAgICAgICBfKCJXaGV0
aGVyIE1lZGlhU3RyZWFtIGNvbnRlbnQgc2hvdWxkIGJlIGhhbmRsZWQiKSwKICAgICAgICAgICAg
IEZBTFNFLAotICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAg
ICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAg
KiBXZWJLaXRTZXR0aW5nczplbmFibGUtbW9jay1jYXB0dXJlLWRldmljZXM6CkBAIC0xMzEzLDEz
ICsxMzA4LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktp
dFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjQKICAgICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAg
ICAgICAgUFJPUF9FTkFCTEVfTU9DS19DQVBUVVJFX0RFVklDRVMsCisgICAgc09ialByb3BlcnRp
ZXNbUFJPUF9FTkFCTEVfTU9DS19DQVBUVVJFX0RFVklDRVNdID0KICAgICAgICAgZ19wYXJhbV9z
cGVjX2Jvb2xlYW4oImVuYWJsZS1tb2NrLWNhcHR1cmUtZGV2aWNlcyIsCiAgICAgICAgICAgICBf
KCJFbmFibGUgbW9jayBjYXB0dXJlIGRldmljZXMiKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIg
d2UgZXhwb3NlIG1vY2sgY2FwdHVyZSBkZXZpY2VzIG9yIG5vdCIpLAogICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgLyoqCiAgICAgICogV2Vi
S2l0U2V0dGluZ3M6ZW5hYmxlLXNwYXRpYWwtbmF2aWdhdGlvbjoKQEAgLTEzMzMsMTMgKzEzMjcs
MTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGlu
Z3NDbGFzcyoga2xhc3MpCiAgICAgICoKICAgICAgKiBTaW5jZTogMi40CiAgICAgICovCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBS
T1BfRU5BQkxFX1NQQVRJQUxfTkFWSUdBVElPTiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oImVuYWJsZS1zcGF0aWFsLW5hdmlnYXRpb24iLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1Bf
RU5BQkxFX1NQQVRJQUxfTkFWSUdBVElPTl0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVh
bigKKyAgICAgICAgICAgICJlbmFibGUtc3BhdGlhbC1uYXZpZ2F0aW9uIiwKICAgICAgICAgICAg
IF8oIkVuYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24iKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIg
dG8gZW5hYmxlIFNwYXRpYWwgTmF2aWdhdGlvbiBzdXBwb3J0LiIpLAogICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdl
YktpdFNldHRpbmdzOmVuYWJsZS1tZWRpYXNvdXJjZToKQEAgLTEzNTIsMTQgKzEzNDYsMTMgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFz
cyoga2xhc3MpCiAgICAgICoKICAgICAgKiBTaW5jZTogMi40CiAgICAgICovCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfRU5B
QkxFX01FRElBU09VUkNFLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLW1l
ZGlhc291cmNlIiwKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9NRURJQVNPVVJDRV0g
PQorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtbWVk
aWFzb3VyY2UiLAogICAgICAgICAgICAgXygiRW5hYmxlIE1lZGlhU291cmNlIiksCiAgICAgICAg
ICAgICBfKCJXaGV0aGVyIE1lZGlhU291cmNlIHNob3VsZCBiZSBlbmFibGVkLiIpLAogICAgICAg
ICAgICAgVFJVRSwKLSAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
LQorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgIC8qKgog
ICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1lbmNyeXB0ZWQtbWVkaWE6CkBAIC0xMzczLDEz
ICsxMzY2LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktp
dFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjAKICAgICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAg
ICAgICAgUFJPUF9FTkFCTEVfRU5DUllQVEVEX01FRElBLAotICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigiZW5hYmxlLWVuY3J5cHRlZC1tZWRpYSIsCisgICAgc09ialByb3BlcnRpZXNbUFJP
UF9FTkFCTEVfRU5DUllQVEVEX01FRElBXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
KAorICAgICAgICAgICAgImVuYWJsZS1lbmNyeXB0ZWQtbWVkaWEiLAogICAgICAgICAgICAgXygi
RW5hYmxlIEVuY3J5cHRlZE1lZGlhIiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIEVuY3J5cHRl
ZE1lZGlhIHNob3VsZCBiZSBlbmFibGVkLiIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3Jp
dGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdz
OmVuYWJsZS1tZWRpYS1jYXBhYmlsaXRpZXM6CkBAIC0xMzk1LDEzICsxMzg4LDEzIEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGts
YXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjIKICAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9FTkFCTEVf
TUVESUFfQ0FQQUJJTElUSUVTLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxl
LW1lZGlhLWNhcGFiaWxpdGllcyIsCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfTUVE
SUFfQ0FQQUJJTElUSUVTXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAg
ICAgICAgImVuYWJsZS1tZWRpYS1jYXBhYmlsaXRpZXMiLAogICAgICAgICAgICAgXygiRW5hYmxl
IE1lZGlhQ2FwYWJpbGl0aWVzIiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIE1lZGlhQ2FwYWJp
bGl0aWVzIHNob3VsZCBiZSBlbmFibGVkLiIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAg
ICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3Jp
dGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdz
OmFsbG93LWZpbGUtYWNjZXNzLWZyb20tZmlsZS11cmxzOgpAQCAtMTQxNCwxMyArMTQwNywxMyBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0Ns
YXNzKiBrbGFzcykKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjEwCiAgICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1Bf
QUxMT1dfRklMRV9BQ0NFU1NfRlJPTV9GSUxFX1VSTFMsCi0gICAgICAgIGdfcGFyYW1fc3BlY19i
b29sZWFuKCJhbGxvdy1maWxlLWFjY2Vzcy1mcm9tLWZpbGUtdXJscyIsCisgICAgc09ialByb3Bl
cnRpZXNbUFJPUF9BTExPV19GSUxFX0FDQ0VTU19GUk9NX0ZJTEVfVVJMU10gPQorICAgICAgICBn
X3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJhbGxvdy1maWxlLWFjY2Vzcy1mcm9t
LWZpbGUtdXJscyIsCiAgICAgICAgICAgICBfKCJBbGxvdyBmaWxlIGFjY2VzcyBmcm9tIGZpbGUg
VVJMcyIpLAogICAgICAgICAgICAgXygiV2hldGhlciBmaWxlIGFjY2VzcyBpcyBhbGxvd2VkIGZy
b20gZmlsZSBVUkxzLiIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICByZWFkV3Jp
dGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQ
YXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmFsbG93LXVuaXZl
cnNhbC1hY2Nlc3MtZnJvbS1maWxlLXVybHM6CkBAIC0xNDM0LDEzICsxNDI3LDEzIEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGts
YXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMTQKICAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9BTExPV19V
TklWRVJTQUxfQUNDRVNTX0ZST01fRklMRV9VUkxTLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigiYWxsb3ctdW5pdmVyc2FsLWFjY2Vzcy1mcm9tLWZpbGUtdXJscyIsCisgICAgc09ialBy
b3BlcnRpZXNbUFJPUF9BTExPV19VTklWRVJTQUxfQUNDRVNTX0ZST01fRklMRV9VUkxTXSA9Cisg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImFsbG93LXVuaXZlcnNh
bC1hY2Nlc3MtZnJvbS1maWxlLXVybHMiLAogICAgICAgICAgICAgXygiQWxsb3cgdW5pdmVyc2Fs
IGFjY2VzcyBmcm9tIHRoZSBjb250ZXh0IG9mIGZpbGUgc2NoZW1lIFVSTHMiKSwKICAgICAgICAg
ICAgIF8oIldoZXRoZXIgb3Igbm90IHVuaXZlcnNhbCBhY2Nlc3MgaXMgYWxsb3dlZCBmcm9tIHRo
ZSBjb250ZXh0IG9mIGZpbGUgc2NoZW1lIFVSTHMiKSwKICAgICAgICAgICAgIEZBTFNFLAotICAg
ICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVh
ZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0
aW5nczphbGxvdy10b3AtbmF2aWdhdGlvbi10by1kYXRhLXVybHM6CkBAIC0xNDUyLDEzICsxNDQ1
LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRp
bmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjgKICAgICAgKi8KLSAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAg
UFJPUF9BTExPV19UT1BfTkFWSUdBVElPTl9UT19EQVRBX1VSTFMsCi0gICAgICAgIGdfcGFyYW1f
c3BlY19ib29sZWFuKCJhbGxvdy10b3AtbmF2aWdhdGlvbi10by1kYXRhLXVybHMiLAorICAgIHNP
YmpQcm9wZXJ0aWVzW1BST1BfQUxMT1dfVE9QX05BVklHQVRJT05fVE9fREFUQV9VUkxTXSA9Cisg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImFsbG93LXRvcC1uYXZp
Z2F0aW9uLXRvLWRhdGEtdXJscyIsCiAgICAgICAgICAgICBfKCJBbGxvdyB0b3AgZnJhbWUgbmF2
aWdhdGlvbiB0byBkYXRhIFVSTHMiKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgb3Igbm90IHRv
cCBmcmFtZSBuYXZpZ2F0aW9uIGlzIGFsbG93ZWQgdG8gZGF0YSBVUkxzIiksCiAgICAgICAgICAg
ICBGQUxTRSwKLSAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAg
ICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAjaWYgUExBVEZPUk0o
R1RLKQogICAgIC8qKgpAQCAtMTQ3OCwxNCArMTQ3MSwxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
c2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgKgog
ICAgICAqIFNpbmNlOiAyLjE2CiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfSEFSRFdBUkVfQUNDRUxFUkFUSU9O
X1BPTElDWSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImhhcmR3YXJlLWFjY2VsZXJhdGlv
bi1wb2xpY3kiLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfSEFSRFdBUkVfQUNDRUxFUkFUSU9O
X1BPTElDWV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgKKyAgICAgICAgICAgICJoYXJk
d2FyZS1hY2NlbGVyYXRpb24tcG9saWN5IiwKICAgICAgICAgICAgIF8oIkhhcmR3YXJlIEFjY2Vs
ZXJhdGlvbiBQb2xpY3kiKSwKICAgICAgICAgICAgIF8oIlRoZSBwb2xpY3kgdG8gZGVjaWRlIGhv
dyB0byBlbmFibGUgYW5kIGRpc2FibGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIiksCiAgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9MSUNZLAogICAgICAgICAg
ICAgV0VCS0lUX0hBUkRXQVJFX0FDQ0VMRVJBVElPTl9QT0xJQ1lfT05fREVNQU5ELAotICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdy
aXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRTZXR0aW5n
czplbmFibGUtYmFjay1mb3J3YXJkLW5hdmlnYXRpb24tZ2VzdHVyZXM6CkBAIC0xNDk0LDEzICsx
NDg3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNl
dHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjQKICAgICAgKi8K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAg
ICAgUFJPUF9FTkFCTEVfQkFDS19GT1JXQVJEX05BVklHQVRJT05fR0VTVFVSRVMsCi0gICAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtYmFjay1mb3J3YXJkLW5hdmlnYXRpb24tZ2Vz
dHVyZXMiLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0JBQ0tfRk9SV0FSRF9OQVZJ
R0FUSU9OX0dFU1RVUkVTXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAg
ICAgICAgImVuYWJsZS1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1nZXN0dXJlcyIsCiAgICAgICAg
ICAgICBfKCJFbmFibGUgYmFjay1mb3J3YXJkIG5hdmlnYXRpb24gZ2VzdHVyZXMiKSwKICAgICAg
ICAgICAgIF8oIldoZXRoZXIgaG9yaXpvbnRhbCBzd2lwZSBnZXN0dXJlIHdpbGwgdHJpZ2dlciBi
YWNrLWZvcndhcmQgbmF2aWdhdGlvbiIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAg
ICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3JpdGVD
b25zdHJ1Y3RQYXJhbUZsYWdzKTsKICNlbmRpZiAvLyBQTEFURk9UTShHVEspCiAKICAgICAvKioK
QEAgLTE1MTIsMTMgKzE1MDUsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNz
X2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICoKICAgICAgKiBTaW5jZTog
Mi4yNAogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVj
dENsYXNzLAotICAgICAgICBQUk9QX0VOQUJMRV9KQVZBU0NSSVBUX01BUktVUCwKLSAgICAgICAg
Z19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1qYXZhc2NyaXB0LW1hcmt1cCIsCisgICAgc09i
alByb3BlcnRpZXNbUFJPUF9FTkFCTEVfSkFWQVNDUklQVF9NQVJLVVBdID0KKyAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiZW5hYmxlLWphdmFzY3JpcHQtbWFya3Vw
IiwKICAgICAgICAgICAgIF8oIkVuYWJsZSBKYXZhU2NyaXB0IE1hcmt1cCIpLAogICAgICAgICAg
ICAgXygiRW5hYmxlIEphdmFTY3JpcHQgaW4gZG9jdW1lbnQgbWFya3VwLiIpLAogICAgICAgICAg
ICAgVFJVRSwKLSAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKyAg
ICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOwogCiAgICAgLyoqCiAgICAg
ICogV2ViS2l0U2V0dGluZ3M6ZW5hYmxlLW1lZGlhOgpAQCAtMTUyOSwxMyArMTUyMiwxMyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNz
KiBrbGFzcykKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjI2CiAgICAgICovCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfRU5B
QkxFX01FRElBLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLW1lZGlhIiwK
KyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9NRURJQV0gPQorICAgICAgICBnX3BhcmFt
X3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlbmFibGUtbWVkaWEiLAogICAgICAgICAgICAg
XygiRW5hYmxlIG1lZGlhIiksCiAgICAgICAgICAgICBfKCJXaGV0aGVyIG1lZGlhIGNvbnRlbnQg
c2hvdWxkIGJlIGhhbmRsZWQiKSwKICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICByZWFk
V3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1
Y3RQYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOm1lZGlhLWNv
bnRlbnQtdHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQ6CkBAIC0xNTQ1LDEzICsxNTM4
LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRp
bmdzQ2xhc3MqIGtsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMzAKICAgICAgKi8KLSAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAg
UFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19IQVJEV0FSRV9TVVBQT1JULAotICAg
ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJtZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1o
YXJkd2FyZS1zdXBwb3J0IiwKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX01FRElBX0NPTlRFTlRf
VFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBPUlRdID0KKyAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygKKyAgICAgICAgICAgICJtZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJk
d2FyZS1zdXBwb3J0IiwKICAgICAgICAgICAgIF8oIk1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWly
aW5nIGhhcmR3YXJlIHN1cHBvcnQiKSwKICAgICAgICAgICAgIF8oIkxpc3Qgb2YgbWVkaWEgY29u
dGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4iKSwKICAgICAgICAgICAgIG51
bGxwdHIsIC8vIEEgbnVsbCBzdHJpbmcgZm9yY2VzIHRoZSBkZWZhdWx0IHZhbHVlLgotICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworICAgICAgICAgICAgcmVhZFdy
aXRlQ29uc3RydWN0UGFyYW1GbGFncyk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnRpZXMoZ09iamVjdENsYXNzLCBOX1BST1BFUlRJRVMsIHNPYmpQcm9wZXJ0aWVzKTsKIH0K
IAogV2ViUHJlZmVyZW5jZXMqIHdlYmtpdFNldHRpbmdzR2V0UHJlZmVyZW5jZXMoV2ViS2l0U2V0
dGluZ3MqIHNldHRpbmdzKQpAQCAtMTYyNSw3ICsxNjIwLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGlu
Z3Nfc2V0X2VuYWJsZV9qYXZhc2NyaXB0KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xl
YW4gZW4KICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEphdmFT
Y3JpcHRFbmFibGVkKGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0
aW5ncyksICJlbmFibGUtamF2YXNjcmlwdCIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3Bl
YyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0pBVkFTQ1JJ
UFRdKTsKIH0KIAogLyoqCkBAIC0xNjYwLDcgKzE2NTUsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFu
IGVuYQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVD
VChzZXR0aW5ncyksICJhdXRvLWxvYWQtaW1hZ2VzIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5
X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9BVVRPX0xPQURf
SU1BR0VTXSk7CiB9CiAKIC8qKgpAQCAtMTY5NSw3ICsxNjkwLDcgQEAgdm9pZCB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKFdlYktpdFNl
dHRpbmdzKgogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UoZW5hYmxlZCk7Ci0gICAg
Z19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImxvYWQtaWNvbnMtaWdub3Jpbmct
aW1hZ2UtbG9hZC1zZXR0aW5nIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JK
RUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9MT0FEX0lDT05TX0lHTk9SSU5HX0lN
QUdFX0xPQURfU0VUVElOR10pOwogfQogCiAvKioKQEAgLTE3MzAsNyArMTcyNSw3IEBAIHZvaWQg
d2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25fY2FjaGUo
V2ViS2l0U2V0dGluZ3MqIHNlCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoZW5hYmxlZCk7Ci0gICAg
Z19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS1vZmZsaW5lLXdlYi1h
cHBsaWNhdGlvbi1jYWNoZSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVD
VChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OX0NBQ0hFXSk7CiB9CiAKIC8qKgpAQCAtMTc2NSw3ICsxNzYwLDcgQEAgdm9pZCB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9odG1sNV9sb2NhbF9zdG9yYWdlKFdlYktpdFNldHRpbmdz
KiBzZXR0aW5ncywgZ2IKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMt
PnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIik7CisgICAgZ19v
YmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNb
UFJPUF9FTkFCTEVfSFRNTDVfTE9DQUxfU1RPUkFHRV0pOwogfQogCiAvKioKQEAgLTE4MDAsNyAr
MTc5NSw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfaHRtbDVfZGF0YWJhc2Uo
V2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhCiAgICAgICAgIHJldHVybjsKIAogICAg
IHByaXYtPnByZWZlcmVuY2VzLT5zZXREYXRhYmFzZXNFbmFibGVkKGVuYWJsZWQpOwotICAgIGdf
b2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtaHRtbDUtZGF0YWJhc2Ui
KTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2Jq
UHJvcGVydGllc1tQUk9QX0VOQUJMRV9IVE1MNV9EQVRBQkFTRV0pOwogfQogCiAvKioKQEAgLTE4
MzUsNyArMTgzMCw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfeHNzX2F1ZGl0
b3IoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlCiAgICAgICAgIHJldHVybjsK
IAogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChlbmFibGVkKTsK
LSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXhzcy1hdWRp
dG9yIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwg
c09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfWFNTX0FVRElUT1JdKTsKIH0KIAogLyoqCkBAIC0x
ODcwLDcgKzE4NjUsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2Zs
YXR0ZW5pbmcoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbAogICAgICAgICByZXR1cm47
CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChlbmFi
bGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLWZy
YW1lLWZsYXR0ZW5pbmciKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qo
c2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9GUkFNRV9GTEFUVEVOSU5HXSk7
CiB9CiAKIC8qKgpAQCAtMTk0MSw3ICsxOTM2LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9qYXZhKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEphdmFFbmFibGVk
KGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFi
bGUtamF2YSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5n
cyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0pBVkFdKTsKIH0KIAogLyoqCkBAIC0xOTc2
LDcgKzE5NzEsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfamF2YXNjcmlwdF9jYW5fb3Bl
bl93aW5kb3dzX2F1dG9tYXRpY2FsbHkoV2ViS2l0U2V0dGluZwogICAgICAgICByZXR1cm47CiAK
ICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3Mp
LCAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRpY2FsbHkiKTsKKyAgICBnX29i
amVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQ
Uk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZXSk7CiB9CiAKIC8q
KgpAQCAtMjAxMSw3ICsyMDA2LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9o
eXBlcmxpbmtfYXVkaXRpbmcoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm8KICAgICAgICAg
cmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAi
ZW5hYmxlLWh5cGVybGluay1hdWRpdGluZyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3Bl
YyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0hZUEVSTElO
S19BVURJVElOR10pOwogfQogCiAvKioKQEAgLTIwNDgsNyArMjA0Myw3IEBAIHZvaWQgd2Via2l0
X3NldHRpbmdzX3NldF9kZWZhdWx0X2ZvbnRfZmFtaWx5KFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cywgY29uc3QgZ2NoCiAgICAgU3RyaW5nIHN0YW5kYXJkRm9udEZhbWlseSA9IFN0cmluZzo6ZnJv
bVVURjgoZGVmYXVsdEZvbnRGYW1pbHkpOwogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRTdGFu
ZGFyZEZvbnRGYW1pbHkoc3RhbmRhcmRGb250RmFtaWx5KTsKICAgICBwcml2LT5kZWZhdWx0Rm9u
dEZhbWlseSA9IHN0YW5kYXJkRm9udEZhbWlseS51dGY4KCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5
KEdfT0JKRUNUKHNldHRpbmdzKSwgImRlZmF1bHQtZm9udC1mYW1pbHkiKTsKKyAgICBnX29iamVj
dF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X0RFRkFVTFRfRk9OVF9GQU1JTFldKTsKIH0KIAogLyoqCkBAIC0yMDg1LDcgKzIwODAsNyBAQCB2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfbW9ub3NwYWNlX2ZvbnRfZmFtaWx5KFdlYktpdFNldHRp
bmdzKiBzZXR0aW5ncywgY29uc3QgZwogICAgIFN0cmluZyBmaXhlZEZvbnRGYW1pbHkgPSBTdHJp
bmc6OmZyb21VVEY4KG1vbm9zcGFjZUZvbnRGYW1pbHkpOwogICAgIHByaXYtPnByZWZlcmVuY2Vz
LT5zZXRGaXhlZEZvbnRGYW1pbHkoZml4ZWRGb250RmFtaWx5KTsKICAgICBwcml2LT5tb25vc3Bh
Y2VGb250RmFtaWx5ID0gZml4ZWRGb250RmFtaWx5LnV0ZjgoKTsKLSAgICBnX29iamVjdF9ub3Rp
ZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAibW9ub3NwYWNlLWZvbnQtZmFtaWx5Iik7CisgICAgZ19v
YmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNb
UFJPUF9NT05PU1BBQ0VfRk9OVF9GQU1JTFldKTsKIH0KIAogLyoqCkBAIC0yMTIyLDcgKzIxMTcs
NyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfc2VyaWZfZm9udF9mYW1pbHkoV2ViS2l0U2V0
dGluZ3MqIHNldHRpbmdzLCBjb25zdCBnY2hhcgogICAgIFN0cmluZyBzZXJpZkZvbnRGYW1pbHlT
dHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHNlcmlmRm9udEZhbWlseSk7CiAgICAgcHJpdi0+cHJl
ZmVyZW5jZXMtPnNldFNlcmlmRm9udEZhbWlseShzZXJpZkZvbnRGYW1pbHlTdHJpbmcpOwogICAg
IHByaXYtPnNlcmlmRm9udEZhbWlseSA9IHNlcmlmRm9udEZhbWlseVN0cmluZy51dGY4KCk7Ci0g
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgInNlcmlmLWZvbnQtZmFtaWx5
Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09i
alByb3BlcnRpZXNbUFJPUF9TRVJJRl9GT05UX0ZBTUlMWV0pOwogfQogCiAvKioKQEAgLTIxNTks
NyArMjE1NCw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9zYW5zX3NlcmlmX2ZvbnRfZmFt
aWx5KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QKICAgICBTdHJpbmcgc2Fuc1Nlcmlm
Rm9udEZhbWlseVN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoc2Fuc1NlcmlmRm9udEZhbWlseSk7
CiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2Fuc1Nlcmlm
Rm9udEZhbWlseVN0cmluZyk7CiAgICAgcHJpdi0+c2Fuc1NlcmlmRm9udEZhbWlseSA9IHNhbnNT
ZXJpZkZvbnRGYW1pbHlTdHJpbmcudXRmOCgpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVD
VChzZXR0aW5ncyksICJzYW5zLXNlcmlmLWZvbnQtZmFtaWx5Iik7CisgICAgZ19vYmplY3Rfbm90
aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9TQU5T
X1NFUklGX0ZPTlRfRkFNSUxZXSk7CiB9CiAKIC8qKgpAQCAtMjE5Niw3ICsyMTkxLDcgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2N1cnNpdmVfZm9udF9mYW1pbHkoV2ViS2l0U2V0dGluZ3Mq
IHNldHRpbmdzLCBjb25zdCBnY2gKICAgICBTdHJpbmcgY3Vyc2l2ZUZvbnRGYW1pbHlTdHJpbmcg
PSBTdHJpbmc6OmZyb21VVEY4KGN1cnNpdmVGb250RmFtaWx5KTsKICAgICBwcml2LT5wcmVmZXJl
bmNlcy0+c2V0Q3Vyc2l2ZUZvbnRGYW1pbHkoY3Vyc2l2ZUZvbnRGYW1pbHlTdHJpbmcpOwogICAg
IHByaXYtPmN1cnNpdmVGb250RmFtaWx5ID0gY3Vyc2l2ZUZvbnRGYW1pbHlTdHJpbmcudXRmOCgp
OwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJjdXJzaXZlLWZvbnQt
ZmFtaWx5Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdz
KSwgc09ialByb3BlcnRpZXNbUFJPUF9DVVJTSVZFX0ZPTlRfRkFNSUxZXSk7CiB9CiAKIC8qKgpA
QCAtMjIzMyw3ICsyMjI4LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2ZhbnRhc3lfZm9u
dF9mYW1pbHkoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBnY2gKICAgICBTdHJpbmcg
ZmFudGFzeUZvbnRGYW1pbHlTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGZhbnRhc3lGb250RmFt
aWx5KTsKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RmFudGFzeUZvbnRGYW1pbHkoZmFudGFz
eUZvbnRGYW1pbHlTdHJpbmcpOwogICAgIHByaXYtPmZhbnRhc3lGb250RmFtaWx5ID0gZmFudGFz
eUZvbnRGYW1pbHlTdHJpbmcudXRmOCgpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChz
ZXR0aW5ncyksICJmYW50YXN5LWZvbnQtZmFtaWx5Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5
X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9GQU5UQVNZX0ZP
TlRfRkFNSUxZXSk7CiB9CiAKIC8qKgpAQCAtMjI3MCw3ICsyMjY1LDcgQEAgdm9pZCB3ZWJraXRf
c2V0dGluZ3Nfc2V0X3BpY3RvZ3JhcGhfZm9udF9mYW1pbHkoV2ViS2l0U2V0dGluZ3MqIHNldHRp
bmdzLCBjb25zdAogICAgIFN0cmluZyBwaWN0b2dyYXBoRm9udEZhbWlseVN0cmluZyA9IFN0cmlu
Zzo6ZnJvbVVURjgocGljdG9ncmFwaEZvbnRGYW1pbHkpOwogICAgIHByaXYtPnByZWZlcmVuY2Vz
LT5zZXRQaWN0b2dyYXBoRm9udEZhbWlseShwaWN0b2dyYXBoRm9udEZhbWlseVN0cmluZyk7CiAg
ICAgcHJpdi0+cGljdG9ncmFwaEZvbnRGYW1pbHkgPSBwaWN0b2dyYXBoRm9udEZhbWlseVN0cmlu
Zy51dGY4KCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgInBpY3Rv
Z3JhcGgtZm9udC1mYW1pbHkiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpF
Q1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX1BJQ1RPR1JBUEhfRk9OVF9GQU1JTFld
KTsKIH0KIAogLyoqCkBAIC0yMzA1LDcgKzIzMDAsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19z
ZXRfZGVmYXVsdF9mb250X3NpemUoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBndWludDMyIGZv
bgogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RGVmYXVsdEZv
bnRTaXplKGZvbnRTaXplKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3Mp
LCAiZGVmYXVsdC1mb250LXNpemUiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19P
QkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0RFRkFVTFRfRk9OVF9TSVpFXSk7
CiB9CiAKIC8qKgpAQCAtMjM0MCw3ICsyMzM1LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2RlZmF1bHRfbW9ub3NwYWNlX2ZvbnRfc2l6ZShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGcK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldERlZmF1bHRGaXhl
ZEZvbnRTaXplKGZvbnRTaXplKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGlu
Z3MpLCAiZGVmYXVsdC1tb25vc3BhY2UtZm9udC1zaXplIik7CisgICAgZ19vYmplY3Rfbm90aWZ5
X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9ERUZBVUxU
X01PTk9TUEFDRV9GT05UX1NJWkVdKTsKIH0KIAogLyoqCkBAIC0yMzc1LDcgKzIzNzAsNyBAQCB2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfbWluaW11bV9mb250X3NpemUoV2ViS2l0U2V0dGluZ3Mq
IHNldHRpbmdzLCBndWludDMyIGZvbgogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVm
ZXJlbmNlcy0+c2V0TWluaW11bUZvbnRTaXplKGZvbnRTaXplKTsKLSAgICBnX29iamVjdF9ub3Rp
ZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAibWluaW11bS1mb250LXNpemUiKTsKKyAgICBnX29iamVj
dF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X01JTklNVU1fRk9OVF9TSVpFXSk7CiB9CiAKIC8qKgpAQCAtMjQxMiw3ICsyNDA3LDcgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2RlZmF1bHRfY2hhcnNldChXZWJLaXRTZXR0aW5ncyogc2V0
dGluZ3MsIGNvbnN0IGdjaGFyKgogICAgIFN0cmluZyBkZWZhdWx0Q2hhcnNldFN0cmluZyA9IFN0
cmluZzo6ZnJvbVVURjgoZGVmYXVsdENoYXJzZXQpOwogICAgIHByaXYtPnByZWZlcmVuY2VzLT5z
ZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShkZWZhdWx0Q2hhcnNldFN0cmluZyk7CiAgICAgcHJp
di0+ZGVmYXVsdENoYXJzZXQgPSBkZWZhdWx0Q2hhcnNldFN0cmluZy51dGY4KCk7Ci0gICAgZ19v
YmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImRlZmF1bHQtY2hhcnNldCIpOworICAg
IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0
aWVzW1BST1BfREVGQVVMVF9DSEFSU0VUXSk7CiB9CiAKICNpZiBQTEFURk9STShHVEspCkBAIC0y
NDgyLDcgKzI0NzcsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2RldmVsb3Bl
cl9leHRyYXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbAogICAgICAgICByZXR1cm47
CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFi
bGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLWRl
dmVsb3Blci1leHRyYXMiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qo
c2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9ERVZFTE9QRVJfRVhUUkFTXSk7
CiB9CiAKIC8qKgpAQCAtMjUxNyw3ICsyNTEyLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9yZXNpemFibGVfdGV4dF9hcmVhcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGcK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldFRleHRBcmVhc0Fy
ZVJlc2l6YWJsZShlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGlu
Z3MpLCAiZW5hYmxlLXJlc2l6YWJsZS10ZXh0LWFyZWFzIik7CisgICAgZ19vYmplY3Rfbm90aWZ5
X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVf
UkVTSVpBQkxFX1RFWFRfQVJFQVNdKTsKIH0KIAogLyoqCkBAIC0yNTUyLDcgKzI1NDcsNyBAQCB2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3RhYnNfdG9fbGlua3MoV2ViS2l0U2V0dGlu
Z3MqIHNldHRpbmdzLCBnYm9vbGVhbgogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVm
ZXJlbmNlcy0+c2V0VGFic1RvTGlua3MoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS10YWJzLXRvLWxpbmtzIik7CisgICAgZ19vYmplY3Rf
bm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9F
TkFCTEVfVEFCU19UT19MSU5LU10pOwogfQogCiAvKioKQEAgLTI1ODcsNyArMjU4Miw3IEBAIHZv
aWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZG5zX3ByZWZldGNoaW5nKFdlYktpdFNldHRp
bmdzKiBzZXR0aW5ncywgZ2Jvb2xlCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZl
cmVuY2VzLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS1kbnMtcHJlZmV0Y2hpbmciKTsKKyAg
ICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVy
dGllc1tQUk9QX0VOQUJMRV9ETlNfUFJFRkVUQ0hJTkddKTsKIH0KIAogLyoqCkBAIC0yNjIyLDcg
KzI2MTcsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2NhcmV0X2Jyb3dzaW5n
KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYQogICAgICAgICByZXR1cm47CiAKICAg
ICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZW5hYmxlZCk7Ci0g
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS1jYXJldC1icm93
c2luZyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyks
IHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0NBUkVUX0JST1dTSU5HXSk7CiB9CiAKIC8qKgpA
QCAtMjY1Nyw3ICsyNjUyLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9mdWxs
c2NyZWVuKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW4KICAgICAgICAgcmV0
dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEZ1bGxTY3JlZW5FbmFibGVkKGVuYWJs
ZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtZnVs
bHNjcmVlbiIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5n
cyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0ZVTExTQ1JFRU5dKTsKIH0KIAogLyoqCkBA
IC0yNjkyLDcgKzI2ODcsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfcHJpbnRfYmFja2dy
b3VuZHMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBwcgogICAgICAgICByZXR1
cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhw
cmludEJhY2tncm91bmRzKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3Mp
LCAicHJpbnQtYmFja2dyb3VuZHMiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19P
QkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX1BSSU5UX0JBQ0tHUk9VTkRTXSk7
CiB9CiAKIC8qKgpAQCAtMjcyNyw3ICsyNzIyLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV93ZWJhdWRpbyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuYWIK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldFdlYkF1ZGlvRW5h
YmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAi
ZW5hYmxlLXdlYmF1ZGlvIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNU
KHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfV0VCQVVESU9dKTsKIH0KIAog
LyoqCkBAIC0yNzYyLDcgKzI3NTcsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxl
X3dlYmdsKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW5hYmxlZAogICAgICAg
ICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0V2ViR0xFbmFibGVkKGVuYWJs
ZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtd2Vi
Z2wiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBz
T2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9XRUJHTF0pOwogfQogCiAvKioKQEAgLTI3OTUsNyAr
Mjc5MCw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19tb2RhbF9kaWFsb2dzKFdl
YktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4KICAgICAgICAgcmV0dXJuOwogCiAgICAg
cHJpdi0+YWxsb3dNb2RhbERpYWxvZ3MgPSBhbGxvd2VkOwotICAgIGdfb2JqZWN0X25vdGlmeShH
X09CSkVDVChzZXR0aW5ncyksICJhbGxvdy1tb2RhbC1kaWFsb2dzIik7CisgICAgZ19vYmplY3Rf
bm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9B
TExPV19NT0RBTF9ESUFMT0dTXSk7CiB9CiAKIC8qKgpAQCAtMjgzMCw3ICsyODI1LDcgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X3pvb21fdGV4dF9vbmx5KFdlYktpdFNldHRpbmdzKiBzZXR0
aW5ncywgZ2Jvb2xlYW4gem9vbVQKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+em9vbVRl
eHRPbmx5ID0gem9vbVRleHRPbmx5OwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0
aW5ncyksICJ6b29tLXRleHQtb25seSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfWk9PTV9URVhUX09OTFldKTsK
IH0KIAogLyoqCkBAIC0yODY3LDcgKzI4NjIsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRf
amF2YXNjcmlwdF9jYW5fYWNjZXNzX2NsaXBib2FyZChXZWJLaXRTZXR0aW5ncyogc2V0dGluZwog
CiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQo
ZW5hYmxlZCk7CiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldERPTVBhc3RlQWxsb3dlZChlbmFi
bGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiamF2YXNjcmlw
dC1jYW4tYWNjZXNzLWNsaXBib2FyZCIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfSkFWQVNDUklQVF9DQU5fQUND
RVNTX0NMSVBCT0FSRF0pOwogfQogCiAvKioKQEAgLTI5MDMsNyArMjg5OCw3IEBAIHZvaWQgd2Vi
a2l0X3NldHRpbmdzX3NldF9tZWRpYV9wbGF5YmFja19yZXF1aXJlc191c2VyX2dlc3R1cmUoV2Vi
S2l0U2V0dGluZ3MqIHNlCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZlcmVuY2Vz
LT5zZXRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yTWVkaWFQbGF5YmFjayhlbmFibGVkKTsKLSAgICBn
X29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAibWVkaWEtcGxheWJhY2stcmVxdWly
ZXMtdXNlci1nZXN0dXJlIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNU
KHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19V
U0VSX0dFU1RVUkVdKTsKIH0KIAogLyoqCkBAIC0yOTM5LDcgKzI5MzQsNyBAQCB2b2lkIHdlYmtp
dF9zZXR0aW5nc19zZXRfbWVkaWFfcGxheWJhY2tfYWxsb3dzX2lubGluZShXZWJLaXRTZXR0aW5n
cyogc2V0dGluZ3MsCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZlcmVuY2VzLT5z
ZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlm
eShHX09CSkVDVChzZXR0aW5ncyksICJtZWRpYS1wbGF5YmFjay1hbGxvd3MtaW5saW5lIik7Cisg
ICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3Bl
cnRpZXNbUFJPUF9NRURJQV9QTEFZQkFDS19BTExPV1NfSU5MSU5FXSk7CiB9CiAKIC8qKgpAQCAt
Mjk3NSw3ICsyOTcwLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2RyYXdfY29tcG9zaXRp
bmdfaW5kaWNhdG9ycyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGcKIAogICAgIHByaXYtPnBy
ZWZlcmVuY2VzLT5zZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKGVuYWJsZWQpOwogICAgIHBy
aXYtPnByZWZlcmVuY2VzLT5zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoZW5h
YmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImRyYXctY29t
cG9zaXRpbmctaW5kaWNhdG9ycyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09C
SkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRFJBV19DT01QT1NJVElOR19JTkRJ
Q0FUT1JTXSk7CiB9CiAKIC8qKgpAQCAtMzAxMCw3ICszMDA1LDcgQEAgdm9pZCB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9zaXRlX3NwZWNpZmljX3F1aXJrcyhXZWJLaXRTZXR0aW5ncyogc2V0
dGluZ3MsIGcKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldE5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChzZXR0aW5ncyksICJlbmFibGUtc2l0ZS1zcGVjaWZpYy1xdWlya3MiKTsKKyAgICBnX29i
amVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQ
Uk9QX0VOQUJMRV9TSVRFX1NQRUNJRklDX1FVSVJLU10pOwogfQogCiAvKioKQEAgLTMwNDUsNyAr
MzA0MCw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfcGFnZV9jYWNoZShXZWJL
aXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuCiAgICAgICAgIHJldHVybjsKIAogICAg
IHByaXYtPnByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVkKTsKLSAg
ICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBhZ2UtY2FjaGUi
KTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2Jq
UHJvcGVydGllc1tQUk9QX0VOQUJMRV9QQUdFX0NBQ0hFXSk7CiB9CiAKIC8qKgpAQCAtMzA5MCw3
ICszMDg1LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfYWdlbnQoV2ViS2l0U2V0
dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyKiB1c2VyQWcKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgcHJpdi0+dXNlckFnZW50ID0gbmV3VXNlckFnZW50OwotICAgIGdfb2JqZWN0X25vdGlmeShH
X09CSkVDVChzZXR0aW5ncyksICJ1c2VyLWFnZW50Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5
X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9VU0VSX0FHRU5U
XSk7CiB9CiAKIC8qKgpAQCAtMzE0Myw3ICszMTM4LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nf
c2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jv
b2wKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldFNjcm9sbEFu
aW1hdG9yRW5hYmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0
dGluZ3MpLCAiZW5hYmxlLXNtb290aC1zY3JvbGxpbmciKTsKKyAgICBnX29iamVjdF9ub3RpZnlf
YnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9T
TU9PVEhfU0NST0xMSU5HXSk7CiB9CiAKIC8qKgpAQCAtMzIxOCw3ICszMjEzLDcgQEAgdm9pZCB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV93cml0ZV9jb25zb2xlX21lc3NhZ2VzX3RvX3N0ZG91
dChXZWJLaXRTZXR0aW5ncyoKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5j
ZXMtPnNldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKGVuYWJsZWQpOwot
ICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtd3JpdGUtY29u
c29sZS1tZXNzYWdlcy10by1zdGRvdXQiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMo
R19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9XUklURV9DT05T
T0xFX01FU1NBR0VTX1RPX1NURE9VVF0pOwogfQogCiAvKioKQEAgLTMyNTksNyArMzI1NCw3IEBA
IHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc3RyZWFtKFdlYktpdFNldHRp
bmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4KICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFE
ZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFT
dHJlYW1FbmFibGVkKGVuYWJsZWQpOwogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRQZWVyQ29u
bmVjdGlvbkVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNl
dHRpbmdzKSwgImVuYWJsZS1tZWRpYS1zdHJlYW0iKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlf
cHNwZWMoR19PQkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9NRURJ
QV9TVFJFQU1dKTsKIH0KIAogLyoqCkBAIC0zMjk4LDcgKzMyOTMsNyBAQCB2b2lkIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX21vY2tfY2FwdHVyZV9kZXZpY2VzKFdlYktpdFNldHRpbmdzKiBz
ZXR0aW5ncywgZwogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0
TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLW1vY2stY2FwdHVyZS1kZXZpY2VzIik7CisgICAg
Z19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRp
ZXNbUFJPUF9FTkFCTEVfTU9DS19DQVBUVVJFX0RFVklDRVNdKTsKIH0KIAogLyoqCkBAIC0zMzIx
LDcgKzMzMTYsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3NwYXRpYWxfbmF2
aWdhdGlvbihXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdibwogICAgICAgICByZXR1cm47CiAK
ICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGVuYWJs
ZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtc3Bh
dGlhbC1uYXZpZ2F0aW9uIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNU
KHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfU1BBVElBTF9OQVZJR0FUSU9O
XSk7CiB9CiAKIApAQCAtMzM3OCw3ICszMzczLDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9tZWRpYXNvdXJjZShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGUK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldE1lZGlhU291cmNl
RW5hYmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3Mp
LCAiZW5hYmxlLW1lZGlhc291cmNlIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdf
T0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfTUVESUFTT1VSQ0Vd
KTsKIH0KIAogLyoqCkBAIC0zNDE4LDcgKzM0MTMsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19z
ZXRfZW5hYmxlX2VuY3J5cHRlZF9tZWRpYShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29s
ZQogICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RW5jcnlwdGVk
TWVkaWFBUElFbmFibGVkKGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChz
ZXR0aW5ncyksICJlbmFibGUtZW5jcnlwdGVkLW1lZGlhIik7CisgICAgZ19vYmplY3Rfbm90aWZ5
X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVf
RU5DUllQVEVEX01FRElBXSk7CiB9CiAKIC8qKgpAQCAtMzQ1OCw3ICszNDUzLDcgQEAgdm9pZCB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9jYXBhYmlsaXRpZXMoV2ViS2l0U2V0dGlu
Z3MqIHNldHRpbmdzLCBnYm8KICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5j
ZXMtPnNldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChlbmFibGVkKTsKLSAgICBnX29iamVjdF9u
b3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLW1lZGlhLWNhcGFiaWxpdGllcyIpOwor
ICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfRU5BQkxFX01FRElBX0NBUEFCSUxJVElFU10pOwogfQogCiAvKioKQEAgLTM0
OTYsNyArMzQ5MSw3IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19maWxlX2FjY2Vz
c19mcm9tX2ZpbGVfdXJscyhXZWJLaXRTZXR0aW5ncyogc2V0dGluCiAgICAgICAgIHJldHVybjsK
IAogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
YWxsb3dlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFsbG93
LWZpbGUtYWNjZXNzLWZyb20tZmlsZS11cmxzIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3Bz
cGVjKEdfT0JKRUNUKHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9BTExPV19GSUxFX0FD
Q0VTU19GUk9NX0ZJTEVfVVJMU10pOwogfQogCiAvKioKQEAgLTM1MzQsNyArMzUyOSw3IEBAIHZv
aWQgd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd191bml2ZXJzYWxfYWNjZXNzX2Zyb21fZmlsZV91
cmxzKFdlYktpdFNldHRpbmdzKiBzCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZl
cmVuY2VzLT5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhhbGxvd2VkKTsKLSAg
ICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiYWxsb3ctdW5pdmVyc2FsLWFj
Y2Vzcy1mcm9tLWZpbGUtdXJscyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09C
SkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfQUxMT1dfVU5JVkVSU0FMX0FDQ0VT
U19GUk9NX0ZJTEVfVVJMU10pOwogfQogCiAvKioKQEAgLTM1NzMsNyArMzU2OCw3IEBAIHZvaWQg
d2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3BfbmF2aWdhdGlvbl90b19kYXRhX3VybHMoV2Vi
S2l0U2V0dGluZ3MqIHNldHRpCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKGFsbG93ZWQpOwotICAgIGdfb2Jq
ZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJhbGxvdy10b3AtbmF2aWdhdGlvbi10by1k
YXRhLXVybHMiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGlu
Z3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0FMTE9XX1RPUF9OQVZJR0FUSU9OX1RPX0RBVEFfVVJM
U10pOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMzY1OSw3ICszNjU0LDcgQEAgdm9pZCB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3koV2ViS2l0U2V0
dGluZ3MqIHNldHRpbmdzLAogICAgIH0KIAogICAgIGlmIChjaGFuZ2VkKQotICAgICAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiaGFyZHdhcmUtYWNjZWxlcmF0aW9uLXBv
bGljeSIpOworICAgICAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qoc2V0dGlu
Z3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0hBUkRXQVJFX0FDQ0VMRVJBVElPTl9QT0xJQ1ldKTsK
IH0KIAogLyoqCkBAIC0zNjk3LDcgKzM2OTIsNyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX2JhY2tfZm9yd2FyZF9uYXZpZ2F0aW9uX2dlc3R1cmVzKFdlYktpdFNldHRpbmdzKgog
ICAgICAgICByZXR1cm47CiAKICAgICBwcml2LT5lbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25H
ZXN0dXJlcyA9IGVuYWJsZWQ7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdz
KSwgImVuYWJsZS1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi1nZXN0dXJlcyIpOworICAgIGdfb2Jq
ZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BS
T1BfRU5BQkxFX0JBQ0tfRk9SV0FSRF9OQVZJR0FUSU9OX0dFU1RVUkVTXSk7CiB9CiAKIC8qKgpA
QCAtMzc3Myw3ICszNzY4LDcgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZh
c2NyaXB0X21hcmt1cChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib28KICAgICAgICAgcmV0
dXJuOwogCiAgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRNYXJrdXBFbmFibGVk
KGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFi
bGUtamF2YXNjcmlwdC1tYXJrdXAiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19P
QkpFQ1Qoc2V0dGluZ3MpLCBzT2JqUHJvcGVydGllc1tQUk9QX0VOQUJMRV9KQVZBU0NSSVBUX01B
UktVUF0pOwogfQogCiAvKioKQEAgLTM4MTIsNyArMzgwNyw3IEBAIHZvaWQgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfbWVkaWEoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBl
bmFibGVkCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRNZWRp
YUVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdz
KSwgImVuYWJsZS1tZWRpYSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVD
VChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX01FRElBXSk7CiB9CiAKIHZv
aWQgd2Via2l0U2V0dGluZ3NTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24o
V2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBib29sIHJlcXVpcmVkKQpAQCAtMzg2MSw1ICszODU2
LDUgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQoV2ViS2l0U2UKICAgICBTdHJpbmcgbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KG1lZGlh
Q29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKICAgICBwcml2LT5wcmVmZXJl
bmNlcy0+c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQobWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJpbmcpOwogICAgIHByaXYtPm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJpbmcudXRmOCgpOwotICAgIGdfb2JqZWN0X25v
dGlmeShHX09CSkVDVChzZXR0aW5ncyksICJtZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1o
YXJkd2FyZS1zdXBwb3J0Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNU
KHNldHRpbmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJ
UklOR19IQVJEV0FSRV9TVVBQT1JUXSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDkzODgyODJlYjFmMDBi
NzM0MWViMjk0NTU0NWE1YjYzYTc5NjE3NDQuLjZkZDlmMjBlNGZmMmJkYTAxODRkMDY0NTMwMWNl
ZjIyZTQ3ZGNmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xMTQsNyArMTE0LDYgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogZW51bSB7CiAgICAgUFJPUF8wLAotCiAjaWYgUExBVEZPUk0oR1RLKQog
ICAgIFBST1BfTE9DQUxfU1RPUkFHRV9ESVJFQ1RPUlksCiAjZW5kaWYKQEAgLTEyMiwxMSArMTIx
LDE0IEBAIGVudW0gewogI2lmIFBMQVRGT1JNKEdUSykKICAgICBQUk9QX1BTT05fRU5BQkxFRCwK
ICNpZiAhVVNFKEdUSzQpCi0gICAgUFJPUF9VU0VfU1lTWUVNX0FQUEVBUkFOQ0VfRk9SX1NDUk9M
TEJBUlMKKyAgICBQUk9QX1VTRV9TWVNURU1fQVBQRUFSQU5DRV9GT1JfU0NST0xMQkFSUywKICNl
bmRpZgogI2VuZGlmCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMq
IHNPYmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKIGVudW0gewog
ICAgIERPV05MT0FEX1NUQVJURUQsCiAgICAgSU5JVElBTElaRV9XRUJfRVhURU5TSU9OUywKQEAg
LTMzOSw3ICszNDEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSUQsIEdWYWx1ZSogdgogICAgICAgICBnX3ZhbHVl
X3NldF9ib29sZWFuKHZhbHVlLCBjb250ZXh0LT5wcml2LT5wc29uRW5hYmxlZCk7CiAgICAgICAg
IGJyZWFrOwogI2lmICFVU0UoR1RLNCkKLSAgICBjYXNlIFBST1BfVVNFX1NZU1lFTV9BUFBFQVJB
TkNFX0ZPUl9TQ1JPTExCQVJTOgorICAgIGNhc2UgUFJPUF9VU0VfU1lTVEVNX0FQUEVBUkFOQ0Vf
Rk9SX1NDUk9MTEJBUlM6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfdXNlX3N5c3RlbV9hcHBlYXJhbmNlX2Zvcl9zY3JvbGxiYXJzKGNv
bnRleHQpKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKQEAgLTM2OSw3ICszNzEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wSUQsIGNvbnN0IEdWYQogICAgICAgICBjb250ZXh0LT5wcml2LT5wc29uRW5hYmxlZCA9
IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVhazsKICNpZiAhVVNFKEdU
SzQpCi0gICAgY2FzZSBQUk9QX1VTRV9TWVNZRU1fQVBQRUFSQU5DRV9GT1JfU0NST0xMQkFSUzoK
KyAgICBjYXNlIFBST1BfVVNFX1NZU1RFTV9BUFBFQVJBTkNFX0ZPUl9TQ1JPTExCQVJTOgogICAg
ICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3VzZV9zeXN0ZW1fYXBwZWFyYW5jZV9mb3Jfc2Ny
b2xsYmFycyhjb250ZXh0LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCkBAIC00NzMsMTUgKzQ3NSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFz
cwogICAgICAqCiAgICAgICogRGVwcmVjYXRlZDogMi4xMC4gVXNlICNXZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXI6bG9jYWwtc3RvcmFnZS1kaXJlY3RvcnkgaW5zdGVhZC4KICAgICAgKi8KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0g
ICAgICAgIFBST1BfTE9DQUxfU1RPUkFHRV9ESVJFQ1RPUlksCisgICAgc09ialByb3BlcnRpZXNb
UFJPUF9MT0NBTF9TVE9SQUdFX0RJUkVDVE9SWV0gPQogICAgICAgICBnX3BhcmFtX3NwZWNfc3Ry
aW5nKAogICAgICAgICAgICAgImxvY2FsLXN0b3JhZ2UtZGlyZWN0b3J5IiwKICAgICAgICAgICAg
IF8oIkxvY2FsIFN0b3JhZ2UgRGlyZWN0b3J5IiksCiAgICAgICAgICAgICBfKCJUaGUgZGlyZWN0
b3J5IHdoZXJlIGxvY2FsIHN0b3JhZ2UgZGF0YSB3aWxsIGJlIHNhdmVkIiksCiAgICAgICAgICAg
ICBudWxscHRyLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9Q
QVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOworICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFN
X0NPTlNUUlVDVF9PTkxZKSk7CiAjZW5kaWYKIAogICAgIC8qKgpAQCAtNDkxLDE1ICs0OTEsMTMg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0V2ViQ29u
dGV4dENsYXNzKiB3ZWJDb250ZXh0Q2xhc3MKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjEwCiAg
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09i
amVjdENsYXNzLAotICAgICAgICBQUk9QX1dFQlNJVEVfREFUQV9NQU5BR0VSLAorICAgIHNPYmpQ
cm9wZXJ0aWVzW1BST1BfV0VCU0lURV9EQVRBX01BTkFHRVJdID0KICAgICAgICAgZ19wYXJhbV9z
cGVjX29iamVjdCgKICAgICAgICAgICAgICJ3ZWJzaXRlLWRhdGEtbWFuYWdlciIsCiAgICAgICAg
ICAgICBfKCJXZWJzaXRlIERhdGEgTWFuYWdlciIpLAogICAgICAgICAgICAgXygiVGhlIFdlYktp
dFdlYnNpdGVEYXRhTWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0IiksCiAgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9XRUJTSVRFX0RBVEFfTUFOQUdFUiwKLSAgICAgICAgICAgIHN0
YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D
T05TVFJVQ1RfT05MWSkpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIC8qKgpAQCAtNTE1LDE1ICs1MTMsMTMgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0V2ViQ29udGV4dENsYXNzKiB3ZWJD
b250ZXh0Q2xhc3MKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjI4CiAgICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVjdENsYXNzLAotICAg
ICAgICBQUk9QX1BTT05fRU5BQkxFRCwKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1BTT05fRU5B
QkxFRF0gPQogICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKICAgICAgICAgICAgICJwcm9j
ZXNzLXN3YXAtb24tY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLWVuYWJsZWQiLAogICAgICAgICAgICAg
XygiU3dhcCBQcm9jZXNzZXMgb24gQ3Jvc3MtU2l0ZSBOYXZpZ2F0aW9uIiksCiAgICAgICAgICAg
ICBfKCJXaGV0aGVyIHN3YXAgV2ViIHByb2Nlc3NlcyBvbiBjcm9zcy1zaXRlIG5hdmlnYXRpb25z
IGlzIGVuYWJsZWQiKSwKICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVD
VF9PTkxZKSkpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9Q
QVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7CiAKICNpZiAhVVNFKEdU
SzQpCiAgICAgLyoqCkBAIC01MzcsMTggKzUzMywxOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFz
cwogICAgICAqCiAgICAgICogU2luY2U6IDIuMzAKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1Bf
VVNFX1NZU1lFTV9BUFBFQVJBTkNFX0ZPUl9TQ1JPTExCQVJTLAorICAgIHNPYmpQcm9wZXJ0aWVz
W1BST1BfVVNFX1NZU1RFTV9BUFBFQVJBTkNFX0ZPUl9TQ1JPTExCQVJTXSA9CiAgICAgICAgIGdf
cGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgInVzZS1zeXN0ZW0tYXBwZWFyYW5jZS1m
b3Itc2Nyb2xsYmFycyIsCiAgICAgICAgICAgICBfKCJVc2Ugc3lzdGVtIGFwcGVhcmFuY2UgZm9y
IHNjcm9sbGJhcnMiKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gdXNlIHN5c3RlbSBhcHBl
YXJhbmNlIGZvciByZW5kZXJpbmcgc2Nyb2xsYmFycyIpLAogICAgICAgICAgICAgVFJVRSwKLSAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
IHwgR19QQVJBTV9DT05TVFJVQ1QpKSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1G
bGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSk7CiAjZW5k
aWYKICNlbmRpZgogCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmpl
Y3RDbGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7CisKICAgICAvKioKICAgICAg
KiBXZWJLaXRXZWJDb250ZXh0Ojpkb3dubG9hZC1zdGFydGVkOgogICAgICAqIEBjb250ZXh0OiB0
aGUgI1dlYktpdFdlYkNvbnRleHQKQEAgLTE3ODQsNyArMTc4MCw3IEBAIHZvaWQgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF91c2Vfc3lzdGVtX2FwcGVhcmFuY2VfZm9yX3Njcm9sbGJhcnMoV2ViS2l0
V2ViQ29udGV4CiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnRleHQtPnByaXYtPnVzZVN5c3Rl
bUFwcGVhcmFuY2VGb3JTY3JvbGxiYXJzID0gZW5hYmxlZDsKLSAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1QoY29udGV4dCksICJ1c2Utc3lzdGVtLWFwcGVhcmFuY2UtZm9yLXNjcm9sbGJhcnMi
KTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QoY29udGV4dCksIHNPYmpQ
cm9wZXJ0aWVzW1BST1BfVVNFX1NZU1RFTV9BUFBFQVJBTkNFX0ZPUl9TQ1JPTExCQVJTXSk7CiAK
ICAgICBpZiAoIWNvbnRleHQtPnByaXYtPnByb2Nlc3NQb29sKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNv
dXJjZS5jcHAKaW5kZXggOTYwYWQ5NzIwNzZjOTc2ODY0YjQ4NjEzNGJhZjc5NWJlOTJmMGM2OC4u
NmQ2YjIzY2U5Yjg1N2Y2ODk0NmM4OTgzMDIwMTVjOTg2MzRjOWU4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmNwcApA
QCAtNjEsMTEgKzYxLDEyIEBAIGVudW0gewogCiBlbnVtIHsKICAgICBQUk9QXzAsCi0KICAgICBQ
Uk9QX1VSSSwKLSAgICBQUk9QX1JFU1BPTlNFCisgICAgUFJPUF9SRVNQT05TRSwKKyAgICBOX1BS
T1BFUlRJRVMsCiB9OwogCitzdGF0aWMgR1BhcmFtU3BlYyogc09ialByb3BlcnRpZXNbTl9QUk9Q
RVJUSUVTXSA9IHsgbnVsbHB0ciwgfTsKIAogc3RydWN0IF9XZWJLaXRXZWJSZXNvdXJjZVByaXZh
dGUgewogICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5PiBmcmFtZTsKQEAgLTEwNSwyNiArMTA2LDI4
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJS
ZXNvdXJjZUNsYXNzKiByZXNvdXJjZUNsYXNzCiAgICAgICogVGhlIGN1cnJlbnQgYWN0aXZlIFVS
SSBvZiB0aGUgI1dlYktpdFdlYlJlc291cmNlLgogICAgICAqIFNlZSB3ZWJraXRfd2ViX3Jlc291
cmNlX2dldF91cmkoKSBmb3IgbW9yZSBkZXRhaWxzLgogICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX1VSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVSSSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgY3VycmVudCBh
Y3RpdmUgVVJJIG9mIHRoZSByZXNvdXJjZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsK
KyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1VSSV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfc3Ry
aW5nKAorICAgICAgICAgICAgInVyaSIsCisgICAgICAgICAgICBfKCJVUkkiKSwKKyAgICAgICAg
ICAgIF8oIlRoZSBjdXJyZW50IGFjdGl2ZSBVUkkgb2YgdGhlIHJlc291cmNlIiksCisgICAgICAg
ICAgICBudWxscHRyLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKTsKIAogICAg
IC8qKgogICAgICAqIFdlYktpdFdlYlJlc291cmNlOnJlc3BvbnNlOgogICAgICAqCiAgICAgICog
VGhlICNXZWJLaXRVUklSZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXNvdXJjZS4KICAg
ICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRVNQT05TRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoInJlc3Bv
bnNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiUmVzcG9uc2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIHJlc3BvbnNlIG9mIHRoZSByZXNvdXJjZSIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfVFlQRV9VUklfUkVTUE9OU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIHNP
YmpQcm9wZXJ0aWVzW1BST1BfUkVTUE9OU0VdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVj
dCgKKyAgICAgICAgICAgICJyZXNwb25zZSIsCisgICAgICAgICAgICBfKCJSZXNwb25zZSIpLAor
ICAgICAgICAgICAgXygiVGhlIHJlc3BvbnNlIG9mIHRoZSByZXNvdXJjZSIpLAorICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfVVJJX1JFU1BPTlNFLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydGllcyhvYmplY3RD
bGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7CiAKICAgICAvKioKICAgICAgKiBX
ZWJLaXRXZWJSZXNvdXJjZTo6c2VudC1yZXF1ZXN0OgpAQCAtMjI4LDcgKzIzMSw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdFdlYlJlc291cmNlVXBkYXRlVVJJKFdlYktpdFdlYlJlc291cmNlKiByZXNv
dXJjZSwgY29uc3QgQ1N0cmluCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlc291cmNlLT5wcml2
LT51cmkgPSByZXF1ZXN0VVJJOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChyZXNvdXJj
ZSksICJ1cmkiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QocmVzb3Vy
Y2UpLCBzT2JqUHJvcGVydGllc1tQUk9QX1VSSV0pOwogfQogCiBXZWJLaXRXZWJSZXNvdXJjZSog
d2Via2l0V2ViUmVzb3VyY2VDcmVhdGUoV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYktpdFVSSVJl
cXVlc3QqIHJlcXVlc3QsIGJvb2wgaXNNYWluUmVzb3VyY2UpCkBAIC0yNDksNyArMjUyLDcgQEAg
dm9pZCB3ZWJraXRXZWJSZXNvdXJjZVNlbnRSZXF1ZXN0KFdlYktpdFdlYlJlc291cmNlKiByZXNv
dXJjZSwgV2ViS2l0VVJJUmVxdWVzdCoKIHZvaWQgd2Via2l0V2ViUmVzb3VyY2VTZXRSZXNwb25z
ZShXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlc3BvbnNlKiByZXNwb25z
ZSkKIHsKICAgICByZXNvdXJjZS0+cHJpdi0+cmVzcG9uc2UgPSByZXNwb25zZTsKLSAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1QocmVzb3VyY2UpLCAicmVzcG9uc2UiKTsKKyAgICBnX29iamVj
dF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1QocmVzb3VyY2UpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X1JFU1BPTlNFXSk7CiB9CiAKIHZvaWQgd2Via2l0V2ViUmVzb3VyY2VOb3RpZnlQcm9ncmVzcyhX
ZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIGd1aW50NjQgYnl0ZXNSZWNlaXZlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5k
ZXggYzg0NDQwNDM4ZTM4ZmY2YmEzOTZkM2IxNWNjYTY0NjM2NGRmOGFlYS4uMDVlMWM1ZjMzYzUz
NmY5MWRlOTJhODA4MTZiY2Y5NDdmNjYzNWEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTIwMyw5ICsyMDMsMTMgQEAg
ZW51bSB7CiAgICAgUFJPUF9FRElUQUJMRSwKICAgICBQUk9QX1BBR0VfSUQsCiAgICAgUFJPUF9J
U19NVVRFRCwKLSAgICBQUk9QX1dFQlNJVEVfUE9MSUNJRVMKKyAgICBQUk9QX1dFQlNJVEVfUE9M
SUNJRVMsCisKKyAgICBOX1BST1BFUlRJRVMsCiB9OwogCitzdGF0aWMgR1BhcmFtU3BlYyogc09i
alByb3BlcnRpZXNbTl9QUk9QRVJUSUVTXSA9IHsgbnVsbHB0ciwgfTsKKwogdHlwZWRlZiBIYXNo
TWFwPHVpbnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJj
ZXNNYXA7CiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8R1Rhc2s+ID4gU25hcHNo
b3RSZXN1bHRzTWFwOwogCkBAIC0zMzYsMTIgKzM0MCwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRX
ZWJWaWV3U2V0SXNMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgaXNMb2FkaW5n
KQogICAgICAgICByZXR1cm47CiAKICAgICB3ZWJWaWV3LT5wcml2LT5pc0xvYWRpbmcgPSBpc0xv
YWRpbmc7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtbG9hZGlu
ZyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09i
alByb3BlcnRpZXNbUFJPUF9JU19MT0FESU5HXSk7CiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0lz
UGxheWluZ0F1ZGlvQ2hhbmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIGdfb2Jq
ZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImlzLXBsYXlpbmctYXVkaW8iKTsKKyAgICBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVz
W1BST1BfSVNfUExBWUlOR19BVURJT10pOwogfQogCiBjbGFzcyBQYWdlTG9hZFN0YXRlT2JzZXJ2
ZXIgZmluYWwgOiBwdWJsaWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgewpAQCAtMzcwLDcgKzM3
NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFuZ2VUaXRsZSgpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBtX3dlYlZpZXctPnByaXYtPnRpdGxlID0gZ2V0UGFnZShtX3dlYlZpZXcpLnBh
Z2VMb2FkU3RhdGUoKS50aXRsZSgpLnV0ZjgoKTsKLSAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKG1fd2ViVmlldyksICJ0aXRsZSIpOworICAgICAgICBnX29iamVjdF9ub3RpZnlfYnlf
cHNwZWMoR19PQkpFQ1QobV93ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9USVRMRV0pOwog
ICAgICAgICBnX29iamVjdF90aGF3X25vdGlmeShHX09CSkVDVChtX3dlYlZpZXcpKTsKICAgICB9
CiAKQEAgLTM4NSw3ICszODksNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobV93ZWJWaWV3LT5w
cml2LT5pc0FjdGl2ZVVSSUNoYW5nZUJsb2NrZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIG1fd2ViVmlldy0+cHJpdi0+YWN0aXZlVVJJID0gZ2V0UGFnZShtX3dlYlZpZXcpLnBhZ2VM
b2FkU3RhdGUoKS5hY3RpdmVVUkwoKS51dGY4KCk7Ci0gICAgICAgIGdfb2JqZWN0X25vdGlmeShH
X09CSkVDVChtX3dlYlZpZXcpLCAidXJpIik7CisgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9w
c3BlYyhHX09CSkVDVChtX3dlYlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9QX1VSSV0pOwogICAg
ICAgICBnX29iamVjdF90aGF3X25vdGlmeShHX09CSkVDVChtX3dlYlZpZXcpKTsKICAgICB9CiAK
QEAgLTM5OCw3ICs0MDIsNyBAQCBwcml2YXRlOgogICAgIH0KICAgICB2b2lkIGRpZENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGdfb2JqZWN0X25vdGlm
eShHX09CSkVDVChtX3dlYlZpZXcpLCAiZXN0aW1hdGVkLWxvYWQtcHJvZ3Jlc3MiKTsKKyAgICAg
ICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKG1fd2ViVmlldyksIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfRVNUSU1BVEVEX0xPQURfUFJPR1JFU1NdKTsKICAgICAgICAgZ19vYmplY3Rf
dGhhd19ub3RpZnkoR19PQkpFQ1QobV93ZWJWaWV3KSk7CiAgICAgfQogCkBAIC01NjIsNyArNTY2
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld1VwZGF0ZUZhdmljb24oV2ViS2l0V2ViVmll
dyogd2ViVmlldywgY2Fpcm9fc3VyZmFjZV90KgogICAgICAgICByZXR1cm47CiAKICAgICBwcml2
LT5mYXZpY29uID0gZmF2aWNvbjsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmll
dyksICJmYXZpY29uIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdl
YlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9QX0ZBVklDT05dKTsKIH0KIAogc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0NhbmNlbEZhdmljb25SZXF1ZXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CkBAIC0xMDA1LDE1ICsxMDA5LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICog
c2luY2U6IDIuMjAKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfQkFDS0VORCwKKyAgICBzT2Jq
UHJvcGVydGllc1tQUk9QX0JBQ0tFTkRdID0KICAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVkKAog
ICAgICAgICAgICAgImJhY2tlbmQiLAogICAgICAgICAgICAgXygiQmFja2VuZCIpLAogICAgICAg
ICAgICAgXygiVGhlIGJhY2tlbmQgZm9yIHRoZSB3ZWIgdmlldyIpLAogICAgICAgICAgICAgV0VC
S0lUX1RZUEVfV0VCX1ZJRVdfQkFDS0VORCwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJh
bUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkp
KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVB
RFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogI2VuZGlmCiAKICAgICAvKioKQEAg
LTEwMjEsMTMgKzEwMjMsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2lu
aXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBUaGUg
I1dlYktpdFdlYkNvbnRleHQgb2YgdGhlIHZpZXcuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX1dFQl9DT05URVhULAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgid2ViLWNvbnRleHQiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXZWIgQ29u
dGV4dCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJUaGUgd2ViIGNvbnRleHQgZm9yIHRoZSB2aWV3IiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9DT05URVhULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklU
RSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9X
RUJfQ09OVEVYVF0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAg
IndlYi1jb250ZXh0IiwKKyAgICAgICAgICAgIF8oIldlYiBDb250ZXh0IiksCisgICAgICAgICAg
ICBfKCJUaGUgd2ViIGNvbnRleHQgZm9yIHRoZSB2aWV3IiksCisgICAgICAgICAgICBXRUJLSVRf
VFlQRV9XRUJfQ09OVEVYVCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogICAgIC8q
KgogICAgICAqIFdlYktpdFdlYlZpZXc6cmVsYXRlZC12aWV3OgogICAgICAqCkBAIC0xMDM3LDE1
ICsxMDM5LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuNAog
ICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdP
YmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9SRUxBVEVEX1ZJRVcsCisgICAgc09ialByb3BlcnRp
ZXNbUFJPUF9SRUxBVEVEX1ZJRVddID0KICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKICAg
ICAgICAgICAgICJyZWxhdGVkLXZpZXciLAogICAgICAgICAgICAgXygiUmVsYXRlZCBXZWJWaWV3
IiksCiAgICAgICAgICAgICBfKCJUaGUgcmVsYXRlZCBXZWJLaXRXZWJWaWV3IHVzZWQgd2hlbiBj
cmVhdGluZyB0aGUgdmlldyB0byBzaGFyZSB0aGUgc2FtZSB3ZWIgcHJvY2VzcyIpLAogICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFy
YW1GbGFncz4oV0VCS0lUX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkp
KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fV1JJ
VEFCTEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7CiAKICAgICAvKioKICAgICAgKiBXZWJL
aXRXZWJWaWV3OnNldHRpbmdzOgpAQCAtMTA1NCwxNSArMTA1NCwxMyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFz
cykKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjYKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1Bf
U0VUVElOR1MsCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9TRVRUSU5HU10gPQogICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KAogICAgICAgICAgICAgInNldHRpbmdzIiwKICAgICAgICAgICAg
IF8oIldlYlZpZXcgc2V0dGluZ3MiKSwKICAgICAgICAgICAgIF8oIlRoZSBXZWJLaXRTZXR0aW5n
cyBvZiB0aGUgdmlldyIpLAogICAgICAgICAgICAgV0VCS0lUX1RZUEVfU0VUVElOR1MsCi0gICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1dSSVRBQkxFIHwg
R19QQVJBTV9DT05TVFJVQ1QpKSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFn
cz4oV0VCS0lUX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9DT05TVFJVQ1QpKTsKIAogICAgIC8q
KgogICAgICAqIFdlYktpdFdlYlZpZXc6dXNlci1jb250ZW50LW1hbmFnZXI6CkBAIC0xMDcxLDE1
ICsxMDY5LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuNgog
ICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdP
YmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9VU0VSX0NPTlRFTlRfTUFOQUdFUiwKKyAgICBzT2Jq
UHJvcGVydGllc1tQUk9QX1VTRVJfQ09OVEVOVF9NQU5BR0VSXSA9CiAgICAgICAgIGdfcGFyYW1f
c3BlY19vYmplY3QoCiAgICAgICAgICAgICAidXNlci1jb250ZW50LW1hbmFnZXIiLAogICAgICAg
ICAgICAgXygiV2ViVmlldyB1c2VyIGNvbnRlbnQgbWFuYWdlciIpLAogICAgICAgICAgICAgXygi
VGhlIFdlYktpdFVzZXJDb250ZW50TWFuYWdlciBvZiB0aGUgdmlldyIpLAogICAgICAgICAgICAg
V0VCS0lUX1RZUEVfVVNFUl9DT05URU5UX01BTkFHRVIsCi0gICAgICAgICAgICBzdGF0aWNfY2Fz
dDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNU
X09OTFkpKSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BB
UkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKIAogICAgIC8qKgogICAg
ICAqIFdlYktpdFdlYlZpZXc6dGl0bGU6CkBAIC0xMDg3LDEzICsxMDgzLDEzIEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmll
d0NsYXNzKQogICAgICAqIFRoZSBtYWluIGZyYW1lIGRvY3VtZW50IHRpdGxlIG9mIHRoaXMgI1dl
YktpdFdlYlZpZXcuIElmCiAgICAgICogdGhlIHRpdGxlIGhhcyBub3QgYmVlbiByZWNlaXZlZCB5
ZXQsIGl0IHdpbGwgYmUgJU5VTEwuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQUk9QX1RJVExFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX3N0cmluZygidGl0bGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaXRsZSIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJNYWluIGZyYW1lIGRvY3Vt
ZW50IHRpdGxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0
aWVzW1BST1BfVElUTEVdID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAg
ICAgICJ0aXRsZSIsCisgICAgICAgICAgICBfKCJUaXRsZSIpLAorICAgICAgICAgICAgXygiTWFp
biBmcmFtZSBkb2N1bWVudCB0aXRsZSIpLAorICAgICAgICAgICAgbnVsbHB0ciwKKyAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJW
aWV3OmVzdGltYXRlZC1sb2FkLXByb2dyZXNzOgpAQCAtMTEwNiwxMyArMTEwMiwxNCBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdl
YlZpZXdDbGFzcykKICAgICAgKiB0byBiZSByZWNlaXZlZCBmb3IgYSBkb2N1bWVudCwgaW5jbHVk
aW5nIGFsbCBpdHMgcG9zc2libGUgc3VicmVzb3VyY2VzCiAgICAgICogYW5kIGNoaWxkIGRvY3Vt
ZW50cy4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmpl
Y3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRVNUSU1B
VEVEX0xPQURfUFJPR1JFU1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfZG91YmxlKCJlc3RpbWF0ZWQtbG9hZC1wcm9ncmVzcyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVzdGltYXRl
ZCBMb2FkIFByb2dyZXNzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkFuIGVzdGltYXRlIG9mIHRoZSBwZXJjZW50IGNvbXBsZXRp
b24gZm9yIGEgZG9jdW1lbnQgbG9hZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAsIDEuMCwgMC4wLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0VTVElNQVRFRF9MT0FEX1BST0dSRVNT
XSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19kb3VibGUoCisgICAgICAgICAgICAiZXN0aW1hdGVk
LWxvYWQtcHJvZ3Jlc3MiLAorICAgICAgICAgICAgXygiRXN0aW1hdGVkIExvYWQgUHJvZ3Jlc3Mi
KSwKKyAgICAgICAgICAgIF8oIkFuIGVzdGltYXRlIG9mIHRoZSBwZXJjZW50IGNvbXBsZXRpb24g
Zm9yIGEgZG9jdW1lbnQgbG9hZCIpLAorICAgICAgICAgICAgMC4wLCAxLjAsIDAuMCwKKyAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSk7CisKICNpZiBQTEFURk9STShHVEspCiAgICAg
LyoqCiAgICAgICogV2ViS2l0V2ViVmlldzpmYXZpY29uOgpAQCAtMTEyMCwxMiArMTExNywxMiBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xh
c3MqIHdlYlZpZXdDbGFzcykKICAgICAgKiBUaGUgZmF2aWNvbiBjdXJyZW50bHkgYXNzb2NpYXRl
ZCB0byB0aGUgI1dlYktpdFdlYlZpZXcuCiAgICAgICogU2VlIHdlYmtpdF93ZWJfdmlld19nZXRf
ZmF2aWNvbigpIGZvciBtb3JlIGRldGFpbHMuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9QX0ZBVklDT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfcG9pbnRlcigiZmF2aWNvbiIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJGYXZpY29uIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJU
aGUgZmF2aWNvbiBhc3NvY2lhdGVkIHRvIHRoZSB2aWV3LCBpZiBhbnkiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRkFWSUNPTl0gPQorICAgICAg
ICBnX3BhcmFtX3NwZWNfcG9pbnRlcigKKyAgICAgICAgICAgICJmYXZpY29uIiwKKyAgICAgICAg
ICAgIF8oIkZhdmljb24iKSwKKyAgICAgICAgICAgIF8oIlRoZSBmYXZpY29uIGFzc29jaWF0ZWQg
dG8gdGhlIHZpZXcsIGlmIGFueSIpLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxF
KTsKICNlbmRpZgogCiAgICAgLyoqCkBAIC0xMTM0LDEzICsxMTMxLDEzIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogICAgICAqIFRoZSBjdXJyZW50IGFjdGl2ZSBVUkkgb2YgdGhlICNXZWJLaXRXZWJWaWV3
LgogICAgICAqIFNlZSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSgpIGZvciBtb3JlIGRldGFpbHMu
CiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xh
c3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1VSSSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIlVSSSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJUaGUgY3VycmVudCBhY3RpdmUgVVJJIG9mIHRoZSB2aWV3IiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfVVJJXSA9Cisg
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAidXJpIiwKKyAgICAgICAg
ICAgIF8oIlVSSSIpLAorICAgICAgICAgICAgXygiVGhlIGN1cnJlbnQgYWN0aXZlIFVSSSBvZiB0
aGUgdmlldyIpLAorICAgICAgICAgICAgbnVsbHB0ciwKKyAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Onpvb20tbGV2ZWw6
CkBAIC0xMTQ4LDE1ICsxMTQ1LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqIFRoZSB6b29t
IGxldmVsIG9mIHRoZSAjV2ViS2l0V2ViVmlldyBjb250ZW50LgogICAgICAqIFNlZSB3ZWJraXRf
d2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwoKSBmb3IgbW9yZSBkZXRhaWxzLgogICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdPYmplY3RDbGFzcywK
LSAgICAgICAgUFJPUF9aT09NX0xFVkVMLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfWk9PTV9M
RVZFTF0gPQogICAgICAgICBnX3BhcmFtX3NwZWNfZG91YmxlKAogICAgICAgICAgICAgInpvb20t
bGV2ZWwiLAogICAgICAgICAgICAgXygiWm9vbSBsZXZlbCIpLAogICAgICAgICAgICAgXygiVGhl
IHpvb20gbGV2ZWwgb2YgdGhlIHZpZXcgY29udGVudCIpLAogICAgICAgICAgICAgMCwgR19NQVhE
T1VCTEUsIDEsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFdl
YlZpZXc6aXMtbG9hZGluZzoKQEAgLTExNjgsMTUgKzExNjMsMTMgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3Mp
CiAgICAgICogV2hlbiB0aGUgbG9hZCBvcGVyYXRpb24gZmluaXNoZXMgdGhlIHByb3BlcnR5IGlz
IHNldCB0byAlRkFMU0UgYmVmb3JlCiAgICAgICogI1dlYktpdFdlYlZpZXc6OmxvYWQtY2hhbmdl
ZCBpcyBlbWl0dGVkIHdpdGggJVdFQktJVF9MT0FEX0ZJTklTSEVELgogICAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdPYmplY3RDbGFzcywKLSAg
ICAgICAgUFJPUF9JU19MT0FESU5HLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfSVNfTE9BRElO
R10gPQogICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKICAgICAgICAgICAgICJpcy1sb2Fk
aW5nIiwKICAgICAgICAgICAgIF8oIklzIExvYWRpbmciKSwKICAgICAgICAgICAgIF8oIldoZXRo
ZXIgdGhlIHZpZXcgaXMgbG9hZGluZyBhIHBhZ2UiKSwKICAgICAgICAgICAgIEZBTFNFLAotICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzppcy1wbGF5aW5n
LWF1ZGlvOgpAQCAtMTE4OCwxNSArMTE4MSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgKgog
ICAgICAqIFNpbmNlOiAyLjgKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfSVNfUExBWUlOR19B
VURJTywKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX0lTX1BMQVlJTkdfQVVESU9dID0KICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiaXMtcGxheWluZy1hdWRpbyIs
CiAgICAgICAgICAgICAiSXMgUGxheWluZyBBdWRpbyIsCiAgICAgICAgICAgICBfKCJXaGV0aGVy
IHRoZSB2aWV3IGlzIHBsYXlpbmcgYXVkaW8iKSwKICAgICAgICAgICAgIEZBTFNFLAotICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzppcy1lcGhlbWVyYWw6
CkBAIC0xMjE2LDE1ICsxMjA3LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICog
U2luY2U6IDIuMTYKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAotICAgICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfSVNfRVBIRU1FUkFMLAorICAg
IHNPYmpQcm9wZXJ0aWVzW1BST1BfSVNfRVBIRU1FUkFMXSA9CiAgICAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuKAogICAgICAgICAgICAgImlzLWVwaGVtZXJhbCIsCiAgICAgICAgICAgICAiSXMg
RXBoZW1lcmFsIiwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHdlYiB2aWV3IGlzIGVwaGVt
ZXJhbCIpLAogICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFy
YW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkp
KSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JF
QURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKIAogICAgIC8qKgogICAgICAqIFdl
YktpdFdlYlZpZXc6aXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uOgpAQCAtMTIzNSwxNSArMTIy
NCwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJW
aWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjE4CiAgICAg
ICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVj
dENsYXNzLAotICAgICAgICBQUk9QX0lTX0NPTlRST0xMRURfQllfQVVUT01BVElPTiwKKyAgICBz
T2JqUHJvcGVydGllc1tQUk9QX0lTX0NPTlRST0xMRURfQllfQVVUT01BVElPTl0gPQogICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKICAgICAgICAgICAgICJpcy1jb250cm9sbGVkLWJ5LWF1
dG9tYXRpb24iLAogICAgICAgICAgICAgIklzIENvbnRyb2xsZWQgQnkgQXV0b21hdGlvbiIsCiAg
ICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSB3ZWIgdmlldyBpcyBjb250cm9sbGVkIGJ5IGF1dG9t
YXRpb24iKSwKICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1Bh
cmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZ
KSkpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9S
RUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7CiAKICAgICAvKioKICAgICAgKiBX
ZWJLaXRXZWJWaWV3OmF1dG9tYXRpb24tcHJlc2VudGF0aW9uLXR5cGU6CkBAIC0xMjU1LDE2ICsx
MjQyLDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6IDIuMjgKICAg
ICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnT2Jq
ZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfQVVUT01BVElPTl9QUkVTRU5UQVRJT05fVFlQRSwKKyAg
ICBzT2JqUHJvcGVydGllc1tQUk9QX0FVVE9NQVRJT05fUFJFU0VOVEFUSU9OX1RZUEVdID0KICAg
ICAgICAgZ19wYXJhbV9zcGVjX2VudW0oCiAgICAgICAgICAgICAiYXV0b21hdGlvbi1wcmVzZW50
YXRpb24tdHlwZSIsCiAgICAgICAgICAgICAiQXV0b21hdGlvbiBQcmVzZW50YXRpb24gVHlwZSIs
CiAgICAgICAgICAgICBfKCJUaGUgYnJvd3NpbmcgY29udGV4dCBwcmVzZW50YXRpb24gdHlwZSBm
b3IgYXV0b21hdGlvbiIpLAogICAgICAgICAgICAgV0VCS0lUX1RZUEVfQVVUT01BVElPTl9CUk9X
U0lOR19DT05URVhUX1BSRVNFTlRBVElPTiwKICAgICAgICAgICAgIFdFQktJVF9BVVRPTUFUSU9O
X0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1dJTkRPVywKLSAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05T
VFJVQ1RfT05MWSkpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJL
SVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogCiAgICAgLyoq
CiAgICAgICogV2ViS2l0V2ViVmlldzplZGl0YWJsZToKQEAgLTEyNzQsMTUgKzEyNTksMTMgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNz
KiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBTaW5jZTogMi44CiAgICAgICovCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVjdENsYXNzLAot
ICAgICAgICBQUk9QX0VESVRBQkxFLAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfRURJVEFCTEVd
ID0KICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiZWRpdGFibGUi
LAogICAgICAgICAgICAgXygiRWRpdGFibGUiKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhl
IGNvbnRlbnQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZSB1c2VyLiIpLAogICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6
cGFnZS1pZDoKQEAgLTEyOTEsMTUgKzEyNzQsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoK
ICAgICAgKiBTaW5jZTogMi4yOAogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoCi0gICAgICAgIGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9QQUdFX0lELAor
ICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfUEFHRV9JRF0gPQogICAgICAgICBnX3BhcmFtX3NwZWNf
dWludDY0KAogICAgICAgICAgICAgInBhZ2UtaWQiLAogICAgICAgICAgICAgXygiUGFnZSBJZGVu
dGlmaWVyIiksCiAgICAgICAgICAgICBfKCJUaGUgcGFnZSBpZGVudGlmaWVyLiIpLAogICAgICAg
ICAgICAgMCwgR19NQVhVSU5UNjQsIDAsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSk7CiAKICAgICAvKioKICAg
ICAgKiBXZWJLaXRXZWJWaWV3OmlzLW11dGVkOgpAQCAtMTMwOSwxNSArMTI5MCwxMyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdl
YlZpZXdDbGFzcykKICAgICAgKgogICAgICAqIFNpbmNlOiAyLjMwCiAgICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVjdENsYXNzLAotICAg
ICAgICBQUk9QX0lTX01VVEVELAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfSVNfTVVURURdID0K
ICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAiaXMtbXV0ZWQiLAog
ICAgICAgICAgICAgIklzIE11dGVkIiwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHZpZXcg
YXVkaW8gaXMgbXV0ZWQiKSwKICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURXUklURSkpOworICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSk7
CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3OndlYnNpdGUtcG9saWNpZXM6CkBAIC0x
MzI2LDE1ICsxMzA1LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0
KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogU2luY2U6
IDIuMzAKICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAg
ICAgICBnT2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfV0VCU0lURV9QT0xJQ0lFUywKKyAgICBz
T2JqUHJvcGVydGllc1tQUk9QX1dFQlNJVEVfUE9MSUNJRVNdID0KICAgICAgICAgZ19wYXJhbV9z
cGVjX29iamVjdCgKICAgICAgICAgICAgICJ3ZWJzaXRlLXBvbGljaWVzIiwKICAgICAgICAgICAg
IF8oIkRlZmF1bHQgV2Vic2l0ZSBQb2xpY2llcyIpLAogICAgICAgICAgICAgXygiVGhlIGRlZmF1
bHQgcG9saWN5IG9iamVjdCBmb3Igc2l0ZXMgbG9hZGVkIGluIHRoaXMgdmlldyIpLAogICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfV0VCU0lURV9QT0xJQ0lFUywKLSAgICAgICAgICAgIHN0YXRpY19j
YXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJV
Q1RfT05MWSkpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOworCisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmplY3RDbGFzcywgTl9QUk9QRVJUSUVTLCBz
T2JqUHJvcGVydGllcyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNo
YW5nZWQ6CkBAIC0yMzQxLDcgKzIzMjAsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdl
ZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9hZEV2ZW50KQogICAg
ICAgICAvLyBhZ2FpbiB3aXRoIHRoZSBwYWdlIGxvYWQgc3RhdGUuCiAgICAgICAgIGlmIChhY3Rp
dmVVUkwgIT0gcHJpdi0+YWN0aXZlVVJJKSB7CiAgICAgICAgICAgICBwcml2LT5hY3RpdmVVUkkg
PSBhY3RpdmVVUkw7Ci0gICAgICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmll
dyksICJ1cmkiKTsKKyAgICAgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVD
VCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9VUkldKTsKICAgICAgICAgfQogI2lmIFBM
QVRGT1JNKEdUSykKICAgICAgICAgV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSA9IHdl
YmtpdF93ZWJfY29udGV4dF9nZXRfZmF2aWNvbl9kYXRhYmFzZShwcml2LT5jb250ZXh0LmdldCgp
KTsKQEAgLTI3ODUsNyArMjc2NCw3IEBAIGJvb2wgd2Via2l0V2ViVmlld1Nob3dPcHRpb25NZW51
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IEludFJlY3QmIHJlY3QsIFdlCiAKIHZvaWQg
d2Via2l0V2ViVmlld0RpZENoYW5nZVBhZ2VJRChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewot
ICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgInBhZ2UtaWQiKTsKKyAgICBn
X29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2ViVmlldyksIHNPYmpQcm9wZXJ0aWVz
W1BST1BfUEFHRV9JRF0pOwogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdEaWRSZWNlaXZlVXNlck1l
c3NhZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgVXNlck1lc3NhZ2UmJiBtZXNzYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpA
QCAtMzI2OSw3ICszMjQ4LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIG11dGVkKQogICAgICAgICByZXR1cm47CiAK
ICAgICBnZXRQYWdlKHdlYlZpZXcpLnNldE11dGVkKG11dGVkID8gV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6QXVkaW9Jc011dGVkIDogV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6Tm9uZU11dGVkKTsK
LSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1tdXRlZCIpOworICAg
IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRp
ZXNbUFJPUF9JU19NVVRFRF0pOwogfQogCiAvKioKQEAgLTM1NTMsNyArMzUzMiw3IEBAIHZvaWQg
d2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRTZXR0aW5ncyogc2V0dGluCiAKICAgICB3ZWJWaWV3LT5wcml2LT5zZXR0aW5ncyA9IHNldHRp
bmdzOwogICAgIHdlYmtpdFdlYlZpZXdVcGRhdGVTZXR0aW5ncyh3ZWJWaWV3KTsKLSAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJzZXR0aW5ncyIpOworICAgIGdfb2JqZWN0
X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9T
RVRUSU5HU10pOwogfQogCiAvKioKQEAgLTM2MTgsNyArMzU5Nyw3IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF96b29tX2xldmVsKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdkb3VibGUgem9v
bUxldmVsKQogICAgICAgICBwYWdlLnNldFRleHRab29tRmFjdG9yKHpvb21MZXZlbCAqIHdlYlZp
ZXctPnByaXYtPnRleHRTY2FsZUZhY3Rvcik7CiAgICAgZWxzZQogICAgICAgICBwYWdlLnNldFBh
Z2Vab29tRmFjdG9yKHpvb21MZXZlbCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdl
YlZpZXcpLCAiem9vbS1sZXZlbCIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09C
SkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9aT09NX0xFVkVMXSk7CiB9CiAKIC8q
KgpAQCAtNDQ3MSw3ICs0NDUwLDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQogCiAgICAgZ2V0UGFn
ZSh3ZWJWaWV3KS5zZXRFZGl0YWJsZShlZGl0YWJsZSk7CiAKLSAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1Qod2ViVmlldyksICJlZGl0YWJsZSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9w
c3BlYyhHX09CSkVDVCh3ZWJWaWV3KSwgc09ialByb3BlcnRpZXNbUFJPUF9FRElUQUJMRV0pOwog
fQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdpbmRvd1Byb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2luZG93UHJvcGVydGllcy5jcHAKaW5kZXggOGYxZTI2MWFhOTNkMzYwNTVlNTJm
YjljMjkxZTc5OTNhNzBiNmNjMy4uMTRhYWFiMWExYWY4YTgzZjMxNzdhYjg3NThlYjExOTBmNjVl
ODA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2luZG93UHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2luZG93UHJvcGVydGllcy5jcHAKQEAgLTk1LDcgKzk1LDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewogICAgIFBST1BfMCwKLQogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBQUk9QX0dFT01FVFJZLAogI2VuZGlmCkBAIC0xMDUsOSArMTA0LDEyIEBAIGVudW0g
ewogICAgIFBST1BfTUVOVUJBUl9WSVNJQkxFLAogICAgIFBST1BfTE9DQVRJT05CQVJfVklTSUJM
RSwKICAgICBQUk9QX1JFU0laQUJMRSwKLSAgICBQUk9QX0ZVTExTQ1JFRU4KKyAgICBQUk9QX0ZV
TExTQ1JFRU4sCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMqIHNP
YmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKIHN0cnVjdCBfV2Vi
S2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUgewogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHZGtS
ZWN0YW5nbGUgZ2VvbWV0cnk7CkBAIC0yMDQsNyArMjA2LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dpbmRvd19wcm9wZXJ0aWVzX2NsYXNzX2luaXQoV2ViS2l0V2luZG93UHJvcGVydGllc0NsYXNz
KiByZXEKICAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0V2luZG93UHJvcGVy
dGllc0dldFByb3BlcnR5OwogICAgIG9iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRX
aW5kb3dQcm9wZXJ0aWVzU2V0UHJvcGVydHk7CiAKLSAgICBHUGFyYW1GbGFncyBwYXJhbUZsYWdz
ID0gc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BB
UkFNX0NPTlNUUlVDVF9PTkxZKTsKKyAgICBjb25zdGV4cHIgR1BhcmFtRmxhZ3MgcGFyYW1GbGFn
cyA9IHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19Q
QVJBTV9DT05TVFJVQ1RfT05MWSk7CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgLyoqCkBAIC0y
MTIsMTMgKzIxNCwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfY2xh
c3NfaW5pdChXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzQ2xhc3MqIHJlcQogICAgICAqCiAgICAgICog
VGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSB3aW5kb3cgb24gdGhlIHNjcmVlbi4KICAgICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9HRU9NRVRSWSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hlZCgiZ2VvbWV0cnki
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIkdlb21ldHJ5IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSB3aW5kb3cgb24g
dGhlIHNjcmVlbi4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHREtfVFlQRV9SRUNUQU5HTEUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1GbGFncykpOworICAgIHNPYmpQ
cm9wZXJ0aWVzW1BST1BfR0VPTUVUUlldID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVkKAor
ICAgICAgICAgICAgImdlb21ldHJ5IiwKKyAgICAgICAgICAgIF8oIkdlb21ldHJ5IiksCisgICAg
ICAgICAgICBfKCJUaGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIHdpbmRvdyBvbiB0aGUgc2Ny
ZWVuLiIpLAorICAgICAgICAgICAgR0RLX1RZUEVfUkVDVEFOR0xFLAorICAgICAgICAgICAgcGFy
YW1GbGFncyk7CiAjZW5kaWYKIAogICAgIC8qKgpAQCAtMjI2LDkwICsyMjgsOTIgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2NsYXNzX2luaXQoV2ViS2l0V2luZG93UHJv
cGVydGllc0NsYXNzKiByZXEKICAgICAgKgogICAgICAqIFdoZXRoZXIgdGhlIHRvb2xiYXIgc2hv
dWxkIGJlIHZpc2libGUgZm9yIHRoZSB3aW5kb3cuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST1BfVE9PTEJBUl9WSVNJQkxFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInRvb2xiYXItdmlzaWJsZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJUb29sYmFyIFZpc2libGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHRvb2xiYXIgc2hvdWxkIGJlIHZp
c2libGUgZm9yIHRoZSB3aW5kb3cuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1GbGFncykpOworICAgIHNPYmpQ
cm9wZXJ0aWVzW1BST1BfVE9PTEJBUl9WSVNJQkxFXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19i
b29sZWFuKAorICAgICAgICAgICAgInRvb2xiYXItdmlzaWJsZSIsCisgICAgICAgICAgICBfKCJU
b29sYmFyIFZpc2libGUiKSwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHRvb2xiYXIgc2hv
dWxkIGJlIHZpc2libGUgZm9yIHRoZSB3aW5kb3cuIiksCisgICAgICAgICAgICBUUlVFLAorICAg
ICAgICAgICAgcGFyYW1GbGFncyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJXaW5kb3dQ
cm9wZXJ0aWVzOnN0YXR1c2Jhci12aXNpYmxlOgogICAgICAqCiAgICAgICogV2hldGhlciB0aGUg
c3RhdHVzYmFyIHNob3VsZCBiZSB2aXNpYmxlIGZvciB0aGUgd2luZG93LgogICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1NUQVRVU0JBUl9WSVNJQkxFLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInN0YXR1
c2Jhci12aXNpYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIlN0YXR1c2JhciBWaXNpYmxlIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSBz
dGF0dXNiYXIgc2hvdWxkIGJlIHZpc2libGUgZm9yIHRoZSB3aW5kb3cuIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
YW1GbGFncykpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfU1RBVFVTQkFSX1ZJU0lCTEVdID0K
KyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAic3RhdHVzYmFyLXZp
c2libGUiLAorICAgICAgICAgICAgXygiU3RhdHVzYmFyIFZpc2libGUiKSwKKyAgICAgICAgICAg
IF8oIldoZXRoZXIgdGhlIHN0YXR1c2JhciBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRv
dy4iKSwKKyAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICBwYXJhbUZsYWdzKTsKIAogICAg
IC8qKgogICAgICAqIFdlYktpdFdlYldpbmRvd1Byb3BlcnRpZXM6c2Nyb2xsYmFycy12aXNpYmxl
OgogICAgICAqCiAgICAgICogV2hldGhlciB0aGUgc2Nyb2xsYmFycyBzaG91bGQgYmUgdmlzaWJs
ZSBmb3IgdGhlIHdpbmRvdy4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KG9iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9TQ1JPTExCQVJTX1ZJU0lCTEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigic2Nyb2xsYmFycy12aXNpYmxlIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNjcm9s
bGJhcnMgVmlzaWJsZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0aGUgc2Nyb2xsYmFycyBzaG91bGQgYmUgdmlz
aWJsZSBmb3IgdGhlIHdpbmRvdy4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbUZsYWdzKSk7CisgICAgc09ialBy
b3BlcnRpZXNbUFJPUF9TQ1JPTExCQVJTX1ZJU0lCTEVdID0KKyAgICAgICAgZ19wYXJhbV9zcGVj
X2Jvb2xlYW4oCisgICAgICAgICAgICAic2Nyb2xsYmFycy12aXNpYmxlIiwKKyAgICAgICAgICAg
IF8oIlNjcm9sbGJhcnMgVmlzaWJsZSIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgc2Ny
b2xsYmFycyBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRvdy4iKSwKKyAgICAgICAgICAg
IFRSVUUsCisgICAgICAgICAgICBwYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIFdlYktp
dFdlYldpbmRvd1Byb3BlcnRpZXM6bWVudWJhci12aXNpYmxlOgogICAgICAqCiAgICAgICogV2hl
dGhlciB0aGUgbWVudWJhciBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRvdy4KICAgICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NRU5VQkFSX1ZJU0lCTEUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigi
bWVudWJhci12aXNpYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIk1lbnViYXIgVmlzaWJsZSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0aGUg
bWVudWJhciBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRvdy4iKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bUZsYWdzKSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9NRU5VQkFSX1ZJU0lCTEVdID0KKyAg
ICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAibWVudWJhci12aXNpYmxl
IiwKKyAgICAgICAgICAgIF8oIk1lbnViYXIgVmlzaWJsZSIpLAorICAgICAgICAgICAgXygiV2hl
dGhlciB0aGUgbWVudWJhciBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRvdy4iKSwKKyAg
ICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICBwYXJhbUZsYWdzKTsKIAogICAgIC8qKgogICAg
ICAqIFdlYktpdFdlYldpbmRvd1Byb3BlcnRpZXM6bG9jYXRpb25iYXItdmlzaWJsZToKICAgICAg
KgogICAgICAqIFdoZXRoZXIgdGhlIGxvY2F0aW9uYmFyIHNob3VsZCBiZSB2aXNpYmxlIGZvciB0
aGUgd2luZG93LgogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
b2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0xP
Q0FUSU9OQkFSX1ZJU0lCTEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfYm9vbGVhbigibG9jYXRpb25iYXItdmlzaWJsZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJMb2NhdGlvbmJh
ciBWaXNpYmxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSBsb2NhdGlvbmJhciBzaG91bGQgYmUgdmlzaWJs
ZSBmb3IgdGhlIHdpbmRvdy4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbUZsYWdzKSk7CisgICAgc09ialByb3Bl
cnRpZXNbUFJPUF9MT0NBVElPTkJBUl9WSVNJQkxFXSA9CisgICAgICAgIGdfcGFyYW1fc3BlY19i
b29sZWFuKAorICAgICAgICAgICAgImxvY2F0aW9uYmFyLXZpc2libGUiLAorICAgICAgICAgICAg
XygiTG9jYXRpb25iYXIgVmlzaWJsZSIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgbG9j
YXRpb25iYXIgc2hvdWxkIGJlIHZpc2libGUgZm9yIHRoZSB3aW5kb3cuIiksCisgICAgICAgICAg
ICBUUlVFLAorICAgICAgICAgICAgcGFyYW1GbGFncyk7CiAgICAgLyoqCiAgICAgICogV2ViS2l0
V2ViV2luZG93UHJvcGVydGllczpyZXNpemFibGU6CiAgICAgICoKICAgICAgKiBXaGV0aGVyIHRo
ZSB3aW5kb3cgY2FuIGJlIHJlc2l6ZWQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBST1BfUkVTSVpBQkxFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInJlc2l6YWJsZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJSZXNpemFibGUiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IldoZXRoZXIgdGhlIHdpbmRvdyBjYW4gYmUgcmVzaXplZC4iKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbUZsYWdz
KSk7CisgICAgc09ialByb3BlcnRpZXNbUFJPUF9SRVNJWkFCTEVdID0KKyAgICAgICAgZ19wYXJh
bV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAicmVzaXphYmxlIiwKKyAgICAgICAgICAgIF8o
IlJlc2l6YWJsZSIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgd2luZG93IGNhbiBiZSBy
ZXNpemVkLiIpLAorICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgIHBhcmFtRmxhZ3MpOwog
CiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViV2luZG93UHJvcGVydGllczpmdWxsc2NyZWVuOgog
ICAgICAqCiAgICAgICogV2hldGhlciB3aW5kb3cgd2lsbCBiZSBkaXNwbGF5ZWQgZnVsbHNjcmVl
bi4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENs
YXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9GVUxMU0NSRUVO
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oImZ1bGxzY3JlZW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiRnVsbHNjcmVlbiIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB3aW5kb3cgd2ls
bCBiZSBkaXNwbGF5ZWQgZnVsbHNjcmVlbi4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1GbGFncykpOworICAg
IHNPYmpQcm9wZXJ0aWVzW1BST1BfRlVMTFNDUkVFTl0gPQorICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigKKyAgICAgICAgICAgICJmdWxsc2NyZWVuIiwKKyAgICAgICAgICAgIF8oIkZ1bGxz
Y3JlZW4iKSwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgd2luZG93IHdpbGwgYmUgZGlzcGxheWVk
IGZ1bGxzY3JlZW4uIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIHBhcmFtRmxh
Z3MpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKG9iamVjdENsYXNz
LCBOX1BST1BFUlRJRVMsIHNPYmpQcm9wZXJ0aWVzKTsKIH0KIAogV2ViS2l0V2luZG93UHJvcGVy
dGllcyogd2Via2l0V2luZG93UHJvcGVydGllc0NyZWF0ZSgpCkBAIC0zMjYsNyArMzMwLDcgQEAg
dm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkoV2ViS2l0V2luZG93UHJvcGVy
dGllcyogd2luZG93UHJvcGVydGllcywKICAgICAgICAgJiYgd2luZG93UHJvcGVydGllcy0+cHJp
di0+Z2VvbWV0cnkuaGVpZ2h0ID09IGdlb21ldHJ5LT5oZWlnaHQpCiAgICAgICAgIHJldHVybjsK
ICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT5nZW9tZXRyeSA9ICpnZW9tZXRyeTsKLSAgICBn
X29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2luZG93UHJvcGVydGllcyksICJnZW9tZXRyeSIpOwor
ICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3aW5kb3dQcm9wZXJ0aWVzKSwg
c09ialByb3BlcnRpZXNbUFJPUF9HRU9NRVRSWV0pOwogfQogI2VuZGlmCiAKQEAgLTMzNSw3ICsz
MzksNyBAQCB2b2lkIHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRUb29sYmFyVmlzaWJsZShXZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9wZQogICAgIGlmICh3aW5kb3dQcm9wZXJ0aWVz
LT5wcml2LT50b29sYmFyVmlzaWJsZSA9PSB0b29sYmFyc1Zpc2libGUpCiAgICAgICAgIHJldHVy
bjsKICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT50b29sYmFyVmlzaWJsZSA9IHRvb2xiYXJz
VmlzaWJsZTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2luZG93UHJvcGVydGllcyks
ICJ0b29sYmFyLXZpc2libGUiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpF
Q1Qod2luZG93UHJvcGVydGllcyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfVE9PTEJBUl9WSVNJQkxF
XSk7CiB9CiAKIHZvaWQgd2Via2l0V2luZG93UHJvcGVydGllc1NldE1lbnViYXJWaXNpYmxlKFdl
YktpdFdpbmRvd1Byb3BlcnRpZXMqIHdpbmRvd1Byb3BlcnRpZXMsIGJvb2wgbWVudUJhclZpc2li
bGUpCkBAIC0zNDMsNyArMzQ3LDcgQEAgdm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0TWVu
dWJhclZpc2libGUoV2ViS2l0V2luZG93UHJvcGVydGllcyogd2luZG93UHJvcGUKICAgICBpZiAo
d2luZG93UHJvcGVydGllcy0+cHJpdi0+bWVudWJhclZpc2libGUgPT0gbWVudUJhclZpc2libGUp
CiAgICAgICAgIHJldHVybjsKICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT5tZW51YmFyVmlz
aWJsZSA9IG1lbnVCYXJWaXNpYmxlOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3aW5k
b3dQcm9wZXJ0aWVzKSwgIm1lbnViYXItdmlzaWJsZSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9i
eV9wc3BlYyhHX09CSkVDVCh3aW5kb3dQcm9wZXJ0aWVzKSwgc09ialByb3BlcnRpZXNbUFJPUF9N
RU5VQkFSX1ZJU0lCTEVdKTsKIH0KIAogdm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0U3Rh
dHVzYmFyVmlzaWJsZShXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9wZXJ0aWVzLCBi
b29sIHN0YXR1c0JhclZpc2libGUpCkBAIC0zNTEsNyArMzU1LDcgQEAgdm9pZCB3ZWJraXRXaW5k
b3dQcm9wZXJ0aWVzU2V0U3RhdHVzYmFyVmlzaWJsZShXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3
aW5kb3dQcm8KICAgICBpZiAod2luZG93UHJvcGVydGllcy0+cHJpdi0+c3RhdHVzYmFyVmlzaWJs
ZSA9PSBzdGF0dXNCYXJWaXNpYmxlKQogICAgICAgICByZXR1cm47CiAgICAgd2luZG93UHJvcGVy
dGllcy0+cHJpdi0+c3RhdHVzYmFyVmlzaWJsZSA9IHN0YXR1c0JhclZpc2libGU7Ci0gICAgZ19v
YmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdpbmRvd1Byb3BlcnRpZXMpLCAic3RhdHVzYmFyLXZpc2li
bGUiKTsKKyAgICBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoR19PQkpFQ1Qod2luZG93UHJvcGVy
dGllcyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfU1RBVFVTQkFSX1ZJU0lCTEVdKTsKIH0KIAogdm9p
ZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0TG9jYXRpb25iYXJWaXNpYmxlKFdlYktpdFdpbmRv
d1Byb3BlcnRpZXMqIHdpbmRvd1Byb3BlcnRpZXMsIGJvb2wgbG9jYXRpb25CYXJWaXNpYmxlKQpA
QCAtMzU5LDcgKzM2Myw3IEBAIHZvaWQgd2Via2l0V2luZG93UHJvcGVydGllc1NldExvY2F0aW9u
YmFyVmlzaWJsZShXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQCiAgICAgaWYgKHdpbmRv
d1Byb3BlcnRpZXMtPnByaXYtPmxvY2F0aW9uYmFyVmlzaWJsZSA9PSBsb2NhdGlvbkJhclZpc2li
bGUpCiAgICAgICAgIHJldHVybjsKICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT5sb2NhdGlv
bmJhclZpc2libGUgPSBsb2NhdGlvbkJhclZpc2libGU7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKHdpbmRvd1Byb3BlcnRpZXMpLCAibG9jYXRpb25iYXItdmlzaWJsZSIpOworICAgIGdf
b2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVCh3aW5kb3dQcm9wZXJ0aWVzKSwgc09ialBy
b3BlcnRpZXNbUFJPUF9MT0NBVElPTkJBUl9WSVNJQkxFXSk7CiB9CiAKIHZvaWQgd2Via2l0V2lu
ZG93UHJvcGVydGllc1NldFNjcm9sbGJhcnNWaXNpYmxlKFdlYktpdFdpbmRvd1Byb3BlcnRpZXMq
IHdpbmRvd1Byb3BlcnRpZXMsIGJvb2wgc2Nyb2xsQmFyc1Zpc2libGUpCkBAIC0zNjcsNyArMzcx
LDcgQEAgdm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0U2Nyb2xsYmFyc1Zpc2libGUoV2Vi
S2l0V2luZG93UHJvcGVydGllcyogd2luZG93UHIKICAgICBpZiAod2luZG93UHJvcGVydGllcy0+
cHJpdi0+c2Nyb2xsYmFyc1Zpc2libGUgPT0gc2Nyb2xsQmFyc1Zpc2libGUpCiAgICAgICAgIHJl
dHVybjsKICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT5zY3JvbGxiYXJzVmlzaWJsZSA9IHNj
cm9sbEJhcnNWaXNpYmxlOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3aW5kb3dQcm9w
ZXJ0aWVzKSwgInNjcm9sbGJhcnMtdmlzaWJsZSIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9w
c3BlYyhHX09CSkVDVCh3aW5kb3dQcm9wZXJ0aWVzKSwgc09ialByb3BlcnRpZXNbUFJPUF9TQ1JP
TExCQVJTX1ZJU0lCTEVdKTsKIH0KIAogdm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0UmVz
aXphYmxlKFdlYktpdFdpbmRvd1Byb3BlcnRpZXMqIHdpbmRvd1Byb3BlcnRpZXMsIGJvb2wgcmVz
aXphYmxlKQpAQCAtMzc1LDcgKzM3OSw3IEBAIHZvaWQgd2Via2l0V2luZG93UHJvcGVydGllc1Nl
dFJlc2l6YWJsZShXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9wZXJ0aWVzCiAgICAg
aWYgKHdpbmRvd1Byb3BlcnRpZXMtPnByaXYtPnJlc2l6YWJsZSA9PSByZXNpemFibGUpCiAgICAg
ICAgIHJldHVybjsKICAgICB3aW5kb3dQcm9wZXJ0aWVzLT5wcml2LT5yZXNpemFibGUgPSByZXNp
emFibGU7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdpbmRvd1Byb3BlcnRpZXMpLCAi
cmVzaXphYmxlIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdpbmRv
d1Byb3BlcnRpZXMpLCBzT2JqUHJvcGVydGllc1tQUk9QX1JFU0laQUJMRV0pOwogfQogCiB2b2lk
IHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRGdWxsc2NyZWVuKFdlYktpdFdpbmRvd1Byb3BlcnRp
ZXMqIHdpbmRvd1Byb3BlcnRpZXMsIGJvb2wgZnVsbHNjcmVlbikKQEAgLTM4Myw3ICszODcsNyBA
QCB2b2lkIHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRGdWxsc2NyZWVuKFdlYktpdFdpbmRvd1By
b3BlcnRpZXMqIHdpbmRvd1Byb3BlcnRpZQogICAgIGlmICh3aW5kb3dQcm9wZXJ0aWVzLT5wcml2
LT5mdWxsc2NyZWVuID09IGZ1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsKICAgICB3aW5kb3dQ
cm9wZXJ0aWVzLT5wcml2LT5mdWxsc2NyZWVuID0gZnVsbHNjcmVlbjsKLSAgICBnX29iamVjdF9u
b3RpZnkoR19PQkpFQ1Qod2luZG93UHJvcGVydGllcyksICJmdWxsc2NyZWVuIik7CisgICAgZ19v
YmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdpbmRvd1Byb3BlcnRpZXMpLCBzT2JqUHJv
cGVydGllc1tQUk9QX0ZVTExTQ1JFRU5dKTsKIH0KIAogdm9pZCB3ZWJraXRXaW5kb3dQcm9wZXJ0
aWVzVXBkYXRlRnJvbVdlYldpbmRvd0ZlYXR1cmVzKFdlYktpdFdpbmRvd1Byb3BlcnRpZXMqIHdp
bmRvd1Byb3BlcnRpZXMsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9v
c2VyUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENv
bG9yQ2hvb3NlclJlcXVlc3QuY3BwCmluZGV4IDE5ODQ2Y2U3OTYyOTQ4MzQyYTk2MzU3MDI0OWE1
NDlmZDM3NDk3ZDcuLjYyNTI5Y2FlYTFjYTAyYTY2NWZhNmEzMmQ4OTFmMmNjYWM2ZGNmMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9v
c2VyUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDb2xvckNob29zZXJSZXF1ZXN0LmNwcApAQCAtNTcsMTAgKzU3LDEyIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBlbnVtIHsKICAgICBQUk9QXzAsCi0KLSAgICBQUk9QX1JHQkEKKyAg
ICBQUk9QX1JHQkEsCisgICAgTl9QUk9QRVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMq
IHNPYmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7IG51bGxwdHIsIH07CisKIGVudW0gewog
ICAgIEZJTklTSEVELAogCkBAIC0xMjYsMTMgKzEyOCwxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
Y29sb3JfY2hvb3Nlcl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVz
dENsYQogICAgICAqCiAgICAgICogU2luY2U6IDIuOAogICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgIFBST1BfUkdCQSwKKyAg
ICBzT2JqUHJvcGVydGllc1tQUk9QX1JHQkFdID0KICAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVk
KCJyZ2JhIiwKICAgICAgICAgICAgIF8oIkN1cnJlbnQgUkdCQSBjb2xvciIpLAogICAgICAgICAg
ICAgXygiVGhlIGN1cnJlbnQgUkdCQSBjb2xvciBmb3IgdGhlIHJlcXVlc3QiKSwKICAgICAgICAg
ICAgIEdES19UWVBFX1JHQkEsCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4o
V0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkpOworICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BB
UkFNX0NPTlNUUlVDVCkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVz
KG9iamVjdENsYXNzLCBOX1BST1BFUlRJRVMsIHNPYmpQcm9wZXJ0aWVzKTsKIAogICAgIC8qKgog
ICAgICAqIFdlYktpdENvbG9yQ2hvb3NlclJlcXVlc3Q6OmZpbmlzaGVkOgpAQCAtMTc0LDcgKzE3
Nyw3IEBAIHZvaWQgd2Via2l0X2NvbG9yX2Nob29zZXJfcmVxdWVzdF9zZXRfcmdiYShXZWJLaXRD
b2xvckNob29zZXJSZXF1ZXN0KiByZXF1ZXN0LCBjCiAgICAgICAgIHJldHVybjsKIAogICAgIHJl
cXVlc3QtPnByaXYtPnJnYmEgPSAqcmdiYTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qo
cmVxdWVzdCksICJyZ2JhIik7CisgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNU
KHJlcXVlc3QpLCBzT2JqUHJvcGVydGllc1tQUk9QX1JHQkFdKTsKIH0KIAogLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRp
b24uY3BwCmluZGV4IDU2ZGIzODI0MGUzYWFmOWRjZTE2MWRmN2MzYzliMTk0ZmQ4MjcyZTIuLmEy
M2VjYzQ1NGMyYTg1NzY1MDcxMmUzNjA0NDZhMDQ5NWUzOTBmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3Bw
CkBAIC01NCwxMiArNTQsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogZW51bSB7CiAg
ICAgUFJPUF8wLAotCiAgICAgUFJPUF9XRUJfVklFVywKICAgICBQUk9QX1BSSU5UX1NFVFRJTkdT
LAotICAgIFBST1BfUEFHRV9TRVRVUAorICAgIFBST1BfUEFHRV9TRVRVUCwKKyAgICBOX1BST1BF
UlRJRVMsCiB9OwogCitzdGF0aWMgR1BhcmFtU3BlYyogc09ialByb3BlcnRpZXNbTl9QUk9QRVJU
SUVTXSA9IHsgbnVsbHB0ciwgfTsKKwogZW51bSB7CiAgICAgRklOSVNIRUQsCiAgICAgRkFJTEVE
LApAQCAtMTUzLDM4ICsxNTUsNDAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3ByaW50X29wZXJhdGlv
bl9jbGFzc19pbml0KFdlYktpdFByaW50T3BlcmF0aW9uQ2xhc3MqIHByaW50T3AKICAgICAgKgog
ICAgICAqIFRoZSAjV2ViS2l0V2ViVmlldyB0aGF0IHdpbGwgYmUgcHJpbnRlZC4KICAgICAgKi8K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfV0VCX1ZJRVcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJ3ZWItdmlldyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIldlYiBWaWV3IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIlRoZSB3ZWIgdmlldyB0aGF0IHdpbGwgYmUgcHJpbnRlZCIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfVFlQRV9XRUJfVklFVywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJB
TV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOworICAgIHNPYmpQcm9wZXJ0
aWVzW1BST1BfV0VCX1ZJRVddID0KKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAg
ICAgICAgICJ3ZWItdmlldyIsCisgICAgICAgICAgICBfKCJXZWIgVmlldyIpLAorICAgICAgICAg
ICAgXygiVGhlIHdlYiB2aWV3IHRoYXQgd2lsbCBiZSBwcmludGVkIiksCisgICAgICAgICAgICBX
RUJLSVRfVFlQRV9XRUJfVklFVywKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdz
PihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogCiAg
ICAgLyoqCiAgICAgICogV2ViS2l0UHJpbnRPcGVyYXRpb246cHJpbnQtc2V0dGluZ3M6CiAgICAg
ICoKICAgICAgKiBUaGUgaW5pdGlhbCAjR3RrUHJpbnRTZXR0aW5ncyBmb3IgdGhlIHByaW50IG9w
ZXJhdGlvbi4KICAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdP
YmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUFJJ
TlRfU0VUVElOR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfb2JqZWN0KCJwcmludC1zZXR0aW5ncyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlByaW50IFNldHRpbmdzIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBpbml0aWFsIHByaW50IHNldHRpbmdzIGZvciB0aGUgcHJpbnQgb3BlcmF0aW9uIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19U
WVBFX1BSSU5UX1NFVFRJTkdTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgc09ialBy
b3BlcnRpZXNbUFJPUF9QUklOVF9TRVRUSU5HU10gPQorICAgICAgICBnX3BhcmFtX3NwZWNfb2Jq
ZWN0KAorICAgICAgICAgICAgInByaW50LXNldHRpbmdzIiwKKyAgICAgICAgICAgIF8oIlByaW50
IFNldHRpbmdzIiksCisgICAgICAgICAgICBfKCJUaGUgaW5pdGlhbCBwcmludCBzZXR0aW5ncyBm
b3IgdGhlIHByaW50IG9wZXJhdGlvbiIpLAorICAgICAgICAgICAgR1RLX1RZUEVfUFJJTlRfU0VU
VElOR1MsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKTsKICAgICAvKioKICAg
ICAgKiBXZWJLaXRQcmludE9wZXJhdGlvbjpwYWdlLXNldHVwOgogICAgICAqCiAgICAgICogVGhl
IGluaXRpYWwgI0d0a1BhZ2VTZXR1cCBmb3IgdGhlIHByaW50IG9wZXJhdGlvbi4KICAgICAgKi8K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1BBR0VfU0VUVVAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgicGFnZS1z
ZXR1cCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJQYWdlIFNldHVwIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgaW5pdGlhbCBwYWdlIHNldHVwIGZvciB0
aGUgcHJpbnQgb3BlcmF0aW9uIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9QQUdFX1NFVFVQLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfUEFHRV9TRVRVUF0gPQorICAg
ICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgInBhZ2Utc2V0dXAiLAorICAg
ICAgICAgICAgXygiUGFnZSBTZXR1cCIpLAorICAgICAgICAgICAgXygiVGhlIGluaXRpYWwgcGFn
ZSBzZXR1cCBmb3IgdGhlIHByaW50IG9wZXJhdGlvbiIpLAorICAgICAgICAgICAgR1RLX1RZUEVf
UEFHRV9TRVRVUCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpOworCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmplY3RDbGFzcywgTl9QUk9QRVJU
SUVTLCBzT2JqUHJvcGVydGllcyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRQcmludE9wZXJh
dGlvbjo6ZmluaXNoZWQ6CkBAIC00MDIsNyArNDA2LDcgQEAgdm9pZCB3ZWJraXRfcHJpbnRfb3Bl
cmF0aW9uX3NldF9wcmludF9zZXR0aW5ncyhXZWJLaXRQcmludE9wZXJhdGlvbiogcHJpbnRPcGVy
YXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpbnRPcGVyYXRpb24tPnByaXYtPnByaW50U2V0
dGluZ3MgPSBwcmludFNldHRpbmdzOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChwcmlu
dE9wZXJhdGlvbiksICJwcmludC1zZXR0aW5ncyIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9w
c3BlYyhHX09CSkVDVChwcmludE9wZXJhdGlvbiksIHNPYmpQcm9wZXJ0aWVzW1BST1BfUFJJTlRf
U0VUVElOR1NdKTsKIH0KIAogLyoqCkBAIC00MzksNyArNDQzLDcgQEAgdm9pZCB3ZWJraXRfcHJp
bnRfb3BlcmF0aW9uX3NldF9wYWdlX3NldHVwKFdlYktpdFByaW50T3BlcmF0aW9uKiBwcmludE9w
ZXJhdGlvbiwKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJpbnRPcGVyYXRpb24tPnByaXYtPnBh
Z2VTZXR1cCA9IHBhZ2VTZXR1cDsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QocHJpbnRP
cGVyYXRpb24pLCAicGFnZS1zZXR1cCIpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVChwcmludE9wZXJhdGlvbiksIHNPYmpQcm9wZXJ0aWVzW1BST1BfUEFHRV9TRVRVUF0p
OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViSW5zcGVjdG9yLmNwcAppbmRleCBmNDM4MGExN2Y3NGNjOGEyZTgwYTAxYzYyZmIw
YjRlNzlhMzJkMWNiLi4zY2MwZGQ5NzkwNjMwMTJhOWNkMzg5YWEyYTdkMzE5YmJlMmM0NDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJ
bnNwZWN0b3IuY3BwCkBAIC03MSwxMiArNzEsMTQgQEAgZW51bSB7CiAKIGVudW0gewogICAgIFBS
T1BfMCwKLQogICAgIFBST1BfSU5TUEVDVEVEX1VSSSwKICAgICBQUk9QX0FUVEFDSEVEX0hFSUdI
VCwKLSAgICBQUk9QX0NBTl9BVFRBQ0gKKyAgICBQUk9QX0NBTl9BVFRBQ0gsCisgICAgTl9QUk9Q
RVJUSUVTLAogfTsKIAorc3RhdGljIEdQYXJhbVNwZWMqIHNPYmpQcm9wZXJ0aWVzW05fUFJPUEVS
VElFU10gPSB7IG51bGxwdHIsIH07CisKIHN0cnVjdCBfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0
ZSB7CiAgICAgfl9XZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKCkKICAgICB7CkBAIC0xMjIsMjUg
KzEyNCwyNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KFdl
YktpdFdlYkluc3BlY3RvckNsYXNzKiBmaW5kQ2xhc3MpCiAgICAgICoKICAgICAgKiBUaGUgVVJJ
IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGluc3BlY3RlZC4KICAgICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfSU5TUEVDVEVEX1VSSSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImluc3BlY3RlZC11cmkiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJJbnNwZWN0ZWQgVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgaW5z
cGVjdGVkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0aWVz
W1BST1BfSU5TUEVDVEVEX1VSSV0gPQorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAg
ICAgICAgICAgImluc3BlY3RlZC11cmkiLAorICAgICAgICAgICAgXygiSW5zcGVjdGVkIFVSSSIp
LAorICAgICAgICAgICAgXygiVGhlIFVSSSB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBpbnNwZWN0
ZWQiKSwKKyAgICAgICAgICAgIG51bGxwdHIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpOwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYkluc3BlY3RvcjphdHRhY2hlZC1oZWln
aHQ6CiAgICAgICoKICAgICAgKiBUaGUgaGVpZ2h0IHRoYXQgdGhlIGluc3BlY3RvciB2aWV3IHNo
b3VsZCBoYXZlIHdoZW4gaXQgaXMgYXR0YWNoZWQuCiAgICAgICovCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX0FUVEFDSEVEX0hFSUdIVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJhdHRhY2hlZC1oZWlnaHQiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQXR0
YWNoZWQgSGVpZ2h0IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJUaGUgaGVpZ2h0IHRoYXQgdGhlIGluc3BlY3RvciB2aWV3IHNob3Vs
ZCBoYXZlIHdoZW4gaXQgaXMgYXR0YWNoZWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIEdfTUFYVUlOVCwgMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfQVRUQUNIRURfSEVJR0hUXSA9Cisg
ICAgICAgIGdfcGFyYW1fc3BlY191aW50KAorICAgICAgICAgICAgImF0dGFjaGVkLWhlaWdodCIs
CisgICAgICAgICAgICBfKCJBdHRhY2hlZCBIZWlnaHQiKSwKKyAgICAgICAgICAgIF8oIlRoZSBo
ZWlnaHQgdGhhdCB0aGUgaW5zcGVjdG9yIHZpZXcgc2hvdWxkIGhhdmUgd2hlbiBpdCBpcyBhdHRh
Y2hlZCIpLAorICAgICAgICAgICAgMCwgR19NQVhVSU5ULCAwLAorICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFdlYkluc3BlY3Rvcjpj
YW4tYXR0YWNoOgpAQCAtMTUwLDE1ICsxNTIsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9p
bnNwZWN0b3JfY2xhc3NfaW5pdChXZWJLaXRXZWJJbnNwZWN0b3JDbGFzcyogZmluZENsYXNzKQog
ICAgICAqCiAgICAgICogU2luY2U6IDIuOAogICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdPYmplY3RDbGFzcywKLSAgICAgICAgUFJPUF9DQU5f
QVRUQUNILAorICAgIHNPYmpQcm9wZXJ0aWVzW1BST1BfQ0FOX0FUVEFDSF0gPQogICAgICAgICBn
X3BhcmFtX3NwZWNfYm9vbGVhbigKICAgICAgICAgICAgICJjYW4tYXR0YWNoIiwKICAgICAgICAg
ICAgIF8oIkNhbiBBdHRhY2giKSwKICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIGluc3BlY3Rv
ciBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNhbWUgd2luZG93IHRoYXQgY29udGFpbnMgdGhlIGlu
c3BlY3RlZCB2aWV3IiksCiAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEQUJMRSkpOworICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKTsKKwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydGllcyhnT2JqZWN0Q2xhc3MsIE5fUFJP
UEVSVElFUywgc09ialByb3BlcnRpZXMpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViSW5z
cGVjdG9yOjpvcGVuLXdpbmRvdzoKQEAgLTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgogICAgICAg
ICBpZiAodXJpID09IG1faW5zcGVjdG9yLT5wcml2LT5pbnNwZWN0ZWRVUkkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIG1faW5zcGVjdG9yLT5wcml2LT5pbnNwZWN0ZWRVUkkgPSB1cmk7
Ci0gICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChtX2luc3BlY3RvciksICJpbnNwZWN0
ZWQtdXJpIik7CisgICAgICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChtX2lu
c3BlY3RvciksIHNPYmpQcm9wZXJ0aWVzW1BST1BfSU5TUEVDVEVEX1VSSV0pOwogICAgIH0KIAog
ICAgIGJvb2wgYXR0YWNoKFdlYkluc3BlY3RvclVJUHJveHkmKSBvdmVycmlkZQpAQCAtMzM5LDcg
KzM0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChtX2luc3BlY3Rvci0+cHJpdi0+YXR0YWNo
ZWRIZWlnaHQgPT0gaGVpZ2h0KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2luc3Bl
Y3Rvci0+cHJpdi0+YXR0YWNoZWRIZWlnaHQgPSBoZWlnaHQ7Ci0gICAgICAgIGdfb2JqZWN0X25v
dGlmeShHX09CSkVDVChtX2luc3BlY3RvciksICJhdHRhY2hlZC1oZWlnaHQiKTsKKyAgICAgICAg
Z19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKG1faW5zcGVjdG9yKSwgc09ialByb3Bl
cnRpZXNbUFJPUF9BVFRBQ0hFRF9IRUlHSFRdKTsKICAgICB9CiAKICAgICB2b2lkIGRpZENoYW5n
ZUF0dGFjaGVkV2lkdGgoV2ViSW5zcGVjdG9yVUlQcm94eSYsIHVuc2lnbmVkIHdpZHRoKSBvdmVy
cmlkZQpAQCAtMzUxLDcgKzM1Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChtX2luc3BlY3Rv
ci0+cHJpdi0+Y2FuQXR0YWNoID09IGF2YWlsYWJsZSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9pbnNwZWN0b3ItPnByaXYtPmNhbkF0dGFjaCA9IGF2YWlsYWJsZTsKLSAgICAgICAg
Z19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG1faW5zcGVjdG9yKSwgImNhbi1hdHRhY2giKTsKKyAg
ICAgICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKG1faW5zcGVjdG9yKSwgc09i
alByb3BlcnRpZXNbUFJPUF9DQU5fQVRUQUNIXSk7CiAgICAgfQogCiAgICAgV2ViS2l0V2ViSW5z
cGVjdG9yKiBtX2luc3BlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApp
bmRleCBlOTE1YTBjM2NjYzdhNGM1YzQ1YTE3YzE0ZmRkMDMyNGViNTFlZTRkLi5iM2I2M2RhY2U0
YjQwN2EzOTM0MTQ5M2UzNjJmMjllNDM3MjRiNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dFdlYlBhZ2UuY3BwCkBAIC03OSwxMCArNzksMTIgQEAgZW51bSB7CiAKIGVudW0gewogICAgIFBS
T1BfMCwKLQotICAgIFBST1BfVVJJCisgICAgUFJPUF9VUkksCisgICAgTl9QUk9QRVJUSUVTLAog
fTsKIAorc3RhdGljIEdQYXJhbVNwZWMqIHNPYmpQcm9wZXJ0aWVzW05fUFJPUEVSVElFU10gPSB7
IG51bGxwdHIsIH07CisKIHN0cnVjdCBfV2ViS2l0V2ViUGFnZVByaXZhdGUgewogICAgIFdlYlBh
Z2UqIHdlYlBhZ2U7CiAKQEAgLTE0OSw3ICsxNTEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJQ
YWdlU2V0VVJJKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IENTdHJpbmcmIHVyaSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgd2ViUGFnZS0+cHJpdi0+dXJpID0gdXJpOwotICAgIGdfb2Jq
ZWN0X25vdGlmeShHX09CSkVDVCh3ZWJQYWdlKSwgInVyaSIpOworICAgIGdfb2JqZWN0X25vdGlm
eV9ieV9wc3BlYyhHX09CSkVDVCh3ZWJQYWdlKSwgc09ialByb3BlcnRpZXNbUFJPUF9VUkldKTsK
IH0KIAogc3RhdGljIHZvaWQgd2Via2l0V2ViUGFnZURpZFNlbmRDb25zb2xlTWVzc2FnZShXZWJL
aXRXZWJQYWdlKiB3ZWJQYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpCkBAIC00MzksMTUgKzQ0MSwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAqCiAg
ICAgICogVGhlIGN1cnJlbnQgYWN0aXZlIFVSSSBvZiB0aGUgI1dlYktpdFdlYlBhZ2UuCiAgICAg
ICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ09iamVj
dENsYXNzLAotICAgICAgICBQUk9QX1VSSSwKKyAgICBzT2JqUHJvcGVydGllc1tQUk9QX1VSSV0g
PQogICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAogICAgICAgICAgICAgInVyaSIsCiAgICAg
ICAgICAgICBfKCJVUkkiKSwKICAgICAgICAgICAgIF8oIlRoZSBjdXJyZW50IGFjdGl2ZSBVUkkg
b2YgdGhlIHdlYiBwYWdlIiksCiAgICAgICAgICAgICAwLAotICAgICAgICAgICAgV0VCS0lUX1BB
UkFNX1JFQURBQkxFKSk7CisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpOworCisg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmplY3RDbGFzcywgTl9QUk9Q
RVJUSUVTLCBzT2JqUHJvcGVydGllcyk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJQYWdl
Ojpkb2N1bWVudC1sb2FkZWQ6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>