<?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>86223</bug_id>
          
          <creation_ts>2012-05-11 09:52:33 -0700</creation_ts>
          <short_desc>URL: Add support for parameter methods</short_desc>
          <delta_ts>2023-05-27 05:42:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>76816</dependson>
          <blocked>74385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>kaustubh.ra</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621728</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-05-11 09:52:33 -0700</bug_when>
    <thetext>URL: Add support for parameter methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621738</commentid>
    <comment_count>1</comment_count>
      <attachid>141437</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-05-11 10:01:59 -0700</bug_when>
    <thetext>Created attachment 141437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621742</commentid>
    <comment_count>2</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-05-11 10:04:20 -0700</bug_when>
    <thetext>This is work in progress. It does not y(In reply to comment #1)
&gt; Created an attachment (id=141437) [details]

This patch is relative to bug 76816

It is work in progress to get feedback on the current approach.

The only functional thing missing is canonicalization of the parameter names and values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1958387</commentid>
    <comment_count>3</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-05-27 05:42:36 -0700</bug_when>
    <thetext>This is addressed through URLSearchParams now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141437</attachid>
            <date>2012-05-11 10:01:59 -0700</date>
            <delta_ts>2012-05-11 10:01:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86223-20120511100158.patch</filename>
            <type>text/plain</type>
            <size>39395</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg5NWQ2NGI1ZmYzODAz
ODg3MzY4YmVjMzAzMWM1MTVkMjI1MWFjMi4uMWMxZDRhM2I2YjlmN2FkMGI4Mjc4MDNiNDJkNWUz
MjFhNzFlZmQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA1LTExICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVVJMOiBBZGQgc3VwcG9y
dCBmb3IgcGFyYW1ldGVyIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2MjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0RPTVVSTC9hZGQtcGFyYW1ldGVyLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL0RPTVVSTC9jbGVhci1wYXJhbWV0ZXJzLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLW5hbWVzLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLXZhbHVlcy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9ET01VUkwvZ2V0LXBhcmFtZXRlci5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9ET01VUkwvaGFzLXBhcmFtZXRlci5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2RvbS9ET01VUkwvcmVtb3ZlLXBhcmFtZXRlci5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9ET01VUkwvc2V0LXBhcmFtZXRlci5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
OgorICAgICAgICAoV2ViQ29yZTo6anNTdHJpbmdPck51bGwpOgorICAgICAgICAoV2ViQ29yZTo6
anNTdHJpbmdPclVuZGVmaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1N0cmluZ09yRmFsc2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1N0cmluZ0FycmF5KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChO
YXRpdmVUb0pTVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6djhB
cnJheSk6CisgICAgICAgIChXZWJDb3JlOjp2OFN0cmluZ0FycmF5KToKKyAgICAgICAgKFdlYkNv
cmU6OnRvTmF0aXZlQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6djhOdW1iZXJBcnJheSk6Cisg
ICAgICAgICogaHRtbC9ET01VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVVJMOjpET01V
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVVJMOjpzZWFyY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVVJMOjpocmVmKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NVVJMOjpzZXRIcmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6dG9TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVVJMOjpzZXRTZWFyY2gpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NVVJMOjpnZXRQYXJhbWV0ZXJOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpET01VUkw6Omdl
dFBhcmFtZXRlclZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpET01VUkw6Omhhc1BhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpET01VUkw6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpET01VUkw6OnJlbW92ZVBhcmFtZXRlcldpdGhvdXRVcGRhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NVVJMOjpzZXRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVVJM
OjphZGRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVVJMOjpyZW1vdmVQYXJhbWV0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVVJMOjpjbGVhclBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NVVJMOjpjb2xsZWN0VVJMUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpET01VUkw6OnVwZGF0ZVNlYXJjaCk6CisgICAgICAgICogaHRtbC9ET01VUkwuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NVVJMKToKKyAgICAgICAgKFBhcmFtZXRlcik6
CisgICAgICAgICogaHRtbC9ET01VUkwuaWRsOgorCiAyMDEyLTA1LTA0ICBLYXVzdHViaCBBdHJh
d2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUg
VVJMIGRlY29tcG9zaXRpb24gSURMIGF0dHJpYnV0ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA1ZGVhY2I3NGY3N2NiODJjYmM1ODRhM2EyNjM3
MzJiYzY2MDBjM2E0Li4xNmMxMTVjZWEwNmE2ZGU5MDI3ZTc2NTdmYzlkNDM5ZWExNjQ3MGZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTUzLDEz
ICs1Myw2IEBAIEpTVmFsdWUganNTdHJpbmdTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIEpTU3Ry
aW5nQ2FjaGUmIHN0cmluZ0NhY2hlLCBTdHJpbmdJbXBsCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9
CiAKLUpTVmFsdWUganNTdHJpbmdPck51bGwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IHMpCi17Ci0gICAgaWYgKHMuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBqc051bGwoKTsKLSAg
ICByZXR1cm4ganNTdHJpbmcoZXhlYywgcyk7Ci19Ci0KIEpTVmFsdWUganNPd25lZFN0cmluZ09y
TnVsbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcykKIHsKICAgICBpZiAocy5pc051
bGwoKSkKQEAgLTY3LDIwICs2MCw2IEBAIEpTVmFsdWUganNPd25lZFN0cmluZ09yTnVsbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcykKICAgICByZXR1cm4ganNPd25lZFN0cmluZyhl
eGVjLCBzdHJpbmdUb1VTdHJpbmcocykpOwogfQogCi1KU1ZhbHVlIGpzU3RyaW5nT3JVbmRlZmlu
ZWQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHMpCi17Ci0gICAgaWYgKHMuaXNOdWxs
KCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiBqc1N0cmluZyhl
eGVjLCBzKTsKLX0KLQotSlNWYWx1ZSBqc1N0cmluZ09yRmFsc2UoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTdHJpbmcmIHMpCi17Ci0gICAgaWYgKHMuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBq
c0Jvb2xlYW4oZmFsc2UpOwotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBzKTsKLX0KLQogSlNW
YWx1ZSBqc1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBy
ZXR1cm4ganNTdHJpbmcoZXhlYywgdXJsLnN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggOTZmMDNmMWRiMTVjMmI0MDUwMzc3ZGQ3OWFkNjBl
NDg2M2Q1OWZjYy4uNTUzNDQ2NzliM2ZiODRlY2UzMTk3ZjYwNGNhNzM0MDc1NDBkZWY2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTIzOSwxMyArMjM5
LDE2IEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAgICAgIHJldHVybiBqc1N0
cmluZyhleGVjLCBzLnN0cmluZygpKTsKICAgICB9CiAgICAgICAgIAotICAgIEpTQzo6SlNWYWx1
ZSBqc1N0cmluZ09yTnVsbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOyAvLyBudWxs
IGlmIHRoZSBzdHJpbmcgaXMgbnVsbAorICAgIGlubGluZSBKU0M6OkpTVmFsdWUganNTdHJpbmdP
ck51bGwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcykgeyByZXR1cm4gcy5p
c051bGwoKSA/IEpTQzo6anNOdWxsKCkgOiBqc1N0cmluZyhleGVjLCBzKTsgfQorICAgIGlubGlu
ZSBKU0M6OkpTVmFsdWUganNTdHJpbmdPck51bGwoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEF0b21pY1N0cmluZyYgcykgeyByZXR1cm4ganNTdHJpbmdPck51bGwoZXhlYywgcy5zdHJpbmco
KSk7IH0KICAgICBKU0M6OkpTVmFsdWUganNTdHJpbmdPck51bGwoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBLVVJMJik7IC8vIG51bGwgaWYgdGhlIFVSTCBpcyBudWxsCiAKLSAgICBKU0M6OkpTVmFs
dWUganNTdHJpbmdPclVuZGVmaW5lZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOyAv
LyB1bmRlZmluZWQgaWYgdGhlIHN0cmluZyBpcyBudWxsCisgICAgaW5saW5lIEpTQzo6SlNWYWx1
ZSBqc1N0cmluZ09yVW5kZWZpbmVkKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IHMpIHsgcmV0dXJuIHMuaXNOdWxsKCkgPyBKU0M6OmpzVW5kZWZpbmVkKCkgOiBqc1N0cmluZyhl
eGVjLCBzKTsgfQorICAgIGlubGluZSBKU0M6OkpTVmFsdWUganNTdHJpbmdPclVuZGVmaW5lZChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXRvbWljU3RyaW5nJiBzKSB7IHJldHVybiBqc1N0
cmluZ09yVW5kZWZpbmVkKGV4ZWMsIHMuc3RyaW5nKCkpOyB9CiAgICAgSlNDOjpKU1ZhbHVlIGpz
U3RyaW5nT3JVbmRlZmluZWQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBLVVJMJik7IC8vIHVuZGVm
aW5lZCBpZiB0aGUgVVJMIGlzIG51bGwKIAotICAgIEpTQzo6SlNWYWx1ZSBqc1N0cmluZ09yRmFs
c2UoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsgLy8gYm9vbGVhbiBmYWxzZSBpZiB0
aGUgc3RyaW5nIGlzIG51bGwKKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIGpzU3RyaW5nT3JGYWxz
ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBzKSB7IHJldHVybiBzLmlzTnVs
bCgpID8gSlNDOjpqc0Jvb2xlYW4oZmFsc2UpIDoganNTdHJpbmcoZXhlYywgcyk7IH0KKyAgICBp
bmxpbmUgSlNDOjpKU1ZhbHVlIGpzU3RyaW5nT3JGYWxzZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXRvbWljU3RyaW5nJiBzKSB7IHJldHVybiBqc1N0cmluZ09yRmFsc2UoZXhlYywgcy5z
dHJpbmcoKSk7IH0KICAgICBKU0M6OkpTVmFsdWUganNTdHJpbmdPckZhbHNlKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgS1VSTCYpOyAvLyBib29sZWFuIGZhbHNlIGlmIHRoZSBVUkwgaXMgbnVsbAog
CiAgICAgLy8gU2VlIEphdmFTY3JpcHRDb3JlIGZvciBleHBsYW5hdGlvbjogU2hvdWxkIGJlIHVz
ZWQgZm9yIGFueSBzdHJpbmcgdGhhdCBpcyBhbHJlYWR5IG93bmVkIGJ5IGFub3RoZXIKQEAgLTI3
NiwxMiArMjc5LDYgQEAgZW51bSBQYXJhbWV0ZXJEZWZhdWx0UG9saWN5IHsKICAgICBkb3VibGUg
dmFsdWVUb0RhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+Ci0gICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFQ+
IHB0cikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHRy
LmdldCgpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgICBKU0M6OkpT
VmFsdWUganNBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFQ+JiBpdGVyYXRvcikKICAgICB7CiAgICAgICAgIEpT
Qzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKQEAgLTI5MywxOCArMjkwLDMwIEBAIGVudW0g
UGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAgICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFy
cmF5KGV4ZWMsIGdsb2JhbE9iamVjdCwgbGlzdCk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8Pgot
ICAgIGlubGluZSBKU0M6OkpTVmFsdWUganNBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGl0ZXJh
dG9yKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSBq
c1N0cmluZ0FycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8VD4mIGl0ZXJhdG9yKQogICAgIHsKICAgICAgICAgSlND
OjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcnJheTsKLSAgICAgICAgVmVjdG9yPFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IGl0ZXJhdG9yLmVuZCgpOworICAgICAgICB0eXBlbmFtZSBWZWN0
b3I8VD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGl0ZXJhdG9yLmVuZCgpOwogCi0gICAgICAgIGZv
ciAoVmVjdG9yPFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaXRlcmF0b3IuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgYXJyYXkuYXBwZW5kKGpzU3RyaW5nKGV4ZWMs
IHN0cmluZ1RvVVN0cmluZygqaXQpKSk7CisgICAgICAgIGZvciAodHlwZW5hbWUgVmVjdG9yPFQ+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IGl0ZXJhdG9yLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICAgICAgICAgIGFycmF5LmFwcGVuZChqc1N0cmluZ09yTnVsbChleGVjLCAqaXQpKTsKIAog
ICAgICAgICByZXR1cm4gSlNDOjpjb25zdHJ1Y3RBcnJheShleGVjLCBnbG9iYWxPYmplY3QsIGFy
cmF5KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTw+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSBq
c0FycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaXRlcmF0b3IpCisgICAgeworICAgICAgICByZXR1
cm4ganNTdHJpbmdBcnJheTxTdHJpbmc+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlcmF0b3IpOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPD4KKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIGpzQXJyYXko
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBpdGVyYXRvcikKKyAgICB7CisgICAgICAgIHJldHVy
biBqc1N0cmluZ0FycmF5PEF0b21pY1N0cmluZz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpdGVyYXRv
cik7CisgICAgfQorCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICAgVmVjdG9yPFQ+IHRvTmF0
aXZlQXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKICAgICB7
CkBAIC0zMjEsNiArMzMwLDEyIEBAIGVudW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFQ+IHB0cikKKyAgICB7CisgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHRyLmdldCgpKTsKKyAgICB9CisK
ICAgICAvLyBWYWxpZGF0ZXMgdGhhdCB0aGUgcGFzc2VkIG9iamVjdCBpcyBhIHNlcXVlbmNlIHR5
cGUgcGVyIHNlY3Rpb24gNC4xLjEzIG9mIHRoZSBXZWJJREwgc3BlYy4KICAgICBKU0M6OkpTT2Jq
ZWN0KiB0b0pTU2VxdWVuY2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIHVuc2lnbmVk
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggOWIxZjdjNDg5NGZjZTU3YWI1MzMzMTA2MGUzNjA2ZDVmMTRmYzQ4YS4u
ZDAxMTBlY2NhODM0YzRiNTIzNGIzNWJmMTI4YWM2YzRmMTY2NTk3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMwMjYs
NyArMzAyNiw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKIAogICAgIG15ICRhcnJheVR5cGUgPSAk
Y29kZUdlbmVyYXRvci0+R2V0QXJyYXlUeXBlKCR0eXBlKTsKICAgICBpZiAoJGFycmF5VHlwZSkg
ewotICAgICAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Ta2lwSW5jbHVkZUhlYWRlcigkYXJyYXlU
eXBlKSkgeworICAgICAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Ta2lwSW5jbHVkZUhlYWRlcigk
YXJyYXlUeXBlKSBhbmQgISRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFycmF5VHlwZSkp
IHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyRhcnJheVR5cGUuaCIsICRjb25k
aXRpb25hbCk7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJGFycmF5VHlwZS5oIiwg
JGNvbmRpdGlvbmFsKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA3MDJhYjQ0MGM1NmZlM2U3ZjdlMTI1
OGU3ZTFkYTIyZjFkMzRiNTRlLi5mMzdjMDg4ZTNlYTM4ZGRlNjkzZGMyNzBiNDMyZWI0ZjIyODJh
ZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMzgxMiw3ICszODEyLDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogCiAg
ICAgbXkgJGFycmF5VHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUpOwog
ICAgIGlmICgkYXJyYXlUeXBlKSB7Ci0gICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPlNraXBJ
bmNsdWRlSGVhZGVyKCRhcnJheVR5cGUpKSB7CisgICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3It
PlNraXBJbmNsdWRlSGVhZGVyKCRhcnJheVR5cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkYXJyYXlUeXBlKSkgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4
JGFycmF5VHlwZS5oIik7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiJGFycmF5VHlw
ZS5oIik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5k
ZXggM2VlNjkyZGEwMTM0MTMyOGJmODA4ZTIwZTQ5ODEzZmJlMjEwNmFiNC4uNTU0ZjlhOWE2Njc2
MzBmZGVmN2IyNzU4MTgyM2U3OWVmOWE3M2I5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nLmgKQEAgLTI4NCw0NSArMjg0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICByZXR1cm4gdjhFeHRlcm5hbFN0cmluZyhzdHJpbmcsIGlzb2xhdGUpOwogICAgIH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4QXJy
YXkoY29uc3QgVmVjdG9yPFQ+JiBpdGVyYXRvciwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCi0gICAg
ewotICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldyhp
dGVyYXRvci5zaXplKCkpOwotICAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgICB0eXBlbmFt
ZSBWZWN0b3I8VD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGl0ZXJhdG9yLmVuZCgpOwotICAgICAg
ICBmb3IgKHR5cGVuYW1lIFZlY3RvcjxUPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGl0ZXJhdG9y
LmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgICAgICByZXN1bHQtPlNldCh2
ODo6SW50ZWdlcjo6TmV3KGluZGV4KyspLCB0b1Y4KFdURjo6Z2V0UHRyKCppdGVyKSwgaXNvbGF0
ZSkpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHRlbXBsYXRlPD4KLSAg
ICBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4QXJyYXkoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGl0ZXJhdG9yLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKLSAgICB7Ci0gICAgICAgIHY4OjpM
b2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcoaXRlcmF0b3Iuc2l6ZSgpKTsK
LSAgICAgICAgVmVjdG9yPFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGl0ZXJhdG9yLmVu
ZCgpOwotICAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+
Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gaXRlcmF0b3IuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsr
aXRlcikKLSAgICAgICAgICAgIGFycmF5LT5TZXQodjg6OkludGVnZXI6Ok5ldyhpbmRleCsrKSwg
djhTdHJpbmcoKml0ZXIsIGlzb2xhdGUpKTsKLSAgICAgICAgcmV0dXJuIGFycmF5OwotICAgIH0K
LQotICAgIHRlbXBsYXRlIDxjbGFzcyBUPgotICAgIFZlY3RvcjxUPiB0b05hdGl2ZUFycmF5KHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghdmFsdWUtPklz
QXJyYXkoKSkKLSAgICAgICAgICAgIHJldHVybiBWZWN0b3I8VD4oKTsKLQotICAgICAgICBWZWN0
b3I8VD4gcmVzdWx0OwotICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZhbHVlKHY4OjpM
b2NhbDx2ODo6VmFsdWU+OjpOZXcodmFsdWUpKTsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJh
eT4gYXJyYXkgPSB2ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2FzdCh2OFZhbHVlKTsKLSAgICAgICAg
c2l6ZV90IGxlbmd0aCA9IGFycmF5LT5MZW5ndGgoKTsKLQotICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHY4VmFs
dWVUb1dlYkNvcmVTdHJpbmcoYXJyYXktPkdldChpKSkpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgLy8gRW5hYmxlcyBjYWNoaW5nIHY4IHdyYXBwZXJz
IGNyZWF0ZWQgZm9yIFdURjo6U3RyaW5nSW1wbC4gIEN1cnJlbnRseSB0aGlzIGNhY2hlIHJlcXVp
cmVzCiAgICAgLy8gYWxsIHRoZSBjYWxscyAoYm90aCB0byBjb252ZXJ0IFdURjo6U3RyaW5nIHRv
IHY4OjpTdHJpbmcgYW5kIHRvIEdDIHRoZSBoYW5kbGUpCiAgICAgLy8gdG8gYmUgcGVyZm9ybWVk
IG9uIHRoZSBtYWluIHRocmVhZC4KQEAgLTQzNCw2ICszOTUsNTcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICByZXR1cm4gc3RyLmlzTnVsbCgpID8gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KHY4OjpGYWxzZSgpKSA6IHY4OjpIYW5kbGU8djg6OlZhbHVlPih2OFN0cmluZyhzdHIsIGlzb2xh
dGUpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2OEFycmF5KGNvbnN0IFZlY3RvcjxUPiYgaXRlcmF0b3IsIHY4OjpJc29sYXRl
KiBpc29sYXRlKQorICAgIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcmVzdWx0ID0g
djg6OkFycmF5OjpOZXcoaXRlcmF0b3Iuc2l6ZSgpKTsKKyAgICAgICAgaW50IGluZGV4ID0gMDsK
KyAgICAgICAgdHlwZW5hbWUgVmVjdG9yPFQ+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBpdGVyYXRv
ci5lbmQoKTsKKyAgICAgICAgZm9yICh0eXBlbmFtZSBWZWN0b3I8VD46OmNvbnN0X2l0ZXJhdG9y
IGl0ZXIgPSBpdGVyYXRvci5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICAg
ICAgcmVzdWx0LT5TZXQodjg6OkludGVnZXI6Ok5ldyhpbmRleCsrKSwgdG9WOChXVEY6OmdldFB0
cigqaXRlciksIGlzb2xhdGUpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
djhTdHJpbmdBcnJheShjb25zdCBWZWN0b3I8VD4mIGl0ZXJhdG9yLCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFy
cmF5OjpOZXcoaXRlcmF0b3Iuc2l6ZSgpKTsKKyAgICAgICAgdHlwZW5hbWUgVmVjdG9yPFQ+Ojpj
b25zdF9pdGVyYXRvciBlbmQgPSBpdGVyYXRvci5lbmQoKTsKKyAgICAgICAgaW50IGluZGV4ID0g
MDsKKyAgICAgICAgZm9yICh0eXBlbmFtZSBWZWN0b3I8VD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIg
PSBpdGVyYXRvci5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICAgICAgYXJy
YXktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGluZGV4KyspLCB2OFN0cmluZ09yTnVsbCgqaXRlciwg
aXNvbGF0ZSkpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
PgorICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhBcnJheShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgaXRlcmF0b3IsIHY4OjpJc29sYXRlKiBpc29sYXRlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHY4U3RyaW5nQXJyYXk8U3RyaW5nPihpdGVyYXRvciwgaXNvbGF0ZSk7CisgICAgfQor
CisKKyAgICB0ZW1wbGF0ZTw+CisgICAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OEFy
cmF5KGNvbnN0IFZlY3RvcjxBdG9taWNTdHJpbmc+JiBpdGVyYXRvciwgdjg6Oklzb2xhdGUqIGlz
b2xhdGUpCisgICAgeworICAgICAgICByZXR1cm4gdjhTdHJpbmdBcnJheTxBdG9taWNTdHJpbmc+
KGl0ZXJhdG9yLCBpc29sYXRlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAg
ICBWZWN0b3I8VD4gdG9OYXRpdmVBcnJheSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisg
ICAgeworICAgICAgICBpZiAoIXZhbHVlLT5Jc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4g
VmVjdG9yPFQ+KCk7CisKKyAgICAgICAgVmVjdG9yPFQ+IHJlc3VsdDsKKyAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdjhWYWx1ZSh2ODo6TG9jYWw8djg6OlZhbHVlPjo6TmV3KHZhbHVlKSk7
CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJh
eT46OkNhc3QodjhWYWx1ZSk7CisgICAgICAgIHNpemVfdCBsZW5ndGggPSBhcnJheS0+TGVuZ3Ro
KCk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQodjhWYWx1ZVRvV2ViQ29yZVN0cmluZyhhcnJheS0+R2V0KGkp
KSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgdGVtcGxhdGUgPGNsYXNz
IFQ+IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OE51bWJlckFycmF5KGNvbnN0IFZlY3RvcjxUPiYg
dmFsdWVzKQogICAgIHsKICAgICAgICAgc2l6ZV90IHNpemUgPSB2YWx1ZXMuc2l6ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01VUkwuY3BwCmluZGV4IGMyMmFkMGMwMTYxZWZiYTMxNzA0MDBiZThmMTI4NDE0NTQx
NzQ4MzkuLjRlZGFlMzYzNWUwODZhZWRmYzZkYWQ0NDQyZjA4NjBhMmYzZWQ1MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTVVSTC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJET01VUkwuaCIKIAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgpAQCAtMTEzLDYgKzExNCw4IEBAIHZvaWQgRE9NVVJMOjpyZXZva2VP
YmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
Y29uCiAjZW5kaWYgLy8gQkxPQgogCiBET01VUkw6OkRPTVVSTChjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMT3ZlcnJpZGUpCisgICAgOiBtX2NvbGxlY3RlZFVSTFBhcmFt
ZXRlcnNWYWxpZChmYWxzZSkKKyAgICAsIG1fc2VhcmNoSXNWYWxpZCh0cnVlKQogewogICAgIGlm
ICh1cmwuaXNOdWxsKCkpCiAgICAgICAgIG1faHJlZiA9IEtVUkwoKTsKQEAgLTE0OCw2ICsxNTEs
NyBAQCBTdHJpbmcgRE9NVVJMOjpwYXRobmFtZSgpIGNvbnN0CiAKIFN0cmluZyBET01VUkw6OnNl
YXJjaCgpIGNvbnN0CiB7CisgICAgdXBkYXRlU2VhcmNoKCk7CiAgICAgU3RyaW5nIHF1ZXJ5ID0g
aHJlZigpLnF1ZXJ5KCk7CiAgICAgcmV0dXJuIHF1ZXJ5LmlzRW1wdHkoKSA/IGVtcHR5U3RyaW5n
KCkgOiAiPyIgKyBxdWVyeTsKIH0KQEAgLTE2NCw2ICsxNjgsMjcgQEAgU3RyaW5nIERPTVVSTDo6
b3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gb3JpZ2luLT50b1N0cmluZygpOwogfQogCitLVVJM
IERPTVVSTDo6aHJlZigpIGNvbnN0Cit7CisgICAgdXBkYXRlU2VhcmNoKCk7CisgICAgcmV0dXJu
IG1faHJlZjsKK30KKwordm9pZCBET01VUkw6OnNldEhyZWYoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBtX2hyZWYgPSBLVVJMKEtVUkwoKSwgdmFsdWUpOworCisgICAgbV9jb2xsZWN0ZWRV
UkxQYXJhbWV0ZXJzLmNsZWFyKCk7CisgICAgbV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzVmFsaWQg
PSBmYWxzZTsKKyAgICBtX3NlYXJjaElzVmFsaWQgPSB0cnVlOworfQorCitTdHJpbmcgRE9NVVJM
Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgdXBkYXRlU2VhcmNoKCk7CisgICAgcmV0dXJuIG1f
aHJlZi5zdHJpbmcoKTsKK30KKwogdm9pZCBET01VUkw6OnNldFByb3RvY29sKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKQEAgLTI0OCw2ICsyNzMsMTAg
QEAgdm9pZCBET01VUkw6OnNldFNlYXJjaChjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIC8vIFRo
ZSBiZWxvdyByZXBseWFjZSBjaGFuZ2UgaXMgdG8gbWFrZSBzdXJlIHRoYXQgJyMnIGluIHRoZSBx
dWVyeSBkb2VzIG5vdCBsZWFrIHRvIHRoZSBoYXNoLgogICAgIFN0cmluZyBuZXdTZWFyY2ggPSAo
dmFsdWVbMF0gPT0gJz8nKSA/ICB2YWx1ZS5zdWJzdHJpbmcoMSkgOiB2YWx1ZTsKICAgICBtX2hy
ZWYuc2V0UXVlcnkobmV3U2VhcmNoLnJlcGxhY2UoJyMnLCAiJTIzIikpOworCisgICAgbV9jb2xs
ZWN0ZWRVUkxQYXJhbWV0ZXJzVmFsaWQgPSBmYWxzZTsKKyAgICBtX2NvbGxlY3RlZFVSTFBhcmFt
ZXRlcnMuY2xlYXIoKTsKKyAgICBtX3NlYXJjaElzVmFsaWQgPSB0cnVlOwogfQogCiB2b2lkIERP
TVVSTDo6c2V0SGFzaChjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMjU2LDQgKzI4NSwxNjQgQEAg
dm9pZCBET01VUkw6OnNldEhhc2goY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICBtX2hyZWYuc2V0
RnJhZ21lbnRJZGVudGlmaWVyKG5ld0hhc2gpOwogfQogCitWZWN0b3I8QXRvbWljU3RyaW5nPiBE
T01VUkw6OmdldFBhcmFtZXRlck5hbWVzKCkgY29uc3QKK3sKKyAgICBjb2xsZWN0VVJMUGFyYW1l
dGVycygpOworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHBhcmFtZXRlck5hbWVzOworICAgIEhh
c2hTZXQ8QXRvbWljU3RyaW5nPiBzZWVuOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9j
b2xsZWN0ZWRVUkxQYXJhbWV0ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBuYW1lID0gbV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzW2ldLm5hbWU7CisgICAgICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPjo6QWRkUmVzdWx0IHJlc3VsdCA9IHNlZW4uYWRkKG5hbWUpOworICAg
ICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgICAgICBwYXJhbWV0ZXJOYW1lcy5h
cHBlbmQobmFtZSk7CisgICAgfQorICAgIHJldHVybiBwYXJhbWV0ZXJOYW1lczsKK30KKworVmVj
dG9yPFN0cmluZz4gRE9NVVJMOjpnZXRQYXJhbWV0ZXJWYWx1ZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lKSBjb25zdAoreworICAgIGNvbGxlY3RVUkxQYXJhbWV0ZXJzKCk7CisgICAgVmVjdG9y
PFN0cmluZz4gcGFyYW1ldGVyVmFsdWVzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9j
b2xsZWN0ZWRVUkxQYXJhbWV0ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhcmFtZXRlciBw
YXJhbSA9IG1fY29sbGVjdGVkVVJMUGFyYW1ldGVyc1tpXTsKKyAgICAgICAgaWYgKG5hbWUgPT0g
cGFyYW0ubmFtZSkKKyAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlcy5hcHBlbmQocGFyYW0udmFs
dWUpOworICAgIH0KKyAgICByZXR1cm4gcGFyYW1ldGVyVmFsdWVzOworfQorCitib29sIERPTVVS
TDo6aGFzUGFyYW1ldGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICBj
b2xsZWN0VVJMUGFyYW1ldGVycygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jb2xs
ZWN0ZWRVUkxQYXJhbWV0ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhcmFtZXRlciBwYXJh
bSA9IG1fY29sbGVjdGVkVVJMUGFyYW1ldGVyc1tpXTsKKyAgICAgICAgaWYgKG5hbWUgPT0gcGFy
YW0ubmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1N0cmluZyBET01VUkw6OmdldFBhcmFtZXRlcihjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpIGNvbnN0Cit7CisgICAgY29sbGVjdFVSTFBhcmFtZXRlcnMoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fY29sbGVjdGVkVVJMUGFyYW1ldGVycy5zaXplKCk7ICsraSkgewor
ICAgICAgICBQYXJhbWV0ZXIgcGFyYW0gPSBtX2NvbGxlY3RlZFVSTFBhcmFtZXRlcnNbaV07Cisg
ICAgICAgIGlmIChuYW1lID09IHBhcmFtLm5hbWUpCisgICAgICAgICAgICByZXR1cm4gcGFyYW0u
dmFsdWU7CisgICAgfQorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwordm9pZCBET01VUkw6OnJl
bW92ZVBhcmFtZXRlcldpdGhvdXRVcGRhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQorewor
ICAgIGNvbGxlY3RVUkxQYXJhbWV0ZXJzKCk7CisgICAgVmVjdG9yPFBhcmFtZXRlcj4gbmV3UGFy
YW1ldGVyczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY29sbGVjdGVkVVJMUGFyYW1l
dGVycy5zaXplKCk7ICsraSkgeworICAgICAgICBQYXJhbWV0ZXIgcGFyYW0gPSBtX2NvbGxlY3Rl
ZFVSTFBhcmFtZXRlcnNbaV07CisgICAgICAgIGlmIChwYXJhbS5uYW1lICE9IG5hbWUpCisgICAg
ICAgICAgICBuZXdQYXJhbWV0ZXJzLmFwcGVuZChwYXJhbSk7CisgICAgfQorICAgIG1fY29sbGVj
dGVkVVJMUGFyYW1ldGVycyA9IG5ld1BhcmFtZXRlcnM7CisgICAgbV9jb2xsZWN0ZWRVUkxQYXJh
bWV0ZXJzVmFsaWQgPSB0cnVlOworfQorCit2b2lkIERPTVVSTDo6c2V0UGFyYW1ldGVyKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKG5hbWUuaXNFbXB0eSgpICYmIHZhbHVlLmlzTnVsbCgpKSB7CisgICAg
ICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92
ZVBhcmFtZXRlcldpdGhvdXRVcGRhdGUobmFtZSk7CisgICAgUGFyYW1ldGVyIG5ld1BhcmFtZXRl
ciA9IHtuYW1lLCB2YWx1ZX07CisgICAgbV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzLmFwcGVuZChu
ZXdQYXJhbWV0ZXIpOworICAgIG1fc2VhcmNoSXNWYWxpZCA9IGZhbHNlOworfQorCit2b2lkIERP
TVVSTDo6YWRkUGFyYW1ldGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG5hbWUuaXNFbXB0eSgpICYm
IHZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvbGxlY3RVUkxQYXJhbWV0ZXJzKCk7CisgICAgUGFyYW1ldGVy
IG5ld1BhcmFtZXRlciA9IHtuYW1lLCB2YWx1ZX07CisgICAgbV9jb2xsZWN0ZWRVUkxQYXJhbWV0
ZXJzLmFwcGVuZChuZXdQYXJhbWV0ZXIpOworICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVyc1Zh
bGlkID0gdHJ1ZTsKKyAgICBtX3NlYXJjaElzVmFsaWQgPSBmYWxzZTsKK30KKwordm9pZCBET01V
Ukw6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgcmVt
b3ZlUGFyYW1ldGVyV2l0aG91dFVwZGF0ZShuYW1lKTsKKyAgICBtX3NlYXJjaElzVmFsaWQgPSBm
YWxzZTsKK30KKwordm9pZCBET01VUkw6OmNsZWFyUGFyYW1ldGVycygpCit7CisgICAgbV9ocmVm
LnNldFF1ZXJ5KGVtcHR5U3RyaW5nKCkpOworICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVycy5j
bGVhcigpOworICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVyc1ZhbGlkID0gdHJ1ZTsKKyAgICBt
X3NlYXJjaElzVmFsaWQgPSBmYWxzZTsKK30KKwordm9pZCBET01VUkw6OmNvbGxlY3RVUkxQYXJh
bWV0ZXJzKCkgY29uc3QKK3sKKyAgICBpZiAobV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzVmFsaWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVycy5jbGVhcigp
OworCisgICAgU3RyaW5nIHF1ZXJ5ID0gaHJlZigpLnF1ZXJ5KCk7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0gcXVlcnkubGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGFzdEVxdWFsID0gMDsKKyAgICB1
bnNpZ25lZCBsYXN0QW1wZXJzYW5kPSAwOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
PSBsZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSA9PSBsZW5ndGggfHwgcXVlcnlbaV0gPT0g
JyYnKSB7CisgICAgICAgICAgICBpZiAobGFzdEFtcGVyc2FuZCA9PSBpKSB7CisgICAgICAgICAg
ICAgICAgLy8gZG8gbm90aGluZworICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0QW1wZXJzYW5k
ID09IGxhc3RFcXVhbCkgeworICAgICAgICAgICAgICAgIEF0b21pY1N0cmluZyBuYW1lID0gcXVl
cnkuc3Vic3RyaW5nKGxhc3RBbXBlcnNhbmQsIGkgLSBsYXN0QW1wZXJzYW5kKTsKKyAgICAgICAg
ICAgICAgICBQYXJhbWV0ZXIgcGFyYW0gPSB7bmFtZSwgU3RyaW5nKCl9OworICAgICAgICAgICAg
ICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVycy5hcHBlbmQocGFyYW0pOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBdG9taWNTdHJpbmcgbmFtZSA9IHF1ZXJ5LnN1YnN0
cmluZyhsYXN0QW1wZXJzYW5kLCBsYXN0RXF1YWwgLSBsYXN0QW1wZXJzYW5kIC0gMSk7CisgICAg
ICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcXVlcnkuc3Vic3RyaW5nKGxhc3RFcXVhbCwgaSAt
IGxhc3RFcXVhbCk7CisgICAgICAgICAgICAgICAgUGFyYW1ldGVyIHBhcmFtID0ge25hbWUsIHZh
bHVlfTsKKyAgICAgICAgICAgICAgICBtX2NvbGxlY3RlZFVSTFBhcmFtZXRlcnMuYXBwZW5kKHBh
cmFtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RBbXBlcnNhbmQgPSBpICsgMTsK
KyAgICAgICAgICAgIGxhc3RFcXVhbCA9IGkgKyAxOworICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5
W2ldID09ICc9JyAmJiBsYXN0RXF1YWwgPT0gbGFzdEFtcGVyc2FuZCkKKyAgICAgICAgICAgIGxh
c3RFcXVhbCA9IGkgKyAxOworICAgIH0KKworICAgIG1fY29sbGVjdGVkVVJMUGFyYW1ldGVyc1Zh
bGlkID0gdHJ1ZTsKK30KKwordm9pZCBET01VUkw6OnVwZGF0ZVNlYXJjaCgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fc2VhcmNoSXNWYWxpZCkKKyAgICAgICAgcmV0dXJuOworICAgIGNvbGxlY3RVUkxQ
YXJhbWV0ZXJzKCk7CisKKyAgICBTdHJpbmcgcmVzdWx0OworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlm
IChpID4gMCkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyYnKTsKKyAgICAgICAgUGFyYW1l
dGVyIHBhcmFtID0gbV9jb2xsZWN0ZWRVUkxQYXJhbWV0ZXJzW2ldOworICAgICAgICAvLyBGSVhN
RTogQ2Fub25pY2FsaXplIG5hbWUKKyAgICAgICAgcmVzdWx0LmFwcGVuZChwYXJhbS5uYW1lKTsK
KyAgICAgICAgaWYgKCFwYXJhbS52YWx1ZS5pc051bGwoKSkgeworICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnPScpOworICAgICAgICAgICAgLy8gRklYTUU6IENhbm9uaWNhbGl6ZSB2YWx1ZQor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYXJhbS52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9
CisgICAgbV9ocmVmLnNldFF1ZXJ5KHJlc3VsdCk7CisgICAgbV9zZWFyY2hJc1ZhbGlkID0gdHJ1
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01VUkwuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKaW5kZXggNmY2
NTVmZTM5NmI4NDIxODNmMmQ4MDVhYmUyNTIyMmQ5ODE4MTk1Ni4uZGI2ZTMzMjQ5NGJmNmQ0YmJi
YjlkM2Q5YWY1NTNjODU0NjQ4ZDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01VUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCkBAIC0zOSw2ICszOSw4
IEBAIGNsYXNzIEJsb2I7CiBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiAKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKIGNsYXNzIERPTVVSTCA6
IHB1YmxpYyBSZWZDb3VudGVkPERPTVVSTD4gewogCiBwdWJsaWM6CkBAIC03NSwxMCArNzcsMTkg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0OwogCi0gICAgS1VSTCBocmVm
KCkgY29uc3QgeyByZXR1cm4gbV9ocmVmOyB9Ci0gICAgdm9pZCBzZXRIcmVmKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpIHsgbV9ocmVmID0gS1VSTChLVVJMKCksIHZhbHVlKTsgfQorICAgIEtVUkwgaHJl
ZigpIGNvbnN0OworICAgIHZvaWQgc2V0SHJlZihjb25zdCBTdHJpbmcmKTsKKworICAgIFN0cmlu
ZyB0b1N0cmluZygpIGNvbnN0OwogCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9ocmVmLnN0cmluZygpOyB9CisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gZ2V0UGFyYW1l
dGVyTmFtZXMoKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBnZXRQYXJhbWV0ZXJWYWx1ZXMo
Y29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBoYXNQYXJhbWV0ZXIoY29uc3Qg
QXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgU3RyaW5nIGdldFBhcmFtZXRlcihjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdDsKKyAgICB2b2lkIHNldFBhcmFtZXRlcihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IGFkZFBhcmFtZXRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZVBhcmFtZXRlcihjb25zdCBBdG9t
aWNTdHJpbmcmKTsKKyAgICB2b2lkIGNsZWFyUGFyYW1ldGVycygpOwogCiAjaWYgRU5BQkxFKEJM
T0IpCiAgICAgc3RhdGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CkBAIC05MSw5ICsxMDIsMjEgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgS1VSTCBtX2hyZWY7CisgICAgc3RydWN0IFBhcmFtZXRlciB7CisgICAgICAgIEF0b21pY1N0
cmluZyBuYW1lOworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgfTsKIAogICAgIERPTVVSTChj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZvaWQgY29sbGVjdFVSTFBhcmFt
ZXRlcnMoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZVNlYXJjaCgpIGNvbnN0OworICAgIHZvaWQg
cmVtb3ZlUGFyYW1ldGVyV2l0aG91dFVwZGF0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAg
IG11dGFibGUgS1VSTCBtX2hyZWY7CisgICAgbXV0YWJsZSBWZWN0b3I8UGFyYW1ldGVyPiBtX2Nv
bGxlY3RlZFVSTFBhcmFtZXRlcnM7CisgICAgbXV0YWJsZSBib29sIG1fY29sbGVjdGVkVVJMUGFy
YW1ldGVyc1ZhbGlkOworICAgIG11dGFibGUgYm9vbCBtX3NlYXJjaElzVmFsaWQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVVSTC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwKaW5kZXggYjdiMmE2Y2Ji
MDJmNGU5YzFmZTM4MjI1NTE1ZTA3YzE4OWNiNTdhNC4uN2Y3ODc3NmY0ZDhlYjdlMTJlMTE0Mjgz
MmYyM2Q1Njc4NWY0Y2EyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmlkbApAQCAtNDYsNiArNDYsMTUg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7CiAgICAg
ICAgIFtOb3RFbnVtZXJhYmxlXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKIAorICAgICAgICBzZXF1
ZW5jZTxET01TdHJpbmc+IGdldFBhcmFtZXRlck5hbWVzKCk7CisgICAgICAgIHNlcXVlbmNlPERP
TVN0cmluZz4gZ2V0UGFyYW1ldGVyVmFsdWVzKGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAg
Ym9vbGVhbiBoYXNQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0UGFyYW1ldGVyKGluIERPTVN0
cmluZyBuYW1lKTsKKyAgICAgICAgdm9pZCBzZXRQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5hbWUs
IGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWUpIHJhaXNlcyhET01F
eGNlcHRpb24pOzsKKyAgICAgICAgdm9pZCBhZGRQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5hbWUs
IGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWUpIHJhaXNlcyhET01F
eGNlcHRpb24pOzsKKyAgICAgICAgdm9pZCByZW1vdmVQYXJhbWV0ZXIoaW4gRE9NU3RyaW5nIG5h
bWUpOworICAgICAgICB2b2lkIGNsZWFyUGFyYW1ldGVycygpOworCiAjaWYgZGVmaW5lZChFTkFC
TEVfTUVESUFfU1RSRUFNKSAmJiBFTkFCTEVfTUVESUFfU1RSRUFNCiAgICAgICAgIFtDb25kaXRp
b25hbD1CTE9CLENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51
bGxTdHJpbmdBcz1VbmRlZmluZWRdIHN0YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKGlu
IE1lZGlhU3RyZWFtIHN0cmVhbSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZjRiZTBkZmJiNTBhZjJhZDFi
MWVhYTU3YjQxZmZhYTFjYzM1NGEyLi41ZGZhYzEyODUyYzk1ZjkwMjUwODc3N2FkMTYzMzU2OWVh
OTM1YzU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDUtMTEgIEVyaWsgQXJ2aWRzc29u
ICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBVUkw6IEFkZCBzdXBwb3J0IGZvciBwYXJh
bWV0ZXIgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODYyMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZG9tL0RPTVVSTC9hZGQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vRE9NVVJML2FkZC1wYXJhbWV0ZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vRE9NVVJML2NsZWFyLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ET01VUkwvY2xlYXItcGFyYW1ldGVycy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ET01VUkwvZ2V0LXBhcmFtZXRlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLW5hbWVz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRE9NVVJML2dldC1wYXJh
bWV0ZXItbmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRE9NVVJML2dldC1w
YXJhbWV0ZXItdmFsdWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
RE9NVVJML2dldC1wYXJhbWV0ZXItdmFsdWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0RPTVVSTC9oYXMtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vRE9NVVJML2hhcy1wYXJhbWV0ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vRE9NVVJML3JlbW92ZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9ET01VUkwvcmVtb3ZlLXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9ET01VUkwvc2V0LXBhcmFtZXRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0RPTVVSTC9zZXQtcGFyYW1ldGVyLmh0bWw6IEFkZGVkLgorCiAyMDEy
LTA1LTA0ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCB0aGUgVVJMIGRlY29tcG9zaXRpb24gSURMIGF0dHJpYnV0ZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvYWRkLXBhcmFtZXRlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvYWRkLXBhcmFtZXRlci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MyMjFlZTk5ZmViZGY1MDkwNTA5Nzg0Yzk2OWJjMDllODRl
NmZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9hZGQt
cGFyYW1ldGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitQQVNTIHVybC5zZWFyY2gg
aXMgIj9hYWE9QTFBIgorUEFTUyB1cmwuc2VhcmNoIGlzICI/YWFhPUExQSZhYWE9QTJBIgorUEFT
UyB1cmwuc2VhcmNoIGlzICI/YWFhPUExQSZhYWE9QTJBJmJiYj1CMUIiCitQQVNTIHVybC5zZWFy
Y2ggaXMgIj9hYWE9QTFBJmFhYT1BMkEmYmJiPUIxQiZhYWE9IgorUEFTUyB1cmwuc2VhcmNoIGlz
ICI/YWFhPUExQSZhYWE9QTJBJmJiYj1CMUImYWFhPSZhYWEiCitQQVNTIHVybC5zZWFyY2ggaXMg
Ij9hYWE9QTFBJmFhYT1BMkEmYmJiPUIxQiZhYWE9JmFhYSY9IgorUEFTUyB1cmwuc2VhcmNoIGlz
ICI/YWFhPUExQSZhYWE9QTJBJmJiYj1CMUImYWFhPSZhYWEmPSY9QzFDIgorUEFTUyB1cmwuYWRk
UGFyYW1ldGVyKCcnLCBudWxsKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2Rl
IDEyCitQQVNTIHVybC5zZWFyY2ggaXMgIj9hYWE9QTFBJmFhYT1BMkEmYmJiPUIxQiZhYWE9JmFh
YSY9Jj1DMUMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2FkZC1wYXJhbWV0
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9hZGQtcGFyYW1ldGVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGJiYjFmYzhjY2ViNGJmMDY3ZTJkODkxNDc0YWQ3Nzg0NmEyNzJjZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9hZGQtcGFyYW1ldGVy
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Zh
ciB1cmwgPSBuZXcgd2Via2l0VVJMKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLycpOworCit1cmwu
YWRkUGFyYW1ldGVyKCdhYWEnLCAnQTFBJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5z
ZWFyY2gnLCAnP2FhYT1BMUEnKTsKKwordXJsLmFkZFBhcmFtZXRlcignYWFhJywgJ0EyQScpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuc2VhcmNoJywgJz9hYWE9QTFBJmFhYT1BMkEnKTsK
KwordXJsLmFkZFBhcmFtZXRlcignYmJiJywgJ0IxQicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd1cmwuc2VhcmNoJywgJz9hYWE9QTFBJmFhYT1BMkEmYmJiPUIxQicpOworCit1cmwuYWRkUGFy
YW1ldGVyKCdhYWEnLCAnJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAn
P2FhYT1BMUEmYWFhPUEyQSZiYmI9QjFCJmFhYT0nKTsKKwordXJsLmFkZFBhcmFtZXRlcignYWFh
JywgbnVsbCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAnP2FhYT1BMUEm
YWFhPUEyQSZiYmI9QjFCJmFhYT0mYWFhJyk7CisKK3VybC5hZGRQYXJhbWV0ZXIoJycsICcnKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygndXJsLnNlYXJjaCcsICc/YWFhPUExQSZhYWE9QTJBJmJi
Yj1CMUImYWFhPSZhYWEmPScpOworCit1cmwuYWRkUGFyYW1ldGVyKCcnLCAnQzFDJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAnP2FhYT1BMUEmYWFhPUEyQSZiYmI9QjFC
JmFhYT0mYWFhJj0mPUMxQycpOworCisvLyBzaG91bGRUaHJvdyBmcm9tIGpzLXRlc3QtcHJlLmpz
IGlzIG5vdCBzdWZmaWNpZW50LgorZnVuY3Rpb24gc2hvdWxkVGhyb3dET01FeGNlcHRpb24oZiwg
ZWMpCit7CisgICAgdHJ5IHsKKyAgICAgICAgZigpOworICAgICAgICB0ZXN0RmFpbGVkKCdFeHBl
Y3RlZCBhbiBleGNlcHRpb24nKTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBpZiAoIShl
eCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbikpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0V4
Y2VwdGlvbiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgRE9NRXhjZXB0aW9uLCBmb3VuZDogJyArCisg
ICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC50b1N0cmluZy5jYWxsKGV4KSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVjICE9PSBleC5jb2RlKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCdXcm9uZyBleGNlcHRpb24gY29kZTogJyArIGV4LmNvZGUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIHZhciBmb3JtYXR0
ZWRGdW5jdGlvbiA9IFN0cmluZyhmKS5yZXBsYWNlKC9eZnVuY3Rpb24uK1x7XHMqL20sICcnKS4K
KyAgICAgICAgcmVwbGFjZSgvOz9ccytcfS9tLCAnJyk7CisgICAgdGVzdFBhc3NlZChmb3JtYXR0
ZWRGdW5jdGlvbiArICcgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAnICsg
ZWMpOworfQorCitzaG91bGRUaHJvd0RPTUV4Y2VwdGlvbihmdW5jdGlvbigpIHsKKyAgICB1cmwu
YWRkUGFyYW1ldGVyKCcnLCBudWxsKTsKK30sIERPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSKTsKKwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuc2VhcmNoJywgJz9hYWE9QTFBJmFhYT1BMkEmYmJi
PUIxQiZhYWE9JmFhYSY9Jj1DMUMnKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2NsZWFy
LXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2Ns
ZWFyLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1M2NmODY4YTJlYmNmOTA1
ZDFkOGE2OWFkNDZhYjk1OTA4Nzk5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ET01VUkwvY2xlYXItcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitQQVNTIHVybC5zZWFyY2ggaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9E
T01VUkwvY2xlYXItcGFyYW1ldGVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJM
L2NsZWFyLXBhcmFtZXRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDQ5MWViMTc3M2IyMzc2ZWEwMDBj
ZTM4YWUzODFhZTZmYjczODZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NVVJML2NsZWFyLXBhcmFtZXRlcnMuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdXJsID0gbmV3IHdlYmtpdFVSTCgnaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8/YWFhPUExQSYmJmFhYSZhYWE9JmJiYj1CMUImYWFhPUEyQSYmJicp
OwordXJsLmNsZWFyUGFyYW1ldGVycygpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuc2Vh
cmNoJywgJycpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGU3M2Zj
YTRhNTUwZThkZDE4ZjUzMmFmY2UzMjg5NWY3Y2JlOTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2dldC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorUEFTUyB1cmwuZ2V0UGFyYW1ldGVyKCJhYWEiKSBpcyAiQTFBIgorUEFTUyB1
cmwuZ2V0UGFyYW1ldGVyKCJiYmIiKSBpcyAiQjFCIgorUEFTUyB1cmwuZ2V0UGFyYW1ldGVyKCJh
YWEiKSBpcyAiIgorUEFTUyB1cmwuZ2V0UGFyYW1ldGVyKCJhYWEiKSBpcyBudWxsCitQQVNTIHVy
bC5nZXRQYXJhbWV0ZXIoImNjYyIpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01VUkwvZ2V0LXBhcmFtZXRlci1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ET01VUkwvZ2V0LXBhcmFtZXRlci1uYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjc0YzVkOGU5YmU3OWE5MzgzOGY4M2Y5MGRkYjkzMTM3N2U0ZGE5MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLW5hbWVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BBU1MgdXJsLmdldFBhcmFtZXRlck5hbWVzKCku
bGVuZ3RoIGlzIDIKK1BBU1MgdXJsLmdldFBhcmFtZXRlck5hbWVzKClbMF0gaXMgImFhYSIKK1BB
U1MgdXJsLmdldFBhcmFtZXRlck5hbWVzKClbMV0gaXMgImJiYiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9ET01VUkwvZ2V0LXBhcmFtZXRlci1uYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRE9NVVJML2dldC1wYXJhbWV0ZXItbmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTVk
ZGUwZmU5NDM1YmZjYjJiOWI4ZmRlMWRhZGY5NWM0MDdmZjA4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2dldC1wYXJhbWV0ZXItbmFtZXMuaHRtbApAQCAt
MCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIHVybCA9IG5l
dyB3ZWJraXRVUkwoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vP2FhYT1BMUEmJmJiYj1CMUImYWFh
PUEyQSYmJicpOworc2hvdWxkQmUoJ3VybC5nZXRQYXJhbWV0ZXJOYW1lcygpLmxlbmd0aCcsICcy
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5nZXRQYXJhbWV0ZXJOYW1lcygpWzBdJywg
J2FhYScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuZ2V0UGFyYW1ldGVyTmFtZXMoKVsx
XScsICdiYmInKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2dldC1wYXJhbWV0ZXItdmFs
dWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1l
dGVyLXZhbHVlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEwMTc0ZjNkMjVlYWE0NDVmZTk3
ZDk2NWU2YTAzMDdlYzFlMGVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitQQVNTIHVybC5nZXRQYXJhbWV0ZXJWYWx1ZXMoImFhYSIpLmxlbmd0aCBpcyA0CitQQVNT
IHVybC5nZXRQYXJhbWV0ZXJWYWx1ZXMoImFhYSIpWzBdIGlzICJBMUEiCitQQVNTIHVybC5nZXRQ
YXJhbWV0ZXJWYWx1ZXMoImFhYSIpWzFdIGlzIG51bGwKK1BBU1MgdXJsLmdldFBhcmFtZXRlclZh
bHVlcygiYWFhIilbMl0gaXMgIiIKK1BBU1MgdXJsLmdldFBhcmFtZXRlclZhbHVlcygiYWFhIilb
M10gaXMgIkEyQSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvZ2V0LXBhcmFt
ZXRlci12YWx1ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1l
dGVyLXZhbHVlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZmNkYzFiYWI0MGEzYzgwZjg3ZTNjNjkyOTg0
MGMzYzRmMWQ3NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01V
UkwvZ2V0LXBhcmFtZXRlci12YWx1ZXMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdXJsID0gbmV3IHdlYmtpdFVSTCgnaHR0cDovL3d3
dy5leGFtcGxlLmNvbS8/YWFhPUExQSYmJmFhYSZhYWE9JmJiYj1CMUImYWFhPUEyQSYmJicpOwor
c2hvdWxkQmUoJ3VybC5nZXRQYXJhbWV0ZXJWYWx1ZXMoImFhYSIpLmxlbmd0aCcsICc0Jyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5nZXRQYXJhbWV0ZXJWYWx1ZXMoImFhYSIpWzBdJywg
J0ExQScpOworc2hvdWxkQmVOdWxsKCd1cmwuZ2V0UGFyYW1ldGVyVmFsdWVzKCJhYWEiKVsxXScp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuZ2V0UGFyYW1ldGVyVmFsdWVzKCJhYWEiKVsy
XScsICcnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndXJsLmdldFBhcmFtZXRlclZhbHVlcygi
YWFhIilbM10nLCAnQTJBJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRE9NVVJML2dldC1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzAxNWYxMDNjNjI4ZGYw
M2U4NjdmOWE2NTA0NWUzM2NjNzU5MDE4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RPTVVSTC9nZXQtcGFyYW1ldGVyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciB1cmwgPSBuZXcgd2Via2l0VVJMKCdodHRw
Oi8vd3d3LmV4YW1wbGUuY29tLz9hYWE9QTFBJiYmYWFhJmFhYT0mYmJiPUIxQiZhYWE9QTJBJiYm
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5nZXRQYXJhbWV0ZXIoImFhYSIpJywgJ0Ex
QScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuZ2V0UGFyYW1ldGVyKCJiYmIiKScsICdC
MUInKTsKKwordXJsID0gbmV3IHdlYmtpdFVSTCgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8/YWFh
PSYmJmFhYSZhYWE9JmJiYj1CMUImYWFhPUEyQSYmJicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd1cmwuZ2V0UGFyYW1ldGVyKCJhYWEiKScsICcnKTsKKwordXJsID0gbmV3IHdlYmtpdFVSTCgn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8/YWFhJiYmYWFhJmFhYT0mYmJiPUIxQiZhYWE9QTJBJiYm
Jyk7CitzaG91bGRCZU51bGwoJ3VybC5nZXRQYXJhbWV0ZXIoImFhYSIpJyk7CitzaG91bGRCZU51
bGwoJ3VybC5nZXRQYXJhbWV0ZXIoImNjYyIpJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2hhcy1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJML2hhcy1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhiYzllNDcyYjA5N2VhOTE4MmM0ZjdlZDUyMzRkOGUxMTQxZmQ1MTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvaGFzLXBhcmFtZXRl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorUEFTUyB1cmwuaGFzUGFyYW1ldGVyKCJh
YWEiKSBpcyB0cnVlCitQQVNTIHVybC5oYXNQYXJhbWV0ZXIoImJiYiIpIGlzIHRydWUKK1BBU1Mg
dXJsLmhhc1BhcmFtZXRlcigiYWEiKSBpcyBmYWxzZQorUEFTUyB1cmwuaGFzUGFyYW1ldGVyKCJB
QUEiKSBpcyBmYWxzZQorUEFTUyB1cmwuaGFzUGFyYW1ldGVyKCJhYWE9IikgaXMgZmFsc2UKK1BB
U1MgdXJsLmhhc1BhcmFtZXRlcigiJmFhYSIpIGlzIGZhbHNlCitQQVNTIHVybC5oYXNQYXJhbWV0
ZXIoIiYiKSBpcyBmYWxzZQorUEFTUyB1cmwuaGFzUGFyYW1ldGVyKCI9IikgaXMgZmFsc2UKK1BB
U1MgdXJsLmhhc1BhcmFtZXRlcigiIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9ET01VUkwvaGFzLXBhcmFtZXRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9N
VVJML2hhcy1wYXJhbWV0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjUxMTQ5NDhmNTFkYmUwZjk0Nzc4
ZTMxYjZkMjE3N2FlYzZlODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NVVJML2hhcy1wYXJhbWV0ZXIuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdXJsID0gbmV3IHdlYmtpdFVSTCgnaHR0cDovL3d3
dy5leGFtcGxlLmNvbS8/YWFhPUExQSYmJmFhYSZhYWE9JmJiYj1CMUImYWFhPUEyQSYmJicpOwor
c2hvdWxkQmVUcnVlKCd1cmwuaGFzUGFyYW1ldGVyKCJhYWEiKScpOworc2hvdWxkQmVUcnVlKCd1
cmwuaGFzUGFyYW1ldGVyKCJiYmIiKScpOworCitzaG91bGRCZUZhbHNlKCd1cmwuaGFzUGFyYW1l
dGVyKCJhYSIpJyk7CitzaG91bGRCZUZhbHNlKCd1cmwuaGFzUGFyYW1ldGVyKCJBQUEiKScpOwor
c2hvdWxkQmVGYWxzZSgndXJsLmhhc1BhcmFtZXRlcigiYWFhPSIpJyk7CitzaG91bGRCZUZhbHNl
KCd1cmwuaGFzUGFyYW1ldGVyKCImYWFhIiknKTsKK3Nob3VsZEJlRmFsc2UoJ3VybC5oYXNQYXJh
bWV0ZXIoIiYiKScpOworc2hvdWxkQmVGYWxzZSgndXJsLmhhc1BhcmFtZXRlcigiPSIpJyk7Citz
aG91bGRCZUZhbHNlKCd1cmwuaGFzUGFyYW1ldGVyKCIiKScpOworCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9yZW1vdmUtcGFyYW1ldGVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9yZW1vdmUtcGFyYW1ldGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWZlZmM3MmU1ZDJkMmU4ZjgwOWRiMjZjMDE0NmVk
MmExZTVkMDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NVVJM
L3JlbW92ZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyB1cmwu
c2VhcmNoIGlzICI/YmJiPUIxQiIKK1BBU1MgdXJsLnNlYXJjaCBpcyAiIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9yZW1vdmUtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9ET01VUkwvcmVtb3ZlLXBhcmFtZXRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZTI4
OWZhYzUyZGE0ZDQwYjBkYTA0ZjgwNjk3NjA0MGRhYzNmYWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvcmVtb3ZlLXBhcmFtZXRlci5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgdXJsID0gbmV3IHdl
YmtpdFVSTCgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8/YWFhPUExQSYmJmFhYSZhYWE9JmJiYj1C
MUImYWFhPUEyQSYmJicpOwordXJsLnJlbW92ZVBhcmFtZXRlcignYWFhJyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAnP2JiYj1CMUInKTsKK3VybC5yZW1vdmVQYXJhbWV0
ZXIoJ2JiYicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1cmwuc2VhcmNoJywgJycpOworCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9zZXQt
cGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9zZXQt
cGFyYW1ldGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDJiYTMyMTkxZWM2Y2M0ODU3Zjc0
ZTY5ZDA3NDQ4NjEwZWEzZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NVVJML3NldC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1BB
U1MgdXJsLnNlYXJjaCBpcyAiP2FhYT1BMUEiCitQQVNTIHVybC5zZWFyY2ggaXMgIj9hYWE9QTJB
IgorUEFTUyB1cmwuc2VhcmNoIGlzICI/YWFhPUEyQSZiYmI9QjFCIgorUEFTUyB1cmwuc2VhcmNo
IGlzICI/YmJiPUIxQiZhYWE9QTNBIgorUEFTUyB1cmwuc2VhcmNoIGlzICI/YmJiPUIxQiZhYWE9
IgorUEFTUyB1cmwuc2VhcmNoIGlzICI/YmJiPUIxQiZhYWEiCitQQVNTIHVybC5zZWFyY2ggaXMg
Ij9iYmI9QjFCJmFhYSY9IgorUEFTUyB1cmwuc2V0UGFyYW1ldGVyKCcnLCBudWxsKSB0aHJldyBl
eHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCitQQVNTIHVybC5zZWFyY2ggaXMgIj9i
YmI9QjFCJmFhYSY9IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTVVSTC9zZXQtcGFy
YW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvc2V0LXBhcmFtZXRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1ZWU1MDFjNDVmZDRmZGMxZmU0ZjVmM2YxMTM0NjgxYmRjMTY2NDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01VUkwvc2V0LXBhcmFt
ZXRlci5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Cit2YXIgdXJsID0gbmV3IHdlYmtpdFVSTCgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nKTsKKwor
dXJsLnNldFBhcmFtZXRlcignYWFhJywgJ0ExQScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd1
cmwuc2VhcmNoJywgJz9hYWE9QTFBJyk7CisKK3VybC5zZXRQYXJhbWV0ZXIoJ2FhYScsICdBMkEn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndXJsLnNlYXJjaCcsICc/YWFhPUEyQScpOworCit1
cmwuc2V0UGFyYW1ldGVyKCdiYmInLCAnQjFCJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Vy
bC5zZWFyY2gnLCAnP2FhYT1BMkEmYmJiPUIxQicpOworCit1cmwuc2V0UGFyYW1ldGVyKCdhYWEn
LCAnQTNBJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAnP2JiYj1CMUIm
YWFhPUEzQScpOworCit1cmwuc2V0UGFyYW1ldGVyKCdhYWEnLCAnJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3VybC5zZWFyY2gnLCAnP2JiYj1CMUImYWFhPScpOworCit1cmwuc2V0UGFyYW1l
dGVyKCdhYWEnLCBudWxsKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndXJsLnNlYXJjaCcsICc/
YmJiPUIxQiZhYWEnKTsKKwordXJsLnNldFBhcmFtZXRlcignJywgJycpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd1cmwuc2VhcmNoJywgJz9iYmI9QjFCJmFhYSY9Jyk7CisKKy8vIHNob3VsZFRo
cm93IGZyb20ganMtdGVzdC1wcmUuanMgaXMgbm90IHN1ZmZpY2llbnQuCitmdW5jdGlvbiBzaG91
bGRUaHJvd0RPTUV4Y2VwdGlvbihmLCBlYykKK3sKKyAgICB0cnkgeworICAgICAgICBmKCk7Cisg
ICAgICAgIHRlc3RGYWlsZWQoJ0V4cGVjdGVkIGFuIGV4Y2VwdGlvbicpOworICAgIH0gY2F0Y2gg
KGV4KSB7CisgICAgICAgIGlmICghKGV4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKSkgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnRXhjZXB0aW9uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBET01F
eGNlcHRpb24sIGZvdW5kOiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LnRvU3Ry
aW5nLmNhbGwoZXgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoZWMgIT09IGV4LmNvZGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1dyb25nIGV4Y2Vw
dGlvbiBjb2RlOiAnICsgZXguY29kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisgICAgdmFyIGZvcm1hdHRlZEZ1bmN0aW9uID0gU3RyaW5nKGYpLnJlcGxhY2UoL15m
dW5jdGlvbi4rXHtccyovbSwgJycpLgorICAgICAgICByZXBsYWNlKC87P1xzK1x9L20sICcnKTsK
KyAgICB0ZXN0UGFzc2VkKGZvcm1hdHRlZEZ1bmN0aW9uICsgJyB0aHJldyBleHBlY3RlZCBET01F
eGNlcHRpb24gd2l0aCBjb2RlICcgKyBlYyk7Cit9CisKK3Nob3VsZFRocm93RE9NRXhjZXB0aW9u
KGZ1bmN0aW9uKCkgeworICAgIHVybC5zZXRQYXJhbWV0ZXIoJycsIG51bGwpOworfSwgRE9NRXhj
ZXB0aW9uLlNZTlRBWF9FUlIpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3VybC5zZWFyY2gn
LCAnP2JiYj1CMUImYWFhJj0nKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>