<?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>109113</bug_id>
          
          <creation_ts>2013-02-06 17:52:34 -0800</creation_ts>
          <short_desc>Add WebGL Conformance Tests canvas folder.</short_desc>
          <delta_ts>2013-02-07 04:40:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94643</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gregg Tavares">gman</reporter>
          <assigned_to name="Gregg Tavares">gman</assigned_to>
          <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826928</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:52:34 -0800</bug_when>
    <thetext>Add WebGL Conformance Tests canvas folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826929</commentid>
    <comment_count>1</comment_count>
      <attachid>186960</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:52:54 -0800</bug_when>
    <thetext>Created attachment 186960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826974</commentid>
    <comment_count>2</comment_count>
      <attachid>186960</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 18:42:02 -0800</bug_when>
    <thetext>Comment on attachment 186960
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827323</commentid>
    <comment_count>3</comment_count>
      <attachid>186960</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 04:40:39 -0800</bug_when>
    <thetext>Comment on attachment 186960
Patch

Clearing flags on attachment: 186960

Committed r142096: &lt;http://trac.webkit.org/changeset/142096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827324</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 04:40:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186960</attachid>
            <date>2013-02-06 17:52:54 -0800</date>
            <delta_ts>2013-02-07 04:40:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109113-20130206174931.patch</filename>
            <type>text/plain</type>
            <size>52852</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg1YzNmODI2ZjFlY2EwZDY4NmNl
OTY2MDM2ZmZkNjliMWMyYmQ4My4uMmM0M2E0YjA1OTE4OTliMWEyNjlmZGZmMjczNWFiODEzM2Y2
OWY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIFdlYkdMIENvbmZvcm1hbmNlIFRlc3Rz
IGNhbnZhcyBmb2xkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDkxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMtdGVz
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFz
LXplcm8tc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1h
bmNlL2NhbnZhcy9jYW52YXMtemVyby1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10ZXN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZm
ZXItaGQtZHBpLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2Uv
Y2FudmFzL2RyYXdpbmdidWZmZXItc3RhdGljLWNhbnZhcy10ZXN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZmZXItc3Rh
dGljLWNhbnZhcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNl
L2NhbnZhcy9mcmFtZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9mcmFtZWJ1
ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9u
LXJlc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNl
L2NhbnZhcy90ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11bmNoYW5nZWQt
dXBvbi1yZXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3Jt
YW5jZS9jYW52YXMvdmlld3BvcnQtdW5jaGFuZ2VkLXVwb24tcmVzaXplLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2Nh
bnZhcy8wMF90ZXN0X2xpc3QudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXRlc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvY2FudmFzL2NhbnZhcy16ZXJvLXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZm
ZXItaGQtZHBpLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZmZXItc3RhdGljLWNh
bnZhcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9mcmFtZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVj
dGVkLW9uLXJlc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVj
dGVkLW9uLXJlc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdmlld3BvcnQtdW5jaGFuZ2VkLXVwb24t
cmVzaXplLmh0bWw6IEFkZGVkLgorCisyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBj
aHJvbWl1bS5vcmc+CisKICAgICAgICAgQWRkcyBmYWlsaW5nIFdlYkdMIENvbmZvcm1hbmNlIFRl
c3RzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
MDc1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9j
YW52YXMtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9j
YW52YXMvY2FudmFzLXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MjE5MGU1MDE5NTU3
NjE4NWI4YTQ0NmRmYzk2MDAwYzM5MjEwYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC5odG1s
CitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZh
cy9jYW52YXMtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFz
L2NhbnZhcy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZjNjk0MDk0MTE1YWMwM2ExN2U0ZDRiN2Y3
ZTJhYjA5OTNhM2Y5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5LiBETyBO
T1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGNh
bnZhcy10ZXN0Lmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtp
dC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFu
ZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXRlc3QuaHRtbCI+
Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2NhbnZh
cy10ZXN0Lmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1l
Ij4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9jYW52YXMvY2FudmFzLXRlc3QuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2MTliY2MyZDdlMzQ3NTFhMTZkOTRkNjI5MGY2MTBh
ZTg2OTEyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L2NhbnZhcy9jYW52YXMtemVyby1zaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS5odG1sCitQQVNTCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMt
emVyby1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvY2Fu
dmFzLXplcm8tc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNDYyM2U3ZGFjYmI0ZGNjNTJjZDMzNTQw
MTUyZDI4N2MxZDZlNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGNhbnZhcy16ZXJvLXNpemUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMt
emVyby1zaXplLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NhbnZhcy9jYW52YXMtemVyby1zaXplLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS5odG1sIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3
aW5nYnVmZmVyLWhkLWRwaS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10ZXN0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYmI5NmMyYWY3YjY5OWI4MDk1MDhhMjIxZmQxOGIzZDYyNDg3Mjk5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdp
bmdidWZmZXItaGQtZHBpLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10ZXN0Lmh0bWwKK1BB
U1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2Ry
YXdpbmdidWZmZXItaGQtZHBpLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIx
MTNkMzRkODhhYmNhYmQ3YmIzZjg5YWM4ZGIwYjEwY2UwYTU1MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRw
aS10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5l
cmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZHJhd2luZ2J1ZmZlci1oZC1kcGkt
dGVzdC5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZmZXItaGQtZHBpLXRl
c3QuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2Fu
dmFzL2RyYXdpbmdidWZmZXItaGQtZHBpLXRlc3QuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+
PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10
ZXN0Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
Y2FudmFzL2RyYXdpbmdidWZmZXItc3RhdGljLWNhbnZhcy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLXN0YXRpYy1j
YW52YXMtdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAzNWQ4MTEwYjM2OTNkODU2OTRi
NWIwYjUxMGQxOTlmMTNmNzY3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLXN0YXRpYy1jYW52YXMtdGVzdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBs
aXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVz
dDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2Ry
YXdpbmdidWZmZXItc3RhdGljLWNhbnZhcy10ZXN0Lmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZmZXItc3RhdGlj
LWNhbnZhcy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMv
ZHJhd2luZ2J1ZmZlci1zdGF0aWMtY2FudmFzLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzFmYTQz
Y2UxOTI2ZWE0MjJkMTNlNzM2ODNkYjEzNzBkMTMwZjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZmZXItc3RhdGljLWNh
bnZhcy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZHJhd2luZ2J1ZmZlci1zdGF0
aWMtY2FudmFzLXRlc3QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
d2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVy
LXN0YXRpYy1jYW52YXMtdGVzdC5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9jYW52YXMvZHJhd2luZ2J1ZmZlci1zdGF0aWMtY2FudmFzLXRlc3QuaHRt
bDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFt
ZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZh
cy9kcmF3aW5nYnVmZmVyLXN0YXRpYy1jYW52YXMtdGVzdC5odG1sIiB3aWR0aD0iODAwIiBoZWln
aHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9mcmFtZWJ1ZmZlci1iaW5kaW5n
cy11bmFmZmVjdGVkLW9uLXJlc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNp
emUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NGRlNzIwMDdiZjlmZGNiYmU4MDg3MWRiZTlk
ZDFmMDAxNjg5YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNpemUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3Qg
bGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rl
c3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9m
cmFtZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy9mcmFtZWJ1ZmZl
ci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvY2FudmFzL2ZyYW1lYnVmZmVyLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVz
aXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg5Njc5Y2ZjODdjYjVmMTQ5ZjRjMGZiNzM1MjIzMWE1NWM3
MGFjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2Nh
bnZhcy9mcmFtZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCkBAIC0w
LDAgKzEsMTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRl
LXdlYmdsLXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5j
ZSBUZXN0IFdyYXBwZXIgZm9yIGZyYW1lYnVmZmVyLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVz
aXplLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5h
ZmZlY3RlZC1vbi1yZXNpemUuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvY2FudmFzL2ZyYW1lYnVmZmVyLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVz
aXplLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNpemUuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvdGV4
dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVk
LW9uLXJlc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJiOWRmZThhNWY4NDE5MDZlZThl
YWNiMWRkZjBmZGNhMmYwYTRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L2NvbmZvcm1hbmNlL2NhbnZhcy90ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXpl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBU
ZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgor
CitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52
YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy90ZXh0dXJlLWJp
bmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9jYW52YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmNzdjMzQxNzkxNGRiOTQ2NjQ5NTU0MDMyODA4NmQ5MzFkMTY3ZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvdGV4
dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRlc3Rz
LnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIHRleHR1cmUtYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNpemUuaHRtbDwvdGl0bGU+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2NhbnZhcy90ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0
bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90
ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0bWw8L2E+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdGV4dHVyZS1iaW5kaW5n
cy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvY2FudmFzL3ZpZXdw
b3J0LXVuY2hhbmdlZC11cG9uLXJlc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyY2Uw
Nzg4MDdiMDQyNTAxOTNmYmRhNTlhZDcyYjBlMDJhMGM4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11bmNoYW5nZWQtdXBv
bi1yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2NhbnZhcy92aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUuaHRtbAorUEFTUworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9jYW52YXMvdmlld3BvcnQt
dW5jaGFuZ2VkLXVwb24tcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9jYW52YXMvdmlld3BvcnQtdW5jaGFuZ2VkLXVwb24tcmVzaXplLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI2MDdhNzU1YjRjZWE1YzkzNDg1YTFlYTFlNjQ2Y2NhZjE3NTIyZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11bmNoYW5n
ZWQtdXBvbi1yZXNpemUuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0tIFRoaXMgZmlsZSBpcyBh
dXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4gRE8gTk9UIEVESVQgLS0+
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciB2aWV3cG9ydC11bmNo
YW5nZWQtdXBvbi1yZXNpemUuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11
bmNoYW5nZWQtdXBvbi1yZXNpemUuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvY2FudmFzL3ZpZXdwb3J0LXVuY2hhbmdlZC11cG9uLXJlc2l6ZS5odG1s
PC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1l
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFz
L3ZpZXdwb3J0LXVuY2hhbmdlZC11cG9uLXJlc2l6ZS5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9
IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2Nh
bnZhcy8wMF90ZXN0X2xpc3QudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzLzAwX3Rlc3RfbGlzdC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmFkOWJiNjc1NGY1ZGRlYmZjY2U1OTI0MjNlZmFkMGU5NTRjMTE1ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL2NhbnZhcy8wMF90ZXN0X2xpc3QudHh0CkBAIC0wLDAgKzEsMTIgQEAKK2J1ZmZlci1v
ZmZzY3JlZW4tdGVzdC5odG1sCitidWZmZXItcHJlc2VydmUtdGVzdC5odG1sCitjYW52YXMtdGVz
dC5odG1sCitjYW52YXMtemVyby1zaXplLmh0bWwKK2RyYXdpbmdidWZmZXItc3RhdGljLWNhbnZh
cy10ZXN0Lmh0bWwKKy0tbWluLXZlcnNpb24gMS4wLjIgZHJhd2luZ2J1ZmZlci1oZC1kcGktdGVz
dC5odG1sCitkcmF3aW5nYnVmZmVyLXRlc3QuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiBmcmFt
ZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCistLW1pbi12ZXJzaW9u
IDEuMC4yIHRleHR1cmUtYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNpemUuaHRtbAorLS1taW4t
dmVyc2lvbiAxLjAuMiB0by1kYXRhLXVybC10ZXN0Lmh0bWwKK3ZpZXdwb3J0LXVuY2hhbmdlZC11
cG9uLXJlc2l6ZS5odG1sCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMtdGVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
Y2FudmFzL2NhbnZhcy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg5ODNlZTRjNmFmMjMyY2UwODI0
NWJiN2Y1ZjQ2MDlkMGE0MGFkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9jYW52YXMtdGVz
dC5odG1sCkBAIC0wLDAgKzEsMjE1IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8K
KworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDYW52YXMgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFu
dHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52
YXMgaWQ9ImNhbnZhcyIgc3R5bGU9IndpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Ij4gPC9jYW52
YXM+Cis8Y2FudmFzIGlkPSJjYW52YXMyZCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIj4gPC9jYW52
YXM+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGls
RG9uZSgpOworCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50
YXRpb25zIGludGVyYWN0IGNvcnJlY3RseSB3aXRoIHRoZSBjYW52YXMgdGFnLiIpOworCitkZWJ1
ZygiIik7CitkZWJ1ZygiQ2FudmFzLmdldENvbnRleHQiKTsKKwordmFyIGVycjsKK3ZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y2FudmFzIik7Cit2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFz
MmQiKTsKK3ZhciBjdHgyZCA9IGNhbnZhczJkLmdldENvbnRleHQoIjJkIik7Cit2YXIgZ2wgPSB3
dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7CitpZiAoIWdsKSB7CisgIHRlc3RGYWlsZWQoImNv
bnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRlc3RQYXNzZWQoImNvbnRleHQg
ZXhpc3RzIik7CisKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiQ2hlY2tpbmcgY2FudmFzIGFuZCBX
ZWJHTCBpbnRlcmFjdGlvbiIpOworCisgIC8vIENoZWNrIHRoYXQgYSBjYW52YXMgd2l0aCBubyB3
aWR0aCBvciBoZWlnaHQgaXMgMzAweDE1MCBwaXhlbHMKKyAgc2hvdWxkQmUoJ2NhbnZhcy53aWR0
aCcsICczMDAnKTsKKyAgc2hvdWxkQmUoJ2NhbnZhcy5oZWlnaHQnLCAnMTUwJyk7CisKKyAgLy8g
Q2hlY2sgZ2V0IGEgNCB2YWx1ZSBnbCBwYXJhbWV0ZXIgYXMgYSBjc3Ygc3RyaW5nLgorICB2YXIg
Z2V0VmFsdWU0diA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICB2YXIgdiA9IGdsLmdldFBhcmFtZXRl
cihuYW1lKTsKKyAgICB2YXIgcmVzdWx0ID0gJycgKworICAgICAgICB2WzBdICsgJywnICsKKyAg
ICAgICAgdlsxXSArICcsJyArCisgICAgICAgIHZbMl0gKyAnLCcgKworICAgICAgICB2WzNdOwor
ICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICB2YXIgZ2V0Vmlld3BvcnQgPSBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gZ2V0VmFsdWU0dihnbC5WSUVXUE9SVCk7CisgIH0KKworICB2YXIgZ2V0
Q2xlYXJDb2xvciA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBnZXRWYWx1ZTR2KGdsLkNPTE9S
X0NMRUFSX1ZBTFVFKTsKKyAgfQorCisgIHZhciBpc0Fib3V0RXF1YWwgPSBmdW5jdGlvbihhLCBi
KSB7CisgICAgcmV0dXJuIE1hdGguYWJzKGEgLSBiKSA8IDAuMDE7CisgIH0KKworICB2YXIgaXNB
Ym91dEVxdWFsSW50ID0gZnVuY3Rpb24oYSwgYikgeworICAgIHJldHVybiBNYXRoLmFicyhhIC0g
YikgPCAzOworICB9CisKKyAgdmFyIGNoZWNrQ2FudmFzQ29udGVudElzID0gZnVuY3Rpb24ocjNk
LGczZCxiM2QsYTNkKSB7CisgICAgdmFyIHIyZDsKKyAgICB2YXIgZzJkOworICAgIHZhciBiMmQ7
CisgICAgdmFyIGEyZDsKKworICAgIHZhciBjaGVja1BpeGVsID0gZnVuY3Rpb24oeCwgeSwgcjNk
LGczZCxiM2QsYTNkKSB7CisgICAgICB2YXIgb2Zmc2V0ID0gKHkgKiA0MCArIHgpICogNDsKKyAg
ICAgIHIyZCA9IGltZ0RhdGEuZGF0YVtvZmZzZXRdOworICAgICAgZzJkID0gaW1nRGF0YS5kYXRh
W29mZnNldCArIDFdOworICAgICAgYjJkID0gaW1nRGF0YS5kYXRhW29mZnNldCArIDJdOworICAg
ICAgYTJkID0gaW1nRGF0YS5kYXRhW29mZnNldCArIDNdOworICAgICAgLy9kZWJ1ZygnJyArIHgg
KyAnLCAnICsgeSArICIoIiArIG9mZnNldCArICIpID0gIiArIHIyZCArICIsICIgKyBnMmQgKyAi
LCAiICsgYjJkICsgIiwgIiArIGEyZCk7CisgICAgICByZXR1cm4gaXNBYm91dEVxdWFsSW50KHIy
ZCwgcjNkKSAmJgorICAgICAgICAgICAgIGlzQWJvdXRFcXVhbEludChnMmQsIGczZCkgJiYKKyAg
ICAgICAgICAgICBpc0Fib3V0RXF1YWxJbnQoYjJkLCBiM2QpICYmCisgICAgICAgICAgICAgaXNB
Ym91dEVxdWFsSW50KGEyZCwgYTNkKTsKKyAgICB9CisKKyAgICB2YXIgY2hlY2tQaXhlbHMgPSBm
dW5jdGlvbihyM2QsZzNkLGIzZCxhM2QpIHsKKyAgICAgIHJldHVybiBjaGVja1BpeGVsKDAsIDAs
IHIzZCwgZzNkLCBiM2QsIGEzZCkgJiYKKyAgICAgICAgICAgICBjaGVja1BpeGVsKDAsIDM5LCBy
M2QsIGczZCwgYjNkLCBhM2QpICYmCisgICAgICAgICAgICAgY2hlY2tQaXhlbCgzOSwgMCwgcjNk
LCBnM2QsIGIzZCwgYTNkKSAmJgorICAgICAgICAgICAgIGNoZWNrUGl4ZWwoMzksIDM5LCByM2Qs
IGczZCwgYjNkLCBhM2QpICYmCisgICAgICAgICAgICAgY2hlY2tQaXhlbCgwLCAwLCByM2QsIGcz
ZCwgYjNkLCBhM2QpOworICAgIH07CisKKyAgICAvLyBTZXQgdG8ganVzdCB0YWtlIHRoZSBjb2xv
ciBmcm9tIHRoZSAzZCBjYW52YXMKKyAgICBjdHgyZC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24g
PSAnY29weSc7CisKKyAgICAvLyBmaWxsIDJkIGNhbnZhcyB3aXRoIG9yYW5nZQorICAgIGN0eDJk
LmZpbGxTdHlsZSA9ICJyZ2IoMjU1LDE5MiwxMjgpIjsKKyAgICBjdHgyZC5maWxsUmVjdCAoMCwg
MCwgNDAsIDQwKTsKKworICAgIC8vIGdldCB0aGUgaW1hZ2UgZGF0YQorICAgIHZhciBpbWdEYXRh
ID0gY3R4MmQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDQwLCA0MCk7CisKKyAgICAvLyBjaGVjayBpdCBn
b3QgY2xlYXJlZC4KKyAgICBpZiAoIWNoZWNrUGl4ZWxzKDI1NSwgMTkyLCAxMjgsIDI1NSkpIHsK
KyAgICAgIHRlc3RGYWlsZWQoInVuYWJsZSB0byBmaWxsIDJkIGNvbnRleHQuIik7CisgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gZHJhdyAzZCBjYW52YXMgb24gdG9wLgorICAgIGN0eDJk
LmRyYXdJbWFnZShjYW52YXMsIDAsMCwgNDAsIDQwKTsKKworICAgIC8vIGdldCB0aGUgaW1hZ2Ug
ZGF0YQorICAgIHZhciBpbWdEYXRhID0gY3R4MmQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDQwLCA0MCk7
CisKKyAgICAvLyBDaGVjayBpdCdzIHRoZSBleHBlY3RlZCBjb2xvci4KKyAgICBpZiAoIWNoZWNr
UGl4ZWxzKHIzZCwgZzNkLCBiM2QsIGEzZCkpIHsKKyAgICAgdGVzdEZhaWxlZCgicGl4ZWxzIGFy
ZSAiICsgcjJkICsgIiwiICsgZzJkICsgIiwiICsgYjJkICsgIiwiICsgYTJkICsKKyAgICAgICAg
ICAgICAgICAiIGV4cGVjdGVkICIgKyByM2QgKyAiLCIgKyBnM2QgKyAiLCIgKyBiM2QgKyAiLCIg
KyBhM2QpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0UGFzc2VkKCJwaXhlbHMgYXJlICIgKyBy
M2QgKyAiLCIgKyBnM2QgKyAiLCIgKyBiM2QgKyAiLCIgKyBhM2QpOworICAgIH0KKyAgfQorCisg
IGNoZWNrQ2FudmFzQ29udGVudElzKDAsIDAsIDAsIDApOworICBzaG91bGRCZSgnZ2V0Vmlld3Bv
cnQoKScsICciMCwwLDMwMCwxNTAiJyk7CisKKyAgLy8gQ2hhbmdlIHRoZSBkaXNwbGF5IHNpemUg
b2YgdGhlIGNhbnZhcyBhbmQgY2hlY2sKKyAgLy8gdGhlIHZpZXdwb3J0IHNpemUgZG9lcyBub3Qg
Y2hhbmdlLgorICBkZWJ1ZygiIik7CisgIGRlYnVnKCJjaGFuZ2UgZGlzcGxheSBzaXplIG9mIGNh
bnZhcyBhbmQgc2VlIHRoYXQgdmlld3BvcnQgZG9lcyBub3QgY2hhbmdlIik7CisgIGNhbnZhcy5z
dHlsZS53aWR0aCA9ICIxMDBweCI7CisgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAiMjVweCI7Cisg
IHZhciBpbnRlcnZhbElkOworICBpbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKGZ1bmN0
aW9uKCkgeworICAgIGlmIChjYW52YXMuY2xpZW50V2lkdGggPT0gMTAwICYmCisgICAgICAgIGNh
bnZhcy5jbGllbnRIZWlnaHQgPT0gMjUpIHsKKyAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGlu
dGVydmFsSWQpOworICAgICAgc2hvdWxkQmUoJ2dldFZpZXdwb3J0KCknLCAnIjAsMCwzMDAsMTUw
IicpOworICAgICAgc2hvdWxkQmUoJ2NhbnZhcy53aWR0aCcsICczMDAnKTsKKyAgICAgIHNob3Vs
ZEJlKCdjYW52YXMuaGVpZ2h0JywgJzE1MCcpOworCisgICAgICAvLyBDaGFuZ2UgdGhlIGFjdHVh
bCBzaXplIG9mIHRoZSBjYW52YXMKKyAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHZpZXdwb3J0IGRv
ZXMgbm90IGNoYW5nZS4KKyAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNsZWFyIGNvbG9yIGRvZXMg
bm90IGNoYW5nZS4KKyAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvbG9yIG1hc2sgZG9lcyBub3Qg
Y2hhbmdlLgorICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoImNoYW5nZSB0aGUgYWN0dWFs
IHNpemUgb2YgdGhlIGNhbnZhcyBhbmQgc2VlIHRoYXQgdGhlIHZpZXdwb3J0IGRvZXMgbm90IGNo
YW5nZSIpOworICAgICAgZ2wuY2xlYXJDb2xvcigwLjI1LCAwLjUsIDAuNzUsIDEpOworICAgICAg
Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAg
ICAgY2hlY2tDYW52YXNDb250ZW50SXMoNjQsIDEyOCwgMTkyLCAyNTUpOworICAgICAgZ2wuY29s
b3JNYXNrKDAsMCwwLDApOworICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
Ik5vIEdMIGVycm9ycyBiZWZvcmUgcmVzaXppbmcgdGhlIGNhbnZhcyIpOworICAgICAgY2FudmFz
LndpZHRoID0gNDAwOworICAgICAgY2FudmFzLmhlaWdodCA9IDEwOworICAgICAgZXJyID0gZ2wu
Z2V0RXJyb3IoKTsKKyAgICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIG1pZ2h0IGxvc3QgdGhl
IGNvbnRleHQgd2hlbiByZXNpemluZworICAgICAgaWYgKGVyciAhPSBnbC5DT05URVhUX0xPU1Rf
V0VCR0wpIHsKKyAgICAgICAgc2hvdWxkQmUoImVyciIsICJnbC5OT19FUlJPUiIpOworICAgICAg
ICB2YXIgdiA9IGdsLmdldFBhcmFtZXRlcihnbC5DT0xPUl9DTEVBUl9WQUxVRSk7CisgICAgICAg
IGFzc2VydE1zZyhpc0Fib3V0RXF1YWwodlswXSwgMC4yNSkgJiYKKyAgICAgICAgICAgICAgICAg
IGlzQWJvdXRFcXVhbCh2WzFdLCAwLjUpICYmCisgICAgICAgICAgICAgICAgICBpc0Fib3V0RXF1
YWwodlsyXSwgMC43NSkgJiYKKyAgICAgICAgICAgICAgICAgIGlzQWJvdXRFcXVhbCh2WzNdLCAx
KSwKKyAgICAgICAgICAgICAgICAgICJnbC5jbGVhckNvbG9yIHNob3VsZCBub3QgY2hhbmdlIGFm
dGVyIGNhbnZhcyByZXNpemUiKTsKKyAgICAgICAgdiA9IGdsLmdldFBhcmFtZXRlcihnbC5DT0xP
Ul9XUklURU1BU0spOworICAgICAgICBhc3NlcnRNc2coaXNBYm91dEVxdWFsKHZbMF0sIDApICYm
CisgICAgICAgICAgICAgICAgICBpc0Fib3V0RXF1YWwodlsxXSwgMCkgJiYKKyAgICAgICAgICAg
ICAgICAgIGlzQWJvdXRFcXVhbCh2WzJdLCAwKSAmJgorICAgICAgICAgICAgICAgICAgaXNBYm91
dEVxdWFsKHZbM10sIDApLAorICAgICAgICAgICAgICAgICAgImdsLmNvbG9yTWFzayBzaG91bGQg
bm90IGNoYW5nZSBhZnRlciBjYW52YXMgcmVzaXplIik7CisgICAgICAgIHNob3VsZEJlKCdnZXRW
aWV3cG9ydCgpJywgJyIwLDAsMzAwLDE1MCInKTsKKyAgICAgICAgY2hlY2tDYW52YXNDb250ZW50
SXMoMCwgMCwgMCwgMCk7CisgICAgICB9CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICB9CisgICB9LCAxMDAwLzMwKTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvY2FudmFzLXplcm8tc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2Fu
dmFzL2NhbnZhcy16ZXJvLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWJlYzZmNWI3Yzk1MjRiYjBk
MDg3NzNiZDhkOGQ3OGQ1MDk0MjU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2NhbnZhcy16
ZXJvLXNpemUuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQg
KGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisq
KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8K
KyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiog
VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh
bGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJD
SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS
SU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisq
KiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxT
LgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlplcm8gU2l6ZSBDYW52YXMgVGVzdDwvdGl0
bGU+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QuanMiPiA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSB6ZXJvIHNpemUgY2FudmFzIGRv
ZXMgbm90IGZhaWwuIik7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgY2FudmFzID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KGNhbnZhcyk7CitjYW52YXMud2lkdGggPSAwOworY2FudmFzLmhlaWdodCA9IDA7Citn
bC52aWV3cG9ydCgwLCAwLCAwLCAwKTsKK3ZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRR
dWFkKGdsKTsKK3Nob3VsZEJlVHJ1ZSgicHJvZ3JhbSAhPSBudWxsIik7Cit2YXIgdGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOworZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKK3Zh
ciBwaXhlbCA9IG5ldyBVaW50OEFycmF5KFswLCAyNTUsIDAsIDI1NV0pOworZ2wudGV4SW1hZ2Uy
RCgKKyAgZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMSwgMSwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgcGl4ZWwpOword3R1LmRyYXdRdWFkKGdsKTsKKworZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSBzZXR1cC4iKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5nYnVmZmVyLWhkLWRwaS10ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9j
YW52YXMvZHJhd2luZ2J1ZmZlci1oZC1kcGktdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWRlNWNj
NmQ5ZDNkOTgxYzkzZTQ0MjIyZTA5ZDE3OGRmMTgwYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52
YXMvZHJhd2luZ2J1ZmZlci1oZC1kcGktdGVzdC5odG1sCkBAIC0wLDAgKzEsMjI2IEBACis8IS0t
CisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioK
KyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29j
aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwg
aW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhv
dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi
bGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0
aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVy
aWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg
cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Ig
c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJ
QUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAor
KiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0s
IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBEcmF3aW5n
QnVmZmVyIGRpbWVuc2lvbnMgb24gSEQtRFBJIG1hY2hpbmVzIHRlc3Q8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNoYWRlckdyaWQiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247Cit2b2lkIG1haW4oKQoreworICBn
bF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnNo
YWRlckdyaWQiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgorcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7Cit2b2lkIG1haW4oKQoreworICBmbG9hdCByID0gbW9kKGdsX0ZyYWdDb29yZC54LCAy
LjApIDwgMS4wID8gMC4wIDogMS4wOworICBmbG9hdCBnID0gbW9kKGdsX0ZyYWdDb29yZC55LCAy
LjApIDwgMS4wID8gMC4wIDogMS4wOworICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHIsIGcsIDAsIDEp
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oKTsK
K2RlYnVnKCIiKTsKKwordmFyIGdsOwordmFyIGNhbnZhczsKKworZnVuY3Rpb24gY2hlY2tEaW1l
bnNpb25zKCkgeworICAvLyBXZSBleHBlY3QgdGhhdCBmb3IgdGhlIHNpemVzIGJlaW5nIHRlc3Rp
bmcgZHJhd2luZ0J1ZmZlcldpZHRoIGFuZCBkcmF3aW5nQnVmZmVySGVpZ2h0CisgIC8vIHdpbGwg
bWF0Y2ggY2FudmFzLndpZHRoIGFuZCBjYW52YXMuaGVpZ2h0LgorCisgIC8vIFdlIG5lZWQgdG8g
dGVzdCB0aGF0IGRldmljZVBpeGVsUmF0aW8gZG9lcyBub3QgZWZmZWN0IHRoZSBiYWNrYnVmZmVy
IHNpemUgb2YgYSBjYW52YXMuCisgIHNob3VsZEJlKCdnbC5kcmF3aW5nQnVmZmVyV2lkdGgnLCAn
Y2FudmFzLndpZHRoJyk7CisgIHNob3VsZEJlKCdnbC5kcmF3aW5nQnVmZmVySGVpZ2h0JywgJ2Nh
bnZhcy5oZWlnaHQnKTsKK30KKworLy8gVGhpcyB1c2VzIGdsX0ZyYWdDb29yZCB0byBkcmF3IGEg
ZGV2aWNlIHBpeGVsIHJlbGF2ZW50IHBhdHRlcm4uCisvLyBJZiBkcmF3QnVmZmVyV2lkdGggb3Ig
ZHJhd0J1ZmZlckhlaWdodCBhcmUgbm90IGluIGRldmljZSBwaXhlbHMKKy8vIHRoaXMgdGVzdCBz
aG91bGQgZmFpbC4KK2Z1bmN0aW9uIGNoZWNrR3JpZChnbCwgd2lkdGgsIGhlaWdodCkgeworICB2
YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlckdyaWQiLCAiZnNoYWRl
ckdyaWQiXSwgWyJhX3Bvc2l0aW9uIl0pOworICB3dHUuc2V0dXBVbml0UXVhZChnbCk7CisgIGds
LnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHNob3VsZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5P
X0VSUk9SJyk7CisKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKworICB2YXIgcGl4ZWxzID0gbmV3IFVp
bnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0
aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworCisgIHZhciBj
b2xvcnMgPSBbCisgICAgWyB7IGNvbG9yOiBbMCwgICAwLCAwLCAyNTVdLCBuYW1lOiAiYmxhY2si
IH0sICB7IGNvbG9yOiBbMjU1LCAgIDAsIDAsIDI1NV0sIG5hbWU6ICJyZWQiICAgIH0gXSwKKyAg
ICBbIHsgY29sb3I6IFswLCAyNTUsIDAsIDI1NV0sIG5hbWU6ICJncmVlbiIgfSwgIHsgY29sb3I6
IFsyNTUsIDI1NSwgMCwgMjU1XSwgbmFtZTogInllbGxvdyIgfSBdLAorICBdOworCisgIGZvciAo
dmFyIHl5ID0gMDsgeXkgPCBoZWlnaHQ7ICsreXkpIHsKKyAgICBmb3IgKHZhciB4eCA9IDA7IHh4
IDwgd2lkdGg7ICsreHgpIHsKKyAgICAgIHZhciBpbmZvID0gY29sb3JzW3l5ICUgMl1beHggJSAy
XTsKKyAgICAgIHZhciBjb2xvciA9IGluZm8uY29sb3I7CisgICAgICB2YXIgb2Zmc2V0ID0gKHl5
ICogd2lkdGggKyB4eCkgKiA0OworICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDQ7ICsramop
IHsKKyAgICAgICAgaWYgKHBpeGVsc1tvZmZzZXQgKyBqal0gIT0gY29sb3JbampdKSB7CisgICAg
ICAgICAgdmFyIGFjdHVhbCA9IFtwaXhlbHNbb2Zmc2V0XSwgcGl4ZWxzW29mZnNldCArIDFdLCBw
aXhlbHNbb2Zmc2V0ICsgMl0sIHBpeGVsc1tvZmZzZXQgKyAzXV07CisgICAgICAgICAgdGVzdEZh
aWxlZCgiYXQgIiArIHh4ICsgIiwgIiArIHl5ICsgIiBleHBlY3RlZCAiICsgY29sb3IgKyAiKCIg
KyBpbmZvLm5hbWUgKyAiKSB3YXMgIiArIGFjdHVhbCk7CisgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQoImdyaWQgcmVuZGVyZWQg
Y29ycmVjdGx5Iik7Cit9CisKKy8vIFRoaXMgcGFzc2VzIGRldmljZSBjb29yZGluYXRlIHZlcnRp
Y2VzIGluIHRvIG1ha2Ugc3VyZSBnbC52aWV3cG9ydCBpcyBub3QgYmVpbmcgbXVja2VkIHdpdGgu
CitmdW5jdGlvbiBjaGVja1F1YWQoZ2wsIHdpZHRoLCBoZWlnaHQpIHsKKyAgdmFyIGRldmljZVRv
Q2xpcFNwYWNlID0gZnVuY3Rpb24odmFsdWUsIHJhbmdlKSB7CisgICAgcmV0dXJuIHZhbHVlIC8g
cmFuZ2UgKiAyIC0gMTsKKyAgfQorCisgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwQ29sb3JRdWFk
KGdsKTsKKworICAvLyBkcmF3IGEgc21hbGwgZ3JlZW4gc3F1YXJlIGluIHRoZSB0b3AgcmlnaHQg
Y29ybmVyLgorICB2YXIgZGV2aWNlWDEgPSB3aWR0aCAtIDQ7CisgIHZhciBkZXZpY2VYMiA9IHdp
ZHRoOworICB2YXIgZGV2aWNlWTEgPSBoZWlnaHQgLSA0OworICB2YXIgZGV2aWNlWTIgPSBoZWln
aHQ7CisKKyAgdmFyIGNsaXBYMSA9IGRldmljZVRvQ2xpcFNwYWNlKGRldmljZVgxLCB3aWR0aCk7
CisgIHZhciBjbGlwWDIgPSBkZXZpY2VUb0NsaXBTcGFjZShkZXZpY2VYMiwgd2lkdGgpOworICB2
YXIgY2xpcFkxID0gZGV2aWNlVG9DbGlwU3BhY2UoZGV2aWNlWTEsIGhlaWdodCk7CisgIHZhciBj
bGlwWTIgPSBkZXZpY2VUb0NsaXBTcGFjZShkZXZpY2VZMiwgaGVpZ2h0KTsKKworICB2YXIgdmVy
dGV4T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlf
QlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKAorICAgICAgZ2wuQVJSQVlf
QlVGRkVSLAorICAgICAgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWyBjbGlwWDIsIGNsaXBZ
MiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwK
KyAgICAgICAgICBjbGlwWDIsIGNsaXBZMiwKKyAgICAgICAgICBjbGlwWDEsIGNsaXBZMSwKKyAg
ICAgICAgICBjbGlwWDIsIGNsaXBZMV0pLAorICAgICAgZ2wuU1RBVElDX0RSQVcpOworICBnbC5l
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAy
LCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworCisgIHZhciBncmVlbiA9IFswLCAyNTUsIDAsIDI1
NV07CisgIHZhciBibGFjayA9IFswLCAwLCAwLCAwXTsKKyAgZ2wuY2xlYXJDb2xvcigwLCAwLCAw
LCAwKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgIHd0dS5kcmF3VUJ5dGVD
b2xvclF1YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOworCisgIHZhciBzcXVhcmVXaWR0aCA9IGRl
dmljZVgyIC0gZGV2aWNlWDE7CisgIHZhciBzcXVhcmVIZWlnaHQgPSBkZXZpY2VZMiAtIGRldmlj
ZVkxOworCisgIC8vIGNoZWNrIHRoZSBzcXVhcmUuCisgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2ws
IGRldmljZVgxLCBkZXZpY2VZMSwgc3F1YXJlV2lkdGgsIHNxdWFyZUhlaWdodCwgZ3JlZW4sICJz
aG91bGQgYmUgZ3JlZW4iKTsKKyAgLy8gY2hlY2sgb3V0c2lkZSB0aGUgc3F1YXJlLgorICB3dHUu
Y2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0IC0gc3F1YXJlSGVpZ2h0LCBi
bGFjaywgInNob3VsZCBiZSBibGFjayIpOworICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBo
ZWlnaHQgLSBzcXVhcmVIZWlnaHQsIHdpZHRoIC0gc3F1YXJlV2lkdGgsIHNxdWFyZUhlaWdodCwg
YmxhY2ssICJzaG91bGQgYmUgYmxhY2siKTsKK30KKworCitmdW5jdGlvbiB0ZXN0KGRlc2lyZWRX
aWR0aCwgZGVzaXJlZEhlaWdodCkgeworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJ0ZXN0aW5nIGNh
bnZhcyB3aWR0aCA9ICIgKyBkZXNpcmVkV2lkdGggKyAiLCBoZWlnaHQgPSAiICsgZGVzaXJlZEhl
aWdodCk7CisKKyAgLy8gTWFrZSBhIGZyZXNoIGNhbnZhcy4KKyAgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGNhbnZhcy53aWR0aCA9IGRlc2lyZWRXaWR0aDsK
KyAgY2FudmFzLmhlaWdodCA9IGRlc2lyZWRIZWlnaHQ7CisKKyAgLy8gVGhpcyAnZ2wnIG11c3Qg
YmUgZ2xvYmFsIGZvciBzaG91bGRCZSB0byB3b3JrLgorICBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzLCB7YW50aWFsaWFzOiBmYWxzZX0pOworICBpZiAoIWdsKSB7CisgICAgdGVzdEZh
aWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworICB9IGVsc2UgeworICAgIHRlc3RQYXNz
ZWQoImNvbnRleHQgZXhpc3RzIik7CisKKyAgICAvLyBDaGVjayB0aGUgZGltZW5zaW9ucyBhcmUg
Y29ycmVjdC4KKyAgICBjaGVja0RpbWVuc2lvbnMoKTsKKworICAgIC8vIERyYXcgYSBwaXhlbCBn
cmlkIHVzaW5nIGEgc2hhZGVyIHRoYXQgZHJhd3MgaW4gZGV2aWNlIGNvb3JkaW5hdGVzCisgICAg
Y2hlY2tHcmlkKGdsLCBkZXNpcmVkV2lkdGgsIGRlc2lyZWRIZWlnaHQpOworCisgICAgLy8gRHJh
dyBhIHF1YWQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIuCisgICAgY2hlY2tRdWFkKGdsLCBkZXNp
cmVkV2lkdGgsIGRlc2lyZWRIZWlnaHQpOworCisgICAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCkn
LCAnZ2wuTk9fRVJST1InKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidGVzdGluZyBy
ZXNpemluZyBjYW52YXMgdG8gd2lkdGggPSAiICsgZGVzaXJlZFdpZHRoICsgIiwgaGVpZ2h0ID0g
IiArIGRlc2lyZWRIZWlnaHQpOworCisgICAgdmFyIG9sZFZpZXdwb3J0ID0gZ2wuZ2V0UGFyYW1l
dGVyKGdsLlZJRVdQT1JUKTsKKworICAgIC8vIGZsaXAgd2lkdGggYW5kIGhlaWdodAorICAgIGNh
bnZhcy53aWR0aCA9IGRlc2lyZWRIZWlnaHQ7CisgICAgY2FudmFzLmhlaWdodCA9IGRlc2lyZWRX
aWR0aDsKKworICAgIC8vIGZpeCB0aGUgdmlld3BvcnQKKyAgICBnbC52aWV3cG9ydCgwLCAwLCBk
ZXNpcmVkSGVpZ2h0LCBkZXNpcmVkV2lkdGgpOworCisgICAgLy8gQ2hlY2sgdGhlIGRpbWVuc2lv
bnMgYXJlIGNvcnJlY3QuCisgICAgY2hlY2tEaW1lbnNpb25zKCk7CisKKyAgICAvLyBEcmF3IGEg
cGl4ZWwgZ3JpZCB1c2luZyBhIHNoYWRlciB0aGF0IGRyYXdzIGluIGRldmljZSBjb29yZGluYXRl
cworICAgIGNoZWNrR3JpZChnbCwgZGVzaXJlZEhlaWdodCwgZGVzaXJlZFdpZHRoKTsKKworICAg
IC8vIERyYXcgYSBxdWFkIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyLgorICAgIGNoZWNrUXVhZChn
bCwgZGVzaXJlZEhlaWdodCwgZGVzaXJlZFdpZHRoKTsKKworICAgIHNob3VsZEJlKCdnbC5nZXRF
cnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7CisgIH0KK30KKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOworCisvLyB0ZXN0IGEgZmV3IHNpemVzCit0ZXN0KDMyLCAxNik7Cit0ZXN0KDEyOCwgNjQp
OwordGVzdCgyNTYsIDUxMik7CisKK2RlYnVnKCIiKQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9k
cmF3aW5nYnVmZmVyLXN0YXRpYy1jYW52YXMtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL2RyYXdpbmdidWZm
ZXItc3RhdGljLWNhbnZhcy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThiY2EwOThmYmEyZDM4ZDg2
MTdiOTRkOTdhNTM1MGI3ODM3MDZhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy9kcmF3aW5n
YnVmZmVyLXN0YXRpYy1jYW52YXMtdGVzdC5odG1sCkBAIC0wLDAgKzEsMTY4IEBACis8IS0tCisK
Ky8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoq
IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy
c29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4g
dGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQg
bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz
aCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg
TWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFs
cyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy
bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vi
c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxT
IEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiog
RVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS
QU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD
VCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H
UyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDYW52YXMgQ29u
Zm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0i
Y2FudmFzIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPiA8L2NhbnZhcz4KKworPHNjcmlwdCBpZD0i
dnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0
aW9uOwordm9pZCBtYWluKCkKK3sKKyAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+
Cit2b2lkIG1haW4oKQoreworICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwwLjAsMC4wLDEuMCk7
Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Z1bmN0aW9uIGZhaWwo
eCx5LCBidWYsIHNob3VsZEJlKQoreworICB2YXIgaSA9ICh5KjUwK3gpICogNDsKKyAgdmFyIHJl
YXNvbiA9ICJwaXhlbCBhdCAoIit4KyIsIit5KyIpIGlzICgiK2J1ZltpXSsiLCIrYnVmW2krMV0r
IiwiK2J1ZltpKzJdKyIsIitidWZbaSszXSsiKSwgc2hvdWxkIGJlICIrc2hvdWxkQmU7CisgIHRl
c3RGYWlsZWQocmVhc29uKTsKK30KKworZnVuY3Rpb24gcGFzcygpCit7CisgIHRlc3RQYXNzZWQo
ImRyYXdpbmcgaXMgY29ycmVjdCIpOworfQorCitmdW5jdGlvbiBkcmF3VHJpYW5nbGVUZXN0KGds
KQoreworICBnbC52aWV3cG9ydCgwLCAwLCA1MCwgNTApOworICB2YXIgdmVydGV4T2JqZWN0ID0g
Z2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0
ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJB
cnJheShbIDAsMC41LDAsIC0wLjUsLTAuNSwwLCAwLjUsLTAuNSwwIF0pLCBnbC5TVEFUSUNfRFJB
Vyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisKKyAgZ2wuY2xlYXIoZ2wuQ09M
T1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICBnbC5kcmF3QXJyYXlzKGds
LlRSSUFOR0xFUywgMCwgMyk7CisKKyAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDUwICogNTAg
KiA0KTsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCA1MCwgNTAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIGJ1Zik7CisKKyAgLy8gVGVzdCBzZXZlcmFsIGxvY2F0aW9ucworICAvLyBGaXJzdCBs
aW5lIHNob3VsZCBiZSBhbGwgYmxhY2sKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgKytpKSB7
CisgICAgaWYgKGJ1ZltpKjRdICE9IDAgfHwgYnVmW2kqNCsxXSAhPSAwIHx8IGJ1ZltpKjQrMl0g
IT0gMCB8fCBidWZbaSo0KzNdICE9IDI1NSkgeworICAgICAgZmFpbChpLCAwLCBidWYsICIoMCww
LDAsMjU1KSIpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQorICAvLyBMaW5lIDE1IHNob3Vs
ZCBiZSByZWQgZm9yIGF0IGxlYXN0IDEwIHJlZCBwaXhlbHMgc3RhcnRpbmcgMjAgcGl4ZWxzIGlu
CisgIHZhciBvZmZzZXQgPSAoMTUqNTArMjApICogNDsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDsgKytpKSB7CisgICAgaWYgKGJ1ZltvZmZzZXQraSo0XSAhPSAyNTUgfHwgYnVmW29mZnNldCtp
KjQrMV0gIT0gMCB8fCBidWZbb2Zmc2V0K2kqNCsyXSAhPSAwIHx8IGJ1ZltvZmZzZXQraSo0KzNd
ICE9IDI1NSkgeworICAgICAgZmFpbCgyMCArIGksIDE1LCBidWYsICIoMjU1LDAsMCwyNTUpIik7
CisgICAgICByZXR1cm47CisgICAgfQorICB9CisgIC8vIExhc3QgbGluZSBzaG91bGQgYmUgYWxs
IGJsYWNrCisgIG9mZnNldCA9ICg0OSo1MCkgKiA0OworICBmb3IgKHZhciBpID0gMDsgaSA8IDUw
OyArK2kpIHsKKyAgICBpZiAoYnVmW29mZnNldCtpKjRdICE9IDAgfHwgYnVmW29mZnNldCtpKjQr
MV0gIT0gMCB8fCBidWZbb2Zmc2V0K2kqNCsyXSAhPSAwIHx8IGJ1ZltvZmZzZXQraSo0KzNdICE9
IDI1NSkgeworICAgICAgZmFpbChpLCA0OSwgYnVmLCAiKDAsMCwwLDI1NSkiKTsKKyAgICAgIHJl
dHVybjsKKyAgICB9CisgIH0KK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdl
YkdMIGltcGxlbWVudGF0aW9ucyBjb3JyZWN0bHkgaW1wbGVtZW50IGRyYXdpbmdidWZmZXJXaWR0
aC9IZWlnaHQgd2l0aCBjb21wb3NpdGluZy4iKTsKKworZGVidWcoIiIpOworCit2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Cit2YXIgZXJyOwordmFyIG1heFNpemU7Cit2YXIgZ2wgPSAgd3R1LmNy
ZWF0ZTNEQ29udGV4dCgiY2FudmFzIik7CitpZiAoIWdsKSB7CisgIHRlc3RGYWlsZWQoImNvbnRl
eHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgIHRlc3RQYXNzZWQoImNvbnRleHQgZXhp
c3RzIik7CisKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIi
LCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdKTsKKyAgc2hvdWxkQmVOb25OdWxsKCJwcm9ncmFt
Iik7CisgIGdsLmVuYWJsZShnbC5ERVBUSF9URVNUKTsKKyAgZ2wuY2xlYXJDb2xvcigwLCAwLCAw
LCAxKTsKKyAgc2hvdWxkQmUoJ2dsLmdldEVycm9yKCknLCAnZ2wuTk9fRVJST1InKTsKKworICBk
ZWJ1ZygiIik7CisgIGRlYnVnKCJDaGVja2luZyBkcmF3aW5nQnVmZmVyV2lkdGgvZHJhd2luZ0J1
ZmZlckhlaWdodCIpOworCisgIC8vIENoZWNrIHRoYXQgYSBjYW52YXMgd2l0aCBubyB3aWR0aCBv
ciBoZWlnaHQgaXMgMzAweDE1MCBwaXhlbHMKKyAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJX
aWR0aCcsICdnbC5jYW52YXMud2lkdGgnKTsKKyAgc2hvdWxkQmUoJ2dsLmRyYXdpbmdCdWZmZXJI
ZWlnaHQnLCAnZ2wuY2FudmFzLmhlaWdodCcpOworCisgIC8vIENoZWNrIHRoYXQgY2hhbmdpbmcg
dGhlIGNhbnZhcyBzaXplIHRvIHNvbWV0aGluZyB0b28gbGFyZ2UgZmFsbHMgYmFjayB0byByZWFz
b25hYmxlIHZhbHVlcy4KKyAgbWF4U2l6ZSA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVklFV1BP
UlRfRElNUyk7CisgIHNob3VsZEJlVHJ1ZSgnbWF4U2l6ZVswXSA+IDAnKTsKKyAgc2hvdWxkQmVU
cnVlKCdtYXhTaXplWzFdID4gMCcpOworCisgIC8vIGRlYnVnKCJNQVhfVklFV1BPUlRfRElNUyA9
ICIgKyBtYXhTaXplWzBdICsgIngiICsgbWF4U2l6ZVsxXSk7CisgIGdsLmNhbnZhcy53aWR0aCA9
IG1heFNpemVbMF0gKiA0OworICBnbC5jYW52YXMuaGVpZ2h0ID0gbWF4U2l6ZVsxXSAqIDQ7Cisg
IHNob3VsZEJlVHJ1ZSgnZ2wuZHJhd2luZ0J1ZmZlcldpZHRoID4gMCcpOworICBzaG91bGRCZVRy
dWUoJ2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPiAwJyk7CisgIHNob3VsZEJlVHJ1ZSgnZ2wuZHJh
d2luZ0J1ZmZlcldpZHRoIDw9IG1heFNpemVbMF0nKTsKKyAgc2hvdWxkQmVUcnVlKCdnbC5kcmF3
aW5nQnVmZmVySGVpZ2h0IDw9IG1heFNpemVbMV0nKTsKKyAgc2hvdWxkQmUoJ2dsLmdldEVycm9y
KCknLCAnZ2wuTk9fRVJST1InKTsKKworICBkZWJ1ZygiIik7CisgIGRlYnVnKCJDaGVja2luZyBz
Y2FsaW5nIHVwIHRoZW4gYmFjayBkb3duIHRvIDUwLzUwLCBkcmF3aW5nIHN0aWxsIHdvcmtzLiIp
OworICBnbC5jYW52YXMud2lkdGggPSA1MDsKKyAgZ2wuY2FudmFzLmhlaWdodCA9IDUwOworICBz
aG91bGRCZVRydWUoJ2dsLmRyYXdpbmdCdWZmZXJXaWR0aCA9PSA1MCcpOworICBzaG91bGRCZVRy
dWUoJ2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQgPT0gNTAnKTsKKyAgc2hvdWxkQmUoJ2dsLmdldEVy
cm9yKCknLCAnZ2wuTk9fRVJST1InKTsKKyAgZHJhd1RyaWFuZ2xlVGVzdChnbCk7CisgIHNob3Vs
ZEJlKCdnbC5nZXRFcnJvcigpJywgJ2dsLk5PX0VSUk9SJyk7Cit9CitkZWJ1ZygiIikKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5hZmZlY3RlZC1vbi1yZXNp
emUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2NhbnZhcy9mcmFtZWJ1ZmZlci1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjczNWY5NTc5ZThmY2FjMjZhZTkxOWFjODZhYjAwM2FkOTExYzE2
MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvZnJhbWVidWZmZXItYmluZGluZ3MtdW5hZmZl
Y3RlZC1vbi1yZXNpemUuaHRtbApAQCAtMCwwICsxLDEwOCBAQAorPCEtLQorCisvKgorKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor
KioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgor
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmVyaWZpZXMgdGhhdCBHTCBmcmFtZWJ1ZmZl
ciBiaW5kaW5ncyBkbyBub3QgY2hhbmdlIHdoZW4gY2FudmFzIGlzIHJlc2l6ZWQ8L3RpdGxlPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWln
aHQ9IjQiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlZl
cmlmaWVzIHRoYXQgR0wgZnJhbWVidWZmZXIgYmluZGluZ3MgZG8gbm90IGNoYW5nZSB3aGVuIGNh
bnZhcyBpcyByZXNpemVkIik7CisKK2luaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsK
KwordmFyIGVycjsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29u
dGV4dChjYW52YXMpOwordmFyIGdyZWVuID0gWzAsIDI1NSwgMCwgMjU1XTsKK3ZhciBibHVlID0g
WzAsIDAsIDI1NSwgMjU1XTsKK3ZhciBmYm9TaXplID0gMjsKK3Nob3VsZEJlVHJ1ZSgiZmJvU2l6
ZSA8IGNhbnZhcy53aWR0aCIpOwordmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Citn
bC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Cit2YXIgZmJvVGV4ID0gZ2wu
Y3JlYXRlVGV4dHVyZSgpOworZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMSk7CitnbC5iaW5k
VGV4dHVyZShnbC5URVhUVVJFXzJELCBmYm9UZXgpOworZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCBmYm9U
ZXgsIDApOworZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBmYm9TaXpl
LCBmYm9TaXplLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKK2dsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIp
OworZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIs
IGdsLkxJTkVBUik7CitnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKK2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworc2hvdWxkQmUoImdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIiwgImdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFIik7CisKK2Z1bmN0aW9uIGNoZWNrRkJPKGNvbG9yLCBtc2cpIHsKKyAgd3R1LmNoZWNr
Q2FudmFzUmVjdChnbCwgMCwgMCwgZmJvU2l6ZSwgZmJvU2l6ZSwgY29sb3IsIG1zZyk7CisgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIGZib1NpemUsIGZib1NpemUsIGZib1NpemUsIGZib1NpemUs
IFswLCAwLCAwLCAwXSwgImFyZWEgb3V0c2lkZSBmYm8gc2hvdWxkIGJlIHRyYW5zcGFyZW50IGJs
YWNrIik7Cit9CisKKy8vIFRoZSBGQk8gaXMgMngyIGFuZCBpdCdzIGJvdW5kIHNvIGNsZWFyaW5n
IHNob3VsZCBjbGVhciBhIDJ4MiBhcmVhCisvLyBhbmQgY2FsbGluZyByZWFkIHBpeGVscyBzaG91
bGQgcmVhZCB0aGUgY2xlYXIgY29sb3IgaW4gdGhhdCAyeDIgYXJlYQorLy8gYW5kIDAsMCwwLDAg
b3V0c2lkZSB0aGF0IGFyZWEuCisvLworLy8gSWYgdGhlIEZCTyBpcyBubyBsb25nZXIgYm91bmQg
YmVjYXVzZSBvZiBhIFdlYkdMIGltcGxlbWVudGF0aW9uIGVycm9yCisvLyB0aGVuIGxpa2VseSB0
aGUgY2xlYXIgd2lsbCBjbGVhciB0aGUgYmFja2J1ZmZlciBhbmQgcmVhZGluZyBvdXRzaWRlCisv
LyB0aGUgMngyIGFyZWEgd2lsbCBub3QgYmUgMCwwLDAsMAorCitmdW5jdGlvbiB0ZXN0KCkgewor
ICBnbC5jbGVhckNvbG9yKDAsIDAsIDEsIDEpOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUKTsKKyAgY2hlY2tGQk8oYmx1ZSwgInNob3VsZCBiZSBibHVlIik7CisgIGdsLmNsZWFyQ29s
b3IoMCwgMSwgMCwgMSk7CisgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworICBjaGVj
a0ZCTyhncmVlbiwgInNob3VsZCBiZSBncmVlbiIpOworfQorCitkZWJ1ZygidGVzdCBiZWZvcmUg
cmVzaXppbmcgY2FudmFzIik7Cit0ZXN0KCk7CitkZWJ1ZygidGVzdCBhZnRlciByZXNpemluZyBj
YW52YXMiKTsKK2NhbnZhcy53aWR0aCA9IDg7Cit0ZXN0KCk7CitkZWJ1ZygidGVzdCBhZnRlciBy
ZXNpemluZyBjYW52YXMgYW5kIHdhaXRpbmcgZm9yIGNvbXBvc2l0aW5nIik7CitjYW52YXMud2lk
dGggPSAxNjsKK3d0dS53YWl0Rm9yQ29tcG9zaXRlKGdsLCBmdW5jdGlvbigpIHsKKyAgdGVzdCgp
OworICBmaW5pc2hUZXN0KCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJT
aG91bGQgYmUgbm8gZXJyb3JzLiIpOworfSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy90
ZXh0dXJlLWJpbmRpbmdzLXVuYWZmZWN0ZWQtb24tcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52YXMvdGV4dHVy
ZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkNzljOTRm
OGRlNTdkOGExZDYzZWVhZTFiNDBkMTUyNDQ0NmMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9jYW52
YXMvdGV4dHVyZS1iaW5kaW5ncy11bmFmZmVjdGVkLW9uLXJlc2l6ZS5odG1sCkBAIC0wLDAgKzEs
OTAgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
CisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPjwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oJ1ZlcmlmaWVzIHRo
YXQgR0wgdGV4dHVyZSBiaW5kaW5ncyBkbyBub3QgY2hhbmdlIHdoZW4gY2FudmFzIGlzIHJlc2l6
ZWQnKTsKKworaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOworCit2YXIgZXJyOwor
dmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJleGFtcGxlIik7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7
Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisKK3ZhciBncmVlbiA9
IFswLCAyNTUsIDAsIDI1NV07Cit2YXIgYmx1ZSA9IFswLCAwLCAyNTUsIDI1NV07Cit2YXIgdGV4
MCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKK3d0dS5maWxsVGV4dHVyZShnbCwgdGV4MCwgMSwgMSwg
Ymx1ZSwgMCk7CitnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUxKQordmFyIHRleDEgPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Cit3dHUuZmlsbFRleHR1cmUoZ2wsIHRleDEsIDEsIDEsIGdyZWVuLCAw
KTsKKwordmFyIGxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7CisK
K2Z1bmN0aW9uIHRlc3QoKSB7CisgIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCk7CisgIGdsLnVuaWZvcm0xaShsb2MsIDApOworICB3dHUuZHJhd1F1YWQoZ2wp
OworICB3dHUuY2hlY2tDYW52YXMoZ2wsIGJsdWUsICJzaG91bGQgYmUgYmx1ZSIpOworICBnbC51
bmlmb3JtMWkobG9jLCAxKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKyAgd3R1LmNoZWNrQ2FudmFz
KGdsLCBncmVlbiwgInNob3VsZCBiZSBncmVlbiIpOworfQorCitkZWJ1ZygidGVzdCBiZWZvcmUg
cmVzaXppbmcgY2FudmFzIik7Cit0ZXN0KCk7CitkZWJ1ZygidGVzdCBhZnRlciByZXNpemluZyBj
YW52YXMiKTsKK2NhbnZhcy53aWR0aCA9IDg7Cit0ZXN0KCk7CitkZWJ1ZygidGVzdCBhZnRlciBy
ZXNpemluZyBjYW52YXMgYW5kIHdhaXRpbmcgZm9yIGNvbXBvc2l0aW5nIik7CitjYW52YXMud2lk
dGggPSAxNjsKK3d0dS53YWl0Rm9yQ29tcG9zaXRlKGdsLCBmdW5jdGlvbigpIHsKKyAgdGVzdCgp
OworICBmaW5pc2hUZXN0KCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJT
aG91bGQgYmUgbm8gZXJyb3JzLiIpOworfSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy92
aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2NhbnZhcy92aWV3cG9ydC11bmNo
YW5nZWQtdXBvbi1yZXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2U4NzJkZmI4NzQ1YWU0ZWUzMTNm
ZDJlNDNlMzZjMzM3ODA3MTBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvY2FudmFzL3ZpZXdwb3J0LXVu
Y2hhbmdlZC11cG9uLXJlc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8IS0tCisKKy8qCisq
KiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9j
dW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1h
dGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRh
dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoq
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJp
YWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUg
ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv
biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBP
UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoq
IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O
IFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU
SEUgTUFURVJJQUxTLgorKi8KKworLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9
Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIGdfUG9zaXRpb247CisKK3ZvaWQg
bWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGdfUG9zaXRpb24ueCwgZ19Qb3NpdGlv
bi55LCBnX1Bvc2l0aW9uLnosIDEuMCk7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnNo
YWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Cit2b2lkIG1haW4oKQoreworICAgIGds
X0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsKK30KKzwvc2NyaXB0PgorCis8
L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQi
PjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oJ1ZlcmlmaWVz
IHRoYXQgR0wgdmlld3BvcnQgZG9lcyBub3QgY2hhbmdlIHdoZW4gY2FudmFzIGlzIHJlc2l6ZWQn
KTsKKwordmFyIGVycjsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKK3ZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3Jh
bShnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXIiXSwgWyJnX1Bvc2l0aW9uIl0pOworCit2YXIgdmVy
dGljZXMgPSBuZXcgRmxvYXQzMkFycmF5KFsKKyAgICAgMS4wLCAgMS4wLCAwLjAsCisgICAgLTEu
MCwgIDEuMCwgMC4wLAorICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAgMS4wLCAgMS4wLCAwLjAs
CisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAxLjAsIC0xLjAsIDAuMF0pOwordmFyIHZibyA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOworZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7
CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdmVydGljZXMsIGdsLlNUQVRJQ19EUkFX
KTsKKworZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CitnbC52ZXJ0ZXhBdHRyaWJQb2lu
dGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisKKy8vIENsZWFyIGFuZCBzZXQgdXAK
K2dsLmNsZWFyQ29sb3IoMCwgMCwgMSwgMSk7CitnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
IHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CitnbC51c2VQcm9ncmFtKHByb2dyYW0pOworLy8gRHJh
dyB0aGUgdHJpYW5nbGUgcGFpciB0byB0aGUgZnJhbWUgYnVmZmVyCitnbC5kcmF3QXJyYXlzKGds
LlRSSUFOR0xFUywgMCwgNik7CisKKy8vIEVuc3VyZSB0aGF0IHRoZSBmcmFtZSBidWZmZXIgaXMg
cmVkIGF0IHRoZSBzYW1wbGVkIHBpeGVsCit3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAyLCAyLCAx
LCAxLCBbMjU1LCAwLCAwLCAyNTVdKTsKKworLy8gTm93IHJlc2l6ZSB0aGUgY2FudmFzCitnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3JzIGJlZm9yZSByZXNpemlu
ZyB0aGUgY2FudmFzIik7Cit2YXIgY2FudmFzID0gZ2wuY2FudmFzOworY2FudmFzLndpZHRoID0g
ODsKK2NhbnZhcy5oZWlnaHQgPSA4OworZXJyID0gZ2wuZ2V0RXJyb3IoKTsKKy8vIFNvbWUgaW1w
bGVtZW50YXRpb25zIG1pZ2h0IGxvc3QgdGhlIGNvbnRleHQgd2hlbiByZXNpemluZworaWYgKGVy
ciA9PSBnbC5DT05URVhUX0xPU1RfV0VCR0wpIHsKKyAgdGVzdFBhc3NlZCgiY2FudmFzIGxvc3Qg
Y29udGV4dCBvbiByZXNpemUiKTsKK30gZWxzZSB7CisgIHNob3VsZEJlKCJlcnIiLCAiZ2wuTk9f
RVJST1IiKTsKKyAgLy8gRG8gYW5vdGhlciByZW5kZXIKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgNik7CisgIC8vIFRoaXMgdGltZSwgYmVjYXVzZSB3ZSBkaWQgbm90IGNoYW5nZSB0
aGUgdmlld3BvcnQsIGl0IHNob3VsZAorICAvLyBzdGlsbCBiZSAoMCwgMCwgNCwgNCksIHNvIG9u
bHkgdGhlIGxvd2VyLWxlZnQgcXVhZHJhbnQgc2hvdWxkCisgIC8vIGhhdmUgYmVlbiBmaWxsZWQu
CisgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDYsIDYsIDEsIDEsIFswLCAwLCAyNTUsIDI1NV0p
OworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>