<?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>177058</bug_id>
          
          <creation_ts>2017-09-17 14:20:40 -0700</creation_ts>
          <short_desc>WSL needs float and double support</short_desc>
          <delta_ts>2018-10-13 16:34:40 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1349790</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-17 14:20:40 -0700</bug_when>
    <thetext>WSL needs float and double support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349791</commentid>
    <comment_count>1</comment_count>
      <attachid>321055</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-17 14:28:36 -0700</bug_when>
    <thetext>Created attachment 321055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349804</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-17 16:38:32 -0700</bug_when>
    <thetext>I probably should add native operator float(double) and native operator double(float).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349806</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-09-17 17:32:03 -0700</bug_when>
    <thetext>Committed r222138: &lt;http://trac.webkit.org/changeset/222138&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353398</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:27:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468927</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 16:34:40 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/128</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321055</attachid>
            <date>2017-09-17 14:28:36 -0700</date>
            <delta_ts>2017-09-17 16:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177058-20170917142836.patch</filename>
            <type>text/plain</type>
            <size>37537</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGJhMDY0YTc2YjhkM2E2ODYyNzNhZDhmZjZjYzNkZTIw
MzIzNjc1YS4uNmYwYjJmZGJjNGViZDRlMjU5Y2RiZmM1MjgxMzMxMjBlYTMzMzhiYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE3LTA5LTE3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgV1NMIG5lZWRzIGZsb2F0IGFuZCBkb3VibGUgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDU4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBleGlzdGluZyBp
bnQgYW5kIHVpbnQgdHlwZXMgYXMgYSBtb2RlbC4gVGhlIHR5cGVzIHRoZW1zZWx2ZXMgYXJlIHN0
cmFpZ2hmb3J3YXJkLiBKdXN0IGxpa2UgaW50IGFuZCB1aW50LAorICAgICAgICB5b3UgY2FuJ3Qg
cGFzcyBhIGZsb2F0IGFzIGEgZG91YmxlIGFyZ3VtZW50IGFuZCB2aWNlLXZlcnNhLiBUaGlzIHBh
dGNoIGFkZHMgb3BlcmF0b3IrLCAtLCAqLCBhbmQgLyBmb3IgZmxvYXRzCisgICAgICAgIGFuZCBk
b3VibGVzLgorCisgICAgICAgIEZsb2F0IGxpdGVyYWxzIGFyZSBtb3JlIGNvbXBsaWNhdGVkLiBJ
ZiB5b3VyIG51bWJlciBoYXMgYSAiLiIgY2hhcmFjdGVyIGluIGl0LCBpdCBpcyB0cmVhdGVkIGFz
IGEgZmxvYXQgbGl0ZXJhbC4KKyAgICAgICAgWW91IGNhbiBhZGQgYSBzdWZmaXggb2YgImYiIG9y
ICJkIiB0byBmb3JjZSB0aGUgbGl0ZXJhbCB0byBwcmV0ZW5kIHRvIGJlIGEgZmxvYXQgb3IgYSBk
b3VibGUuIFRoZXNlIGxpdGVyYWxzIGFyZQorICAgICAgICBhYmxlIHRvIG1hc3F1ZXJhZGUgYXMg
ZWl0aGVyIGZsb2F0cyBvciBkb3VibGVzICh1bmxpa2UgYW4gZXhwbGljaXQgdHlwZSkuIEhvd2V2
ZXIsIHRoZXNlIGxpdGVyYWxzIGFyZSBub3QgYWJsZQorICAgICAgICB0byBtYXNxdWVyYWRlIGFz
IGludHMgb3IgdWludHMuIFRoZXJlJ3MgYWxzbyBhIG5pY2UgY2hlY2sgdGhhdCB5b3VyIGZsb2F0
IGxpdGVyYWwgY2FuIGFjdHVhbGx5IGZpdCBpbiBhIGZsb2F0LgorCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0RvdWJsZUxpdGVyYWwuanM6IENvcGllZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1R5cGUuanMuCisgICAgICAgIChsZXQuRG91YmxlTGl0ZXJhbC5jcmVhdGVMaXRlcmFs
LmNyZWF0ZVR5cGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0RvdWJsZUxp
dGVyYWxUeXBlLmpzOiBDb3BpZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlLmpzLgorICAgICAgICAobGV0LkRvdWJsZUxpdGVyYWxUeXBlLmNyZWF0ZUxpdGVyYWxUeXBl
LnZlcmlmeUFzQXJndW1lbnQpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zs
b2F0TGl0ZXJhbC5qczogQ29waWVkIGZyb20gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VHlwZS5qcy4KKyAgICAgICAgKGxldC5GbG9hdExpdGVyYWwuY3JlYXRlTGl0ZXJhbC5jcmVhdGVU
eXBlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWxUeXBl
LmpzOiBDb3BpZWQgZnJvbSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzLgor
ICAgICAgICAobGV0LkZsb2F0TGl0ZXJhbFR5cGUuY3JlYXRlTGl0ZXJhbFR5cGUudmVyaWZ5QXNB
cmd1bWVudCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5q
czoKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0xleGVyLmpzOgorICAgICAgICAoTGV4ZXIucHJvdG90eXBlLm5leHQpOgorICAgICAgICAo
TGV4ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanM6
CisgICAgICAgIChOYXRpdmVUeXBlKToKKyAgICAgICAgKE5hdGl2ZVR5cGUucHJvdG90eXBlLmdl
dCBpc0Zsb2F0aW5nKToKKyAgICAgICAgKE5hdGl2ZVR5cGUucHJvdG90eXBlLnNldCBpc0Zsb2F0
aW5nKToKKyAgICAgICAgKE5hdGl2ZVR5cGUucHJvdG90eXBlLmdldCBpc0Zsb2F0KTogRGVsZXRl
ZC4KKyAgICAgICAgKE5hdGl2ZVR5cGUucHJvdG90eXBlLnNldCBpc0Zsb2F0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBh
cnNlVGVybSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanM6
CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbCk6CisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAg
ICAodWludC5vcGVyYXRvcik6CisgICAgICAgIChpbnQub3BlcmF0b3IpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAobWFrZUZsb2F0KToKKyAgICAgICAgKG1ha2VE
b3VibGUpOgorICAgICAgICAoY2hlY2tOdW1iZXIpOgorICAgICAgICAoY2hlY2tGbG9hdCk6Cisg
ICAgICAgIChjaGVja0RvdWJsZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VHlwZS5qczoKKyAgICAgICAgKFR5cGUucHJvdG90eXBlLmdldCBpc0Zsb2F0aW5nKToKKyAgICAg
ICAgKFR5cGUucHJvdG90eXBlLmdldCBpc0Zsb2F0KTogRGVsZXRlZC4KKwogMjAxNy0wOS0xNyAg
TWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MDM4CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BbGwuanMKaW5kZXggNTdhZTM4NzhlYTZmYWEzMmI3MWQwYTgzZjZhZmZmYjM4YWM0MjIx
MC4uODJmYWRkMTc0ZDBkYmYwOWYyY2RiY2VmYzUzYWUzYjc1YTAyZmNmYSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNjEsNiArNjEsOCBAQCBsb2FkKCJDb252ZXJ0UHRy
VG9BcnJheVJlZkV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkRlcmVmZXJlbmNlRXhwcmVzc2lvbi5q
cyIpOwogbG9hZCgiRG9XaGlsZUxvb3AuanMiKTsKIGxvYWQoIkRvdEV4cHJlc3Npb24uanMiKTsK
K2xvYWQoIkRvdWJsZUxpdGVyYWwuanMiKTsKK2xvYWQoIkRvdWJsZUxpdGVyYWxUeXBlLmpzIik7
CiBsb2FkKCJFQXJyYXlSZWYuanMiKTsKIGxvYWQoIkVCdWZmZXIuanMiKTsKIGxvYWQoIkVCdWZm
ZXJCdWlsZGVyLmpzIik7CkBAIC03MCw2ICs3Miw4IEBAIGxvYWQoIkV2YWx1YXRvci5qcyIpOwog
bG9hZCgiRXhwcmVzc2lvbkZpbmRlci5qcyIpOwogbG9hZCgiRmllbGQuanMiKTsKIGxvYWQoIkZs
YXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiKTsKK2xvYWQoIkZsb2F0TGl0ZXJhbC5qcyIpOworbG9h
ZCgiRmxvYXRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiRm9yTG9vcC5qcyIpOwogbG9hZCgiRnVu
Yy5qcyIpOwogbG9hZCgiRnVuY0RlZi5qcyIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRG91YmxlTGl0ZXJhbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0RvdWJsZUxpdGVyYWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlmYjZlZDU2OTkyZTdlMzE0OTli
ZmQwYTllMzU3ZTIxYmM5ZjRjMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0RvdWJsZUxpdGVyYWwuanMKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitsZXQg
RG91YmxlTGl0ZXJhbCA9IGNyZWF0ZUxpdGVyYWwoeworICAgIHByZWZlcnJlZFR5cGVOYW1lOiAi
ZG91YmxlIiwKKyAgICAKKyAgICBjcmVhdGVUeXBlKG9yaWdpbiwgdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gbmV3IERvdWJsZUxpdGVyYWxUeXBlKG9yaWdpbiwgdmFsdWUpOworICAgIH0K
K30pOworCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Eb3VibGVM
aXRlcmFsVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0RvdWJsZUxpdGVy
YWxUeXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NDJmYjVjMTA1MDQ5ZTMxMGY2OWYxZWE2MGI4NzNiMDJl
OWE2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9E
b3VibGVMaXRlcmFsVHlwZS5qcwpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2xldCBEb3VibGVMaXRl
cmFsVHlwZSA9IGNyZWF0ZUxpdGVyYWxUeXBlKHsKKyAgICBwcmVmZXJyZWRUeXBlTmFtZTogImRv
dWJsZSIsCisgICAgCisgICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNvbnRleHQpCisg
ICAgeworICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlz
KTsKKyAgICAgICAgaWYgKCFyZWFsVGhpcy5pc0Zsb2F0aW5nKQorICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJDYW5ub3QgdXNlIGRvdWJsZSBsaXRlcmFsIHdpdGgg
bm9uLWZsb2F0aW5nIHR5cGUgIiArIHJlYWxUaGlzfTsKKyAgICAgICAgaWYgKCFyZWFsVGhpcy5j
YW5SZXByZXNlbnQodGhpcy52YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFs
c2UsIHJlYXNvbjogIkZsb2F0IGxpdGVyYWwgIiArIHRoaXMudmFsdWUgKyAiIGRvZXMgbm90IGZp
dCBpbiB0eXBlICIgKyByZWFsVGhpc307CisgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsK
KyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zs
b2F0TGl0ZXJhbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJh
bC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44Nzc5ZDIwNGViNGIxZWJlZWJlN2MyZWVmOTkxYzYxZjU5MTJmNTM5
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRM
aXRlcmFsLmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworbGV0IEZsb2F0TGl0ZXJhbCA9IGNyZWF0
ZUxpdGVyYWwoeworICAgIHByZWZlcnJlZFR5cGVOYW1lOiAiZmxvYXQiLAorICAgIAorICAgIGNy
ZWF0ZVR5cGUob3JpZ2luLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgRmxvYXRM
aXRlcmFsVHlwZShvcmlnaW4sIHZhbHVlKTsKKyAgICB9Cit9KTsKKwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsVHlwZS5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdi
YjdmMmM4YjAwY2IzODA2Y2M1NmE1ZDI1ZDhmZTA1Mzg3M2NkOQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbFR5cGUuanMKQEAgLTAs
MCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
InVzZSBzdHJpY3QiOworCitsZXQgRmxvYXRMaXRlcmFsVHlwZSA9IGNyZWF0ZUxpdGVyYWxUeXBl
KHsKKyAgICBwcmVmZXJyZWRUeXBlTmFtZTogImZsb2F0IiwKKyAgICAKKyAgICB2ZXJpZnlBc0Fy
Z3VtZW50KHVuaWZpY2F0aW9uQ29udGV4dCkKKyAgICB7CisgICAgICAgIGxldCByZWFsVGhpcyA9
IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOworICAgICAgICBpZiAoIXJlYWxUaGlzLmlz
RmxvYXRpbmcpCisgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkNh
bm5vdCB1c2UgZmxvYXQgbGl0ZXJhbCB3aXRoIG5vbi1mbG9hdGluZyB0eXBlICIgKyByZWFsVGhp
c307CisgICAgICAgIGlmICghcmVhbFRoaXMuY2FuUmVwcmVzZW50KHRoaXMudmFsdWUpKQorICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJGbG9hdCBsaXRlcmFsICIg
KyB0aGlzLnZhbHVlICsgIiBkb2VzIG5vdCBmaXQgaW4gdHlwZSAiICsgcmVhbFRoaXN9OworICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCBlOWQzNTMwODhiYTVhZjJlOWUzN2I0
MmY5NWJhNTEyZmIwZTVkYTc1Li4wOThhZGI4ZWYzYzJhZTkyZWUxYzIwNGU1NzBiYmMyMWE3ZmJm
NGJlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNz
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAg
LTg1LDExICs4NSwyMiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHByaW1pdGl2ZSB0eXBl
IGZsb2F0PD4iLAorICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5m
bG9hdCA9IHR5cGU7CisgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAg
ICAgICB0eXBlLmlzRmxvYXRpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1i
ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4g
aXNCaXR3aXNlRXF1aXZhbGVudChNYXRoLmZyb3VuZCh2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9t
YXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBwcmltaXRpdmUgdHlwZSBkb3VibGU8PiIsCiAg
ICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLmRvdWJsZSA9IHR5cGU7
CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBlLmlz
RmxvYXQgPSB0cnVlOworICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiB0cnVlOwogICAgICAgICAgICAgICAgIHR5cGUucG9w
dWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0
LCAwKTsKQEAgLTEzMCw2ICsxNDEsMjAgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0
aXZlIGZsb2F0IG9wZXJhdG9yKzw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZh
bHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIAor
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBkb3VibGUgb3BlcmF0
b3IrPD4oZG91YmxlLGRvdWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItPD4oaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgpAQCAtMTQ0LDYgKzE2OSwyMCBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItPD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5s
b2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGRvdWJsZSBv
cGVyYXRvci08Pihkb3VibGUsZG91YmxlKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcio8PihpbnQsaW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+CkBAIC0xNTgsNiArMTk3LDIwIEBAIGNsYXNzIEludHJpbnNpY3Mgewog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcio8PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChs
ZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgZG91
YmxlIG9wZXJhdG9yKjw+KGRvdWJsZSxkb3VibGUpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0Lmxv
YWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLzw+KGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KQEAgLTE3Miw2ICsyMjUsMjAgQEAgY2xhc3MgSW50cmluc2lj
cyB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLzw+KGZsb2F0LGZsb2F0KSIsCisgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJv
dW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIAorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2
ZSBkb3VibGUgb3BlcmF0b3IvPD4oZG91YmxlLGRvdWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0aGlz
Ll9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08PihpbnQsaW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CkBAIC0xOTMsNiArMjYwLDIwIEBAIGNsYXNzIElu
dHJpbnNpY3MgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08PihmbG9hdCxmbG9hdCki
LAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcj09PD4oZG91YmxlLGRvdWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0Lmxv
YWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFw
LnNldCgKICAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw8PihpbnQsaW50KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+CkBAIC0yMDcsNiArMjg4LDIwIEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAor
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGZsb2F0LGZsb2F0KSIsCisgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9h
ZFZhbHVlKCkgPCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I8PD4oZG91YmxlLGRvdWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAg
ICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD08PihpbnQsaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+CkBAIC0yMjEsNiArMzE2LDIwIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD08PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgp
IDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAKKyAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9PD4o
ZG91YmxlLGRvdWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAgICAg
ICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48PihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+CkBAIC0yMzUsNiArMzQ0LDIwIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5h
dGl2ZSBib29sIG9wZXJhdG9yPjw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdo
dC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PD4oZG91YmxlLGRv
dWJsZSkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIAorICAgICAgICB0aGlzLl9tYXAuc2V0KAogICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPj08PihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CkBA
IC0yNDgsNiArMzcxLDIwIEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICAKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcj49PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+
PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PTw+KGRv
dWJsZSxkb3VibGUpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgCiAgICAgICAgIGxldCBhcnJheUVsZW1lbnRQdHIgPSBmdW5j
ID0+IHsKICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZiwgaW5kZXhdLCBu
b2RlKSA9PiB7CiAgICAgICAgICAgICAgICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGV4ZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9MZXhlci5qcwppbmRleCBlZjJkN2UwZjdiM2IzZTQ4NTA0YTRl
ODI5NzliNjFhOWM4ZjJkMTkzLi5lMmYzZWIyM2RjYjJiMDU1NTM5YWY0ZDRhNGFhYTNlMGE3YjM4
NDNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MZXhlci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MZXhlci5qcwpAQCAtMTAxLDYgKzEw
MSwxMCBAQCBjbGFzcyBMZXhlciB7CiAgICAgICAgIAogICAgICAgICBpZiAodGhpcy5faW5kZXgg
Pj0gdGhpcy5fdGV4dC5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICAvLyBGSVhNRTogTWFrZSB0aGlzIGhhbmRsZSBleHAtZm9ybSBsaXRlcmFscyBsaWtlIDFlMS4K
KyAgICAgICAgaWYgKC9eKChbMC05XSpcLlswLTldK1tmZF0/KXwoWzAtOV0rXC5bMC05XSpbZmRd
PykpLy50ZXN0KHJlbGV2YW50VGV4dCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0KCJmbG9h
dExpdGVyYWwiKTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgZG8gVW5p
Y29kZS4KICAgICAgICAgaWYgKC9eW15cZFxXXVx3Ki8udGVzdChyZWxldmFudFRleHQpKSB7CkBA
IC0xMTgsMTAgKzEyMiw2IEBAIGNsYXNzIExleGVyIHsKIAogICAgICAgICBpZiAoL15bMC05XSsv
LnRlc3QocmVsZXZhbnRUZXh0KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQoImludExpdGVy
YWwiKTsKLQotICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGhhbmRsZSBleHAtZm9ybSBsaXRl
cmFscyBsaWtlIDFlMS4KLSAgICAgICAgaWYgKC9eKFswLTldKlwuWzAtOV0rKXwoWzAtOV0rXC5b
MC05XSopLy50ZXN0KHJlbGV2YW50VGV4dCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0KCJk
b3VibGVMaXRlcmFsIik7CiAgICAgICAgIAogICAgICAgICBpZiAoL14tPnw+PXw8PXw9PXwhPXxc
Kz18LT18XCo9fFwvPXwlPXxePXxcfD18Jj18XCtcK3wtLXwoW3t9KClcW1xdPzo9KypcLywuJSF+
XiZ8PD5AOy1dKS8udGVzdChyZWxldmFudFRleHQpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dCgicHVuY3R1YXRpb24iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hdGl2ZVR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVU
eXBlLmpzCmluZGV4IDYyZThhZGM4ZGI5YjYxZWZiZWMwMTcyMTcyMzI2MTQ3OTNhODcxMjAuLmJk
MjczYzdlMTZhYmNmZDY4OGNiNTEyZGJlY2M4MTA3NzJiMDkyOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBO
YXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0g
dHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2lzTnVtYmVyID0gZmFsc2U7CiAgICAgICAg
IHRoaXMuX2lzSW50ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2lzRmxvYXQgPSBmYWxzZTsKKyAg
ICAgICAgdGhpcy5faXNGbG9hdGluZyA9IGZhbHNlOwogICAgIH0KICAgICAKICAgICBnZXQgb3Jp
Z2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9CkBAIC00OCw4ICs0OCw4IEBAIGNsYXNzIE5h
dGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICBzZXQgaXNOdW1iZXIodmFsdWUpIHsgdGhpcy5f
aXNOdW1iZXIgPSB2YWx1ZTsgfQogICAgIGdldCBpc0ludCgpIHsgcmV0dXJuIHRoaXMuX2lzSW50
OyB9CiAgICAgc2V0IGlzSW50KHZhbHVlKSB7IHRoaXMuX2lzSW50ID0gdmFsdWU7IH0KLSAgICBn
ZXQgaXNGbG9hdCgpIHsgcmV0dXJuIHRoaXMuX2lzRmxvYXQ7IH0KLSAgICBzZXQgaXNGbG9hdCh2
YWx1ZSkgeyB0aGlzLl9pc0Zsb2F0ID0gdmFsdWU7IH0KKyAgICBnZXQgaXNGbG9hdGluZygpIHsg
cmV0dXJuIHRoaXMuX2lzRmxvYXRpbmc7IH0KKyAgICBzZXQgaXNGbG9hdGluZyh2YWx1ZSkgeyB0
aGlzLl9pc0Zsb2F0aW5nID0gdmFsdWU7IH0KICAgICAKICAgICBpbnN0YW50aWF0ZSh0eXBlQXJn
dW1lbnRzKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKaW5kZXgg
NmVkMDBhZGM3NjA5NDg5ZjUxOGIyMDRjMDM3MjQ0N2RjMmIxYmZmNS4uM2I4MTkzMTMxNTQxMDIy
ZmYyZWIzOWM0ZWU2ZTY5MzRiZjYxN2Y1NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUGFyc2UuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UGFyc2UuanMKQEAgLTE4MywxMSArMTgzLDIyIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9y
aWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgICAg
ICBsZXhlci5mYWlsKCJJbnRlZ2VyIGxpdGVyYWwgaXMgbm90IDMyLWJpdCB1bnNpZ25lZCBpbnRl
Z2VyIik7CiAgICAgICAgICAgICByZXR1cm4gbmV3IFVpbnRMaXRlcmFsKHRva2VuLCB1aW50VmVy
c2lvbik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZUtpbmQoImRv
dWJsZUxpdGVyYWwiKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlTGl0ZXJhbCh0b2tl
biwgK3Rva2VuLnRleHQpOworICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lS2luZCgiZmxv
YXRMaXRlcmFsIikpIHsKKyAgICAgICAgICAgIGxldCB0ZXh0ID0gdG9rZW4udGV4dDsKKyAgICAg
ICAgICAgIGxldCBkID0gdG9rZW4udGV4dC5lbmRzV2l0aCgiZCIpOworICAgICAgICAgICAgbGV0
IGYgPSB0b2tlbi50ZXh0LmVuZHNXaXRoKCJmIik7CisgICAgICAgICAgICBpZiAoZCAmJiBmKQor
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGl0ZXJhbCBjYW5ub3QgYmUgYm90aCBh
IGRvdWJsZSBsaXRlcmFsIGFuZCBhIGZsb2F0IGxpdGVyYWwuIik7CisgICAgICAgICAgICBpZiAo
ZCB8fCBmKQorICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxl
bmd0aCAtIDEpOworICAgICAgICAgICAgbGV0IHZhbHVlID0gcGFyc2VGbG9hdCh0ZXh0KTsKKyAg
ICAgICAgICAgIGlmIChkKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlTGl0ZXJh
bCh0b2tlbiwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWwodG9r
ZW4sIE1hdGguZnJvdW5kKHZhbHVlKSk7CisgICAgICAgIH0KICAgICAgICAgaWYgKHRva2VuID0g
dHJ5Q29uc3VtZSgidHJ1ZSIsICJmYWxzZSIpKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBCb29s
TGl0ZXJhbCh0b2tlbiwgdG9rZW4udGV4dCA9PSAidHJ1ZSIpOwotICAgICAgICAvLyBGSVhNRTog
TmVlZCBzdXBwb3J0IGZvciBmbG9hdCBsaXRlcmFscyBhbmQgcHJvYmFibHkgb3RoZXIgbGl0ZXJh
bHMgdG9vLgorICAgICAgICAvLyBGSVhNRTogTmVlZCBzdXBwb3J0IGZvciBvdGhlciBsaXRlcmFs
cyB0b28uCiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IHBhcnNl
RXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1lKCIpIik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4IGM3NTcyN2Q1N2M0OThmNTkwZWUxMzUyMmE3ZDUx
NmZhNjM1NDQyZjQuLmE4MWI4N2Y2NGZlOTQzZmYwOGZiY2YzMTA3OGVmOWQ0MjMzZjU4ZmQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCkBAIC0yMzEsNiArMjMx
LDcgQEAgY2xhc3MgUmV3cml0ZXIgZXh0ZW5kcyBWaXNpdG9yQmFzZSB7CiAgICAgCiAgICAgdmlz
aXRHZW5lcmljTGl0ZXJhbChub2RlKQogICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9l
c24ndCBzZWVtIHJpZ2h0LgogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEludExpdGVyYWwobm9k
ZS5vcmlnaW4sIG5vZGUudmFsdWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IG5vZGUudHlwZS52
aXNpdCh0aGlzKTsKICAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggY2Q3YTFm
NGI5OWNhZWRjYjYyYTI5YjVhMWY0MzMzZmJkZGFlZTY4Mi4uZDk4Mjg0NTMzNDNjYzM3M2I3NmMw
NmMxZGE4YjU4YjJkNWVlMmQyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMzksNiArMzksNyBAQCBuYXRpdmUgcHJpbWl0aXZl
IHR5cGVkZWYgYm9vbDsKIHR5cGVkZWYgaW50ID0gaW50MzI7CiB0eXBlZGVmIHVpbnQgPSB1aW50
MzI7CiAKK25hdGl2ZSBwcmltaXRpdmUgdHlwZWRlZiBmbG9hdDsKIG5hdGl2ZSBwcmltaXRpdmUg
dHlwZWRlZiBkb3VibGU7CiAKIG5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50MzIpOwpAQCAtNDYs
MjcgKzQ3LDQ1IEBAIG5hdGl2ZSBvcGVyYXRvciB1aW50MzIoaW50MzIpOwogCiBuYXRpdmUgaW50
IG9wZXJhdG9yKyhpbnQsIGludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcisodWludCwgdWludCk7
CituYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgZG91YmxlIG9w
ZXJhdG9yKyhkb3VibGUsIGRvdWJsZSk7CiBpbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlICsgMTsgfQogdWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZh
bHVlICsgMTsgfQotaW50IG9wZXJhdG9yLS0oaW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7
IH0KLXVpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0KIG5h
dGl2ZSBpbnQgb3BlcmF0b3ItKGludCwgaW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50
LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBk
b3VibGUgb3BlcmF0b3ItKGRvdWJsZSwgZG91YmxlKTsKK2ludCBvcGVyYXRvci0tKGludCB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Cit1aW50IG9wZXJhdG9yLS0odWludCB2YWx1ZSkgeyBy
ZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUgaW50IG9wZXJhdG9yKihpbnQsIGludCk7CiBuYXRp
dmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZs
b2F0LCBmbG9hdCk7CituYXRpdmUgZG91YmxlIG9wZXJhdG9yKihkb3VibGUsIGRvdWJsZSk7CiBu
YXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsIGludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvci8odWlu
dCwgdWludCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7CituYXRpdmUg
ZG91YmxlIG9wZXJhdG9yLyhkb3VibGUsIGRvdWJsZSk7CiBuYXRpdmUgYm9vbCBvcGVyYXRvcj09
KGludCwgaW50KTsKIG5hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7CiBuYXRpdmUg
Ym9vbCBvcGVyYXRvcj09KGJvb2wsIGJvb2wpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShmbG9h
dCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShkb3VibGUsIGRvdWJsZSk7CiBuYXRp
dmUgYm9vbCBvcGVyYXRvcjwoaW50LCBpbnQpOwogbmF0aXZlIGJvb2wgb3BlcmF0b3I8KHVpbnQs
IHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9v
bCBvcGVyYXRvcjwoZG91YmxlLCBkb3VibGUpOwogbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShpbnQs
IGludCk7CiBuYXRpdmUgYm9vbCBvcGVyYXRvcjw9KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wg
b3BlcmF0b3I8PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShkb3VibGUs
IGRvdWJsZSk7CiBuYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBpbnQpOwogbmF0aXZlIGJvb2wg
b3BlcmF0b3I+KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9h
dCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj4oZG91YmxlLCBkb3VibGUpOwogbmF0aXZlIGJvb2wg
b3BlcmF0b3I+PShpbnQsIGludCk7CiBuYXRpdmUgYm9vbCBvcGVyYXRvcj49KHVpbnQsIHVpbnQp
OworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3Bl
cmF0b3I+PShkb3VibGUsIGRvdWJsZSk7CiAKIHByb3RvY29sIEVxdWF0YWJsZSB7CiAgICAgYm9v
bCBvcGVyYXRvcj09KEVxdWF0YWJsZSwgRXF1YXRhYmxlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuaHRtbAppbmRleCBjODBkMzg3YTFkMTYxOGJiMzFiMWEwMmIzNmQ1NzYxNThi
MzU0NDFmLi40ZWQ5NmRiYmNkM2VmMWIyZjNkMTMyNzJmYTc0NmE1MGEzN2NmOTlmIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0zNyw2ICszNyw4IEBACiA8c2Ny
aXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG90RXhw
cmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRG91YmxlTGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRG91YmxlTGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IkRlcmVmZXJlbmNlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iRUFycmF5UmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJFQnVmZmVyLmpzIj48L3Nj
cmlwdD4KQEAgLTQ3LDYgKzQ5LDggQEAKIDxzY3JpcHQgc3JjPSJFeHByZXNzaW9uRmluZGVyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxv
YXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGb3JMb29wLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IGJlMzZmMGQ3MTNjZTMw
MzQ1MjJiMmE5N2UxNzI0MDRhMGQ1ZDY4NTQuLjE4NDUzOWIyNWIzZTM0MWExM2Q5MzU4NTI1ZmQ1
NTBkZWMxMTZiYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rl
c3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtNTcs
MTQgKzU3LDYgQEAgZnVuY3Rpb24gbWFrZUludChwcm9ncmFtLCB2YWx1ZSkKICAgICByZXR1cm4g
VHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyLCB2YWx1ZSk7CiB9CiAKLWZ1
bmN0aW9uIGNoZWNrTnVtYmVyKHByb2dyYW0sIHJlc3VsdCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYg
KCFyZXN1bHQudHlwZS5pc051bWJlcikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBy
ZXN1bHQgdHlwZTsgcmVzdWx0OiAiICsgcmVzdWx0KTsKLSAgICBpZiAocmVzdWx0LnZhbHVlICE9
IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdDogIiArIHJl
c3VsdCArICIgKGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIpIik7Ci19Ci0KIGZ1bmN0aW9uIG1h
a2VVaW50KHByb2dyYW0sIHZhbHVlKQogewogICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9n
cmFtLmludHJpbnNpY3MudWludDMyLCB2YWx1ZSk7CkBAIC03NSw2ICs2NywyNCBAQCBmdW5jdGlv
biBtYWtlQm9vbChwcm9ncmFtLCB2YWx1ZSkKICAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJv
Z3JhbS5pbnRyaW5zaWNzLmJvb2wsIHZhbHVlKTsKIH0KIAorZnVuY3Rpb24gbWFrZUZsb2F0KHBy
b2dyYW0sIHZhbHVlKQoreworICAgIHJldHVybiBUeXBlZFZhbHVlLmJveChwcm9ncmFtLmludHJp
bnNpY3MuZmxvYXQsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gbWFrZURvdWJsZShwcm9ncmFtLCB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gVHlwZWRWYWx1ZS5ib3gocHJvZ3JhbS5pbnRyaW5zaWNzLmRv
dWJsZSwgdmFsdWUpOworfQorCitmdW5jdGlvbiBjaGVja051bWJlcihwcm9ncmFtLCByZXN1bHQs
IGV4cGVjdGVkKQoreworICAgIGlmICghcmVzdWx0LnR5cGUuaXNOdW1iZXIpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU7IHJlc3VsdDogIiArIHJlc3VsdCk7Cisg
ICAgaWYgKHJlc3VsdC52YWx1ZSAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJXcm9uZyByZXN1bHQ6ICIgKyByZXN1bHQgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAi
KSIpOworfQorCiBmdW5jdGlvbiBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQog
ewogICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikp
CkBAIC05OCw2ICsxMDgsMjIgQEAgZnVuY3Rpb24gY2hlY2tCb29sKHByb2dyYW0sIHJlc3VsdCwg
ZXhwZWN0ZWQpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0OiAiICsgcmVz
dWx0LnZhbHVlICsgIiAoZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIikiKTsKIH0KIAorZnVuY3Rp
b24gY2hlY2tGbG9hdChwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVkKQoreworICAgIGlmICghcmVz
dWx0LnR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5mbG9hdCkpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6ICIgKyByZXN1bHQudHlwZSk7CisgICAgaWYg
KHJlc3VsdC52YWx1ZSAhPSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9u
ZyByZXN1bHQ6ICIgKyByZXN1bHQudmFsdWUgKyAiIChleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAi
KSIpOworfQorCitmdW5jdGlvbiBjaGVja0RvdWJsZShwcm9ncmFtLCByZXN1bHQsIGV4cGVjdGVk
KQoreworICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5kb3Vi
bGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVz
dWx0LnR5cGUpOworICAgIGlmIChyZXN1bHQudmFsdWUgIT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0OiAiICsgcmVzdWx0LnZhbHVlICsgIiAoZXhwZWN0
ZWQgIiArIGV4cGVjdGVkICsgIikiKTsKK30KKwogZnVuY3Rpb24gY2hlY2tMZXhlclRva2VuKHJl
c3VsdCwgZXhwZWN0ZWRJbmRleCwgZXhwZWN0ZWRLaW5kLCBleHBlY3RlZFRleHQpCiB7CiAgICAg
aWYgKHJlc3VsdC5faW5kZXggIT0gZXhwZWN0ZWRJbmRleCkKQEAgLTUwMSwyMiArNTI3LDMyIEBA
IGZ1bmN0aW9uIFRFU1RfYmFkQWRkKCkKIAogZnVuY3Rpb24gVEVTVF9sZXhlcktleXdvcmQoKQog
ewotICAgIGxldCByZXN1bHQgPSBkb0xleCgiaWRlbnQgZm9yIHdoaWxlIDEyMyAxMjN1IHsgfSB7
YXNkIGFzZHsgMWEzIik7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gMTMpCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTGV4ZXIgZW1pdHRlZCBhbiBpbmNvcnJlY3QgbnVtYmVyIG9mIHRva2Vu
cyAoZXhwZWN0ZWQgMTIpOiAiICsgcmVzdWx0Lmxlbmd0aCk7Ci0gICAgY2hlY2tMZXhlclRva2Vu
KHJlc3VsdFswXSwgIDAsICAiaWRlbnRpZmllciIsICJpZGVudCIpOwotICAgIGNoZWNrTGV4ZXJU
b2tlbihyZXN1bHRbMV0sICA2LCAgImtleXdvcmQiLCAgICAgImZvciIpOwotICAgIGNoZWNrTGV4
ZXJUb2tlbihyZXN1bHRbMl0sICAxMCwgImtleXdvcmQiLCAgICAgIndoaWxlIik7Ci0gICAgY2hl
Y2tMZXhlclRva2VuKHJlc3VsdFszXSwgIDE2LCAiaW50TGl0ZXJhbCIsICAiMTIzIik7Ci0gICAg
Y2hlY2tMZXhlclRva2VuKHJlc3VsdFs0XSwgIDIwLCAidWludExpdGVyYWwiLCAiMTIzdSIpOwot
ICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbNV0sICAyNSwgInB1bmN0dWF0aW9uIiwgInsiKTsK
LSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzZdLCAgMjcsICJwdW5jdHVhdGlvbiIsICJ9Iik7
Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFs3XSwgIDI5LCAicHVuY3R1YXRpb24iLCAieyIp
OwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbOF0sICAzMCwgImlkZW50aWZpZXIiLCAgImFz
ZCIpOwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbOV0sICAzNCwgImlkZW50aWZpZXIiLCAg
ImFzZCIpOwotICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbMTBdLCAzNywgInB1bmN0dWF0aW9u
IiwgInsiKTsKLSAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzExXSwgMzksICJpbnRMaXRlcmFs
IiwgICIxIik7Ci0gICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsxMl0sIDQwLCAiaWRlbnRpZmll
ciIsICAiYTMiKTsKKyAgICBsZXQgcmVzdWx0ID0gZG9MZXgoImlkZW50IGZvciB3aGlsZSAxMjMg
MTIzdSB7IH0ge2FzZCBhc2R7IDFhMyAxLjIgKyAzLjQgKyAxLiArIC4yIDEuMmQgMC5kIC4zZCIp
OworICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IDIzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkxleGVyIGVtaXR0ZWQgYW4gaW5jb3JyZWN0IG51bWJlciBvZiB0b2tlbnMgKGV4cGVjdGVkIDIz
KTogIiArIHJlc3VsdC5sZW5ndGgpOworICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbMF0sICAw
LCAgImlkZW50aWZpZXIiLCAgICAiaWRlbnQiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0
WzFdLCAgNiwgICJrZXl3b3JkIiwgICAgICAgImZvciIpOworICAgIGNoZWNrTGV4ZXJUb2tlbihy
ZXN1bHRbMl0sICAxMCwgImtleXdvcmQiLCAgICAgICAid2hpbGUiKTsKKyAgICBjaGVja0xleGVy
VG9rZW4ocmVzdWx0WzNdLCAgMTYsICJpbnRMaXRlcmFsIiwgICAgIjEyMyIpOworICAgIGNoZWNr
TGV4ZXJUb2tlbihyZXN1bHRbNF0sICAyMCwgInVpbnRMaXRlcmFsIiwgICAiMTIzdSIpOworICAg
IGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbNV0sICAyNSwgInB1bmN0dWF0aW9uIiwgICAieyIpOwor
ICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbNl0sICAyNywgInB1bmN0dWF0aW9uIiwgICAifSIp
OworICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbN10sICAyOSwgInB1bmN0dWF0aW9uIiwgICAi
eyIpOworICAgIGNoZWNrTGV4ZXJUb2tlbihyZXN1bHRbOF0sICAzMCwgImlkZW50aWZpZXIiLCAg
ICAiYXNkIik7CisgICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFs5XSwgIDM0LCAiaWRlbnRpZmll
ciIsICAgICJhc2QiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzEwXSwgMzcsICJwdW5j
dHVhdGlvbiIsICAgInsiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzExXSwgMzksICJp
bnRMaXRlcmFsIiwgICAgIjEiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzEyXSwgNDAs
ICJpZGVudGlmaWVyIiwgICAgImEzIik7CisgICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsxM10s
IDQzLCAiZmxvYXRMaXRlcmFsIiwgICIxLjIiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0
WzE0XSwgNDcsICJwdW5jdHVhdGlvbiIsICAgIisiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVz
dWx0WzE1XSwgNDksICJmbG9hdExpdGVyYWwiLCAgIjMuNCIpOworICAgIGNoZWNrTGV4ZXJUb2tl
bihyZXN1bHRbMTZdLCA1MywgInB1bmN0dWF0aW9uIiwgICAiKyIpOworICAgIGNoZWNrTGV4ZXJU
b2tlbihyZXN1bHRbMTddLCA1NSwgImZsb2F0TGl0ZXJhbCIsICAiMS4iKTsKKyAgICBjaGVja0xl
eGVyVG9rZW4ocmVzdWx0WzE4XSwgNTgsICJwdW5jdHVhdGlvbiIsICAgIisiKTsKKyAgICBjaGVj
a0xleGVyVG9rZW4ocmVzdWx0WzE5XSwgNjAsICJmbG9hdExpdGVyYWwiLCAgIi4yIik7CisgICAg
Y2hlY2tMZXhlclRva2VuKHJlc3VsdFsyMF0sIDYzLCAiZmxvYXRMaXRlcmFsIiwgICIxLjJkIik7
CisgICAgY2hlY2tMZXhlclRva2VuKHJlc3VsdFsyMV0sIDY4LCAiZmxvYXRMaXRlcmFsIiwgICIw
LmQiKTsKKyAgICBjaGVja0xleGVyVG9rZW4ocmVzdWx0WzIyXSwgNzIsICJmbG9hdExpdGVyYWwi
LCAgIi4zZCIpOwogfQogCiBmdW5jdGlvbiBURVNUX3NpbXBsZU5vUmV0dXJuKCkKQEAgLTI1NjYs
NiArMjYwMiwxNzMgQEAgZnVuY3Rpb24gVEVTVF9tYWtlQXJyYXlSZWZGcm9tQXJyYXlSZWYoKQog
ICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwogfQogCitmdW5jdGlvbiBU
RVNUX2Zsb2F0TWF0aCgpCit7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBi
b29sIGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiA0Mi41ID09IDQyLjU7Cisg
ICAgICAgIH0KKyAgICAgICAgYm9vbCBmb28yKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIDQyLjVmID09IDQyLjU7CisgICAgICAgIH0KKyAgICAgICAgYm9vbCBmb28zKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIDQyLjUgPT0gNDIuNWY7CisgICAgICAgIH0KKyAgICAg
ICAgYm9vbCBmb280KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDQyLjVmID09IDQy
LjVmOworICAgICAgICB9CisgICAgICAgIGJvb2wgZm9vNSgpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiA0Mi41ZCA9PSA0Mi41ZDsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBiYXIo
ZmxvYXQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vNigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBiYXIoNy41
KTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb283KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGJhcig3LjVmKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb284KCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGJhcig3LjVkKTsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBmb285KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZsb2F0KDcuNSk7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTAoKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gZmxvYXQoNy41Zik7CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZm9vMTEoKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmxvYXQoNy41ZCk7CisgICAgICAgIH0KKyAg
ICAgICAgZmxvYXQgZm9vMTIoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmxvYXQo
Nyk7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCA3LjUpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10sIFtdKSwgNy41KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtd
LCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbXSwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFtdLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW10sIFtdKSwgNy41KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSwg
W10pLCA3KTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAg
ICAgICBpbnQgYmFyKGludCB4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVy
biB4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgYmFyKDQuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCksCisg
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWlsKAor
ICAgICAgICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJhcig0LmQp
OworICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisg
ICAgICAgICAgICBpbnQgYmFyKGludCB4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHJldHVybiB4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgYmFyKDQuZik7CisgICAgICAgICAgICB9CisgICAgICAg
IGApLAorICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOworICAgIGNoZWNr
RmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgICAgIHVpbnQgYmFyKHVpbnQg
eCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGJhcig0Lik7CisgICAgICAgICAgICB9CisgICAgICAgIGApLAorICAgICAgICAoZSkgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKKyAgICAgICAgICAgIHVpbnQgYmFyKHVpbnQgeCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBmb28o
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJhcig0LmQpOworICAgICAgICAgICAg
fQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsK
KyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICB1aW50
IGJhcih1aW50IHgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHg7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBiYXIoNC5mKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAg
IChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWlsKAorICAgICAg
ICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgZmxvYXQgYmFyKGZsb2F0IHgpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICB2b2lkIGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYmFyKDE2Nzc3
MjE3LmQpOworICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJl
cChgCisgICAgICAgICAgICBmbG9hdCBiYXIoZmxvYXQgeCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZsb2F0IGZv
bygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG91YmxlIHggPSA3LjsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gYmFyKHgpOworICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAg
ICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKK30KKwogbGV0IGZpbHRlciA9
IC8uKi87IC8vIHJ1biBldmVyeXRoaW5nIGJ5IGRlZmF1bHQKIGlmICh0aGlzWyJhcmd1bWVudHMi
XSkgewogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCAxMmUxMDUxNzM0NmJlNmI1MTIw
YmVjYTFhMDQxMzEzZDhjMmUwNzY1Li4wYzExZjZmZDE4NWJkZjQwNTBlMTU0MmRjZjRjODFiM2Ux
ZmM5NmJiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTMxLDcgKzMx
LDcgQEAgY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewogICAgIGdldCBpc0FycmF5UmVmKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNOdW1iZXIoKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IGdldCBpc0ludCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgZ2V0IGlzRmxvYXQoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIGdldCBpc0Zsb2F0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAK
ICAgICBpbmhlcml0cyhwcm90b2NvbCkKICAgICB7Cg==
</data>
<flag name="review"
          id="341087"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>