<?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>109112</bug_id>
          
          <creation_ts>2013-02-06 17:48:55 -0800</creation_ts>
          <short_desc>Add WebGL Conformance Tests uniforms folder.</short_desc>
          <delta_ts>2013-02-07 04:45:01 -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>826926</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:48:55 -0800</bug_when>
    <thetext>Add WebGL Conformance Tests uniforms folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826927</commentid>
    <comment_count>1</comment_count>
      <attachid>186959</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-06 17:49:19 -0800</bug_when>
    <thetext>Created attachment 186959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826970</commentid>
    <comment_count>2</comment_count>
      <attachid>186959</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 18:41:04 -0800</bug_when>
    <thetext>Comment on attachment 186959
Patch

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

Clearing flags on attachment: 186959

Committed r142097: &lt;http://trac.webkit.org/changeset/142097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827332</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 04:45:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186959</attachid>
            <date>2013-02-06 17:49:19 -0800</date>
            <delta_ts>2013-02-07 04:44:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109112-20130206174555.patch</filename>
            <type>text/plain</type>
            <size>43600</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg1YzNmODI2ZjFlY2EwZDY4NmNl
OTY2MDM2ZmZkNjliMWMyYmQ4My4uZTI5MzI5N2QyMWQzZDY5MjkwNTdlNGFiN2JiNjFlYTA5OGVk
MjAxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEzLTAyLTA2ICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWRkIFdlYkdMIENvbmZvcm1hbmNlIFRlc3Rz
IHVuaWZvcm1zIGZvbGRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTExMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMv
Z2wtdW5pZm9ybS1ib29sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNl
L3VuaWZvcm1zL2dsLXVuaWZvcm1tYXRyaXg0ZnYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtbWF0cml4NGZ2Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVua25vd24t
dW5pZm9ybS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNl
L3VuaWZvcm1zL2dsLXVua25vd24tdW5pZm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZv
cm0tbG9jYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvMDBfdGVzdF9saXN0LnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0t
cGFja2luZy1yZXN0cmljdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1zdHJ1
Y3QtdW51c2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0tdW51c2VkLWFycmF5LWVs
ZW1lbnRzLWdldC10cnVuY2F0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybW1hdHJp
eDRmdi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmtub3duLXVuaWZvcm0uaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dW5pZm9ybXMvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL291dC1v
Zi1ib3VuZHMtdW5pZm9ybS1hcnJheS1hY2Nlc3MuaHRtbDogQWRkZWQuCisKKzIwMTMtMDItMDYg
IEdyZWdnIFRhdmFyZXMgIDxnbWFuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBBZGRzIGZhaWxp
bmcgV2ViR0wgQ29uZm9ybWFuY2UgVGVzdHMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNzUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0tYm9vbC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBlNGNmMTlmNjQ3OWU0YjhjMmFiNzlkN2ZjNTRiMzE3YTM4
YWUyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3Vu
aWZvcm1zL2dsLXVuaWZvcm0tYm9vbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLmh0bWwKK1BBU1MKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5p
Zm9ybS1ib29sLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9n
bC11bmlmb3JtLWJvb2wuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTVlZjE0YTJjNmQ4NGFlZDkwYzRmZmE3
ZTlmNDUxODhkMThmZGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMu
cHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgZ2wtdW5pZm9ybS1ib29sLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11
bmlmb3JtLWJvb2wuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybS1ib29sLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtLWJvb2wuaHRt
bCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jt
cy9nbC11bmlmb3JtbWF0cml4NGZ2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm1tYXRyaXg0ZnYtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMxYjBjNTc4NDA3M2ZkYTlkOTU2NzVhMzE0Mjg5MDQwZjgwMDIxZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlm
b3JtbWF0cml4NGZ2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5z
IHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFT
UyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtbWF0cml4NGZ2Lmh0bWwKK1BBU1MKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9ybW1h
dHJpeDRmdi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wt
dW5pZm9ybW1hdHJpeDRmdi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NWQxY2E2ZDQ4Mzk2YWU5ZWMxZDg1
NDNhNDAyNjBkNWMxZWZkY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtbWF0cml4NGZ2Lmh0bWwKQEAgLTAsMCArMSwx
OCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3Qg
V3JhcHBlciBmb3IgZ2wtdW5pZm9ybW1hdHJpeDRmdi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDog
PGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5p
Zm9ybXMvZ2wtdW5pZm9ybW1hdHJpeDRmdi5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtbWF0cml4NGZ2Lmh0bWw8L2E+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9n
bC11bmlmb3JtbWF0cml4NGZ2Lmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFt
ZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5rbm93bi11bmlmb3JtLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVua25vd24tdW5pZm9y
bS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMyYmZmYWYyMGVjMThmZmExMTFmMGVmOTM1ODA5
YTkyMTU3ZGIzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL3VuaWZvcm1zL2dsLXVua25vd24tdW5pZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5rbm93bi11bmlmb3JtLmh0
bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5p
Zm9ybXMvZ2wtdW5rbm93bi11bmlmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS91bmlmb3Jtcy9nbC11bmtub3duLXVuaWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGRhYWQw
ZDViNWYyYWExOTA5M2JjMjMxNGM0OTg3OTFiNjkyMTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5rbm93bi11bmlmb3JtLmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkg
Z2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENv
bmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdW5rbm93bi11bmlmb3JtLmh0bWw8L3RpdGxl
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmtub3duLXVuaWZvcm0uaHRtbCI+Li4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5rbm93bi11bmlm
b3JtLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4K
KzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS91bmlmb3Jtcy9nbC11bmtub3duLXVuaWZvcm0uaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvbnVs
bC11bmlmb3JtLWxvY2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTg4ZTgwNWZkNTA4
NzFmODZkNTk1NGZlMDI3OTY1MGY3NWI2NjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvdW5pZm9ybXMvbnVsbC11bmlmb3JtLWxvY2F0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9u
dWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3VuaWZvcm1zL251bGwtdW5pZm9ybS1sb2Nh
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMDlmYTY5YmQ5MTlmZGI5MGM3MDk0ZWZjZTQ4ODg1NzY3
ZWZiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS91
bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbApAQCAtMCwwICsxLDE4IEBACis8IS0t
IFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCBieSBnZW5lcmF0ZS13ZWJnbC10ZXN0cy5weS4g
RE8gTk9UIEVESVQgLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZv
ciBudWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBp
biBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL251
bGwtdW5pZm9ybS1sb2NhdGlvbi5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbDwvYT4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL251bGwt
dW5pZm9ybS1sb2NhdGlvbi5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zLzAwX3Rlc3Rf
bGlzdC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS91bmlmb3Jtcy8wMF90ZXN0X2xpc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkYzE4Yzgy
Yzg4YWUwZDNhNWMyMDQ2YmYxMjc0Mzc1MjQ5MTkzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlm
b3Jtcy8wMF90ZXN0X2xpc3QudHh0CkBAIC0wLDAgKzEsMTAgQEAKK2dsLXVuaWZvcm0tYXJyYXlz
Lmh0bWwKKyMgVGhpcyB0ZXN0IGlzIG5vIGxvbmdlciB2YWxpZCB3aXRoIHRoZSBuZXcgcGFja2lu
ZyByZXN0cmljdGlvbnMKKyMtLW1pbi12ZXJzaW9uIDEuMC4wMiBnbC11bmlmb3JtLXVudXNlZC1h
cnJheS1lbGVtZW50cy1nZXQtdHJ1bmNhdGVkLmh0bWwKK2dsLXVuaWZvcm0tYm9vbC5odG1sCitn
bC11bmlmb3JtbWF0cml4NGZ2Lmh0bWwKK2dsLXVua25vd24tdW5pZm9ybS5odG1sCitudWxsLXVu
aWZvcm0tbG9jYXRpb24uaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiB1bmlmb3JtLWRlZmF1bHQt
dmFsdWVzLmh0bWwKK3VuaWZvcm0tbG9jYXRpb24uaHRtbAordW5pZm9ybS1zYW1wbGVycy10ZXN0
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0tYm9vbC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9y
bXMvZ2wtdW5pZm9ybS1ib29sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M1MmM5NmExOGM5NDdkZDM2Nzhm
OTliMzNhNmM2NjE1YTAzZDkwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZv
cm0tYm9vbC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAo
YykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJl
YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoq
IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp
bGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhv
dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo
dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwg
c3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bwor
KiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv
ZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJ
UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQs
IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNI
QU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ
TkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhF
UldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoq
IE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMu
CisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHVuaWZvcm1NYXRyaXggQ29uZm9ybWFuY2UgVGVz
dHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZGVza3Rv
cC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZh
cz4KKyAgICA8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Cisg
ICAgICAgIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKKyAgICAgICAgdm9pZCBtYWluKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVy
L3gtZnJhZ21lbnQiPgorICAgICAgICB1bmlmb3JtIGJvb2wgY29sb3I7CisgICAgICAgIHZvaWQg
bWFpbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoZmxvYXQo
Y29sb3IpLDAuMCwwLjAsMS4wKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPHNjcmlwdD4K
KyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJHTCBpbXBs
ZW1lbnRhdGlvbnMgaGFuZGxlIGJvb2wgdW5pZm9ybXMgaW4gYSBPcGVuR0wgRVMgMi4wIHNwZWMg
Y29tcGxpYW50IHdheSIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiTk9URTogU29tZSBPcGVuR0wg
ZHJpdmVycyBkbyBub3QgaGFuZGxlIHRoaXMgY29ycmVjdGx5Iik7CitkZWJ1ZygiIik7CitkZWJ1
ZygiQ2hlY2tpbmcgZ2wudW5pZm9ybTFmIHdpdGggYm9vbC4iKTsKKwordmFyIHd0dSA9IFdlYkdM
VGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwordmFy
IHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlciJdLCBb
InZQb3NpdGlvbiJdKTsKK3ZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwg
ImNvbG9yIik7CitnbC51bmlmb3JtMWYobG9jLCAxKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IsCisgICAgICAgICAgICAgICAgInNob3VsZCBiZSBhYmxlIHRvIHNldCBib29sIHdp
dGggZ2wudW5pZm9ybTFmIik7CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5p
Zm9ybXMvZ2wtdW5pZm9ybS1wYWNraW5nLXJlc3RyaWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wt
dW5pZm9ybS1wYWNraW5nLXJlc3RyaWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZTJhOTZhMTM3
M2EyOWY0OGI2Mjk1NjAwY2YzMjBhZGU3M2VkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jt
cy9nbC11bmlmb3JtLXBhY2tpbmctcmVzdHJpY3Rpb25zLmh0bWwKQEAgLTAsMCArMSwxNTggQEAK
KzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMu
CisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3Ig
YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8g
ZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiog
d2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl
LCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUg
TWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg
dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBN
QVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBD
TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G
IENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVS
IERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHVu
aWZvcm0gcGFja2luZyByZXN0cmN0aW9ucyBDb25mb3JtYW5jZSBUZXN0PC90aXRsZT4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ii8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi
PiA8L2NhbnZhcz4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KKyAgICBhdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworICAgIHZvaWQgbWFpbigpCisgICAg
eworICAgICAgICBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247CisgICAgfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJmc2hhZGVyLW1heCIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAg
cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgdW5pZm9ybSB2ZWM0IGNvbG9yYVskKG51bVVu
aWZvcm1WZWN0b3JzKV07CisgICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGdsX0ZyYWdD
b2xvciA9IHZlYzQoY29sb3JhWyQodXNlZFVuaWZvcm1WZWN0b3IpXSk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oKTsKK2RlYnVnKCIiKTsK
K3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
ImV4YW1wbGUiKTsKK3ZhciB2U3JjID0gd3R1LmdldFNjcmlwdCgidnNoYWRlciIpOworCit2YXIg
dW5pZm9ybVR5cGVzID0gWworICB7IHR5cGU6ICJib29sIiwgICAgICAgIGNvbXBvbmVudHNQZXJS
b3c6IDEsIHJvd3M6IDEsIH0sCisgIHsgdHlwZTogImZsb2F0IiwgICAgICAgY29tcG9uZW50c1Bl
clJvdzogMSwgcm93czogMSwgfSwKKyAgeyB0eXBlOiAiaW50IiwgICAgICAgICBjb21wb25lbnRz
UGVyUm93OiAxLCByb3dzOiAxLCB9LAorICB7IHR5cGU6ICJ2ZWMyIiwgICAgICAgIGNvbXBvbmVu
dHNQZXJSb3c6IDIsIHJvd3M6IDEsIH0sCisgIHsgdHlwZTogIml2ZWMyIiwgICAgICAgY29tcG9u
ZW50c1BlclJvdzogMiwgcm93czogMSwgfSwKKyAgeyB0eXBlOiAiYnZlYzIiLCAgICAgICBjb21w
b25lbnRzUGVyUm93OiAyLCByb3dzOiAxLCB9LAorICB7IHR5cGU6ICJ2ZWMzIiwgICAgICAgIGNv
bXBvbmVudHNQZXJSb3c6IDMsIHJvd3M6IDEsIH0sCisgIHsgdHlwZTogIml2ZWMzIiwgICAgICAg
Y29tcG9uZW50c1BlclJvdzogMywgcm93czogMSwgfSwKKyAgeyB0eXBlOiAiYnZlYzMiLCAgICAg
ICBjb21wb25lbnRzUGVyUm93OiAzLCByb3dzOiAxLCB9LAorICB7IHR5cGU6ICJ2ZWM0IiwgICAg
ICAgIGNvbXBvbmVudHNQZXJSb3c6IDQsIHJvd3M6IDEsIH0sCisgIHsgdHlwZTogIml2ZWM0Iiwg
ICAgICAgY29tcG9uZW50c1BlclJvdzogNCwgcm93czogMSwgfSwKKyAgeyB0eXBlOiAiYnZlYzQi
LCAgICAgICBjb21wb25lbnRzUGVyUm93OiA0LCByb3dzOiAxLCB9LAorICB7IHR5cGU6ICJtYXQy
IiwgICAgICAgIGNvbXBvbmVudHNQZXJSb3c6IDQsIHJvd3M6IDEsIH0sCisgIHsgdHlwZTogIm1h
dDMiLCAgICAgICAgY29tcG9uZW50c1BlclJvdzogMywgcm93czogMywgfSwKKyAgeyB0eXBlOiAi
bWF0NCIsICAgICAgICBjb21wb25lbnRzUGVyUm93OiA0LCByb3dzOiA0LCB9LAorICB7IHR5cGU6
ICJzYW1wbGVyMkQiLCAgIGNvbXBvbmVudHNQZXJSb3c6IDEsIHJvd3M6IDEsIH0sCisgIHsgdHlw
ZTogInNhbXBsZXJDdWJlIiwgY29tcG9uZW50c1BlclJvdzogMSwgcm93czogMSwgfSwKK107CisK
K3ZhciB1bmlmb3JtczsKKy8vIFRoaXMgdGVzdCBpcyB0byB0ZXN0IGRyaXZlcnMgdGhlIGhhdmUg
YnVncyByZWxhdGVkIHRvIG9wdGltaXppbmcKKy8vIGFuIGFycmF5IG9mIHVuaWZvcm1zIHdoZW4g
b25seSAxIG9mIHRob3NlIHVuaWZvcm1zIGlzIHVzZWQuCitkZWJ1ZygiIik7Cit2YXIgbWF4VW5p
Zm9ybVZlY3RvcnMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVD
VE9SUyk7Cit2YXIgdGVzdHMgPSBbCisgeyBkZXNjOiAidXNpbmcgNXRoIGVsZW1lbnQiLAorICAg
bWF4VW5pZm9ybVZlY3RvcnM6IG1heGVVbmlmb3JtVmVjdG9ycywKKyAgIG51bVVuaWZvcm1WZWN0
b3JzOiBtYXhVbmlmb3JtVmVjdG9ycyAqIDIsCisgICB1c2VkVW5pZm9ybVZlY3RvcjogNSwKKyAg
IHNoYWRlcjogImZzaGFkZXItbWF4IiwKKyAgIGNvbG9yOiBbMCwgMSwgMCwgMV0sCisgICBhcnJh
eU5hbWU6ICJjb2xvcmEiLAorIH0sCitdOworCisvLyBBY2NvcmRpbmcgdG8gdGhlIHNwZWMgdW51
c2VkIGFycmF5IGVsZW1lbnRzIG11c3QgYmUgdHJ1bmNhdGVkLgordmFyIHJlcXVpcmVkVW5pZm9y
bUxvY2F0aW9uc0V4aXN0OworZnVuY3Rpb24gdGVzdFVuaWZvcm1Jc3N1ZXModGVzdEluZGV4KSB7
CisgIHZhciB0ZXN0ID0gdGVzdHNbdGVzdEluZGV4XTsKKyAgZGVidWcoIiIpOworICBkZWJ1Zyh0
ZXN0LmRlc2MpOworICB2YXIgZlNyYyA9IHRlc3Quc291cmNlOworICBpZiAoIWZTcmMpIHsKKyAg
ICBmU3JjID0gd3R1LnJlcGxhY2VQYXJhbXMod3R1LmdldFNjcmlwdCh0ZXN0LnNoYWRlciksIHRl
c3QpOworICB9CisKKyAgdmFyIGNvbnNvbGVFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKTsKKyAgd3R1LmFkZFNoYWRlclNvdXJjZSgKKyAgICAgIGNvbnNvbGVFbGVtLCAi
dmVydGV4IHNoYWRlciIsIHZTcmMpOworICB3dHUuYWRkU2hhZGVyU291cmNlKAorICAgICAgY29u
c29sZUVsZW0sICJmcmFnbWVudCBzaGFkZXIiLCBmU3JjKTsKKworICB2YXIgcHJvZ3JhbSA9IHd0
dS5sb2FkUHJvZ3JhbShnbCwgdlNyYywgZlNyYyk7CisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7
CisgIHVuaWZvcm1zID0gd3R1LmdldFVuaWZvcm1NYXAoZ2wsIHByb2dyYW0pOworICBzaG91bGRC
ZSgndW5pZm9ybXNbIicgKyB0ZXN0LmFycmF5TmFtZSArICdbMF0iXS5zaXplJywgKHRlc3QudXNl
ZFVuaWZvcm1WZWN0b3IgKyAxKS50b1N0cmluZygpKTsKKworICByZXF1aXJlZFVuaWZvcm1Mb2Nh
dGlvbnNFeGlzdCA9IHRydWU7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPD0gdGVzdC51c2VkVW5p
Zm9ybVZlY3RvciArIDE7ICsraWkpIHsKKyAgICB2YXIgbmFtZSA9IHRlc3QuYXJyYXlOYW1lICsg
IlsiICsgaWkgKyAiXSI7CisgICAgdmFyIGNvbG9yTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9j
YXRpb24ocHJvZ3JhbSwgbmFtZSk7CisgICAgaWYgKGlpIDw9IHRlc3QudXNlZFVuaWZvcm1WZWN0
b3IpIHsKKyAgICAgIGlmICghY29sb3JMb2NhdGlvbikgeworICAgICAgICByZXF1aXJlZFVuaWZv
cm1Mb2NhdGlvbnNFeGlzdCA9IGZhbHNlCisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGlm
IChjb2xvckxvY2F0aW9uKSB7CisgICAgICAgIHRlc3RGYWlsZWQoInVuaWZvcm0gYXJyYXkgd2Fz
IG5vdCB0cnVuY2F0ZWQgYXMgc3BlY2lmaWVkIGluIE9wZW5HTCBFUyAyLjAuMjUgc2VjdGlvbiAy
LjEwLjQiKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgc2hvdWxkQmVUcnVlKCJyZXF1aXJlZFVu
aWZvcm1Mb2NhdGlvbnNFeGlzdCIpOworfQorCit2YXIgdGVzdEluZGV4ID0gMDsKK2Z1bmN0aW9u
IHJ1bk5leHRUZXN0KCkgeworICB0ZXN0VW5pZm9ybUlzc3Vlcyh0ZXN0SW5kZXgrKyk7CisgIGlm
ICh0ZXN0SW5kZXggPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICBzZXRUaW1lb3V0KHJ1bk5leHRUZXN0
LCAxMCk7CisgIH0gZWxzZSB7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwg
InRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZmluaXNo
VGVzdCgpOworICB9Cit9CitydW5OZXh0VGVzdCgpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Vu
aWZvcm1zL2dsLXVuaWZvcm0tc3RydWN0LXVudXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9y
bS1zdHJ1Y3QtdW51c2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyY2E3YTBhYTUxZWVjMjRlNGMzMjg2
ZjljNDZjZmYyZjY4MjhmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0t
c3RydWN0LXVudXNlZC5odG1sCkBAIC0wLDAgKzEsMTA1IEBACis8IS0tCisKKy8qCisqKiBDb3B5
cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24g
aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu
ZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFs
cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0
aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3Ry
aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBh
bmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisq
KgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisq
KiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZ
UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFU
RVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB1bmlmb3JtIHN0cnVjdCBDb25mb3Jt
YW5jZSBUZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZhcz4KKworPHNjcmlwdCBpZD0idnNoYWRl
ciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwor
dW5pZm9ybSB2ZWM0IHUwOworc3RydWN0IE15U3RydWN0IHsKKyAgdmVjNCB2YXIxOworICB2ZWM0
IHZhcjI7CisgIHZlYzQgdmFyMzsKKyAgdmVjNCB2YXI0OworfTsKK3VuaWZvcm0gTXlTdHJ1Y3Qg
dTE7Cit1bmlmb3JtIHZlYzQgdTI7Cit2YXJ5aW5nIHZlYzQgdl9jb2xvcjsKK3ZvaWQgbWFpbigp
Cit7CisgIGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOworICB2X2NvbG9yID0gKHUwICsgdTIgKyB1
MS52YXIxKSAtIHZlYzQoMi4wKTsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
dmFyeWluZyB2ZWM0IHZfY29sb3I7Cit2b2lkIG1haW4oKQoreworICBnbF9GcmFnQ29sb3IgPSB2
X2NvbG9yOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViR0wgaW1wbGVtZW50YXRpb25zIGhhbmRsZSB1bnVz
ZWQgbWVtYmVycyBhdCB0aGUgZW5kIG9mIHN0cnVjdHMgY29ycmVjdGx5LiIpOworCit2YXIgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIg
YyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Citwcm9ncmFtID0gd3R1LnNl
dHVwUHJvZ3JhbShnbCwgWyJ2c2hhZGVyIiwgImZzaGFkZXIiXSwgWyAidlBvc2l0aW9uIl0pOwor
Cit3dHUuc2V0dXBVbml0UXVhZChnbCwgWzAsIDFdKTsKK3ZhciB3aGl0ZSA9IFsxLjAsIDEuMCwg
MS4wLCAxLjBdOwordmFyIGJsYWNrID0gWzAuMCwgMC4wLCAwLjAsIDAuMF07CitnbC51bmlmb3Jt
NGZ2KGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidTAiKSwgd2hpdGUpOworZ2wudW5p
Zm9ybTRmdihnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInUxLnZhcjEiKSwgd2hpdGUp
OworZ2wudW5pZm9ybTRmdihnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInUxLnZhcjIi
KSwgYmxhY2spOworZ2wudW5pZm9ybTRmdihnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwg
InUxLnZhcjMiKSwgYmxhY2spOworZ2wudW5pZm9ybTRmdihnbC5nZXRVbmlmb3JtTG9jYXRpb24o
cHJvZ3JhbSwgInUxLnZhcjQiKSwgYmxhY2spOworZ2wudW5pZm9ybTRmdihnbC5nZXRVbmlmb3Jt
TG9jYXRpb24ocHJvZ3JhbSwgInUyIiksIHdoaXRlKTsKK3d0dS5kcmF3UXVhZChnbCk7Cit3dHUu
Y2hlY2tDYW52YXMoZ2wsIFsyNTUsIDI1NSwgMjU1LCAyNTVdLCAic2hvdWxkIGJlIHdoaXRlIiwg
MCk7CitnbC51bmlmb3JtNGZ2KGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidTEudmFy
MiIpLCBibGFjayk7CitnbC51bmlmb3JtNGZ2KGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
LCAidTEudmFyMyIpLCBibGFjayk7CitnbC51bmlmb3JtNGZ2KGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidTEudmFyNCIpLCBibGFjayk7Cit3dHUuZHJhd1F1YWQoZ2wsIFswLCAwLCAw
LCAwXSk7Cit3dHUuY2hlY2tDYW52YXMoZ2wsIFsyNTUsIDI1NSwgMjU1LCAyNTVdLCAic2hvdWxk
IHN0aWxsIGJlIHdoaXRlIiwgMCk7CisKK3d0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SLCAic2hvdWxkIGJlIG5vIEdMIGVycm9ycyIpOworZGVidWcoIiIpOwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtLXVudXNlZC1hcnJheS1lbGVtZW50cy1nZXQtdHJ1
bmNhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtLXVudXNlZC1hcnJheS1lbGVtZW50cy1n
ZXQtdHJ1bmNhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5YjNmNmQ3OWZkNTg5MDA1NDljNmM4ODdj
N2Y0YjZkYmU2NTE5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL2dsLXVuaWZvcm0tdW51
c2VkLWFycmF5LWVsZW1lbnRzLWdldC10cnVuY2F0ZWQuaHRtbApAQCAtMCwwICsxLDEzNiBAQAor
PCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
KyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgdW5p
Zm9ybSB1bnVzZWQgYXJyYXkgZWxlbWVudHMgZ2V0IHRydW5jYXRlZCBDb25mb3JtYW5jZSBUZXN0
PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRo
PSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZhcz4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtdmVydGV4Ij4KKyAgICBhdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworICAgIHZv
aWQgbWFpbigpCisgICAgeworICAgICAgICBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247CisgICAg
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJmc2hhZGVyLW1heCIgdHlwZT0ieC1zaGFkZXIveC1m
cmFnbWVudCI+CisgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisgICAgdW5pZm9ybSB2ZWM0
IGNvbG9yYVskKG51bVVuaWZvcm1WZWN0b3JzKV07CisgICAgdm9pZCBtYWluKCkKKyAgICB7Cisg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3JhWyQodXNlZFVuaWZvcm1WZWN0b3IpXSk7
CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24o
KTsKK2RlYnVnKCIiKTsKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoImV4YW1wbGUiKTsKK3ZhciB2U3JjID0gd3R1LmdldFNjcmlwdCgidnNo
YWRlciIpOwordmFyIHVuaWZvcm1zOworLy8gVGhpcyB0ZXN0IGlzIHRvIHRlc3QgZHJpdmVycyB0
aGUgaGF2ZSBidWdzIHJlbGF0ZWQgdG8gb3B0aW1pemluZworLy8gYW4gYXJyYXkgb2YgdW5pZm9y
bXMgd2hlbiBvbmx5IDEgb2YgdGhvc2UgdW5pZm9ybXMgaXMgdXNlZC4KK2RlYnVnKCIiKTsKK3Zh
ciBtYXhVbmlmb3JtVmVjdG9ycyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfRlJBR01FTlRfVU5J
Rk9STV9WRUNUT1JTKTsKK3ZhciB0ZXN0cyA9IFsKKyB7IGRlc2M6ICJ1c2luZyA1dGggZWxlbWVu
dCIsCisgICBtYXhVbmlmb3JtVmVjdG9yczogbWF4VW5pZm9ybVZlY3RvcnMsCisgICBudW1Vbmlm
b3JtVmVjdG9yczogbWF4VW5pZm9ybVZlY3RvcnMgKiAyLAorICAgdXNlZFVuaWZvcm1WZWN0b3I6
IDUsCisgICBzaGFkZXI6ICJmc2hhZGVyLW1heCIsCisgICBjb2xvcjogWzAsIDEsIDAsIDFdLAor
ICAgYXJyYXlOYW1lOiAiY29sb3JhIiwKKyB9LAorXTsKKworLy8gQWNjb3JkaW5nIHRvIHRoZSBz
cGVjIHVudXNlZCBhcnJheSBlbGVtZW50cyBtdXN0IGJlIHRydW5jYXRlZC4KK3ZhciByZXF1aXJl
ZFVuaWZvcm1Mb2NhdGlvbnNFeGlzdDsKK2Z1bmN0aW9uIHRlc3RVbmlmb3JtSXNzdWVzKHRlc3RJ
bmRleCkgeworICB2YXIgdGVzdCA9IHRlc3RzW3Rlc3RJbmRleF07CisgIGRlYnVnKCIiKTsKKyAg
ZGVidWcodGVzdC5kZXNjKTsKKyAgdmFyIGZTcmMgPSB0ZXN0LnNvdXJjZTsKKyAgaWYgKCFmU3Jj
KSB7CisgICAgZlNyYyA9IHd0dS5yZXBsYWNlUGFyYW1zKHd0dS5nZXRTY3JpcHQodGVzdC5zaGFk
ZXIpLCB0ZXN0KTsKKyAgfQorCisgIHZhciBjb25zb2xlRWxlbSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIik7CisgIHd0dS5hZGRTaGFkZXJTb3VyY2UoCisgICAgICBjb25zb2xl
RWxlbSwgInZlcnRleCBzaGFkZXIiLCB2U3JjKTsKKyAgd3R1LmFkZFNoYWRlclNvdXJjZSgKKyAg
ICAgIGNvbnNvbGVFbGVtLCAiZnJhZ21lbnQgc2hhZGVyIiwgZlNyYyk7CisKKyAgdmFyIHByb2dy
YW0gPSB3dHUubG9hZFByb2dyYW0oZ2wsIHZTcmMsIGZTcmMpOworICBnbC51c2VQcm9ncmFtKHBy
b2dyYW0pOworICB1bmlmb3JtcyA9IHd0dS5nZXRVbmlmb3JtTWFwKGdsLCBwcm9ncmFtKTsKKyAg
c2hvdWxkQmUoJ3VuaWZvcm1zWyInICsgdGVzdC5hcnJheU5hbWUgKyAnWzBdIl0uc2l6ZScsICh0
ZXN0LnVzZWRVbmlmb3JtVmVjdG9yICsgMSkudG9TdHJpbmcoKSk7CisKKyAgcmVxdWlyZWRVbmlm
b3JtTG9jYXRpb25zRXhpc3QgPSB0cnVlOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDw9IHRlc3Qu
dXNlZFVuaWZvcm1WZWN0b3IgKyAxOyArK2lpKSB7CisgICAgdmFyIG5hbWUgPSB0ZXN0LmFycmF5
TmFtZSArICJbIiArIGlpICsgIl0iOworICAgIHZhciBjb2xvckxvY2F0aW9uID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKHByb2dyYW0sIG5hbWUpOworICAgIGlmIChpaSA8PSB0ZXN0LnVzZWRVbmlm
b3JtVmVjdG9yKSB7CisgICAgICBpZiAoIWNvbG9yTG9jYXRpb24pIHsKKyAgICAgICAgcmVxdWly
ZWRVbmlmb3JtTG9jYXRpb25zRXhpc3QgPSBmYWxzZQorICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICBpZiAoY29sb3JMb2NhdGlvbikgeworICAgICAgICB0ZXN0RmFpbGVkKCJ1bmlmb3JtIGFy
cmF5IHdhcyBub3QgdHJ1bmNhdGVkIGFzIHNwZWNpZmllZCBpbiBPcGVuR0wgRVMgMi4wLjI1IHNl
Y3Rpb24gMi4xMC40Iik7CisgICAgICB9CisgICAgfQorICB9CisgIHNob3VsZEJlVHJ1ZSgicmVx
dWlyZWRVbmlmb3JtTG9jYXRpb25zRXhpc3QiKTsKK30KKwordmFyIHRlc3RJbmRleCA9IDA7Citm
dW5jdGlvbiBydW5OZXh0VGVzdCgpIHsKKyAgdGVzdFVuaWZvcm1Jc3N1ZXModGVzdEluZGV4Kysp
OworICBpZiAodGVzdEluZGV4IDwgdGVzdHMubGVuZ3RoKSB7CisgICAgc2V0VGltZW91dChydW5O
ZXh0VGVzdCwgMTApOworICB9IGVsc2UgeworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IsICJ0aGVyZSBzaG91bGQgYmUgbm8gZXJyb3JzIik7CisgICAgZGVidWcoIiIpOworICAg
IGZpbmlzaFRlc3QoKTsKKyAgfQorfQorcnVuTmV4dFRlc3QoKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvdW5pZm9ybXMvZ2wtdW5pZm9ybW1hdHJpeDRmdi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5pZm9y
bW1hdHJpeDRmdi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTI5ZDFlYjE3ZGZiYjc5ZmYzYTcwZjZhMTQx
ZWFiY2U5NzcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9nbC11bmlmb3JtbWF0cml4
NGZ2Lmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykg
MjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNv
cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiog
cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8g
c28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5U
QUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF
TUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE
RVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1B
VEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisq
LworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPldlYkdMIHVuaWZvcm1NYXRyaXggQ29uZm9ybWFuY2UgVGVzdHM8
L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjIiIGhlaWdodD0iMiI+IDwvY2FudmFzPgorCis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247Cit1bmlmb3JtIG1h
dDQgd29ybGQ0OwordW5pZm9ybSBtYXQzIHdvcmxkMzsKK3VuaWZvcm0gbWF0MiB3b3JsZDI7Cit2
b2lkIG1haW4oKQoreworICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5eiwgd29ybGQz
WzBdLnggKyB3b3JsZDJbMF0ueCkgKiB3b3JsZDQ7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBp
ZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Cit2b2lkIG1haW4oKQorewor
ICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwwLjAsMC4wLDEuMCk7Cit9Cis8L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBX
ZWJHTCBpbXBsZW1lbnRhdGlvbnMgaGFuZGxlIHVuaWZvcm1NYXRyaXggaW4gYSBPcGVuR0wgRVMg
Mi4wIHNwZWMgY29tcGxpYW50IHdheSIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2tpbmcg
Z2wudW5pZm9ybU1hdHJpeC4iKTsKKwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGds
ID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwordmFyIHByb2dyYW0gPSB3dHUuc2V0
dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdKTsKK2Zv
ciAodmFyIGlpID0gMjsgaWkgPD0gNDsgKytpaSkgeworICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9y
bUxvY2F0aW9uKHByb2dyYW0sICJ3b3JsZCIgKyBpaSk7CisgIHZhciBtYXRMZXNzID0gW107Cisg
IGZvciAodmFyIGpqID0gMDsgamogPCBpaTsgKytqaikgeworICAgIGZvciAodmFyIGxsID0gMDsg
bGwgPCBpaTsgKytsbCkgeworICAgICAgaWYgKGpqID09IGlpIC0gMSAmJiBsbCA9PSBpaSAtIDEp
CisgICAgICAgIGNvbnRpbnVlOworICAgICAgbWF0TGVzc1tqaiAqIGlpICsgbGxdID0gKGpqID09
IGxsKSA/IDEgOiAwOworICAgIH0KKyAgfQorICB2YXIgbWF0ID0gbWF0TGVzcy5jb25jYXQoWzFd
KTsKKyAgdmFyIG1hdE1vcmUgPSBtYXQuY29uY2F0KFsxXSk7CisgIG5hbWUgPSAidW5pZm9ybU1h
dHJpeCIgKyBpaSArICJmdiI7CisgIGdsW25hbWVdKGxvYywgZmFsc2UsIG1hdExlc3MpOworICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJzaG91bGQgZmFpbCB3aXRoIGlu
c3VmZmljaWVudCBhcnJheSBzaXplIGZvciAiICsgbmFtZSk7CisgIGdsW25hbWVdKGxvYywgZmFs
c2UsIG1hdCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJzaG91bGQgc3Vj
Y2VlZCB3aXRoIGNvcnJlY3QgYXJyYXkgc2l6ZSBmb3IgIiArIG5hbWUpOworICBnbFtuYW1lXShs
b2MsIGZhbHNlLCBtYXRNb3JlKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZB
TFVFLCAic2hvdWxkIGZhaWwgd2l0aCBtb3JlIHRoYW4gMSBhcnJheSBzaXplIGZvciAiICsgbmFt
ZSk7CisKKyAgbWF0W2lpICogaWkgLSAxXSA9IDE7CisgIGdsW25hbWVdKGxvYywgZmFsc2UsIG1h
dCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJjYW4gY2FsbCAiICsgbmFt
ZSArICJ3aXRoIHRyYW5zcG9zZSA9IGZhbHNlIik7CisgIGdsW25hbWVdKGxvYywgdHJ1ZSwgbWF0
KTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCBuYW1lICsgIiBzaG91
bGQgcmV0dXJuIElOVkFMSURfVkFMVUUgd2l0aCB0cmFuc3Bvc2UgPSB0cnVlIik7Cit9CisKK2Rl
YnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdW5pZm9ybXMvZ2wtdW5rbm93bi11bmlmb3Jt
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS91bmlmb3Jtcy9nbC11bmtub3duLXVuaWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjIy
MzllNjQ0Y2E3MDQ4NGE3NWU4NzAyNjdmMjE4ZjY4YmE3MjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
dW5pZm9ybXMvZ2wtdW5rbm93bi11bmlmb3JtLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCEtLQor
CisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisq
KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl
cnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lh
dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGlu
IHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0
IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp
c2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlh
bHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFM
UyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoq
IEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO
R1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgVW5rbm93biBV
bmlmb3JtIENvbmZvcm1hbmNlIFRlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIi
IGhlaWdodD0iMiI+IDwvY2FudmFzPgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFk
ZXIveC12ZXJ0ZXgiPgorICAgIGF0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKKyAgICB2b2lkIG1h
aW4oKQorICAgIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQi
PgorICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEu
MCwwLjAsMC4wLDEuMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3Qi
OworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdW5rbm93biB1bmlmb3JtcyBkb24ndCBjYXVzZSBl
cnJvcnMuIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOworCit2
YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJj
YW52YXMiKTsKK2lmICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlz
dCIpOworfSBlbHNlIHsKKyAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKKworICBkZWJ1
ZygiIik7CisKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIi
LCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdKTsKKyAgLy8gR2V0IHRoZSBsb2NhdGlvbiBvZiBh
biB1bmtub3duIHVuaWZvcm0uCisgIHZhciBsb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJv
Z3JhbSwgInNvbWVVbmtub3duVW5pZm9ybSIpOworICBhc3NlcnRNc2cobG9jID09PSBudWxsLCAi
bG9jYXRpb24gb2YgdW5rbm93biB1bmlmb3JtIHNob3VsZCBiZSBudWxsIik7CisgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAgICAidGhlcmUgc2hvdWxkIGJlIG5v
IGVycm9yIGZyb20gZ2V0dGluZyBhbiB1bmtub3duIHVuaWZvcm0iKTsKKyAgZ2wudW5pZm9ybTFm
KGxvYywgMSk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCisgICAgICAgICAg
ICAidGhlcmUgc2hvdWxkIGJlIG5vIGVycm9yIGZyb20gdHJ5aW5nIHRvIHNldCBhbiB1bmtub3du
IHVuaWZvcm0iKTsKK30KKworZGVidWcoIiIpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jt
cy9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3VuaWZvcm1zL251bGwtdW5pZm9ybS1sb2Nh
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZTJiNmVlZDQ5M2E4ZWE1MjI2YmEyOGYxZDY4ZjI0ZjYw
YjE0ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS91bmlmb3Jtcy9udWxsLXVuaWZvcm0tbG9jYXRpb24u
aHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEy
IFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu
dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBv
ZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0
cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1
c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJt
aXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu
Y2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBN
YXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE
SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklM
SVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U
LgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJ
QUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisK
Ky0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7Citk
ZXNjcmlwdGlvbigiVGVzdHMgY2FsbGluZyB0aGUgdmFyaW91cyB1bmlmb3JtW01hdHJpeF0qIEFQ
SXMgd2l0aCBhIG51bGwgdW5pZm9ybSBsb2NhdGlvbiIpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0
VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IHd0
dS5sb2FkU3RhbmRhcmRQcm9ncmFtKGdsKTsKKworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7CitzaG91bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3JhbShwcm9ncmFtKSIpOwordmFy
IGZsb2F0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KFsxLCAyLCAzLCA0XSk7Cit2YXIgaW50QXJy
YXkgPSBuZXcgSW50MzJBcnJheShbMSwgMiwgMywgNF0pOworCitmdW5jdGlvbiBjYWxsVW5pZm9y
bUZ1bmN0aW9uKG5hbWUpIHsKKyAgdmFyIGlzQXJyYXlWYXJpYW50ID0gKG5hbWUuY2hhckF0KG5h
bWUubGVuZ3RoIC0gMSkgPT0gJ3YnKTsKKyAgdmFyIGlzTWF0cml4ID0gKG5hbWUuaW5kZXhPZigi
TWF0cml4IikgIT0gLTEpOworICB2YXIgaXNGbG9hdCA9CisgICAgICAobmFtZS5jaGFyQXQobmFt
ZS5sZW5ndGggLSAxKSA9PSAnZicgfHwKKyAgICAgICBuYW1lLmNoYXJBdChuYW1lLmxlbmd0aCAt
IDIpID09ICdmJyk7CisgIHZhciBzaXplSW5kZXggPSAoaXNBcnJheVZhcmlhbnQgPyBuYW1lLmxl
bmd0aCAtIDMgOiBuYW1lLmxlbmd0aCAtIDIpOworICB2YXIgc2l6ZSA9IHBhcnNlSW50KG5hbWUu
c3Vic3RyaW5nKHNpemVJbmRleCwgc2l6ZUluZGV4ICsgMSkpOworICAvLyBJbml0aWFsaXplIGFy
Z3VtZW50IGxpc3Qgd2l0aCBudWxsIHVuaWZvcm0gbG9jYXRpb24KKyAgdmFyIGFyZ3MgPSBbIG51
bGwgXTsKKyAgaWYgKGlzQXJyYXlWYXJpYW50KSB7CisgICAgLy8gQ2FsbCB2YXJpYW50IHdoaWNo
IHRha2VzIHZhbHVlcyBhcyBhcnJheQorICAgIGlmIChpc01hdHJpeCkgeworICAgICAgc2l6ZSA9
IHNpemUgKiBzaXplOworICAgICAgYXJncy5wdXNoKGZhbHNlKTsKKyAgICB9CisgICAgdmFyIGFy
cmF5ID0gKGlzRmxvYXQgPyBuZXcgRmxvYXQzMkFycmF5KHNpemUpIDogbmV3IEludDMyQXJyYXko
c2l6ZSkpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICBhcnJh
eVtpXSA9IGk7CisgICAgfQorICAgIGFyZ3MucHVzaChhcnJheSk7CisgIH0gZWxzZSB7CisgICAg
Ly8gQ2FsbCB2YXJpYW50IHdoaWNoIHRha2VzIHZhbHVlcyBhcyBwYXJhbWV0ZXJzCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgIGFyZ3MucHVzaChpKTsKKyAgICB9
CisgIH0KKyAgdmFyIGZ1bmMgPSBnbFtuYW1lXTsKKyAgcmV0dXJuIGZ1bmMuYXBwbHkoZ2wsIGFy
Z3MpOworfQorCit2YXIgZnVuY3MgPSBbICJ1bmlmb3JtMWYiLCAidW5pZm9ybTFmdiIsICJ1bmlm
b3JtMWkiLCAidW5pZm9ybTFpdiIsCisgICAgICAgICAgICAgICJ1bmlmb3JtMmYiLCAidW5pZm9y
bTJmdiIsICJ1bmlmb3JtMmkiLCAidW5pZm9ybTJpdiIsCisgICAgICAgICAgICAgICJ1bmlmb3Jt
M2YiLCAidW5pZm9ybTNmdiIsICJ1bmlmb3JtM2kiLCAidW5pZm9ybTNpdiIsCisgICAgICAgICAg
ICAgICJ1bmlmb3JtNGYiLCAidW5pZm9ybTRmdiIsICJ1bmlmb3JtNGkiLCAidW5pZm9ybTRpdiIs
CisgICAgICAgICAgICAgICJ1bmlmb3JtTWF0cml4MmZ2IiwgInVuaWZvcm1NYXRyaXgzZnYiLCAi
dW5pZm9ybU1hdHJpeDRmdiIgXTsKK3ZhciBjYWxsU3RyaW5nOworCitmb3IgKHZhciBpID0gMDsg
aSA8IGZ1bmNzLmxlbmd0aDsgaSsrKSB7CisgIGNhbGxTdHJpbmcgPSAiY2FsbFVuaWZvcm1GdW5j
dGlvbignIiArIGZ1bmNzW2ldICsgIicpIjsKKyAgc2hvdWxkQmVVbmRlZmluZWQoY2FsbFN0cmlu
Zyk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworfQorCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS91bmlmb3Jtcy9vdXQtb2YtYm91bmRzLXVuaWZvcm0tYXJyYXktYWNjZXNzLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS91bmlmb3Jtcy9vdXQtb2YtYm91bmRzLXVuaWZvcm0tYXJyYXktYWNjZXNzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGUyZWMyN2JmMmYxNzRiODZjYmQ4YzkwYWJiMzNhOTk0NGZjMTA2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3VuaWZvcm1zL291dC1vZi1ib3VuZHMtdW5pZm9ybS1hcnJheS1hY2Nlc3MuaHRt
bApAQCAtMCwwICsxLDEwOSBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRo
ZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQor
KiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmlj
dGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us
IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1
ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRl
cmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5H
IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgor
KiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ
U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxT
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0t
PgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+V2ViR0wgb3VmIG9mIGJvdW5kcyB1bmlmb3JtIGFycmF5IGFjY2Vzcy48L3Rp
dGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxz
LmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMjU2
IiBoZWlnaHQ9IjI1NiIgc3R5bGU9ImJhY2tncm91bmQ6IGJsYWNrOyI+PC9jYW52YXM+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWM0
IHZQb3NpdGlvbjsKK3ZhcnlpbmcgdmVjNCB2X2NvbG9yOwordW5pZm9ybSBmbG9hdCBsaW5lV2lk
dGg7Cit1bmlmb3JtIGludCBlbGVtTXVsdDsKK3VuaWZvcm0gdmVjNCBzb21lQXJyYXlbMl07Cit2
b2lkIG1haW4oKQoreworICAgIHZlYzIgdGV4Y29vcmQgPSB2ZWMyKHZQb3NpdGlvbi54eSAqIDAu
NSArIHZlYzIoMC41LCAwLjUpKTsKKyAgICBpbnQgaW5kZXggPSBpbnQodGV4Y29vcmQueCArIHRl
eGNvb3JkLnkgKiBsaW5lV2lkdGgpICogZWxlbU11bHQ7CisgICAgdl9jb2xvciA9IHNvbWVBcnJh
eVtpbmRleF07CisgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9Cis8L3NjcmlwdD4KKwor
PHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CitwcmVjaXNp
b24gbWVkaXVtcCBmbG9hdDsKK3ZhcnlpbmcgdmVjNCB2X2NvbG9yOwordm9pZCBtYWluKCkKK3sK
KyAgZ2xfRnJhZ0NvbG9yID0gdl9jb2xvciAqIHZlYzQoMS4wIC8gMjU2LjAsIDEuMCAvIDI1Ni4w
LCAxLjAgLyAyNTYuMCwgMS4wIC8gMjU2LjApICsgdmVjNCgwLDAsMCwwLjUpOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOword2luZG93Lm9ubG9hZCA9IG1haW47CitkZWJ1
ZygiVGVzdHMgYSBXZWJHTCBwcm9ncmFtIHRoYXQgYWNjZXNzZXMgb3V0IG9mIGJvdW5kcyB1bmlm
b3JtIGFycmF5IGVsZW1lbnRzIik7CisKK2Z1bmN0aW9uIG1haW4oKSB7CisgIHZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKKyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIp
OworICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgICBnbCwKKyAgICAgIFsn
dnNoYWRlcicsICdmc2hhZGVyJ10sCisgICAgICBbJ3ZQb3NpdGlvbiddLCBbMF0pOworICB2YXIg
Z3JpZFJlcyA9IDI1NTsKKyAgd3R1LnNldHVwUXVhZChnbCwgZ3JpZFJlcywgMCk7CisgIHZhciBs
aW5lV2lkdGhMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImxpbmVXaWR0aCIp
OworICB2YXIgZWxlbU11bHRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImVs
ZW1NdWx0Iik7CisgIGFzc2VydE1zZyhnbC5nZXRFcnJvcigpID09IGdsLk5PX0VSUk9SLCAiU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHNldHVwLiIpOworCisgIGZ1bmN0aW9uIGRyYXcobGluZVdp
ZHRoLCBlbGVtTXVsdCkgeworICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOworICAg
IGdsLnVuaWZvcm0xZihsaW5lV2lkdGhMb2MsIGxpbmVXaWR0aCk7CisgICAgZ2wudW5pZm9ybTFp
KGVsZW1NdWx0TG9jLCBlbGVtTXVsdCk7CisgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
UywgZ3JpZFJlcyAqIGdyaWRSZXMgKiA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7CisgICAgd3R1
LmNoZWNrQ2FudmFzKGdsLCBbMCwgMCwgMCwgMTI4XSwgdW5kZWZpbmVkLCAzKTsKKyAgfQorCisg
IHZhciBsaW5lV2lkdGggPSA1MTI7CisgIHZhciBlbGVtTXVsdCA9IDQ7CisgIHZhciBydW5OZXh0
VGVzdCA9IGZ1bmN0aW9uKCkgeworICAgIGlmIChsaW5lV2lkdGggPiA2NTUzNikgeworICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkcmF3KGxpbmVXaWR0aCwg
ZWxlbU11bHQpOworICAgIGxpbmVXaWR0aCArPSA1MTI7CisgICAgc2V0VGltZW91dChydW5OZXh0
VGVzdCwgMTApOworICB9OworICBydW5OZXh0VGVzdCgpOworCisgIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKworCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>