<?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>40398</bug_id>
          
          <creation_ts>2010-06-09 18:18:04 -0700</creation_ts>
          <short_desc>Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView</short_desc>
          <delta_ts>2010-08-23 13:57:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>40318</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236116</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-09 18:18:04 -0700</bug_when>
    <thetext>The new pixel store parameters UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL need to be supported for the texImage2D and texSubImage2D entry points taking ArrayBufferView.

This bug depends on 40318.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244013</commentid>
    <comment_count>1</comment_count>
      <attachid>59964</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-28 17:51:51 -0700</bug_when>
    <thetext>Created attachment 59964
Patch

From the ChangeLog:

Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView. More cleanly separated the unpacking and packing phases of user-supplied pixel data in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added validation of the amount of data passed to texImage2D and texSubImage2D. Modified fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha tests for relevant source formats; added new test which exercises all combinations of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel store parameters.

Note to reviewers:

This patch is large, but the individual code changes are small and easily reviewable, and it is not possible to break it down into any smaller set of patches which are individually testable. The test cases and their boilerplate output comprise more than half of the patch. The test cases are as exhaustive as possible and caught a couple of implementation errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244017</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-28 17:58:14 -0700</bug_when>
    <thetext>Attachment 59964 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/3268898</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244027</commentid>
    <comment_count>3</comment_count>
      <attachid>59970</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-28 18:28:32 -0700</bug_when>
    <thetext>Created attachment 59970
Revised patch

Revised patch fixing build problem in Release mode on Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244358</commentid>
    <comment_count>4</comment_count>
      <attachid>59970</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-29 10:26:39 -0700</bug_when>
    <thetext>Comment on attachment 59970
Revised patch

r=me (pair programming FTW!), except:

WebCore/html/canvas/WebGLRenderingContext.cpp:3567
 +          return false;
Need to synthesize an error here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244450</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-29 13:17:11 -0700</bug_when>
    <thetext>Committed r62145: &lt;http://trac.webkit.org/changeset/62145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247946</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-07 19:18:16 -0700</bug_when>
    <thetext>*** Bug 32619 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268091</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-23 13:57:01 -0700</bug_when>
    <thetext>*** Bug 32040 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59964</attachid>
            <date>2010-06-28 17:51:51 -0700</date>
            <delta_ts>2010-06-28 18:28:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tex-image-array-buffer-view.patch</filename>
            <type>text/plain</type>
            <size>97407</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjA1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDYtMjggIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgVU5QQUNLX0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMIGZvciB0ZXhJbWFnZTJEIHRha2luZyBBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzk4CisKKyAgICAgICAgQWRkZWQg
c3VwcG9ydCBmb3IgVU5QQUNLX0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMIHBpeGVsIHN0b3JlCisgICAgICAgIHBhcmFtZXRlcnMgdG8gdGV4SW1hZ2UyRCBh
bmQgdGV4U3ViSW1hZ2UyRCBlbnRyeSBwb2ludHMgdGFraW5nIEFycmF5QnVmZmVyVmlldy4KKyAg
ICAgICAgTW9yZSBjbGVhbmx5IHNlcGFyYXRlZCB0aGUgdW5wYWNraW5nIGFuZCBwYWNraW5nIHBo
YXNlcyBvZiB1c2VyLXN1cHBsaWVkIHBpeGVsIGRhdGEKKyAgICAgICAgaW4gR3JhcGhpY3NDb250
ZXh0M0QsIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB1bnBhY2sgYWxpZ25tZW50LiBGaXhlZCBidWcg
aW4gaGFuZGxpbmcKKyAgICAgICAgb2YgdW5wYWNrQWxpZ25tZW50IGluIEdyYXBoaWNzQ29udGV4
dDNEOjpmbGlwVmVydGljYWxseS4gTmVjZXNzYXJpbHkgYWRkZWQKKyAgICAgICAgdmFsaWRhdGlv
biBvZiB0aGUgYW1vdW50IG9mIGRhdGEgcGFzc2VkIHRvIHRleEltYWdlMkQgYW5kIHRleFN1Yklt
YWdlMkQuIE1vZGlmaWVkCisgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS13aXRo
LWZvcm1hdC1hbmQtdHlwZS5odG1sIHRvIGluY2x1ZGUgcHJlbXVsdGlwbGllZCBhbHBoYQorICAg
ICAgICB0ZXN0cyBmb3IgcmVsZXZhbnQgc291cmNlIGZvcm1hdHM7IGFkZGVkIG5ldyB0ZXN0IHdo
aWNoIGV4ZXJjaXNlcyBhbGwgY29tYmluYXRpb25zCisgICAgICAgIG9mIFVOUEFDS19GTElQX1lf
V0VCR0wsIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgYW5kIFVOUEFDS19BTElHTk1F
TlQgcGl4ZWwKKyAgICAgICAgc3RvcmUgcGFyYW1ldGVycy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZl
ci12aWV3Lmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdl
MkQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVU
ZXhGdW5jRGF0YSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZmxpcFZlcnRpY2FsbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQYWNraW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OmRvUGFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjopOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKwogMjAxMC0wNi0yMyAgSm9obiBHcmVnZyAgPGpv
aG5ueWdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5k
ZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJl
dmlzaW9uIDYyMDQ4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTkzLDkgKzE5OTMsMjcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9y
bWF0LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgLy8gRklYTUU6IE5lZWQgdG8gbWFrZSBzdXJlIHBhc3NlZCBidWZmZXIg
aGFzIGVub3VnaCBieXRlcyB0byBkZWZpbmUgdGhlIHRleHR1cmUKKyAgICBpZiAoIXZhbGlkYXRl
VGV4RnVuY0RhdGEod2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpKQorICAgICAg
ICByZXR1cm47CisgICAgdm9pZCogZGF0YSA9IHBpeGVscyA/IHBpeGVscy0+YmFzZUFkZHJlc3Mo
KSA6IDA7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRlbXBEYXRhOworICAgIGJvb2wgY2hhbmdlVW5w
YWNrQWxpZ25tZW50ID0gZmFsc2U7CisgICAgaWYgKHBpeGVscyAmJiAobV91bnBhY2tGbGlwWSB8
fCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpKSB7CisgICAgICAgIGlmICghbV9jb250ZXh0LT5l
eHRyYWN0VGV4dHVyZURhdGEod2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5wYWNrQWxpZ25tZW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5wYWNrRmxpcFksIG1f
dW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVtcERhdGEpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkYXRhID0gdGVt
cERhdGEuZGF0YSgpOworICAgICAgICBjaGFuZ2VVbnBhY2tBbGlnbm1lbnQgPSB0cnVlOworICAg
IH0KKyAgICBpZiAoY2hhbmdlVW5wYWNrQWxpZ25tZW50KQorICAgICAgICBtX2NvbnRleHQtPnBp
eGVsU3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCAxKTsKICAgICB0
ZXhJbWFnZTJEQmFzZSh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdo
dCwgYm9yZGVyLAotICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgdHlwZSwgcGl4ZWxzID8gcGl4
ZWxzLT5iYXNlQWRkcmVzcygpIDogMCwgZWMpOworICAgICAgICAgICAgICAgICAgIGZvcm1hdCwg
dHlwZSwgZGF0YSwgZWMpOworICAgIGlmIChjaGFuZ2VVbnBhY2tBbGlnbm1lbnQpCisgICAgICAg
IG1fY29udGV4dC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElHTk1F
TlQsIG1fdW5wYWNrQWxpZ25tZW50KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50
ZXJuYWxmb3JtYXQsCkBAIC0yMjQ5LDggKzIyNjcsMjYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnRleFN1YkltYWdlMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwg
QXJyYXlCdWZmZXJWaWV3KiBwaXhlbHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIG1ha2Ugc3VyZSBwYXNzZWQgYnVmZmVyIGhhcyBlbm91Z2ggYnl0ZXMgdG8g
ZGVmaW5lIHRoZSB0ZXh0dXJlCi0gICAgdGV4U3ViSW1hZ2UyREJhc2UodGFyZ2V0LCBsZXZlbCwg
eG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMgPyBw
aXhlbHMtPmJhc2VBZGRyZXNzKCkgOiAwLCBlYyk7CisgICAgaWYgKCF2YWxpZGF0ZVRleEZ1bmNE
YXRhKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKSkKKyAgICAgICAgcmV0dXJu
OworICAgIHZvaWQqIGRhdGEgPSBwaXhlbHMgPyBwaXhlbHMtPmJhc2VBZGRyZXNzKCkgOiAwOwor
ICAgIFZlY3Rvcjx1aW50OF90PiB0ZW1wRGF0YTsKKyAgICBib29sIGNoYW5nZVVucGFja0FsaWdu
bWVudCA9IGZhbHNlOworICAgIGlmIChwaXhlbHMgJiYgKG1fdW5wYWNrRmxpcFkgfHwgbV91bnBh
Y2tQcmVtdWx0aXBseUFscGhhKSkgeworICAgICAgICBpZiAoIW1fY29udGV4dC0+ZXh0cmFjdFRl
eHR1cmVEYXRhKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VucGFja0FsaWdubWVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VucGFja0ZsaXBZLCBtX3VucGFja1By
ZW11bHRpcGx5QWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
bXBEYXRhKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGF0YSA9IHRlbXBEYXRhLmRh
dGEoKTsKKyAgICAgICAgY2hhbmdlVW5wYWNrQWxpZ25tZW50ID0gdHJ1ZTsKKyAgICB9CisgICAg
aWYgKGNoYW5nZVVucGFja0FsaWdubWVudCkKKyAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3Jl
aShHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVCwgMSk7CisgICAgdGV4U3ViSW1h
Z2UyREJhc2UodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwg
Zm9ybWF0LCB0eXBlLCBkYXRhLCBlYyk7CisgICAgaWYgKGNoYW5nZVVucGFja0FsaWdubWVudCkK
KyAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNL
X0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1
bnNpZ25lZCB4b2Zmc2V0LCB1bnNpZ25lZCB5b2Zmc2V0LApAQCAtMzQ4Niw2ICszNTIyLDUyIEBA
IGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVRleEYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0RhdGEo
bG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXlC
dWZmZXJWaWV3KiBwaXhlbHMpCit7CisgICAgaWYgKCFwaXhlbHMpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKCF2YWxpZGF0ZVRleEZ1bmNGb3JtYXRBbmRUeXBlKGZvcm1hdCwgdHlw
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEU6CisgICAgICAgIGlmICghcGl4ZWxz
LT5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF80XzRfNF80OgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6CisgICAgICAgIGlmICghcGl4ZWxzLT5p
c1Vuc2lnbmVkU2hvcnRBcnJheSgpKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdW5zaWduZWQg
bG9uZyBjb21wb25lbnRzUGVyUGl4ZWwsIGJ5dGVzUGVyQ29tcG9uZW50OworICAgIGlmICghbV9j
b250ZXh0LT5jb21wdXRlRm9ybWF0QW5kVHlwZVBhcmFtZXRlcnMoZm9ybWF0LCB0eXBlLCAmY29t
cG9uZW50c1BlclBpeGVsLCAmYnl0ZXNQZXJDb21wb25lbnQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIHVuc2lnbmVkIGludCB2YWxpZFJvd0J5dGVzID0gd2lkdGggKiBjb21wb25lbnRzUGVyUGl4
ZWwgKiBieXRlc1BlckNvbXBvbmVudDsKKyAgICB1bnNpZ25lZCBpbnQgdG90YWxSb3dCeXRlcyA9
IHZhbGlkUm93Qnl0ZXM7CisgICAgdW5zaWduZWQgaW50IHJlbWFpbmRlciA9IHZhbGlkUm93Qnl0
ZXMgJSBtX3VucGFja0FsaWdubWVudDsKKyAgICBpZiAocmVtYWluZGVyKQorICAgICAgICB0b3Rh
bFJvd0J5dGVzICs9IChtX3VucGFja0FsaWdubWVudCAtIHJlbWFpbmRlcik7CisgICAgdW5zaWdu
ZWQgaW50IHRvdGFsQnl0ZXNSZXF1aXJlZCA9IChoZWlnaHQgLSAxKSAqIHRvdGFsUm93Qnl0ZXMg
KyB2YWxpZFJvd0J5dGVzOworICAgIGlmIChwaXhlbHMtPmJ5dGVMZW5ndGgoKSA8IHRvdGFsQnl0
ZXNSZXF1aXJlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQor
CiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVEcmF3TW9kZSh1bnNpZ25lZCBs
b25nIG1vZGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDYyMDQ4KQorKysgV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDI2LDE2ICs0MjYsMjMgQEAgY2xhc3MgV2ViS2l0Q1NTTWF0cml4OwogICAgICAgICBXZWJHTFRl
eHR1cmUqIGdldFRleHR1cmVCaW5kaW5nKHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKIAogICAgICAg
ICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaW5wdXQgZm9ybWF0L3R5cGUgZm9yIGZ1bmN0
aW9ucyB7Y29weX1UZXh7U3VifUltYWdlLgotICAgICAgICAvLyBHZW5lcmF0ZSBHTCBlcnJvciBh
bmQgcmV0dXJuIGZhbHNlIGlmIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuCisgICAgICAgIC8vIEdl
bmVyYXRlcyBHTCBlcnJvciBhbmQgcmV0dXJucyBmYWxzZSBpZiBwYXJhbWV0ZXJzIGFyZSBpbnZh
bGlkLgogICAgICAgICBib29sIHZhbGlkYXRlVGV4RnVuY0Zvcm1hdEFuZFR5cGUodW5zaWduZWQg
bG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxvbmcgdHlwZSk7CiAKICAgICAgICAgLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIGNoZWNrIGlucHV0IHBhcmFtZXRlcnMgZm9yIGZ1bmN0aW9ucyB7Y29weX1UZXh7
U3VifUltYWdlLgotICAgICAgICAvLyBHZW5lcmF0ZSBHTCBlcnJvciBhbmQgcmV0dXJuIGZhbHNl
IGlmIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuCisgICAgICAgIC8vIEdlbmVyYXRlcyBHTCBlcnJv
ciBhbmQgcmV0dXJucyBmYWxzZSBpZiBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLgogICAgICAgICBi
b29sIHZhbGlkYXRlVGV4RnVuY1BhcmFtZXRlcnModW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcg
bGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGludGVybmFsZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsIGxvbmcgYm9yZGVyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxv
bmcgdHlwZSk7CiAKKyAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIHRoYXQg
dGhlIGdpdmVuIEFycmF5QnVmZmVyVmlldworICAgICAgICAvLyBpcyBvZiB0aGUgY29ycmVjdCB0
eXBlIGFuZCBjb250YWlucyBlbm91Z2ggZGF0YSBmb3IgdGhlIHRleEltYWdlIGNhbGwuCisgICAg
ICAgIC8vIEdlbmVyYXRlcyBHTCBlcnJvciBhbmQgcmV0dXJucyBmYWxzZSBpZiBwYXJhbWV0ZXJz
IGFyZSBpbnZhbGlkLgorICAgICAgICBib29sIHZhbGlkYXRlVGV4RnVuY0RhdGEobG9uZyB3aWR0
aCwgbG9uZyBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBwaXhlbHMpOworCiAgICAgICAgIC8vIEhlbHBl
ciBmdW5jdGlvbiB0byB2YWxpZGF0ZSBtb2RlIGZvciBkcmF3e0FycmF5cy9FbGVtZW50c30uCiAg
ICAgICAgIGJvb2wgdmFsaWRhdGVEcmF3TW9kZSh1bnNpZ25lZCBsb25nKTsKIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAJKHJldmlz
aW9uIDYyMDQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCiAKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogCkBAIC0xMTgsNiArMTE5LDcgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YQogICAgICAgICAgICAgICAg
ICAgICBrU291cmNlRm9ybWF0UkdCQTgsCiAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAogICAg
ICAgICAgICAgICAgICAgICBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAg
ICAgICAgICAgICAgIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVsdGlwbHkgOiBrQWxw
aGFEb05vdGhpbmcsCkBAIC0xMzgsNiArMTQwLDY4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OmV4dHJhY3RJbWFnZURhdGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQg
aW50IGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgZm9ybWF0LCB1bnNpZ25lZCBpbnQgdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW5wYWNrQWxpZ25tZW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRhdGEpCit7CisgICAgLy8gQXNz
dW1lcyBmb3JtYXQsIHR5cGUsIGV0Yy4gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkLgorICAg
IFNvdXJjZURhdGFGb3JtYXQgc291cmNlRGF0YUZvcm1hdDsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIFVOU0lHTkVEX0JZVEU6CisgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAg
ICAgIGNhc2UgUkdCQToKKyAgICAgICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0UkdCQTg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSR0I6CisgICAgICAg
ICAgICBzb3VyY2VEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQjg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBTFBIQToKKyAgICAgICAgICAgIHNvdXJjZURhdGFGb3JtYXQg
PSBrU291cmNlRm9ybWF0QTg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMVU1J
TkFOQ0U6CisgICAgICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFI4Owor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTFVNSU5BTkNFX0FMUEhBOgorICAgICAg
ICAgICAgc291cmNlRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSQTg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVOU0lHTkVEX1NIT1JU
XzVfNV81XzE6CisgICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTU1
NTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVU5TSUdORURfU0hPUlRfNF80XzRfNDoKKyAg
ICAgICAgc291cmNlRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBNDQ0NDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBVTlNJR05FRF9TSE9SVF81XzZfNToKKyAgICAgICAgc291cmNlRGF0
YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0I1NjU7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIC8vIFJlc2l6ZSB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAgICB1bnNpZ25lZCBsb25nIGNvbXBv
bmVudHNQZXJQaXhlbCwgYnl0ZXNQZXJDb21wb25lbnQ7CisgICAgaWYgKCFjb21wdXRlRm9ybWF0
QW5kVHlwZVBhcmFtZXRlcnMoZm9ybWF0LCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZjb21wb25lbnRzUGVyUGl4ZWwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJmJ5dGVzUGVyQ29tcG9uZW50KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHVuc2lnbmVkIGxvbmcgYnl0ZXNQZXJQaXhlbCA9IGNvbXBvbmVudHNQZXJQ
aXhlbCAqIGJ5dGVzUGVyQ29tcG9uZW50OworICAgIGRhdGEucmVzaXplKHdpZHRoICogaGVpZ2h0
ICogYnl0ZXNQZXJQaXhlbCk7CisKKyAgICBpZiAoIXBhY2tQaXhlbHMoc3RhdGljX2Nhc3Q8dWlu
dDhfdCo+KHBpeGVscy0+YmFzZUFkZHJlc3MoKSksCisgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZURhdGFGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIHVucGFja0Fs
aWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAocHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVsdGlwbHkgOiBrQWxwaGFE
b05vdGhpbmcpLAorICAgICAgICAgICAgICAgICAgICBkYXRhLmRhdGEoKSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAvLyBUaGUgcGl4ZWwgZGF0YSBpcyBub3cgdGlnaHRseSBwYWNrZWQu
CisgICAgaWYgKGZsaXBZKQorICAgICAgICBmbGlwVmVydGljYWxseShkYXRhLmRhdGEoKSwgd2lk
dGgsIGhlaWdodCwgYnl0ZXNQZXJQaXhlbCwgMSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmZsaXBWZXJ0aWNhbGx5KHZvaWQqIGltYWdlRGF0YSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWln
aHQsCkBAIC0xNTAsNyArMjE0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZmxpcFZlcnRp
Y2FsbHkodgogICAgIHVuc2lnbmVkIGludCB0b3RhbFJvd0J5dGVzID0gdmFsaWRSb3dCeXRlczsK
ICAgICB1bnNpZ25lZCBpbnQgcmVtYWluZGVyID0gdmFsaWRSb3dCeXRlcyAlIHVucGFja0FsaWdu
bWVudDsKICAgICBpZiAocmVtYWluZGVyKQotICAgICAgICB0b3RhbFJvd0J5dGVzICs9IHJlbWFp
bmRlcjsKKyAgICAgICAgdG90YWxSb3dCeXRlcyArPSAodW5wYWNrQWxpZ25tZW50IC0gcmVtYWlu
ZGVyKTsKICAgICB1aW50OF90KiB0ZW1wUm93ID0gbmV3IHVpbnQ4X3RbdmFsaWRSb3dCeXRlc107
CiAgICAgdWludDhfdCogZGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihpbWFnZURhdGEpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyBpKyspIHsKQEAgLTE3MSw2
ICsyMzUsMTQgQEAgbmFtZXNwYWNlIHsKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gUGl4ZWwgdW5wYWNr
aW5nIHJvdXRpbmVzLgogCit2b2lkIHVucGFja1JHQkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOworICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzFdOworICAgIGRlc3RpbmF0aW9u
WzJdID0gc291cmNlWzJdOworICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOworfQorCiB2
b2lkIHVucGFja1JHQjhUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24pCiB7CiAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC0xODcsNiAr
MjU5LDY3IEBAIHZvaWQgdW5wYWNrQkdSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHMKICAgICBk
ZXN0aW5hdGlvblszXSA9IHNvdXJjZVszXTsKIH0KIAordm9pZCB1bnBhY2tSR0JBNTU1MVRvUkdC
QTgoY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAg
dWludDE2X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CisgICAgdWludDhfdCByID0gcGFja2Vk
VmFsdWUgPj4gMTE7CisgICAgdWludDhfdCBnID0gKHBhY2tlZFZhbHVlID4+IDYpICYgMHgxRjsK
KyAgICB1aW50OF90IGIgPSAocGFja2VkVmFsdWUgPj4gMSkgJiAweDFGOworICAgIGRlc3RpbmF0
aW9uWzBdID0gKHIgPDwgMykgfCAociAmIDB4Nyk7CisgICAgZGVzdGluYXRpb25bMV0gPSAoZyA8
PCAzKSB8IChnICYgMHg3KTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IChiIDw8IDMpIHwgKGIgJiAw
eDcpOworICAgIGRlc3RpbmF0aW9uWzNdID0gKHBhY2tlZFZhbHVlICYgMHgxKSA/IDB4RkYgOiAw
eDA7Cit9CisKK3ZvaWQgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0g
c291cmNlWzBdOworICAgIHVpbnQ4X3QgciA9IHBhY2tlZFZhbHVlID4+IDEyOworICAgIHVpbnQ4
X3QgZyA9IChwYWNrZWRWYWx1ZSA+PiA4KSAmIDB4MEY7CisgICAgdWludDhfdCBiID0gKHBhY2tl
ZFZhbHVlID4+IDQpICYgMHgwRjsKKyAgICB1aW50OF90IGEgPSBwYWNrZWRWYWx1ZSAmIDB4MEY7
CisgICAgZGVzdGluYXRpb25bMF0gPSByIDw8IDQgfCByOworICAgIGRlc3RpbmF0aW9uWzFdID0g
ZyA8PCA0IHwgZzsKKyAgICBkZXN0aW5hdGlvblsyXSA9IGIgPDwgNCB8IGI7CisgICAgZGVzdGlu
YXRpb25bM10gPSBhIDw8IDQgfCBhOworfQorCit2b2lkIHVucGFja1JHQjU2NVRvUkdCQTgoY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgdWludDE2
X3QgcGFja2VkVmFsdWUgPSBzb3VyY2VbMF07CisgICAgdWludDhfdCByID0gcGFja2VkVmFsdWUg
Pj4gMTE7CisgICAgdWludDhfdCBnID0gKHBhY2tlZFZhbHVlID4+IDUpICYgMHgzRjsKKyAgICB1
aW50OF90IGIgPSBwYWNrZWRWYWx1ZSAmIDB4MUY7CisgICAgZGVzdGluYXRpb25bMF0gPSAociA8
PCAzKSB8IChyICYgMHg3KTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IChnIDw8IDIpIHwgKGcgJiAw
eDMpOworICAgIGRlc3RpbmF0aW9uWzJdID0gKGIgPDwgMykgfCAoYiAmIDB4Nyk7CisgICAgZGVz
dGluYXRpb25bM10gPSAweEZGOworfQorCit2b2lkIHVucGFja1I4VG9SR0JBOChjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOworICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzBdOworICAgIGRlc3Rp
bmF0aW9uWzJdID0gc291cmNlWzBdOworICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKK30KKwor
dm9pZCB1bnBhY2tSQThUb1JHQkE4KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24pCit7CisgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CisgICAgZGVzdGlu
YXRpb25bMV0gPSBzb3VyY2VbMF07CisgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMF07Cisg
ICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMV07Cit9CisKK3ZvaWQgdW5wYWNrQThUb1JHQkE4
KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24pCit7CisgICAgZGVz
dGluYXRpb25bMF0gPSAweDA7CisgICAgZGVzdGluYXRpb25bMV0gPSAweDA7CisgICAgZGVzdGlu
YXRpb25bMl0gPSAweDA7CisgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbMF07Cit9CisKIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogLy8gUGl4ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCkBAIC00MDEsNTEg
KzUzNCwxNDEgQEAgdm9pZCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRpcAogfSAv
LyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKIC8vIFRoaXMgaXMgdXNlZCB3aGVuZXZlciB1bnBhY2tp
bmcgaXMgbmVjZXNzYXJ5OyBpLmUuLCB0aGUgc291cmNlIGRhdGEKLS8vIGlzIG5vdCBpbiBSR0JB
OCBmb3JtYXQuCisvLyBpcyBub3QgaW4gUkdCQTggZm9ybWF0LCBvciB0aGUgdW5wYWNrIGFsaWdu
bWVudCBzcGVjaWZpZXMgdGhhdCByb3dzCisvLyBhcmUgbm90IHRpZ2h0bHkgcGFja2VkLgogdGVt
cGxhdGU8dHlwZW5hbWUgU291cmNlVHlwZSwgdHlwZW5hbWUgRGVzdFR5cGUsCiAgICAgICAgICB2
b2lkIHVucGFja2luZ0Z1bmMoY29uc3QgU291cmNlVHlwZSosIHVpbnQ4X3QqKSwKICAgICAgICAg
IHZvaWQgcGFja2luZ0Z1bmMoY29uc3QgdWludDhfdCosIERlc3RUeXBlKik+CiBzdGF0aWMgdm9p
ZCBkb1VucGFja2luZ0FuZFBhY2tpbmcoY29uc3QgU291cmNlVHlwZSogc291cmNlRGF0YSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtRWxlbWVudHMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IHNvdXJjZUVsZW1lbnRzUGVyUm93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERlc3RUeXBlKiBkZXN0aW5hdGlvbkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCkKIHsKLSAg
ICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNlRGF0YSArIG51bUVsZW1lbnRz
OwotICAgIHVpbnQ4X3QgdGVtcG9yYXJ5UkdCQURhdGFbNF07Ci0gICAgd2hpbGUgKHNvdXJjZURh
dGEgPCBlbmRQb2ludGVyKSB7Ci0gICAgICAgIHVucGFja2luZ0Z1bmMoc291cmNlRGF0YSwgdGVt
cG9yYXJ5UkdCQURhdGEpOwotICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwg
ZGVzdGluYXRpb25EYXRhKTsKLSAgICAgICAgc291cmNlRGF0YSArPSBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsOwotICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRpb25FbGVtZW50c1Bl
clBpeGVsOworICAgIGlmICghc291cmNlRWxlbWVudHNQZXJSb3cpIHsKKyAgICAgICAgdW5zaWdu
ZWQgaW50IG51bUVsZW1lbnRzID0gd2lkdGggKiBoZWlnaHQgKiBzb3VyY2VFbGVtZW50c1BlclBp
eGVsOworICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNlRGF0YSAr
IG51bUVsZW1lbnRzOworICAgICAgICB1aW50OF90IHRlbXBvcmFyeVJHQkFEYXRhWzRdOworICAg
ICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIpIHsKKyAgICAgICAgICAgIHVucGFj
a2luZ0Z1bmMoc291cmNlRGF0YSwgdGVtcG9yYXJ5UkdCQURhdGEpOworICAgICAgICAgICAgcGFj
a2luZ0Z1bmModGVtcG9yYXJ5UkdCQURhdGEsIGRlc3RpbmF0aW9uRGF0YSk7CisgICAgICAgICAg
ICBzb3VyY2VEYXRhICs9IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWw7CisgICAgICAgICAgICBkZXN0
aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsOworICAgICAgICB9Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgdWludDhfdCB0ZW1wb3JhcnlSR0JBRGF0YVs0XTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAgICAgICAg
ICAgY29uc3QgU291cmNlVHlwZSogY3VycmVudFNvdXJjZSA9IHNvdXJjZURhdGE7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKKyAgICAgICAg
ICAgICAgICB1bnBhY2tpbmdGdW5jKGN1cnJlbnRTb3VyY2UsIHRlbXBvcmFyeVJHQkFEYXRhKTsK
KyAgICAgICAgICAgICAgICBwYWNraW5nRnVuYyh0ZW1wb3JhcnlSR0JBRGF0YSwgZGVzdGluYXRp
b25EYXRhKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlICs9IHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWw7CisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9u
RWxlbWVudHNQZXJQaXhlbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZURhdGEg
Kz0gc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIH0KICAgICB9CiB9CiAKLS8vIFRoaXMg
aGFuZGxlcyBhbGwgY29udmVyc2lvbnMgd2l0aCBhIGZhc3RlciBwYXRoIGZvciBSR0JBOCBzb3Vy
Y2UgZGF0YS4KLXRlbXBsYXRlPHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1lIERlc3RUeXBl
LCB2b2lkIHBhY2tpbmdGdW5jKGNvbnN0IFNvdXJjZVR5cGUqLCBEZXN0VHlwZSopPgotc3RhdGlj
IHZvaWQgZG9QYWNraW5nKGNvbnN0IFNvdXJjZVR5cGUqIHNvdXJjZURhdGEsCit0ZW1wbGF0ZTx0
eXBlbmFtZSBTb3VyY2VUeXBlPgorc3RhdGljIHZvaWQgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRl
cnModW5zaWduZWQgaW50IHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IGJ5dGVzUGVyUGl4ZWwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW5wYWNrQWxpZ25tZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50KiBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50KiBzb3VyY2VFbGVtZW50c1BlclJvdykKK3sKKyAgICB1bnNpZ25lZCBpbnQgZWxlbWVu
dFNpemVJbkJ5dGVzID0gc2l6ZW9mKFNvdXJjZVR5cGUpOworICAgIEFTU0VSVChlbGVtZW50U2l6
ZUluQnl0ZXMgPD0gYnl0ZXNQZXJQaXhlbCk7CisgICAgdW5zaWduZWQgaW50IHZhbGlkUm93Qnl0
ZXMgPSB3aWR0aCAqIGJ5dGVzUGVyUGl4ZWw7CisgICAgdW5zaWduZWQgaW50IHRvdGFsUm93Qnl0
ZXMgPSB2YWxpZFJvd0J5dGVzOworICAgIGlmICh1bnBhY2tBbGlnbm1lbnQpIHsKKyAgICAgICAg
dW5zaWduZWQgaW50IHJlbWFpbmRlciA9IHZhbGlkUm93Qnl0ZXMgJSB1bnBhY2tBbGlnbm1lbnQ7
CisgICAgICAgIGlmIChyZW1haW5kZXIpCisgICAgICAgICAgICB0b3RhbFJvd0J5dGVzICs9ICh1
bnBhY2tBbGlnbm1lbnQgLSByZW1haW5kZXIpOworICAgIH0KKyAgICAqc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCA9IGJ5dGVzUGVyUGl4ZWwgLyBlbGVtZW50U2l6ZUluQnl0ZXM7CisgICAgaWYgKHZh
bGlkUm93Qnl0ZXMgPT0gdG90YWxSb3dCeXRlcykKKyAgICAgICAgKnNvdXJjZUVsZW1lbnRzUGVy
Um93ID0gMDsKKyAgICBlbHNlCisgICAgICAgICpzb3VyY2VFbGVtZW50c1BlclJvdyA9IHRvdGFs
Um93Qnl0ZXMgLyBlbGVtZW50U2l6ZUluQnl0ZXM7Cit9CisKKy8vIFRoaXMgaGFuZGxlcyBhbGwg
Y29udmVyc2lvbnMgd2l0aCBhIGZhc3RlciBwYXRoIGZvciB0aWdodGx5IHBhY2tlZCBSR0JBOCBz
b3VyY2UgZGF0YS4KK3RlbXBsYXRlPHR5cGVuYW1lIERlc3RUeXBlLCB2b2lkIHBhY2tpbmdGdW5j
KGNvbnN0IHVpbnQ4X3QqLCBEZXN0VHlwZSopPgorc3RhdGljIHZvaWQgZG9QYWNraW5nKGNvbnN0
IHZvaWQqIHNvdXJjZURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0
M0Q6OlNvdXJjZURhdGFGb3JtYXQgc291cmNlRGF0YUZvcm1hdCwKLSAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgbnVtRWxlbWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsCisgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50IHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBo
ZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZVVucGFja0Fs
aWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICBEZXN0VHlwZSogZGVzdGluYXRpb25EYXRh
LAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpCiB7CiAgICAgc3dpdGNoIChzb3VyY2VEYXRhRm9ybWF0KSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkE4OiB7Ci0gICAgICAgIGNvbnN0IFNv
dXJjZVR5cGUqIGVuZFBvaW50ZXIgPSBzb3VyY2VEYXRhICsgbnVtRWxlbWVudHM7Ci0gICAgICAg
IHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgewotICAgICAgICAgICAgcGFja2luZ0Z1
bmMoc291cmNlRGF0YSwgZGVzdGluYXRpb25EYXRhKTsKLSAgICAgICAgICAgIHNvdXJjZURhdGEg
Kz0gc291cmNlRWxlbWVudHNQZXJQaXhlbDsKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uRGF0YSAr
PSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0
ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Cisg
ICAgICAgIGlmICghc291cmNlRWxlbWVudHNQZXJSb3cpIHsKKyAgICAgICAgICAgIGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKTsK
KyAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1FbGVtZW50cyA9IHdpZHRoICogaGVpZ2h0ICog
NDsKKyAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGVuZFBvaW50ZXIgPSBzb3VyY2UgKyBudW1F
bGVtZW50czsKKyAgICAgICAgICAgIHdoaWxlIChzb3VyY2UgPCBlbmRQb2ludGVyKSB7CisgICAg
ICAgICAgICAgICAgcGFja2luZ0Z1bmMoc291cmNlLCBkZXN0aW5hdGlvbkRhdGEpOworICAgICAg
ICAgICAgICAgIHNvdXJjZSArPSBzb3VyY2VFbGVtZW50c1BlclBpeGVsOworICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE4VG9SR0JBOCwgcGFja2luZ0Z1bmM+
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJH
Qjg6IHsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPFNvdXJjZVR5cGUsIERlc3RUeXBl
LCB1bnBhY2tSR0I4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHNvdXJjZURhdGEsIG51bUVsZW1lbnRz
LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxl
bWVudHNQZXJQaXhlbCk7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFt
ZXRlcnM8dWludDhfdD4od2lkdGgsIDMsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNr
aW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrUkdCOFRvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0
aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QkdSQTg6
IHsKLSAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPFNvdXJjZVR5cGUsIERlc3RUeXBlLCB1
bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzb3VyY2VEYXRhLCBudW1FbGVtZW50cywg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1l
bnRzUGVyUGl4ZWwpOworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0
ZXJzPHVpbnQ4X3Q+KHdpZHRoLCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVt
ZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2lu
Z0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja0JHUkE4VG9SR0JBOCwgcGFja2lu
Z0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0JBNTU1
MTogeworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNl
RWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQx
Nl90Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNr
aW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQTU1NTFUb1JHQkE4LCBwYWNraW5nRnVu
Yz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdo
dCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0
aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0JBNDQ0NDog
eworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90
Pih3aWR0aCwgMiwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5n
PHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I1NjU6IHsKKyAg
ICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lk
dGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZz
b3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50
MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQjU2NVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNf
Y2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBk
ZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFI4OiB7CisgICAgICAgIHVuc2ln
bmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAg
ICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDEsIHNvdXJj
ZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50
c1BlclJvdyk7CisgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlw
ZSwgdW5wYWNrUjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6a1NvdXJjZUZvcm1hdFJBODogeworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNy
ZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQs
ICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAg
ICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JBOFRvUkdC
QTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSks
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVy
Um93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9y
bWF0QTg6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRh
dGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICB9CkBAIC00NTUsNDYgKzY3OCw0NSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNr
UGl4ZWxzKGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dDNEOjpTb3VyY2VEYXRhRm9ybWF0IHNvdXJjZURhdGFGb3JtYXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhlaWdodCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZVVucGFja0FsaWdubWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3Rp
bmF0aW9uRm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgZGVzdGluYXRpb25UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBbHBoYU9wIGFscGhhT3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQqIGRlc3RpbmF0aW9uRGF0YSkKIHsKLSAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCA9IDQ7Ci0gICAgdW5zaWduZWQgaW50IG51bUVsZW1lbnRzID0gd2lkdGggKiBoZWln
aHQgKiBzb3VyY2VFbGVtZW50c1BlclBpeGVsOwogICAgIHN3aXRjaCAoZGVzdGluYXRpb25UeXBl
KSB7CiAgICAgY2FzZSBVTlNJR05FRF9CWVRFOiB7CiAgICAgICAgIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGRlc3RpbmF0aW9uRGF0YSk7Ci0gICAgICAgIGlm
IChzb3VyY2VEYXRhRm9ybWF0ID09IGtTb3VyY2VGb3JtYXRSR0JBOCAmJiBkZXN0aW5hdGlvbkZv
cm1hdCA9PSBSR0JBICYmIGFscGhhT3AgPT0ga0FscGhhRG9Ob3RoaW5nKSB7CisgICAgICAgIGlm
IChzb3VyY2VEYXRhRm9ybWF0ID09IGtTb3VyY2VGb3JtYXRSR0JBOCAmJiBkZXN0aW5hdGlvbkZv
cm1hdCA9PSBSR0JBICYmIHNvdXJjZVVucGFja0FsaWdubWVudCA8PSA0ICYmIGFscGhhT3AgPT0g
a0FscGhhRG9Ob3RoaW5nKSB7CiAgICAgICAgICAgICAvLyBObyBjb252ZXJzaW9uIG5lY2Vzc2Fy
eS4KLSAgICAgICAgICAgIG1lbWNweShkZXN0aW5hdGlvbkRhdGEsIHNvdXJjZURhdGEsIG51bUVs
ZW1lbnRzKTsKKyAgICAgICAgICAgIG1lbWNweShkZXN0aW5hdGlvbkRhdGEsIHNvdXJjZURhdGEs
IHdpZHRoICogaGVpZ2h0ICogNCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgUkdCOgogICAg
ICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvTm90
aGluZzoKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JH
QkE4VG9SR0I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAgICAgIGRv
UGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFG
b3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24s
IDMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1By
ZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCB1aW50OF90LCBw
YWNrUkdCQThUb1JHQjhQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
bnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAzKTsKKyAg
ICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0I4UHJlbXVsdGlw
bHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOFVubXVsdGlwbHk+KHNvdXJj
ZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBkZXN0aW5hdGlvbiwgMyk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3Qs
IHBhY2tSR0JBOFRvUkdCOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQs
IHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgUkdCQToKICAgICAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAg
ICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNv
dXJjZURhdGFGb3JtYXQgIT0ga1NvdXJjZUZvcm1hdFJHQkE4KTsgLy8gSGFuZGxlZCBhYm92ZSB3
aXRoIGZhc3QgY2FzZS4KLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhf
dCwgcGFja1JHQkE4VG9SR0JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxl
bWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCA0KTsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoc291cmNlRGF0YUZvcm1hdCAhPSBrU291cmNlRm9ybWF0UkdCQTggfHwg
c291cmNlVW5wYWNrQWxpZ25tZW50ID4gNCk7IC8vIEhhbmRsZWQgYWJvdmUgd2l0aCBmYXN0IGNh
c2UuCisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQTg+
KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCB1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJj
ZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBkZXN0aW5hdGlvbiwgNCk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3Qs
IHBhY2tSR0JBOFRvUkdCQThQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0
aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JH
QkE4VG9SR0JBOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVs
ZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgNCk7CisgICAgICAg
ICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11bHRpcGx5Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC01MDQsNyArNzI2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25z
dAogICAgICAgICAgICAgLy8gRnJvbSB0aGUgZGVza3RvcCBPcGVuR0wgY29udmVyc2lvbiBydWxl
cyAoT3BlbkdMIDIuMQogICAgICAgICAgICAgLy8gc3BlY2lmaWNhdGlvbiwgVGFibGUgMy4xNSks
IHRoZSBhbHBoYSBjaGFubmVsIGlzIGNob3NlbgogICAgICAgICAgICAgLy8gZnJvbSB0aGUgUkdC
QSBkYXRhLgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JB
OFRvQTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VF
bGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8
dWludDhfdCwgcGFja1JHQkE4VG9BOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMVU1JTkFOQ0U6CiAgICAgICAgICAgICAvLyBG
cm9tIHRoZSBkZXNrdG9wIE9wZW5HTCBjb252ZXJzaW9uIHJ1bGVzIChPcGVuR0wgMi4xCkBAIC01
MTIsMTMgKzczNCwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0
CiAgICAgICAgICAgICAvLyBmcm9tIHRoZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2gg
KGFscGhhT3ApIHsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAg
ICAgICAgIGRvUGFja2luZzx1aW50OF90LCB1aW50OF90LCBwYWNrUkdCQThUb1I4Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhl
bCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBw
YWNrUkdCQThUb1I4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAg
ICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JHQkE4VG9SOFByZW11bHRp
cGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1I4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURh
dGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRp
b24sIDEpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBrQWxwaGFE
b1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3Qs
IHBhY2tSR0JBOFRvUjhVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBu
dW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAg
ICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1I4VW5tdWx0aXBseT4o
c291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTUyOCwxMyArNzUwLDEzIEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAgIC8vIGFyZSBj
aG9zZW4gZnJvbSB0aGUgUkdCQSBkYXRhLgogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7
CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAgICAgICBkb1Bh
Y2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JHQkE4VG9SQTg+KHNvdXJjZURhdGEsIHNvdXJj
ZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5h
dGlvbiwgMik7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRv
UkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgICAgICBk
b1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JHQkE4VG9SQThQcmVtdWx0aXBseT4oc291
cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIGRlc3RpbmF0aW9uLCAyKTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhf
dCwgcGFja1JHQkE4VG9SQThQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0
aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JH
QkE4VG9SQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVt
ZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDIpOworICAgICAgICAg
ICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JBOFVubXVsdGlwbHk+KHNvdXJj
ZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC01NDUsMTMgKzc2NywxMyBAQCBib29sIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25EYXRhKTsKICAgICAgICAg
c3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hv
cnQ0NDQ0Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5n
PHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0Pihzb3VyY2VEYXRhLCBzb3Vy
Y2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3Rp
bmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtBbHBoYURvUHJl
bXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9u
LCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25l
ZFNob3J0NDQ0NFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0aXBseToKLSAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCB1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0
NDQ0NFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRz
LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBk
b1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRVbm11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNTYwLDEzICs3ODIsMTMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24g
PSBzdGF0aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRj
aCAoYWxwaGFPcCkgewogICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKLSAgICAgICAgICAg
IGRvUGFja2luZzx1aW50OF90LCB1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1
MT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50
MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MT4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlv
biwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRp
cGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdCQThU
b1Vuc2lnbmVkU2hvcnQ1NTUxUHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7
CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9y
dDU1NTFQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBk
b1BhY2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTFV
bm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNr
aW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NTUxVW5tdWx0aXBseT4oc291
cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKQEAgLTU3NSwxMyArNzk3LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3Rh
dGljX2Nhc3Q8dWludDE2X3QqPihkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFs
cGhhT3ApIHsKICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICBkb1Bh
Y2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291
cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwg
cGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVsdGlwbHk6Ci0g
ICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWdu
ZWRTaG9ydDU2NVByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1F
bGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVQcmVt
dWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8
dWludDhfdCwgdWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVVubXVsdGlwbHk+
KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2
X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNv
dXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVz
dGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJl
YWs7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCShyZXZpc2lvbiA2MjA0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNTAwLDYgKzUwMCwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZW11bHRp
cGx5QWxwaGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4m
IGRhdGEpOwogCisgICAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiB3aGljaCBleHRyYWN0cyB0aGUg
dXNlci1zdXBwbGllZCB0ZXh0dXJlCisgICAgICAgIC8vIGRhdGEsIGFwcGx5aW5nIHRoZSBmbGlw
WSBhbmQgcHJlbXVsdGlwbHlBbHBoYSBwYXJhbWV0ZXJzLgorICAgICAgICAvLyBJZiB0aGUgZGF0
YSBpcyBub3QgdGlnaHRseSBwYWNrZWQgYWNjb3JkaW5nIHRvIHRoZSBwYXNzZWQKKyAgICAgICAg
Ly8gdW5wYWNrQWxpZ25tZW50LCB0aGUgb3V0cHV0IGRhdGEgd2lsbCBiZSB0aWdodGx5IHBhY2tl
ZC4KKyAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIGlmIGFueSBl
cnJvciBvY2N1cnJlZC4KKyAgICAgICAgYm9vbCBleHRyYWN0VGV4dHVyZURhdGEodW5zaWduZWQg
aW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0LCB1bnNpZ25lZCBpbnQgdHlwZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVucGFja0FsaWdubWVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUJ1ZmZlclZpZXcq
IHBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+
JiBkYXRhKTsKKwogICAgICAgICAvLyBGbGlwcyB0aGUgZ2l2ZW4gaW1hZ2UgZGF0YSB2ZXJ0aWNh
bGx5LCBpbi1wbGFjZS4KICAgICAgICAgdm9pZCBmbGlwVmVydGljYWxseSh2b2lkKiBpbWFnZURh
dGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLApAQCAt
NTE0LDcgKzUyNiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGVudW0gU291cmNl
RGF0YUZvcm1hdCB7CiAgICAgICAgICAgICBrU291cmNlRm9ybWF0UkdCQTgsCiAgICAgICAgICAg
ICBrU291cmNlRm9ybWF0UkdCOCwKLSAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRCR1JBOAorICAg
ICAgICAgICAga1NvdXJjZUZvcm1hdEJHUkE4LAorICAgICAgICAgICAga1NvdXJjZUZvcm1hdFJH
QkE1NTUxLAorICAgICAgICAgICAga1NvdXJjZUZvcm1hdFJHQkE0NDQ0LAorICAgICAgICAgICAg
a1NvdXJjZUZvcm1hdFJHQjU2NSwKKyAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRSOCwKKyAgICAg
ICAgICAgIGtTb3VyY2VGb3JtYXRSQTgsCisgICAgICAgICAgICBrU291cmNlRm9ybWF0QTgKICAg
ICAgICAgfTsKIAogICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc1OCwxMiArNzc2LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBIZWxwZXIgZm9yIGdldEltYWdlRGF0
YSB3aGljaCBpbXBsZW1lbnRzIHBhY2tpbmcgb2YgcGl4ZWwKICAgICAgICAgLy8gZGF0YSBpbnRv
IHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3RpbmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KLSAgICAg
ICAgLy8gU291cmNlIGRhdGEgbXVzdCBiZSBpbiBSR0JBIGZvcm1hdCB3aXRoIG5vIGdhcHMgYmV0
d2VlbgotICAgICAgICAvLyByb3dzLiBEZXN0aW5hdGlvbiBkYXRhIHdpbGwgaGF2ZSBubyBnYXBz
IGJldHdlZW4gcm93cy4KKyAgICAgICAgLy8gQSBzb3VyY2VVbnBhY2tBbGlnbm1lbnQgb2YgemVy
byBpbmRpY2F0ZXMgdGhhdCB0aGUgc291cmNlCisgICAgICAgIC8vIGRhdGEgaXMgdGlnaHRseSBw
YWNrZWQuIE5vbi16ZXJvIHZhbHVlcyBtYXkgdGFrZSBhIHNsb3cgcGF0aC4KKyAgICAgICAgLy8g
RGVzdGluYXRpb24gZGF0YSB3aWxsIGhhdmUgbm8gZ2FwcyBiZXR3ZWVuIHJvd3MuCiAgICAgICAg
IGJvb2wgcGFja1BpeGVscyhjb25zdCB1aW50OF90KiBzb3VyY2VEYXRhLAogICAgICAgICAgICAg
ICAgICAgICAgICAgU291cmNlRGF0YUZvcm1hdCBzb3VyY2VEYXRhRm9ybWF0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgZGVzdGluYXRpb25Gb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgZGVzdGluYXRpb25UeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgQWxwaGFP
cCBhbHBoYU9wLApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHQzRENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCShyZXZpc2lvbiA2MjA0OCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEo
SW1hCiAgICAgaWYgKCFwcmVtdWx0aXBseUFscGhhICYmIGhhc0FscGhhQ2hhbm5lbCkKICAgICAg
ICAgLy8gRklYTUU6IG11c3QgZmV0Y2ggdGhlIGltYWdlIGRhdGEgYmVmb3JlIHRoZSBwcmVtdWx0
aXBsaWNhdGlvbiBzdGVwLgogICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9Vbm11bHRp
cGx5OwotICAgIHJldHVybiBwYWNrUGl4ZWxzKHRlbXBWZWN0b3IuZGF0YSgpLCBrU291cmNlRm9y
bWF0UkdCQTgsIHdpZHRoLCBoZWlnaHQsCisgICAgcmV0dXJuIHBhY2tQaXhlbHModGVtcFZlY3Rv
ci5kYXRhKCksIGtTb3VyY2VGb3JtYXRSR0JBOCwgd2lkdGgsIGhlaWdodCwgMCwKICAgICAgICAg
ICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIG5lZWRlZEFscGhhT3AsIG91dHB1dFZlY3Rvci5k
YXRhKCkpOwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNz
Q29udGV4dDNEUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAJKHJldmlzaW9uIDYyMDQ4KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VE
YXRhKEltYQogICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9Vbm11bHRpcGx5OwogICAg
IFFJbWFnZSBuYXRpdmVJbWFnZSA9IG5hdGl2ZVBpeG1hcC0+dG9JbWFnZSgpLmNvbnZlcnRUb0Zv
cm1hdChRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOwogICAgIG91dHB1dFZlY3Rvci5yZXNpemUobmF0
aXZlSW1hZ2UuYnl0ZUNvdW50KCkpOwotICAgIHJldHVybiBwYWNrUGl4ZWxzKG5hdGl2ZUltYWdl
LnJnYlN3YXBwZWQoKS5iaXRzKCksIGtTb3VyY2VGb3JtYXRSR0JBOCwgaW1hZ2UtPndpZHRoKCks
IGltYWdlLT5oZWlnaHQoKSwKKyAgICByZXR1cm4gcGFja1BpeGVscyhuYXRpdmVJbWFnZS5yZ2JT
d2FwcGVkKCkuYml0cygpLCBrU291cmNlRm9ybWF0UkdCQTgsIGltYWdlLT53aWR0aCgpLCBpbWFn
ZS0+aGVpZ2h0KCksIDAsCiAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLCBuZWVk
ZWRBbHBoYU9wLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5j
cHAJKHJldmlzaW9uIDYyMDQ4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dy
YXBoaWNzQ29udGV4dDNEU2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgIGlmICghcHJlbXVs
dGlwbHlBbHBoYSkKICAgICAgICAgLy8gRklYTUU6IG11c3QgZmV0Y2ggdGhlIGltYWdlIGRhdGEg
YmVmb3JlIHRoZSBwcmVtdWx0aXBsaWNhdGlvbiBzdGVwCiAgICAgICAgIG5lZWRlZEFscGhhT3Ag
PSBrQWxwaGFEb1VubXVsdGlwbHk7Ci0gICAgcmV0dXJuIHBhY2tQaXhlbHMocGl4ZWxzLCBrU291
cmNlRm9ybWF0QkdSQTgsIHNraWFJbWFnZS0+d2lkdGgoKSwgaGVpZ2h0LAorICAgIHJldHVybiBw
YWNrUGl4ZWxzKHBpeGVscywga1NvdXJjZUZvcm1hdEJHUkE4LCBza2lhSW1hZ2UtPndpZHRoKCks
IGhlaWdodCwgMCwKICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHR5cGUsIG5lZWRlZEFs
cGhhT3AsIG91dHB1dFZlY3Rvci5kYXRhKCkpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MjA1
MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2
IEBACisyMDEwLTA2LTI4ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IFVOUEFD
S19GTElQX1lfV0VCR0wgYW5kIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBmb3IgdGV4
SW1hZ2UyRCB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM5OAorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9y
IFVOUEFDS19GTElQX1lfV0VCR0wgYW5kIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBw
aXhlbCBzdG9yZQorICAgICAgICBwYXJhbWV0ZXJzIHRvIHRleEltYWdlMkQgYW5kIHRleFN1Yklt
YWdlMkQgZW50cnkgcG9pbnRzIHRha2luZyBBcnJheUJ1ZmZlclZpZXcuCisgICAgICAgIE1vcmUg
Y2xlYW5seSBzZXBhcmF0ZWQgdGhlIHVucGFja2luZyBhbmQgcGFja2luZyBwaGFzZXMgb2YgdXNl
ci1zdXBwbGllZCBwaXhlbCBkYXRhCisgICAgICAgIGluIEdyYXBoaWNzQ29udGV4dDNELCBhbmQg
YWRkZWQgc3VwcG9ydCBmb3IgdW5wYWNrIGFsaWdubWVudC4gRml4ZWQgYnVnIGluIGhhbmRsaW5n
CisgICAgICAgIG9mIHVucGFja0FsaWdubWVudCBpbiBHcmFwaGljc0NvbnRleHQzRDo6ZmxpcFZl
cnRpY2FsbHkuIE5lY2Vzc2FyaWx5IGFkZGVkCisgICAgICAgIHZhbGlkYXRpb24gb2YgdGhlIGFt
b3VudCBvZiBkYXRhIHBhc3NlZCB0byB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJELiBNb2Rp
ZmllZAorICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5k
LXR5cGUuaHRtbCB0byBpbmNsdWRlIHByZW11bHRpcGxpZWQgYWxwaGEKKyAgICAgICAgdGVzdHMg
Zm9yIHJlbGV2YW50IHNvdXJjZSBmb3JtYXRzOyBhZGRlZCBuZXcgdGVzdCB3aGljaCBleGVyY2lz
ZXMgYWxsIGNvbWJpbmF0aW9ucworICAgICAgICBvZiBVTlBBQ0tfRkxJUF9ZX1dFQkdMLCBVTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIGFuZCBVTlBBQ0tfQUxJR05NRU5UIHBpeGVsCisg
ICAgICAgIHN0b3JlIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90
ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS13aXRoLWZvcm1h
dC1hbmQtdHlwZS5odG1sOgorCiAyMDEwLTA2LTI4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1i
dWZmZXItdmlldy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXIt
dmlldy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OTAgQEAKKyAKK1ZlcmlmaWVz
IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgQXJyYXlCdWZm
ZXJWaWV3CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUmVncmVzc2lvbiB0ZXN0IGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzOTggOiBTdXBwb3J0
IFVOUEFDS19GTElQX1lfV0VCR0wgYW5kIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBm
b3IgdGV4SW1hZ2UyRCB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3CitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVu
cGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVu
cGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVu
cGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVu
cGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlw
WT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlB
bHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVz
dGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tB
bGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JU
XzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhh
PWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0Fs
aWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcg
Ym90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBp
eGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9
dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlB
bHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0
aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0Fs
aWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBp
eGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNv
cnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81
XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10
cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitD
aGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRl
eEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVu
dD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBl
PVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVf
NV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1m
YWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgor
Q2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0
ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGln
bm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0
b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVf
NV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZh
bHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitD
aGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRl
eEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVu
dD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9t
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQ
QVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1V
TlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEs
IHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1Yklt
YWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00
LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVO
U0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVf
NV8xLCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1
YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVu
dD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVO
U0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEs
IHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQor
Q2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tp
bmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFn
ZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9OCwg
ZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVu
cGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdl
MkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBm
bGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVs
CitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBp
eGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJ
R05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEs
IHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdl
MkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBm
bGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJl
Y3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgor
VGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBh
Y2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFs
cGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0
aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFj
a0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxp
cFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFj
a0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNT
IHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9S
VF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBo
YT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdu
bWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0
b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVl
LCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JU
XzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBo
YT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xv
cgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGlu
ZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tB
bGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JU
XzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhh
PWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdu
bWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90
dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVs
CitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlw
ZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80
XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1
YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVu
dD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBl
PVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwg
cHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVs
IGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJl
Y3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80
XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10
cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitD
aGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRl
eFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdu
bWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0
b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBl
PVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80
XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxz
ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hl
Y2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJ
bWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9
OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lH
TkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQs
IHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1Yklt
YWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04
LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBp
eGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNT
IHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1V
TlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80
XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1i
dWZmZXItdmlldy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyODAgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsczNkLmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0
eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBnX1Bvc2l0aW9uOworYXR0
cmlidXRlIHZlYzIgZ19UZXhDb29yZDA7CisKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKKwordm9p
ZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoZ19Qb3NpdGlvbi54LCBnX1Bvc2l0
aW9uLnksIGdfUG9zaXRpb24ueiwgMS4wKTsKKyAgICB0ZXhDb29yZCA9IGdfVGV4Q29vcmQwOwor
fQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJh
Z21lbnQiPgordW5pZm9ybSBzYW1wbGVyMkQgdGV4OwordmFyeWluZyB2ZWMyIHRleENvb3JkOwor
Cit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENv
b3JkKTsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0PgordmFyIGdsID0gbnVsbDsKK3ZhciB0ZXh0
dXJlTG9jID0gbnVsbDsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKK3ZhciBpbWFn
ZURhdGEgPSBudWxsOworCitmdW5jdGlvbiBpbml0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZGVzY3JpcHRpb24oJ1ZlcmlmaWVzIHRleElt
YWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3
Jyk7CisKKyAgICBkZWJ1ZygnUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzOTgiPmh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDM5ODwvYT4gOiA8Y29kZT5TdXBwb3J0IFVOUEFDS19GTElQ
X1lfV0VCR0wgYW5kIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBmb3IgdGV4SW1hZ2Uy
RCB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3PC9jb2RlPicpOworCisgICAgdmFyIGNhbnZhczJkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleGNhbnZhcyIpOworICAgIHZhciBjb250ZXh0MmQg
PSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOworICAgIGltYWdlRGF0YSA9IGNvbnRleHQyZC5j
cmVhdGVJbWFnZURhdGEoMSwgMik7CisgICAgdmFyIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAg
ICBkYXRhWzBdID0gMjU1OworICAgIGRhdGFbMV0gPSAwOworICAgIGRhdGFbMl0gPSAwOworICAg
IGRhdGFbM10gPSAyNTU7CisgICAgZGF0YVs0XSA9IDA7CisgICAgZGF0YVs1XSA9IDI1NTsKKyAg
ICBkYXRhWzZdID0gMDsKKyAgICBkYXRhWzddID0gMDsKKworICAgIGdsID0gaW5pdFdlYkdMKCJl
eGFtcGxlIiwgInZzaGFkZXIiLCAiZnNoYWRlciIsIFsgImdfUG9zaXRpb24iLCAiZ19UZXhDb29y
ZDAiIF0sIFsgMCwgMCwgMCwgMSBdLCAxKTsKKyAgICBnbC52aWV3cG9ydCgwLCAwLCAxLCAyKTsK
KyAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKKworICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgInRleCIpOworCisgICAgdmFyIHZlcnRpY2VzID0gbmV3
IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAgICAxLjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEu
MCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCisgICAgICAgICAxLjAsICAx
LjAsIDAuMCwKKyAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAgICAgMS4wLCAtMS4wLCAw
LjBdKTsKKyAgICB2YXIgdGV4Q29vcmRzID0gbmV3IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAg
IDEuMCwgMS4wLAorICAgICAgICAwLjAsIDEuMCwKKyAgICAgICAgMC4wLCAwLjAsCisgICAgICAg
IDEuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgMS4wLCAwLjBdKTsKKyAgICB2
YXIgdGV4Q29vcmRPZmZzZXQgPSB2ZXJ0aWNlcy5ieXRlTGVuZ3RoOworCisgICAgdmFyIHZibyA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
Ym8pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLAorICAgICAgICAgICAgICAg
ICAgdGV4Q29vcmRPZmZzZXQgKyB0ZXhDb29yZHMuYnl0ZUxlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgMCwgdmVydGljZXMpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB0
ZXhDb29yZE9mZnNldCwgdGV4Q29vcmRzKTsKKworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDApOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGdsLkZB
TFNFLCAwLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBnbC5GQUxTRSwgMCwgdGV4Q29vcmRP
ZmZzZXQpOworCisgICAgcnVuVGVzdCgpOworfQorCisvLyBUaGVzZSB0d28gZGVjbGFyYXRpb25z
IG5lZWQgdG8gYmUgZ2xvYmFsIGZvciAic2hvdWxkQmUiIHRvIHNlZSB0aGVtCit2YXIgYnVmID0g
bnVsbDsKK3ZhciBpZHggPSAwOwordmFyIHBpeGVsID0gWzAsIDAsIDAsIDFdOwordmFyIGNvcnJl
Y3RDb2xvciA9IG51bGw7CisKK2Z1bmN0aW9uIGdlbmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNr
QWxpZ25tZW50KQoreworICAgIHZhciBzb3VyY2VEYXRhID0gWyAyNTUsICAgMCwgICAwLCAyNTUs
CisgICAgICAgICAgICAgICAgICAgICAgIDAsICAgMjU1LCAgIDAsICAgMCBdOworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgZ2wuVU5TSUdORURfQllURTogeworICAgICAgICB2YXIgcm93
V2lkdGggPSBNYXRoLm1heCh1bnBhY2tBbGlnbm1lbnQsIDQpOworICAgICAgICB2YXIgZGF0YSA9
IG5ldyBVaW50OEFycmF5KDIgKiByb3dXaWR0aCk7CisgICAgICAgIGZvciAodmFyIHkgPSAwOyB5
IDwgMjsgKyt5KSB7CisgICAgICAgICAgICB2YXIgaW5kZXggPSB5ICogcm93V2lkdGg7CisgICAg
ICAgICAgICBmb3IgKHZhciBlbGVtZW50ID0gMDsgZWxlbWVudCA8IDQ7ICsrZWxlbWVudCkgewor
ICAgICAgICAgICAgICAgIGRhdGFbaW5kZXggKyBlbGVtZW50XSA9IHNvdXJjZURhdGFbNCAqIHkg
KyBlbGVtZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGF0
YTsKKyAgICB9CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF80XzRfNF80OiB7CisgICAgICAg
IHZhciByb3dXaWR0aCA9IE1hdGgubWF4KHVucGFja0FsaWdubWVudCwgMikgLyAyOworICAgICAg
ICB2YXIgZGF0YSA9IG5ldyBVaW50MTZBcnJheSgyICogcm93V2lkdGgpOworICAgICAgICBmb3Ig
KHZhciB5ID0gMDsgeSA8IDI7ICsreSkgeworICAgICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJv
d1dpZHRoOworICAgICAgICAgICAgZGF0YVtpbmRleF0gPSAoKChzb3VyY2VEYXRhWzQgKiB5XSAm
IDB4RjApIDw8IDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgoc291cmNlRGF0YVs0
ICogeSArIDFdICYgMHhGMCkgPDwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHNv
dXJjZURhdGFbNCAqIHkgKyAyXSAmIDB4RjApCisgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IChzb3VyY2VEYXRhWzQgKiB5ICsgM10gPj4gNCkpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBkYXRhOworICAgIH0KKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6IHsKKyAg
ICAgICAgdmFyIHJvd1dpZHRoID0gTWF0aC5tYXgodW5wYWNrQWxpZ25tZW50LCAyKSAvIDI7Cisg
ICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQxNkFycmF5KDIgKiByb3dXaWR0aCk7CisgICAgICAg
IGZvciAodmFyIHkgPSAwOyB5IDwgMjsgKyt5KSB7CisgICAgICAgICAgICB2YXIgaW5kZXggPSB5
ICogcm93V2lkdGg7CisgICAgICAgICAgICBkYXRhW2luZGV4XSA9ICgoKHNvdXJjZURhdGFbNCAq
IHldICYgMHhGOCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChzb3VyY2VE
YXRhWzQgKiB5ICsgMV0gJiAweEY4KSA8PCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAoKHNvdXJjZURhdGFbNCAqIHkgKyAyXSAmIDB4RjgpID4+IDIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IChzb3VyY2VEYXRhWzQgKiB5ICsgM10gPj4gNykpOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHR5cGVUb1N0
cmluZyh0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgZ2wuVU5TSUdORURf
QllURTogIHJldHVybiAnVU5TSUdORURfQllURSc7CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9S
VF81XzVfNV8xOiAgcmV0dXJuICdVTlNJR05FRF9TSE9SVF81XzVfNV8xJzsKKyAgICBjYXNlIGds
LlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6ICByZXR1cm4gJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzQn
OworICAgIH0KKyAgICByZXR1cm4gJ1Vua25vd24gdHlwZSAnICsgdHlwZTsKK30KKworZnVuY3Rp
b24gcnVuT25lSXRlcmF0aW9uKHVzZVRleFN1YkltYWdlMkQsIHR5cGUsIHVucGFja0FsaWdubWVu
dCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRvcENvbG9yLCBib3R0b21Db2xvcikKK3sKKyAg
ICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcg
OiAndGV4SW1hZ2UyRCcpICsKKyAgICAgICAgICAnIHdpdGggdHlwZT0nICsgdHlwZVRvU3RyaW5n
KHR5cGUpICsKKyAgICAgICAgICAnLCB1bnBhY2tBbGlnbm1lbnQ9JyArIHVucGFja0FsaWdubWVu
dCArCisgICAgICAgICAgJywgZmxpcFk9JyArIGZsaXBZICsgJywgcHJlbXVsdGlwbHlBbHBoYT0n
ICsgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgZ2wuY29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUs
IHRydWUpOworICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMS4wKTsKKyAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgLy8gRW5hYmxl
IHdyaXRlcyB0byB0aGUgUkdCIGNoYW5uZWxzCisgICAgZ2wuY29sb3JNYXNrKHRydWUsIHRydWUs
IHRydWUsIGZhbHNlKTsKKyAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAg
ICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1l
dGVycworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5f
RklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgLy8gU2V0IHVwIHBpeGVs
IHN0b3JlIHBhcmFtZXRlcnMKKyAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5U
LCB1bnBhY2tBbGlnbm1lbnQpOworICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lf
V0VCR0wsIGZsaXBZKTsKKyAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wsIHByZW11bHRpcGx5QWxwaGEpOworICAgIC8vIEdlbmVyYXRlIHRoZSBkYXRh
CisgICAgdmFyIGRhdGEgPSBnZW5lcmF0ZVJHQkFEYXRhKHR5cGUsIHVucGFja0FsaWdubWVudCk7
CisgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCisgICAgICAgIHRlc3RGYWls
ZWQoIkdMIGVycm9yIGJlZm9yZSB0ZXh0dXJlIHVwbG9hZCIpOworICAgIC8vIFVwbG9hZCB0aGUg
aW1hZ2UgaW50byB0aGUgdGV4dHVyZQorICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7CisgICAg
ICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QKKyAgICAgICAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAyLCAwLAorICAgICAgICAg
ICAgICAgICAgICAgIGdsLlJHQkEsIHR5cGUsIG51bGwpOworICAgICAgICBpZiAoZ2wuZ2V0RXJy
b3IoKSAhPSBnbC5OT19FUlJPUikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFm
dGVyIHRleEltYWdlMkQobnVsbCkiKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCAwLCAwLCAxLCAyLCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKKyAgICAgICAgaWYg
KGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJH
TCBlcnJvciBhZnRlciB0ZXhTdWJJbWFnZTJEIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAyLCAwLCBnbC5SR0JBLCB0
eXBlLCBkYXRhKTsKKyAgICAgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0ZXhJbWFnZTJEIik7CisgICAg
fQorCisgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAor
ICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAvLyBEcmF3IHRoZSB0cmlhbmds
ZXMKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7CisKKyAgICAvLyBSZWFk
IGJhY2sgdGhlIHJlbmRlcmluZyByZXN1bHRzCisgICAgYnVmID0gbmV3IFVpbnQ4QXJyYXkoMSAq
IDIgKiA0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDIsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIGJ1Zik7CisgICAgLy8gQ2hlY2sgdGhlIHRvcCBwaXhlbCBhbmQgYm90dG9tIHBp
eGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCisgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgorICAg
IGRlYnVnKCJDaGVja2luZyBib3R0b20gcGl4ZWwiKTsKKyAgICBjb3JyZWN0Q29sb3IgPSBib3R0
b21Db2xvcjsKKyAgICBpZHggPSAwOworICAgIHBpeGVsWzBdID0gYnVmW2lkeF07CisgICAgcGl4
ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAgcGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07CisgICAg
cGl4ZWxbM10gPSBidWZbaWR4ICsgM107CisgICAgc2hvdWxkQmUoInBpeGVsIiwgImNvcnJlY3RD
b2xvciIpOworICAgIGRlYnVnKCJDaGVja2luZyB0b3AgcGl4ZWwiKTsKKyAgICBjb3JyZWN0Q29s
b3IgPSB0b3BDb2xvcjsKKyAgICBpZHggPSA0OworICAgIHBpeGVsWzBdID0gYnVmW2lkeF07Cisg
ICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAgcGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07
CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107CisgICAgc2hvdWxkQmUoInBpeGVsIiwgImNv
cnJlY3RDb2xvciIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVkID0g
WzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVdOworICAg
IHZhciByZWRQcmVtdWx0aXBseUFscGhhID0gWzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3Jl
ZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAsIDI1NV07CisKKyAgICB2YXIgdHlwZXMgPSBb
IGdsLlVOU0lHTkVEX0JZVEUsIGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIGdsLlVOU0lHTkVE
X1NIT1JUXzRfNF80XzQgXTsKKyAgICB2YXIgdW5wYWNrQWxpZ25tZW50cyA9IFsgMSwgMiwgNCwg
OCBdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsraSkgeworICAg
ICAgICB2YXIgdHlwZSA9IHR5cGVzW2ldOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVu
cGFja0FsaWdubWVudHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIHZhciB1bnBhY2tBbGln
bm1lbnQgPSB1bnBhY2tBbGlnbm1lbnRzW2pdOworICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9u
KGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIGZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOworICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9u
KGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncmVlbiwgcmVkKTsKKyAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlv
bihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50LCB0cnVlLCB0cnVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgICAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdu
bWVudCwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVt
dWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgICAgIHJ1bk9uZUl0
ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQsIHRydWUsIGZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOworICAgICAgICAgICAgcnVuT25lSXRl
cmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIGZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQpOworICAgICAgICAgICAgcnVuT25lSXRl
cmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0aXBseUFscGhhLCBncmVlblByZW11bHRpcGx5
QWxwaGEpOworICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0Fs
aWdubWVudCwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW5Q
cmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgdmFyIGVwaWxvZ3VlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAgZXBpbG9ndWUub25sb2FkID0gZmlu
aXNoOworICAgIGVwaWxvZ3VlLnNyYyA9ICIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVwaWxvZ3VlKTsKK30KKworZnVu
Y3Rpb24gZmluaXNoKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorPGNhbnZhcyBpZD0idGV4
Y2FudmFzIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJweCI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJl
eGFtcGxlIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJweCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS13aXRoLWZv
cm1hdC1hbmQtdHlwZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNjIwNDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgt
aW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDggKzEsMTAgQEAKLVZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUg
cGF0aHMgdGFraW5nIEhUTUwgZGF0YSB3aXRoIGFsbCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMK
K1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGJv
dGggSFRNTCBhbmQgdXNlci1zcGVjaWZpZWQgZGF0YSB3aXRoIGFsbCBmb3JtYXQvdHlwZSBjb21i
aW5hdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1SZWdyZXNzaW9uIHRlc3Qg
Zm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMxOSA6IEltcGxl
bWVudCBmb3JtYXQgY29udmVyc2lvbnMgaW4gdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0
YWtpbmcgSFRNTCBkYXRhCitSZWdyZXNzaW9uIHRlc3QgZm9yOgoraHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzE5IDogSW1wbGVtZW50IGZvcm1hdCBjb252ZXJzaW9u
cyBpbiB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBIVE1MIGRhdGEKK2h0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM5OCA6IFN1cHBvcnQgVU5QQUNL
X0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIGZvciB0ZXhJ
bWFnZTJEIHRha2luZyBBcnJheUJ1ZmZlclZpZXcKIFRlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIElt
YWdlIGF0IDI1NngxCiBQQVNTIFJHQkEvVU5TSUdORURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVs
bCBwcmVjaXNpb24gb2YgZGF0YQogVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggSW1hZ2UgYXQgMjU2
eDEKQEAgLTEzMSw2ICsxMzMsMjIgQEAgVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggSW1hZ2VE
YXRhIGF0IAogUEFTUyBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFO
Q0UvVU5TSUdORURfQllURQogVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggSW1hZ2VEYXRhIGF0
IDI1NngxCiBQQVNTIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIExVTUlOQU5D
RV9BTFBIQS9VTlNJR05FRF9CWVRFCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCByYXcgZGF0YSBh
dCAyNTZ4MQorUEFTUyBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VO
U0lHTkVEX0JZVEUKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIHJhdyBkYXRhIGF0IDI1NngxCitQ
QVNTIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hP
UlRfNF80XzRfNAorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggcmF3IGRhdGEgYXQgMjU2eDEKK1BB
U1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9S
VF81XzVfNV8xCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCByYXcgZGF0YSBhdCAyNTZ4MQorUEFT
UyBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0VfQUxQSEEvVU5T
SUdORURfQllURQorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggcmF3IGRhdGEgYXQgMjU2eDEK
K1BBU1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9C
WVRFCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCByYXcgZGF0YSBhdCAyNTZ4MQorUEFTUyBV
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVEX1NIT1JUXzRf
NF80XzQKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIHJhdyBkYXRhIGF0IDI1NngxCitQQVNT
IFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRf
NV81XzVfMQorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggcmF3IGRhdGEgYXQgMjU2eDEKK1BB
U1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggTFVNSU5BTkNFX0FMUEhBL1VO
U0lHTkVEX0JZVEUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgt
Zm9ybWF0LWFuZC10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwJKHJldmlzaW9uIDYy
MDQ4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9y
bWF0LWFuZC10eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDE4IEBAIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKIAogdmFyIHRlc3RDYXNlcyA9IFtdOwogCit2YXIg
RGF0YU1vZGUgPSB7CisgICAgSU1BR0U6IDAsCisgICAgSU1BR0VfREFUQTogMSwKKworICAgIE5V
TV9IVE1MX01PREVTOiAyLAorCisgICAgUkFXX0RBVEE6IDIsCisKKyAgICAvLyBUaGlzIG11c3Qg
cmVtYWluIHRoZSBsYXN0IG1vZGUuCisgICAgTlVNX01PREVTOiAzCit9OworCiBmdW5jdGlvbiBp
bml0KCkKIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CkBAIC00Niw5
ICs1OCwxMSBAQCBmdW5jdGlvbiBpbml0KCkKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAotICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1h
Z2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBIVE1MIGRhdGEgd2l0aCBh
bGwgZm9ybWF0L3R5cGUgY29tYmluYXRpb25zJyk7CisgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0
ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGJvdGggSFRNTCBh
bmQgdXNlci1zcGVjaWZpZWQgZGF0YSB3aXRoIGFsbCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMn
KTsKIAotICAgIGRlYnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMxOSI+aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwMzE5PC9hPiA6IDxjb2RlPkltcGxlbWVudCBmb3JtYXQgY29u
dmVyc2lvbnMgaW4gdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0YWtpbmcgSFRNTCBkYXRh
PC9jb2RlPicpOworICAgIGRlYnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9yOicpOworICAgIGRlYnVn
KCc8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMTki
Pmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMxOTwvYT4gOiA8Y29k
ZT5JbXBsZW1lbnQgZm9ybWF0IGNvbnZlcnNpb25zIGluIHRleEltYWdlMkQgYW5kIHRleFN1Yklt
YWdlMkQgdGFraW5nIEhUTUwgZGF0YTwvY29kZT4nKTsKKyAgICBkZWJ1ZygnPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzk4Ij5odHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzOTg8L2E+IDogPGNvZGU+U3VwcG9ydCBVTlBB
Q0tfRkxJUF9ZX1dFQkdMIGFuZCBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgZm9yIHRl
eEltYWdlMkQgdGFraW5nIEFycmF5QnVmZmVyVmlldzwvY29kZT4nKTsKIAogICAgIGdsID0gaW5p
dFdlYkdMKCJleGFtcGxlIiwgInZzaGFkZXIiLCAiZnNoYWRlciIsIFsgImdfUG9zaXRpb24iLCAi
Z19UZXhDb29yZDAiIF0sIFsgMCwgMCwgMCwgMSBdLCAxKTsKICAgICBnbC5kaXNhYmxlKGdsLkJM
RU5EKTsKQEAgLTkxLDEwICsxMDUsMTAgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKIHsK
ICAgICAvLyBWZXJpZnkgdGhhdCB1cGxvYWRpbmcgdG8gcGFja2VkIHBpeGVsIGZvcm1hdHMgcGVy
Zm9ybXMgdGhlCiAgICAgLy8gcmVxdWlyZWQgY29udmVyc2lvbiBhbmQgYXNzb2NpYXRlZCBsb3Nz
IG9mIHByZWNpc2lvbi4KLSAgICBmb3IgKHZhciB1c2VJbWFnZURhdGEgPSAwOyB1c2VJbWFnZURh
dGEgPCAyOyArK3VzZUltYWdlRGF0YSkgeworICAgIGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0
YU1vZGUgPCBEYXRhTW9kZS5OVU1fSFRNTF9NT0RFUzsgKytkYXRhTW9kZSkgewogICAgICAgICBm
b3IgKHZhciB1c2VUZXhTdWJJbWFnZTJEID0gMDsgdXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNl
VGV4U3ViSW1hZ2UyRCkgewogICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAg
ICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0
YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNl
VGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAg
ICAgIGhlaWdodDogMSwKQEAgLTEwOCw3ICsxMjIsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVz
dHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdCQS9VTlNJR05FRF9CWVRFIHNo
b3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBvZiBkYXRhIgogICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgdXNlSW1hZ2VEYXRh
OiAhIXVzZUltYWdlRGF0YSwKKyAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCiAg
ICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAogICAg
ICAgICAgICAgICAgIHdpZHRoOiAyNTYsCiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLApAQCAt
MTIyLDcgKzEzNiw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVUZXN0cygpCiAgICAgICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVEX1NIT1JUXzRfNF80XzQgbXVzdCBkcm9wIGxv
dyBmb3VyIGJpdHMgb2YgcHJlY2lzaW9uIgogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB0
ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgdXNlSW1hZ2VEYXRhOiAhIXVzZUltYWdl
RGF0YSwKKyAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCiAgICAgICAgICAgICAg
ICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAogICAgICAgICAgICAgICAg
IHdpZHRoOiAyNTYsCiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLApAQCAtMTM2LDcgKzE1MCw3
IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVUZXN0cygpCiAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b246ICJSR0JBL1VOU0lHTkVEX1NIT1JUXzVfNV81XzEgbXVzdCBkcm9wIGxvdyB0aHJlZSBiaXRz
IG9mIHByZWNpc2lvbiIKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGVzdENhc2VzLnB1
c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAg
ICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1
YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2
LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTE1MCw3ICsxNjQsNyBAQCBmdW5jdGlv
biBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiUkdCL1VO
U0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAg
ICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgIGRhdGFNb2Rl
OiBkYXRhTW9kZSwKICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1
YkltYWdlMkQsCiAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKICAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDEsCkBAIC0xNjQsNyArMTc4LDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkK
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlJHQi9VTlNJR05FRF9TSE9SVF81XzZfNSBt
dXN0IGRyb3AgbG93IHR3byBvciB0aHJlZSBiaXRzIG9mIHByZWNpc2lvbiIKICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUlt
YWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFN
b2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2Uy
RCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDog
MSwKQEAgLTE3OCw3ICsxOTIsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQUxQSEEvVU5TSUdORURfQllURSBzaG91bGQgbWFpbnRh
aW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
dGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFn
ZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAg
ICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAg
ICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTE5Miw3ICsyMDYs
NyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAiTFVNSU5BTkNFL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lz
aW9uIG9mIGRhdGEiCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNo
KHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAorICAgICAg
ICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJ
bWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCiAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwK
ICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCkBAIC0yMTEsMTAgKzIyNSwxMCBAQCBmdW5jdGlv
biBpbml0aWFsaXplVGVzdHMoKQogICAgIC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIFVOUEFD
S19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBwaXhlbAogICAgIC8vIHN0b3JlIHBhcmFtZXRlciBh
bmQgc2VuZGluZyBkb3duIGEgemVybyBhbHBoYSBjYXVzZXMgdGhlIGNvbG9yCiAgICAgLy8gY2hh
bm5lbHMgdG8gZ28gdG8gemVyby4KLSAgICBmb3IgKHZhciB1c2VJbWFnZURhdGEgPSAwOyB1c2VJ
bWFnZURhdGEgPCAyOyArK3VzZUltYWdlRGF0YSkgeworICAgIGZvciAodmFyIGRhdGFNb2RlID0g
MDsgZGF0YU1vZGUgPCBEYXRhTW9kZS5OVU1fTU9ERVM7ICsrZGF0YU1vZGUpIHsKICAgICAgICAg
Zm9yICh2YXIgdXNlVGV4U3ViSW1hZ2UyRCA9IDA7IHVzZVRleFN1YkltYWdlMkQgPCAyOyArK3Vz
ZVRleFN1YkltYWdlMkQpIHsKICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAg
ICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgIGRh
dGFNb2RlOiBkYXRhTW9kZSwKICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVz
ZVRleFN1YkltYWdlMkQsCiAgICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKICAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDEsCkBAIC0yMjYsNyArMjQwLDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRl
c3RzKCkKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURfQllURSIKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTog
ISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAg
ICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAg
ICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTIz
OCw3ICsyNTIsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9V
TlNJR05FRF9TSE9SVF80XzRfNF80IgogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB0ZXN0
Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAgdXNlSW1hZ2VEYXRhOiAhIXVzZUltYWdlRGF0
YSwKKyAgICAgICAgICAgICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCiAgICAgICAgICAgICAgICAg
dXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAogICAgICAgICAgICAgICAgIHdp
ZHRoOiAyNTYsCiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLApAQCAtMjQ5LDU2ICsyNjMsNjEg
QEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKICAgICAgICAgICAgICAgICB2ZXJpZmllcjog
Y29sb3JDaGFubmVsc0FyZVplcm8sCiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVEX1NIT1JUXzVfNV81
XzEiCiAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgZmV3IHRl
c3RzIGFyZSBpbnZhbGlkIGZvciB0aGUgcmF3IGRhdGEKKyAgICAgICAgICAgIC8vIG1vZGUgYmVj
YXVzZSB0aGVyZSBpcyBlaXRoZXIgbm8gYWxwaGEgY2hhbm5lbCBvciBubworICAgICAgICAgICAg
Ly8gc2VwYXJhdGUgYWxwaGEgY2hhbm5lbC4KKyAgICAgICAgICAgIGlmIChkYXRhTW9kZSAhPSBE
YXRhTW9kZS5SQVdfREFUQSkgeworICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAg
ICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgICAg
ICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAg
ICAgIHdpZHRoOiAyNTYsCisgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAg
ICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwK
KyAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKKyAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCisgICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVO
U0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxz
QXJlWmVybywKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVM
VElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5TSUdORURfQllURSIKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7CisgICAgICAgICAgICAgICAg
ICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1h
Z2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAorICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjU2
LAorICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgICAgIGdl
bmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCisgICAgICAgICAgICAg
ICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGZvcm1h
dDogZ2wuUkdCLAorICAgICAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81
XzZfNSwKKyAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJv
LAorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9B
TFBIQV9XRUJHTCB3aXRoIFJHQi9VTlNJR05FRF9TSE9SVF81XzZfNSIKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7CisgICAgICAgICAgICAgICAg
ICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1h
Z2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAorICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjU2
LAorICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCisgICAgICAgICAgICAgICAgICAgIGdl
bmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCisgICAgICAgICAgICAg
ICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGZvcm1h
dDogZ2wuQUxQSEEsCisgICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUs
CisgICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKKyAg
ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFf
V0VCR0wgd2l0aCBBTFBIQS9VTlNJR05FRF9CWVRFIgorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YU1v
ZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVz
ZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCisgICAgICAg
ICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBn
ZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICAgICAgcHJl
bXVsdGlwbHlBbHBoYTogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5MVU1J
TkFOQ0UsCisgICAgICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAg
ICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKKyAgICAgICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wg
d2l0aCBMVU1JTkFOQ0UvVU5TSUdORURfQllURSIKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1
c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAotICAgICAgICAgICAgICAgIHVzZVRleFN1Yklt
YWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAot
ICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdl
bmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRp
cGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCi0gICAgICAg
ICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmll
cjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJV
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5TSUdORURfQllURSIKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAg
ICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCi0gICAgICAgICAgICAgICAgdXNlVGV4
U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAotICAgICAgICAgICAgICAgIHdpZHRoOiAy
NTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLAotICAgICAgICAgICAgICAgIGdlbmVyYXRv
cjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2FsZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJl
bXVsdGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAgICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAg
ICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwKLSAgICAgICAgICAg
ICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5TSUdO
RURfU0hPUlRfNV82XzUiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5w
dXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAotICAg
ICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAg
ICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAg
ICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAot
ICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAg
Zm9ybWF0OiBnbC5BTFBIQSwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRF
LAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3
aXRoIEFMUEhBL1VOU0lHTkVEX0JZVEUiCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHRl
c3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VE
YXRhLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2Uy
RCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDog
MSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2Nh
bGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAg
ICAgICAgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0UsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wu
VU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0Fy
ZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0UvVU5TSUdORURfQllURSIKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdl
RGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2Rl
LAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwK
ICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwK
QEAgLTMyMiwxMCArMzQxLDQ1IEBAIGZ1bmN0aW9uIGdlbmVyYXRlVGVzdERhdGEoKQogICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIHZhciB0
ZXN0Q2FzZSA9IHRlc3RDYXNlc1tpXTsKICAgICAgICAgdmFyIHdyYXBwZXIgPSBudWxsOwotICAg
ICAgICBpZiAodGVzdENhc2UudXNlSW1hZ2VEYXRhKQotICAgICAgICAgICAgd3JhcHBlciA9IG5l
dyBJbWFnZURhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAg
ICAgICBlbHNlCisgICAgICAgIHN3aXRjaCAodGVzdENhc2UuZGF0YU1vZGUpIHsKKyAgICAgICAg
Y2FzZSBEYXRhTW9kZS5JTUFHRToKICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgSW1hZ2VXcmFw
cGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBuZXcgSW1hZ2VEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRBOgorICAg
ICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS50eXBlKSB7CisgICAgICAgICAgICBjYXNlIGdsLlVO
U0lHTkVEX0JZVEU6CisgICAgICAgICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS5mb3JtYXQpIHsK
KyAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQkE6CisgICAgICAgICAgICAgICAgICAgIHdyYXBw
ZXIgPSBuZXcgUkdCQThEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBnbC5S
R0I6CisgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCOERhdGFXcmFwcGVyKHRl
c3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlIGdsLkFMUEhBOgorICAgICAgICAgICAgICAgICAgICB3
cmFwcGVyID0gbmV3IEE4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdo
dCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgZ2wu
TFVNSU5BTkNFOgorICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IEw4RGF0YVdyYXBw
ZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgZ2wuTFVNSU5BTkNFX0FMUEhBOgorICAgICAg
ICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IExBOERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRo
LCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGdsLlVO
U0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0JB
NDQ0NERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzVf
NV8xOgorICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCQTU1NTFEYXRhV3JhcHBlcih0
ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURfU0hPUlRfNV82XzU6CisgICAgICAgICAgICAg
ICAgd3JhcHBlciA9IG5ldyBSR0I1NjVEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENh
c2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogICAgICAgICB0ZXN0Q2FzZS53cmFwcGVyID0gd3JhcHBlcjsKICAgICAgICAgdGVzdENh
c2UuZ2VuZXJhdG9yKHdyYXBwZXIpOwogICAgICAgICB0ZXN0Q2FzZS53cmFwcGVyLmdlbmVyYXRl
RGF0YSgpOwpAQCAtMzU5LDkgKzQxMywyMCBAQCBmdW5jdGlvbiBtYXliZVJ1blRlc3RzKCkKIAog
ZnVuY3Rpb24gdGVzdENhc2VUb1N0cmluZyh0ZXN0Q2FzZSkKIHsKKyAgICB2YXIgbW9kZTsKKyAg
ICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7CisgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToK
KyAgICAgICAgbW9kZSA9ICJJbWFnZSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0YU1v
ZGUuSU1BR0VfREFUQToKKyAgICAgICAgbW9kZSA9ICJJbWFnZURhdGEiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRBOgorICAgICAgICBtb2RlID0gInJhdyBkYXRh
IjsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIHJldHVybiAodGVzdENhc2UudXNlVGV4U3Vi
SW1hZ2UyRCA/ICJ0ZXhTdWJJbWFnZTJEIiA6ICJ0ZXhJbWFnZTJEIikgKwotICAgICAgICAgICAg
IiB3aXRoICIgKyAodGVzdENhc2UudXNlSW1hZ2VEYXRhID8gIkltYWdlRGF0YSIgOiAiSW1hZ2Ui
KSArCi0gICAgICAgICAgICAiIGF0ICIgKyB0ZXN0Q2FzZS53aWR0aCArICJ4IiArIHRlc3RDYXNl
LmhlaWdodDsKKyAgICAgICAgICAgICIgd2l0aCAiICsgbW9kZSArICAiIGF0ICIgKyB0ZXN0Q2Fz
ZS53aWR0aCArICJ4IiArIHRlc3RDYXNlLmhlaWdodDsKIH0KIAogZnVuY3Rpb24gcnVuT25lVGVz
dCh0ZXN0Q2FzZSkKQEAgLTM4MiwxMSArNDQ3LDIyIEBAIGZ1bmN0aW9uIHJ1bk9uZVRlc3QodGVz
dENhc2UpCiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3Qu
CiAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgdGVzdENhc2UuZm9ybWF0
LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAwLAogICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgbnVsbCk7Ci0gICAgICAgIGdsLnRl
eFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0
Q2FzZS50eXBlLCBkYXRhKTsKLSAgICB9IGVsc2UgewotICAgICAgICBnbC50ZXhJbWFnZTJEKGds
LlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2Fz
ZS50eXBlLCBkYXRhKTsKICAgICB9Ci0KKyAgICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7
CisgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKKyAgICBjYXNlIERhdGFNb2RlLklNQUdFX0RBVEE6
CisgICAgICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhTdWJJbWFnZTJEKQorICAgICAgICAgICAgZ2wu
dGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRl
c3RDYXNlLnR5cGUsIGRhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UuZm9ybWF0LCB0
ZXN0Q2FzZS50eXBlLCBkYXRhKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRhTW9kZS5S
QVdfREFUQToKKyAgICAgICAgaWYgKHRlc3RDYXNlLnVzZVRleFN1YkltYWdlMkQpCisgICAgICAg
ICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRlc3RDYXNlLndp
ZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2UudHlwZSwgZGF0
YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAw
LCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOworICAgICAgICBicmVhazsK
KyAgICB9CiAgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQg
MC4KICAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7CiAgICAgLy8gRHJhdyB0aGUgdHJp
YW5nbGVzLgpAQCAtNDExLDcgKzQ4Nyw3IEBAIGZ1bmN0aW9uIGZpbmlzaCgpIHsKIH0KIAogLy8t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBXcmFwcGVycyBmb3IgcHJvZ3JhbW1hdGljIGNvbnN0cnVjdGlvbiBv
ZiBJbWFnZSBhbmQgSW1hZ2VEYXRhCisvLyBXcmFwcGVycyBmb3IgcHJvZ3JhbW1hdGljIGNvbnN0
cnVjdGlvbiBvZiBJbWFnZSwgSW1hZ2VEYXRhIGFuZCByYXcgdGV4dHVyZSBkYXRhCiAvLwogCiBm
dW5jdGlvbiBJbWFnZVdyYXBwZXIod2lkdGgsIGhlaWdodCkKQEAgLTQ3Myw2ICs1NDksMTQxIEBA
IEltYWdlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdlbmVyYXRlRGF0YSAKICAgICBtYXliZVJ1blRl
c3RzKCk7CiB9OwogCitmdW5jdGlvbiBUZXh0dXJlRGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkK
K3sKKyAgICB0aGlzLndpZHRoXyA9IHdpZHRoOworICAgIHRoaXMuaGVpZ2h0XyA9IGhlaWdodDsK
K30KKworVGV4dHVyZURhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkg
eworICAgIHJldHVybiB0aGlzLndpZHRoXzsKK307CisKK1RleHR1cmVEYXRhV3JhcHBlci5wcm90
b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXMuaGVpZ2h0XzsK
K307CisKK1RleHR1cmVEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2VuZXJhdGVEYXRhID0gZnVuY3Rp
b24oKSB7CisgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhXzsKKyAgICBtYXliZVJ1blRlc3RzKCk7
Cit9OworCitmdW5jdGlvbiBSR0JBOERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAg
VGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5k
YXRhXyA9IG5ldyBVaW50OEFycmF5KDQgKiB3aWR0aCAqIGhlaWdodCk7Cit9CisKK1JHQkE4RGF0
YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdCQThEYXRh
V3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7
CisgICAgdmFyIGluZGV4ID0gNCAqICh0aGlzLndpZHRoXyAqIHkgKyB4KTsKKyAgICB0aGlzLmRh
dGFfW2luZGV4XSA9IHI7CisgICAgdGhpcy5kYXRhX1tpbmRleCArIDFdID0gZzsKKyAgICB0aGlz
LmRhdGFfW2luZGV4ICsgMl0gPSBiOworICAgIHRoaXMuZGF0YV9baW5kZXggKyAzXSA9IGE7Cit9
OworCitmdW5jdGlvbiBSR0JBNTU1MURhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAg
VGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5k
YXRhXyA9IG5ldyBVaW50MTZBcnJheSh3aWR0aCAqIGhlaWdodCk7Cit9CisKK1JHQkE1NTUxRGF0
YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdCQTU1NTFE
YXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBh
KSB7CisgICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjgpIDw8IDgpCisgICAgICAgICAgICAgICAg
IHwgKChnICYgMHhGOCkgPDwgMykKKyAgICAgICAgICAgICAgICAgfCAoKGIgJiAweEY4KSA+PiAy
KQorICAgICAgICAgICAgICAgICB8IChhID4+IDcpKTsKKyAgICB0aGlzLmRhdGFfW3RoaXMud2lk
dGhfICogeSArIHhdID0gdmFsdWU7Cit9OworCitmdW5jdGlvbiBSR0JBNDQ0NERhdGFXcmFwcGVy
KHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lk
dGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50MTZBcnJheSh3aWR0aCAqIGhl
aWdodCk7Cit9CisKK1JHQkE0NDQ0RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVE
YXRhV3JhcHBlcjsKKworUkdCQTQ0NDREYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBm
dW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjAp
IDw8IDgpCisgICAgICAgICAgICAgICAgIHwgKChnICYgMHhGMCkgPDwgNCkKKyAgICAgICAgICAg
ICAgICAgfCAoYiAmIDB4RjApCisgICAgICAgICAgICAgICAgIHwgKGEgPj4gNCkpOworICAgIHRo
aXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0gPSB2YWx1ZTsKK307CisKK2Z1bmN0aW9uIFJH
QjhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5j
YWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJh
eSgzICogd2lkdGggKiBoZWlnaHQpOworfQorCitSR0I4RGF0YVdyYXBwZXIucHJvdG90eXBlID0g
bmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdCOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQ
aXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKKyAgICB2YXIgaW5kZXggPSAzICog
KHRoaXMud2lkdGhfICogeSArIHgpOworICAgIHRoaXMuZGF0YV9baW5kZXhdID0gcjsKKyAgICB0
aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBnOworICAgIHRoaXMuZGF0YV9baW5kZXggKyAyXSA9IGI7
Cit9OworCitmdW5jdGlvbiBSR0I1NjVEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAg
IFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMu
ZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGggKiBoZWlnaHQpOworfQorCitSR0I1NjVEYXRh
V3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOworCitSR0I1NjVEYXRh
V3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7
CisgICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjgpIDw8IDgpCisgICAgICAgICAgICAgICAgIHwg
KChnICYgMHhGQykgPDwgMykKKyAgICAgICAgICAgICAgICAgfCAoKGIgJiAweEY4KSA+PiAzKSk7
CisgICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IHZhbHVlOworfTsKKworZnVu
Y3Rpb24gQThEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3Jh
cHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWlu
dDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Cit9CisKK0E4RGF0YVdyYXBwZXIucHJvdG90eXBlID0g
bmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4
ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdGhpcy5kYXRhX1t0aGlzLndp
ZHRoXyAqIHkgKyB4XSA9IGE7Cit9OworCitmdW5jdGlvbiBMOERhdGFXcmFwcGVyKHdpZHRoLCBo
ZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdo
dCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0KTsKK30K
KworTDhEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVyZURhdGFXcmFwcGVyOworCitM
OERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIs
IGEpIHsKKyAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhfICogeSArIHhdID0gcjsKK307CisKK2Z1
bmN0aW9uIExBOERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFX
cmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBV
aW50OEFycmF5KDIgKiB3aWR0aCAqIGhlaWdodCk7Cit9CisKK0xBOERhdGFXcmFwcGVyLnByb3Rv
dHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7CisKK0xBOERhdGFXcmFwcGVyLnByb3RvdHlw
ZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKKyAgICB2YXIgaW5kZXgg
PSAyICogKHRoaXMud2lkdGhfICogeSArIHgpOworICAgIHRoaXMuZGF0YV9baW5kZXhdID0gcjsK
KyAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBhOworfTsKKwogLy8tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBDb2xvciByYW1wIGdlbmVyYXRpb24gZnVuY3Rpb25zCiAvLwpAQCAtNTUxLDggKzc2Miw4IEBA
IGZ1bmN0aW9uIGNvbG9yQ2hhbm5lbHNBcmVaZXJvKGFycmF5LCB0aHIKICAgICAgICAgZm9yICh2
YXIgaiA9IDA7IGogPCAzOyArK2opCiAgICAgICAgICAgICBpZiAoYXJyYXlbaSArIGpdICE9IDAp
IHsKICAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBpZiAo
KytudW1GYWlsdXJlcyA8IDUpCi0gICAgICAgICAgICAgICAgICAgIGRlYnVnKCIgIGFycmF5WyIg
KyBpICsgIl0gc2hvdWxkIGhhdmUgYmVlbiAwLCB3YXMgIiArIGFycmF5W2ldKTsKKyAgICAgICAg
ICAgICAgICBpZiAoKytudW1GYWlsdXJlcyA8PSA1KQorICAgICAgICAgICAgICAgICAgICBkZWJ1
ZygiICBhcnJheVsiICsgKGkgKyBqKSArICJdIHNob3VsZCBoYXZlIGJlZW4gMCwgd2FzICIgKyBh
cnJheVtpICsgal0pOwogICAgICAgICAgICAgfQogCiAgICAgcmV0dXJuIHBhc3NlZDsK
</data>
<flag name="commit-queue"
          id="47157"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59970</attachid>
            <date>2010-06-28 18:28:32 -0700</date>
            <delta_ts>2010-06-29 10:26:39 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>tex-image-array-buffer-view.patch</filename>
            <type>text/plain</type>
            <size>97548</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDYtMjggIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgVU5QQUNLX0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMIGZvciB0ZXhJbWFnZTJEIHRha2luZyBBcnJheUJ1ZmZlclZpZXcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzk4CisKKyAgICAgICAgQWRkZWQg
c3VwcG9ydCBmb3IgVU5QQUNLX0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMIHBpeGVsIHN0b3JlCisgICAgICAgIHBhcmFtZXRlcnMgdG8gdGV4SW1hZ2UyRCBh
bmQgdGV4U3ViSW1hZ2UyRCBlbnRyeSBwb2ludHMgdGFraW5nIEFycmF5QnVmZmVyVmlldy4KKyAg
ICAgICAgTW9yZSBjbGVhbmx5IHNlcGFyYXRlZCB0aGUgdW5wYWNraW5nIGFuZCBwYWNraW5nIHBo
YXNlcyBvZiB1c2VyLXN1cHBsaWVkIHBpeGVsIGRhdGEKKyAgICAgICAgaW4gR3JhcGhpY3NDb250
ZXh0M0QsIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB1bnBhY2sgYWxpZ25tZW50LiBGaXhlZCBidWcg
aW4gaGFuZGxpbmcKKyAgICAgICAgb2YgdW5wYWNrQWxpZ25tZW50IGluIEdyYXBoaWNzQ29udGV4
dDNEOjpmbGlwVmVydGljYWxseS4gTmVjZXNzYXJpbHkgYWRkZWQKKyAgICAgICAgdmFsaWRhdGlv
biBvZiB0aGUgYW1vdW50IG9mIGRhdGEgcGFzc2VkIHRvIHRleEltYWdlMkQgYW5kIHRleFN1Yklt
YWdlMkQuIE1vZGlmaWVkCisgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS13aXRo
LWZvcm1hdC1hbmQtdHlwZS5odG1sIHRvIGluY2x1ZGUgcHJlbXVsdGlwbGllZCBhbHBoYQorICAg
ICAgICB0ZXN0cyBmb3IgcmVsZXZhbnQgc291cmNlIGZvcm1hdHM7IGFkZGVkIG5ldyB0ZXN0IHdo
aWNoIGV4ZXJjaXNlcyBhbGwgY29tYmluYXRpb25zCisgICAgICAgIG9mIFVOUEFDS19GTElQX1lf
V0VCR0wsIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgYW5kIFVOUEFDS19BTElHTk1F
TlQgcGl4ZWwKKyAgICAgICAgc3RvcmUgcGFyYW1ldGVycy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWFycmF5LWJ1ZmZl
ci12aWV3Lmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdl
MkQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFn
ZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVU
ZXhGdW5jRGF0YSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZmxpcFZlcnRpY2FsbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9VbnBhY2tpbmdBbmRQYWNraW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OmRvUGFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjopOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKToKKwogMjAxMC0wNi0yOCAgRGF2aWQgTGV2aW4gIDxs
ZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChjaHJvbWl1
bSBidWlsZCBmaXgpLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAkocmV2aXNpb24gNjIwNzMpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OTMsOSArMTk5Mywy
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVp
Z2h0LCB1bnNpZ25lZCBib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIEFycmF5QnVmZmVyVmlldyogcGl4
ZWxzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyBGSVhNRTogTmVlZCB0byBtYWtlIHN1
cmUgcGFzc2VkIGJ1ZmZlciBoYXMgZW5vdWdoIGJ5dGVzIHRvIGRlZmluZSB0aGUgdGV4dHVyZQor
ICAgIGlmICghdmFsaWRhdGVUZXhGdW5jRGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHBpeGVscykpCisgICAgICAgIHJldHVybjsKKyAgICB2b2lkKiBkYXRhID0gcGl4ZWxzID8gcGl4
ZWxzLT5iYXNlQWRkcmVzcygpIDogMDsKKyAgICBWZWN0b3I8dWludDhfdD4gdGVtcERhdGE7Cisg
ICAgYm9vbCBjaGFuZ2VVbnBhY2tBbGlnbm1lbnQgPSBmYWxzZTsKKyAgICBpZiAocGl4ZWxzICYm
IChtX3VucGFja0ZsaXBZIHx8IG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSkpIHsKKyAgICAgICAg
aWYgKCFtX2NvbnRleHQtPmV4dHJhY3RUZXh0dXJlRGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQs
IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91bnBh
Y2tBbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVscywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRGF0YSkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGRhdGEgPSB0ZW1wRGF0YS5kYXRhKCk7CisgICAgICAgIGNoYW5nZVVucGFja0FsaWdu
bWVudCA9IHRydWU7CisgICAgfQorICAgIGlmIChjaGFuZ2VVbnBhY2tBbGlnbm1lbnQpCisgICAg
ICAgIG1fY29udGV4dC0+cGl4ZWxTdG9yZWkoR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElH
Tk1FTlQsIDEpOwogICAgIHRleEltYWdlMkRCYXNlKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsCi0gICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0
eXBlLCBwaXhlbHMgPyBwaXhlbHMtPmJhc2VBZGRyZXNzKCkgOiAwLCBlYyk7CisgICAgICAgICAg
ICAgICAgICAgZm9ybWF0LCB0eXBlLCBkYXRhLCBlYyk7CisgICAgaWYgKGNoYW5nZVVucGFja0Fs
aWdubWVudCkKKyAgICAgICAgbV9jb250ZXh0LT5waXhlbFN0b3JlaShHcmFwaGljc0NvbnRleHQz
RDo6VU5QQUNLX0FMSUdOTUVOVCwgbV91bnBhY2tBbGlnbm1lbnQpOwogfQogCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxl
dmVsLCB1bnNpZ25lZCBpbnRlcm5hbGZvcm1hdCwKQEAgLTIyNDksOCArMjI2NywyNiBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZm9ybWF0
LCB1bnNpZ25lZCB0eXBlLCBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgLy8gRklYTUU6IE5lZWQgdG8gbWFrZSBzdXJlIHBhc3NlZCBidWZmZXIgaGFz
IGVub3VnaCBieXRlcyB0byBkZWZpbmUgdGhlIHRleHR1cmUKLSAgICB0ZXhTdWJJbWFnZTJEQmFz
ZSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQs
IHR5cGUsIHBpeGVscyA/IHBpeGVscy0+YmFzZUFkZHJlc3MoKSA6IDAsIGVjKTsKKyAgICBpZiAo
IXZhbGlkYXRlVGV4RnVuY0RhdGEod2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMp
KQorICAgICAgICByZXR1cm47CisgICAgdm9pZCogZGF0YSA9IHBpeGVscyA/IHBpeGVscy0+YmFz
ZUFkZHJlc3MoKSA6IDA7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRlbXBEYXRhOworICAgIGJvb2wg
Y2hhbmdlVW5wYWNrQWxpZ25tZW50ID0gZmFsc2U7CisgICAgaWYgKHBpeGVscyAmJiAobV91bnBh
Y2tGbGlwWSB8fCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpKSB7CisgICAgICAgIGlmICghbV9j
b250ZXh0LT5leHRyYWN0VGV4dHVyZURhdGEod2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5wYWNrQWxpZ25t
ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5wYWNr
RmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVtcERhdGEpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBk
YXRhID0gdGVtcERhdGEuZGF0YSgpOworICAgICAgICBjaGFuZ2VVbnBhY2tBbGlnbm1lbnQgPSB0
cnVlOworICAgIH0KKyAgICBpZiAoY2hhbmdlVW5wYWNrQWxpZ25tZW50KQorICAgICAgICBtX2Nv
bnRleHQtPnBpeGVsU3RvcmVpKEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCAx
KTsKKyAgICB0ZXhTdWJJbWFnZTJEQmFzZSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEsIGVjKTsKKyAgICBpZiAoY2hhbmdl
VW5wYWNrQWxpZ25tZW50KQorICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdyYXBoaWNz
Q29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9CiAKIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwg
dW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsCkBAIC0z
NDg2LDYgKzM1MjIsNTIgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4
RgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFs
aWRhdGVUZXhGdW5jRGF0YShsb25nIHdpZHRoLCBsb25nIGhlaWdodCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1
bnNpZ25lZCBsb25nIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscykKK3sKKyAgICBpZiAoIXBpeGVscykK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIXZhbGlkYXRlVGV4RnVuY0Zvcm1hdEFu
ZFR5cGUoZm9ybWF0LCB0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURToKKyAg
ICAgICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRCeXRlQXJyYXkoKSkgeworICAgICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9P
UEVSQVRJT04pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUXzVfNl81
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKKyAgICAg
ICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRTaG9ydEFycmF5KCkpIHsKKyAgICAgICAgICAgIG1f
Y29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BF
UkFUSU9OKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICB1bnNpZ25lZCBsb25nIGNvbXBvbmVudHNQZXJQaXhlbCwgYnl0ZXNQZXJDb21wb25l
bnQ7CisgICAgaWYgKCFtX2NvbnRleHQtPmNvbXB1dGVGb3JtYXRBbmRUeXBlUGFyYW1ldGVycyhm
b3JtYXQsIHR5cGUsICZjb21wb25lbnRzUGVyUGl4ZWwsICZieXRlc1BlckNvbXBvbmVudCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgdW5zaWduZWQgaW50IHZhbGlkUm93Qnl0ZXMgPSB3aWR0aCAq
IGNvbXBvbmVudHNQZXJQaXhlbCAqIGJ5dGVzUGVyQ29tcG9uZW50OworICAgIHVuc2lnbmVkIGlu
dCB0b3RhbFJvd0J5dGVzID0gdmFsaWRSb3dCeXRlczsKKyAgICB1bnNpZ25lZCBpbnQgcmVtYWlu
ZGVyID0gdmFsaWRSb3dCeXRlcyAlIG1fdW5wYWNrQWxpZ25tZW50OworICAgIGlmIChyZW1haW5k
ZXIpCisgICAgICAgIHRvdGFsUm93Qnl0ZXMgKz0gKG1fdW5wYWNrQWxpZ25tZW50IC0gcmVtYWlu
ZGVyKTsKKyAgICB1bnNpZ25lZCBpbnQgdG90YWxCeXRlc1JlcXVpcmVkID0gKGhlaWdodCAtIDEp
ICogdG90YWxSb3dCeXRlcyArIHZhbGlkUm93Qnl0ZXM7CisgICAgaWYgKHBpeGVscy0+Ynl0ZUxl
bmd0aCgpIDwgdG90YWxCeXRlc1JlcXVpcmVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZURy
YXdNb2RlKHVuc2lnbmVkIGxvbmcgbW9kZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24g
NjIwNzMpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MjYsMTYgKzQyNiwyMyBAQCBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7
CiAgICAgICAgIFdlYkdMVGV4dHVyZSogZ2V0VGV4dHVyZUJpbmRpbmcodW5zaWduZWQgbG9uZyB0
YXJnZXQpOwogCiAgICAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpbnB1dCBmb3Jt
YXQvdHlwZSBmb3IgZnVuY3Rpb25zIHtjb3B5fVRleHtTdWJ9SW1hZ2UuCi0gICAgICAgIC8vIEdl
bmVyYXRlIEdMIGVycm9yIGFuZCByZXR1cm4gZmFsc2UgaWYgcGFyYW1ldGVycyBhcmUgaW52YWxp
ZC4KKyAgICAgICAgLy8gR2VuZXJhdGVzIEdMIGVycm9yIGFuZCByZXR1cm5zIGZhbHNlIGlmIHBh
cmFtZXRlcnMgYXJlIGludmFsaWQuCiAgICAgICAgIGJvb2wgdmFsaWRhdGVUZXhGdW5jRm9ybWF0
QW5kVHlwZSh1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlKTsKIAogICAg
ICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaW5wdXQgcGFyYW1ldGVycyBmb3IgZnVu
Y3Rpb25zIHtjb3B5fVRleHtTdWJ9SW1hZ2UuCi0gICAgICAgIC8vIEdlbmVyYXRlIEdMIGVycm9y
IGFuZCByZXR1cm4gZmFsc2UgaWYgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4KKyAgICAgICAgLy8g
R2VuZXJhdGVzIEdMIGVycm9yIGFuZCByZXR1cm5zIGZhbHNlIGlmIHBhcmFtZXRlcnMgYXJlIGlu
dmFsaWQuCiAgICAgICAgIGJvb2wgdmFsaWRhdGVUZXhGdW5jUGFyYW1ldGVycyh1bnNpZ25lZCBs
b25nIHRhcmdldCwgbG9uZyBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb25nIHdpZHRoLCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZv
cm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlKTsKIAorICAgICAgICAvLyBIZWxwZXIgZnVuY3Rpb24g
dG8gdmFsaWRhdGUgdGhhdCB0aGUgZ2l2ZW4gQXJyYXlCdWZmZXJWaWV3CisgICAgICAgIC8vIGlz
IG9mIHRoZSBjb3JyZWN0IHR5cGUgYW5kIGNvbnRhaW5zIGVub3VnaCBkYXRhIGZvciB0aGUgdGV4
SW1hZ2UgY2FsbC4KKyAgICAgICAgLy8gR2VuZXJhdGVzIEdMIGVycm9yIGFuZCByZXR1cm5zIGZh
bHNlIGlmIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuCisgICAgICAgIGJvb2wgdmFsaWRhdGVUZXhG
dW5jRGF0YShsb25nIHdpZHRoLCBsb25nIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNpZ25lZCBsb25nIHR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUJ1ZmZlclZpZXcqIHBpeGVscyk7CisK
ICAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIG1vZGUgZm9yIGRyYXd7QXJy
YXlzL0VsZW1lbnRzfS4KICAgICAgICAgYm9vbCB2YWxpZGF0ZURyYXdNb2RlKHVuc2lnbmVkIGxv
bmcpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcAkocmV2aXNpb24gNjIwNzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVy
Vmlldy5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAKQEAg
LTExOCw2ICsxMTksNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRh
CiAgICAgICAgICAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRSR0JBOCwKICAgICAgICAgICAgICAg
ICAgICAgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKyAgICAgICAgICAgICAg
ICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LAogICAgICAgICAgICAgICAgICAg
ICB0eXBlLAogICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0FscGhhRG9Q
cmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZywKQEAgLTEzOCw2ICsxNDAsNzIgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YQogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEodW5zaWduZWQgaW50
IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmb3JtYXQsIHVuc2lnbmVkIGludCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB1
bnBhY2tBbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5QnVmZmVyVmlldyogcGl4ZWxzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiYgZGF0
YSkKK3sKKyAgICAvLyBBc3N1bWVzIGZvcm1hdCwgdHlwZSwgZXRjLiBoYXZlIGFscmVhZHkgYmVl
biB2YWxpZGF0ZWQuCisgICAgU291cmNlRGF0YUZvcm1hdCBzb3VyY2VEYXRhRm9ybWF0ID0ga1Nv
dXJjZUZvcm1hdFJHQkE4OworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVU5TSUdORURf
QllURToKKyAgICAgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgY2FzZSBSR0JBOgorICAg
ICAgICAgICAgc291cmNlRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0JBODsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFJHQjoKKyAgICAgICAgICAgIHNvdXJjZURhdGFGb3Jt
YXQgPSBrU291cmNlRm9ybWF0UkdCODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFMUEhBOgorICAgICAgICAgICAgc291cmNlRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRBODsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExVTUlOQU5DRToKKyAgICAgICAgICAg
IHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0Ujg7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBMVU1JTkFOQ0VfQUxQSEE6CisgICAgICAgICAgICBzb3VyY2VEYXRhRm9y
bWF0ID0ga1NvdXJjZUZvcm1hdFJBODsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBVTlNJR05FRF9TSE9SVF81XzVfNV8xOgorICAgICAgICBzb3Vy
Y2VEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQkE1NTUxOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgICAgIHNvdXJjZURhdGFGb3JtYXQg
PSBrU291cmNlRm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVU5TSUdO
RURfU0hPUlRfNV82XzU6CisgICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0
UkdCNTY1OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICAvLyBSZXNpemUgdGhlIG91dHB1dCBidWZmZXIuCisg
ICAgdW5zaWduZWQgbG9uZyBjb21wb25lbnRzUGVyUGl4ZWwsIGJ5dGVzUGVyQ29tcG9uZW50Owor
ICAgIGlmICghY29tcHV0ZUZvcm1hdEFuZFR5cGVQYXJhbWV0ZXJzKGZvcm1hdCwgdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29tcG9uZW50c1BlclBpeGVs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZieXRlc1BlckNvbXBv
bmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB1bnNpZ25lZCBsb25nIGJ5dGVzUGVy
UGl4ZWwgPSBjb21wb25lbnRzUGVyUGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudDsKKyAgICBkYXRh
LnJlc2l6ZSh3aWR0aCAqIGhlaWdodCAqIGJ5dGVzUGVyUGl4ZWwpOworCisgICAgaWYgKCFwYWNr
UGl4ZWxzKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihwaXhlbHMtPmJhc2VBZGRyZXNzKCkpLAorICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VEYXRhRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICB3
aWR0aCwgaGVpZ2h0LCB1bnBhY2tBbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgIGZvcm1h
dCwgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgKHByZW11bHRpcGx5QWxwaGEgPyBrQWxwaGFE
b1ByZW11bHRpcGx5IDoga0FscGhhRG9Ob3RoaW5nKSwKKyAgICAgICAgICAgICAgICAgICAgZGF0
YS5kYXRhKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gVGhlIHBpeGVsIGRhdGEg
aXMgbm93IHRpZ2h0bHkgcGFja2VkLgorICAgIGlmIChmbGlwWSkKKyAgICAgICAgZmxpcFZlcnRp
Y2FsbHkoZGF0YS5kYXRhKCksIHdpZHRoLCBoZWlnaHQsIGJ5dGVzUGVyUGl4ZWwsIDEpOworICAg
IHJldHVybiB0cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpmbGlwVmVydGljYWxs
eSh2b2lkKiBpbWFnZURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LApAQCAtMTUwLDcgKzIxOCw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmZsaXBWZXJ0aWNhbGx5KHYKICAgICB1bnNpZ25lZCBpbnQgdG90YWxSb3dC
eXRlcyA9IHZhbGlkUm93Qnl0ZXM7CiAgICAgdW5zaWduZWQgaW50IHJlbWFpbmRlciA9IHZhbGlk
Um93Qnl0ZXMgJSB1bnBhY2tBbGlnbm1lbnQ7CiAgICAgaWYgKHJlbWFpbmRlcikKLSAgICAgICAg
dG90YWxSb3dCeXRlcyArPSByZW1haW5kZXI7CisgICAgICAgIHRvdGFsUm93Qnl0ZXMgKz0gKHVu
cGFja0FsaWdubWVudCAtIHJlbWFpbmRlcik7CiAgICAgdWludDhfdCogdGVtcFJvdyA9IG5ldyB1
aW50OF90W3ZhbGlkUm93Qnl0ZXNdOwogICAgIHVpbnQ4X3QqIGRhdGEgPSBzdGF0aWNfY2FzdDx1
aW50OF90Kj4oaW1hZ2VEYXRhKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaGVpZ2h0
IC8gMjsgaSsrKSB7CkBAIC0xNzEsNiArMjM5LDE0IEBAIG5hbWVzcGFjZSB7CiAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIC8vIFBpeGVsIHVucGFja2luZyByb3V0aW5lcy4KIAordm9pZCB1bnBhY2tSR0JBOFRv
UkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3sKKyAg
ICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKKyAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJj
ZVsxXTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVsyXTsKKyAgICBkZXN0aW5hdGlvblsz
XSA9IHNvdXJjZVszXTsKK30KKwogdm9pZCB1bnBhY2tSR0I4VG9SR0JBOChjb25zdCB1aW50OF90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQogewogICAgIGRlc3RpbmF0aW9uWzBdID0g
c291cmNlWzBdOwpAQCAtMTg3LDYgKzI2Myw2NyBAQCB2b2lkIHVucGFja0JHUkE4VG9SR0JBOChj
b25zdCB1aW50OF90KiBzCiAgICAgZGVzdGluYXRpb25bM10gPSBzb3VyY2VbM107CiB9CiAKK3Zv
aWQgdW5wYWNrUkdCQTU1NTFUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uKQoreworICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291cmNlWzBdOwor
ICAgIHVpbnQ4X3QgciA9IHBhY2tlZFZhbHVlID4+IDExOworICAgIHVpbnQ4X3QgZyA9IChwYWNr
ZWRWYWx1ZSA+PiA2KSAmIDB4MUY7CisgICAgdWludDhfdCBiID0gKHBhY2tlZFZhbHVlID4+IDEp
ICYgMHgxRjsKKyAgICBkZXN0aW5hdGlvblswXSA9IChyIDw8IDMpIHwgKHIgJiAweDcpOworICAg
IGRlc3RpbmF0aW9uWzFdID0gKGcgPDwgMykgfCAoZyAmIDB4Nyk7CisgICAgZGVzdGluYXRpb25b
Ml0gPSAoYiA8PCAzKSB8IChiICYgMHg3KTsKKyAgICBkZXN0aW5hdGlvblszXSA9IChwYWNrZWRW
YWx1ZSAmIDB4MSkgPyAweEZGIDogMHgwOworfQorCit2b2lkIHVucGFja1JHQkE0NDQ0VG9SR0JB
OChjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikKK3sKKyAgICB1
aW50MTZfdCBwYWNrZWRWYWx1ZSA9IHNvdXJjZVswXTsKKyAgICB1aW50OF90IHIgPSBwYWNrZWRW
YWx1ZSA+PiAxMjsKKyAgICB1aW50OF90IGcgPSAocGFja2VkVmFsdWUgPj4gOCkgJiAweDBGOwor
ICAgIHVpbnQ4X3QgYiA9IChwYWNrZWRWYWx1ZSA+PiA0KSAmIDB4MEY7CisgICAgdWludDhfdCBh
ID0gcGFja2VkVmFsdWUgJiAweDBGOworICAgIGRlc3RpbmF0aW9uWzBdID0gciA8PCA0IHwgcjsK
KyAgICBkZXN0aW5hdGlvblsxXSA9IGcgPDwgNCB8IGc7CisgICAgZGVzdGluYXRpb25bMl0gPSBi
IDw8IDQgfCBiOworICAgIGRlc3RpbmF0aW9uWzNdID0gYSA8PCA0IHwgYTsKK30KKwordm9pZCB1
bnBhY2tSR0I1NjVUb1JHQkE4KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uKQoreworICAgIHVpbnQxNl90IHBhY2tlZFZhbHVlID0gc291cmNlWzBdOworICAgIHVp
bnQ4X3QgciA9IHBhY2tlZFZhbHVlID4+IDExOworICAgIHVpbnQ4X3QgZyA9IChwYWNrZWRWYWx1
ZSA+PiA1KSAmIDB4M0Y7CisgICAgdWludDhfdCBiID0gcGFja2VkVmFsdWUgJiAweDFGOworICAg
IGRlc3RpbmF0aW9uWzBdID0gKHIgPDwgMykgfCAociAmIDB4Nyk7CisgICAgZGVzdGluYXRpb25b
MV0gPSAoZyA8PCAyKSB8IChnICYgMHgzKTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IChiIDw8IDMp
IHwgKGIgJiAweDcpOworICAgIGRlc3RpbmF0aW9uWzNdID0gMHhGRjsKK30KKwordm9pZCB1bnBh
Y2tSOFRvUkdCQTgoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbikK
K3sKKyAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKKyAgICBkZXN0aW5hdGlvblsxXSA9
IHNvdXJjZVswXTsKKyAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZVswXTsKKyAgICBkZXN0aW5h
dGlvblszXSA9IDB4RkY7Cit9CisKK3ZvaWQgdW5wYWNrUkE4VG9SR0JBOChjb25zdCB1aW50OF90
KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0g
c291cmNlWzBdOworICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzBdOworICAgIGRlc3RpbmF0
aW9uWzJdID0gc291cmNlWzBdOworICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzFdOworfQor
Cit2b2lkIHVucGFja0E4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uKQoreworICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOworICAgIGRlc3RpbmF0aW9u
WzFdID0gMHgwOworICAgIGRlc3RpbmF0aW9uWzJdID0gMHgwOworICAgIGRlc3RpbmF0aW9uWzNd
ID0gc291cmNlWzBdOworfQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFBpeGVsIHBhY2tpbmcgcm91
dGluZXMuCiAvLwpAQCAtNDAxLDUxICs1MzgsMTQxIEBAIHZvaWQgcGFja1JHQkE4VG9VbnNpZ25l
ZFNob3J0NTY1VW5tdWx0aXAKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCiAvLyBUaGlzIGlz
IHVzZWQgd2hlbmV2ZXIgdW5wYWNraW5nIGlzIG5lY2Vzc2FyeTsgaS5lLiwgdGhlIHNvdXJjZSBk
YXRhCi0vLyBpcyBub3QgaW4gUkdCQTggZm9ybWF0LgorLy8gaXMgbm90IGluIFJHQkE4IGZvcm1h
dCwgb3IgdGhlIHVucGFjayBhbGlnbm1lbnQgc3BlY2lmaWVzIHRoYXQgcm93cworLy8gYXJlIG5v
dCB0aWdodGx5IHBhY2tlZC4KIHRlbXBsYXRlPHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1l
IERlc3RUeXBlLAogICAgICAgICAgdm9pZCB1bnBhY2tpbmdGdW5jKGNvbnN0IFNvdXJjZVR5cGUq
LCB1aW50OF90KiksCiAgICAgICAgICB2b2lkIHBhY2tpbmdGdW5jKGNvbnN0IHVpbnQ4X3QqLCBE
ZXN0VHlwZSopPgogc3RhdGljIHZvaWQgZG9VbnBhY2tpbmdBbmRQYWNraW5nKGNvbnN0IFNvdXJj
ZVR5cGUqIHNvdXJjZURhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IG51bUVsZW1lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgaGVpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclJvdywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0VHlwZSogZGVzdGluYXRpb25EYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpCiB7Ci0gICAgY29uc3QgU291cmNlVHlwZSogZW5kUG9pbnRlciA9IHNv
dXJjZURhdGEgKyBudW1FbGVtZW50czsKLSAgICB1aW50OF90IHRlbXBvcmFyeVJHQkFEYXRhWzRd
OwotICAgIHdoaWxlIChzb3VyY2VEYXRhIDwgZW5kUG9pbnRlcikgewotICAgICAgICB1bnBhY2tp
bmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFEYXRhKTsKLSAgICAgICAgcGFja2luZ0Z1
bmModGVtcG9yYXJ5UkdCQURhdGEsIGRlc3RpbmF0aW9uRGF0YSk7Ci0gICAgICAgIHNvdXJjZURh
dGEgKz0gc291cmNlRWxlbWVudHNQZXJQaXhlbDsKLSAgICAgICAgZGVzdGluYXRpb25EYXRhICs9
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbDsKKyAgICBpZiAoIXNvdXJjZUVsZW1lbnRzUGVy
Um93KSB7CisgICAgICAgIHVuc2lnbmVkIGludCBudW1FbGVtZW50cyA9IHdpZHRoICogaGVpZ2h0
ICogc291cmNlRWxlbWVudHNQZXJQaXhlbDsKKyAgICAgICAgY29uc3QgU291cmNlVHlwZSogZW5k
UG9pbnRlciA9IHNvdXJjZURhdGEgKyBudW1FbGVtZW50czsKKyAgICAgICAgdWludDhfdCB0ZW1w
b3JhcnlSR0JBRGF0YVs0XTsKKyAgICAgICAgd2hpbGUgKHNvdXJjZURhdGEgPCBlbmRQb2ludGVy
KSB7CisgICAgICAgICAgICB1bnBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIHRlbXBvcmFyeVJHQkFE
YXRhKTsKKyAgICAgICAgICAgIHBhY2tpbmdGdW5jKHRlbXBvcmFyeVJHQkFEYXRhLCBkZXN0aW5h
dGlvbkRhdGEpOworICAgICAgICAgICAgc291cmNlRGF0YSArPSBzb3VyY2VFbGVtZW50c1BlclBp
eGVsOworICAgICAgICAgICAgZGVzdGluYXRpb25EYXRhICs9IGRlc3RpbmF0aW9uRWxlbWVudHNQ
ZXJQaXhlbDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHVpbnQ4X3QgdGVtcG9y
YXJ5UkdCQURhdGFbNF07CisgICAgICAgIGZvciAodW5zaWduZWQgaW50IHkgPSAwOyB5IDwgaGVp
Z2h0OyArK3kpIHsKKyAgICAgICAgICAgIGNvbnN0IFNvdXJjZVR5cGUqIGN1cnJlbnRTb3VyY2Ug
PSBzb3VyY2VEYXRhOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgeCA9IDA7IHggPCB3
aWR0aDsgKyt4KSB7CisgICAgICAgICAgICAgICAgdW5wYWNraW5nRnVuYyhjdXJyZW50U291cmNl
LCB0ZW1wb3JhcnlSR0JBRGF0YSk7CisgICAgICAgICAgICAgICAgcGFja2luZ0Z1bmModGVtcG9y
YXJ5UkdCQURhdGEsIGRlc3RpbmF0aW9uRGF0YSk7CisgICAgICAgICAgICAgICAgY3VycmVudFNv
dXJjZSArPSBzb3VyY2VFbGVtZW50c1BlclBpeGVsOworICAgICAgICAgICAgICAgIGRlc3RpbmF0
aW9uRGF0YSArPSBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWw7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBzb3VyY2VEYXRhICs9IHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICB9
CiAgICAgfQogfQogCi0vLyBUaGlzIGhhbmRsZXMgYWxsIGNvbnZlcnNpb25zIHdpdGggYSBmYXN0
ZXIgcGF0aCBmb3IgUkdCQTggc291cmNlIGRhdGEuCi10ZW1wbGF0ZTx0eXBlbmFtZSBTb3VyY2VU
eXBlLCB0eXBlbmFtZSBEZXN0VHlwZSwgdm9pZCBwYWNraW5nRnVuYyhjb25zdCBTb3VyY2VUeXBl
KiwgRGVzdFR5cGUqKT4KLXN0YXRpYyB2b2lkIGRvUGFja2luZyhjb25zdCBTb3VyY2VUeXBlKiBz
b3VyY2VEYXRhLAordGVtcGxhdGU8dHlwZW5hbWUgU291cmNlVHlwZT4KK3N0YXRpYyB2b2lkIGNv
bXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzKHVuc2lnbmVkIGludCB3aWR0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlc1BlclBpeGVsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVucGFj
a0FsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCogc291cmNlRWxlbWVudHNQZXJQaXhlbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCogc291cmNlRWxlbWVudHNQZXJSb3cpCit7Cisg
ICAgdW5zaWduZWQgaW50IGVsZW1lbnRTaXplSW5CeXRlcyA9IHNpemVvZihTb3VyY2VUeXBlKTsK
KyAgICBBU1NFUlQoZWxlbWVudFNpemVJbkJ5dGVzIDw9IGJ5dGVzUGVyUGl4ZWwpOworICAgIHVu
c2lnbmVkIGludCB2YWxpZFJvd0J5dGVzID0gd2lkdGggKiBieXRlc1BlclBpeGVsOworICAgIHVu
c2lnbmVkIGludCB0b3RhbFJvd0J5dGVzID0gdmFsaWRSb3dCeXRlczsKKyAgICBpZiAodW5wYWNr
QWxpZ25tZW50KSB7CisgICAgICAgIHVuc2lnbmVkIGludCByZW1haW5kZXIgPSB2YWxpZFJvd0J5
dGVzICUgdW5wYWNrQWxpZ25tZW50OworICAgICAgICBpZiAocmVtYWluZGVyKQorICAgICAgICAg
ICAgdG90YWxSb3dCeXRlcyArPSAodW5wYWNrQWxpZ25tZW50IC0gcmVtYWluZGVyKTsKKyAgICB9
CisgICAgKnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwgPSBieXRlc1BlclBpeGVsIC8gZWxlbWVudFNp
emVJbkJ5dGVzOworICAgIGlmICh2YWxpZFJvd0J5dGVzID09IHRvdGFsUm93Qnl0ZXMpCisgICAg
ICAgICpzb3VyY2VFbGVtZW50c1BlclJvdyA9IDA7CisgICAgZWxzZQorICAgICAgICAqc291cmNl
RWxlbWVudHNQZXJSb3cgPSB0b3RhbFJvd0J5dGVzIC8gZWxlbWVudFNpemVJbkJ5dGVzOworfQor
CisvLyBUaGlzIGhhbmRsZXMgYWxsIGNvbnZlcnNpb25zIHdpdGggYSBmYXN0ZXIgcGF0aCBmb3Ig
dGlnaHRseSBwYWNrZWQgUkdCQTggc291cmNlIGRhdGEuCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZXN0
VHlwZSwgdm9pZCBwYWNraW5nRnVuYyhjb25zdCB1aW50OF90KiwgRGVzdFR5cGUqKT4KK3N0YXRp
YyB2b2lkIGRvUGFja2luZyhjb25zdCB2b2lkKiBzb3VyY2VEYXRhLAogICAgICAgICAgICAgICAg
ICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VEYXRhRm9ybWF0IHNvdXJjZURhdGFGb3Jt
YXQsCi0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bUVsZW1lbnRzLAotICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLAor
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgRGVz
dFR5cGUqIGRlc3RpbmF0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewogICAgIHN3aXRjaCAoc291cmNlRGF0
YUZvcm1hdCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0JB
ODogewotICAgICAgICBjb25zdCBTb3VyY2VUeXBlKiBlbmRQb2ludGVyID0gc291cmNlRGF0YSAr
IG51bUVsZW1lbnRzOwotICAgICAgICB3aGlsZSAoc291cmNlRGF0YSA8IGVuZFBvaW50ZXIpIHsK
LSAgICAgICAgICAgIHBhY2tpbmdGdW5jKHNvdXJjZURhdGEsIGRlc3RpbmF0aW9uRGF0YSk7Ci0g
ICAgICAgICAgICBzb3VyY2VEYXRhICs9IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWw7Ci0gICAgICAg
ICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsOworICAg
ICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQ
ZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRo
LCA0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291
cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBpZiAoIXNvdXJjZUVsZW1lbnRzUGVyUm93KSB7
CisgICAgICAgICAgICBjb25zdCB1aW50OF90KiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4oc291cmNlRGF0YSk7CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtRWxlbWVu
dHMgPSB3aWR0aCAqIGhlaWdodCAqIDQ7CisgICAgICAgICAgICBjb25zdCB1aW50OF90KiBlbmRQ
b2ludGVyID0gc291cmNlICsgbnVtRWxlbWVudHM7CisgICAgICAgICAgICB3aGlsZSAoc291cmNl
IDwgZW5kUG9pbnRlcikgeworICAgICAgICAgICAgICAgIHBhY2tpbmdGdW5jKHNvdXJjZSwgZGVz
dGluYXRpb25EYXRhKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UgKz0gc291cmNlRWxlbWVudHNQ
ZXJQaXhlbDsKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkRhdGEgKz0gZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JB
OFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNl
RGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I4OiB7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2lu
ZzxTb3VyY2VUeXBlLCBEZXN0VHlwZSwgdW5wYWNrUkdCOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihz
b3VyY2VEYXRhLCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRp
b25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICB1bnNpZ25lZCBp
bnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAg
IGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAzLCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJS
b3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVu
cGFja1JHQjhUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVy
UGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6a1NvdXJjZUZvcm1hdEJHUkE4OiB7Ci0gICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzxT
b3VyY2VUeXBlLCBEZXN0VHlwZSwgdW5wYWNrQkdSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc291
cmNlRGF0YSwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgdW5zaWduZWQgaW50
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93
KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBh
Y2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
c291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJj
ZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQ
aXhlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjprU291cmNlRm9ybWF0UkdCQTU1NTE6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5j
cmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVu
dCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAg
ICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE1
NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291
cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhl
bCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0UkdCQTQ0NDQ6IHsKKyAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1l
bnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OworICAgICAgICBjb21wdXRlSW5jcmVt
ZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
JnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CisgICAgICAg
IGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE0NDQ0
VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNl
RGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1l
bnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291
cmNlRm9ybWF0UkdCNTY1OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0ZUluY3JlbWVudFBh
cmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1Vu
cGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0I1NjVUb1JHQkE4
LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwg
d2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3Jt
YXRSODogeworICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291
cmNlRWxlbWVudHNQZXJSb3c7CisgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVp
bnQ4X3Q+KHdpZHRoLCAxLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOworICAgICAgICBkb1VucGFja2luZ0FuZFBh
Y2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1I4VG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0
YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSQTg6IHsKKyAgICAgICAg
dW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
OworICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgMiwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVs
ZW1lbnRzUGVyUm93KTsKKyAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERl
c3RUeXBlLCB1bnBhY2tSQThUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEE4OiB7CisgICAgICAgIHVuc2lnbmVkIGludCBzb3Vy
Y2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKKyAgICAgICAgY29tcHV0
ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDEsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7Cisg
ICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90LCBEZXN0VHlwZSwgdW5wYWNrQThU
b1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpAQCAtNDU1LDQ2ICs2ODIsNDUgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRGF0YUZvcm1hdCBzb3VyY2VE
YXRhRm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBkZXN0aW5hdGlvbkZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uVHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWxwaGFPcCBhbHBoYU9wLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkKiBkZXN0aW5hdGlvbkRhdGEpCiB7Ci0gICAgdW5zaWdu
ZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwgPSA0OwotICAgIHVuc2lnbmVkIGludCBudW1F
bGVtZW50cyA9IHdpZHRoICogaGVpZ2h0ICogc291cmNlRWxlbWVudHNQZXJQaXhlbDsKICAgICBz
d2l0Y2ggKGRlc3RpbmF0aW9uVHlwZSkgewogICAgIGNhc2UgVU5TSUdORURfQllURTogewogICAg
ICAgICB1aW50OF90KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkZXN0aW5h
dGlvbkRhdGEpOwotICAgICAgICBpZiAoc291cmNlRGF0YUZvcm1hdCA9PSBrU291cmNlRm9ybWF0
UkdCQTggJiYgZGVzdGluYXRpb25Gb3JtYXQgPT0gUkdCQSAmJiBhbHBoYU9wID09IGtBbHBoYURv
Tm90aGluZykgeworICAgICAgICBpZiAoc291cmNlRGF0YUZvcm1hdCA9PSBrU291cmNlRm9ybWF0
UkdCQTggJiYgZGVzdGluYXRpb25Gb3JtYXQgPT0gUkdCQSAmJiBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQgPD0gNCAmJiBhbHBoYU9wID09IGtBbHBoYURvTm90aGluZykgewogICAgICAgICAgICAgLy8g
Tm8gY29udmVyc2lvbiBuZWNlc3NhcnkuCi0gICAgICAgICAgICBtZW1jcHkoZGVzdGluYXRpb25E
YXRhLCBzb3VyY2VEYXRhLCBudW1FbGVtZW50cyk7CisgICAgICAgICAgICBtZW1jcHkoZGVzdGlu
YXRpb25EYXRhLCBzb3VyY2VEYXRhLCB3aWR0aCAqIGhlaWdodCAqIDQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewog
ICAgICAgICBjYXNlIFJHQjoKICAgICAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAg
ICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVp
bnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZv
cm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAz
KTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0I4Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgICAgICBkb1BhY2tp
bmc8dWludDhfdCwgdWludDhfdCwgcGFja1JHQkE4VG9SR0I4UHJlbXVsdGlwbHk+KHNvdXJjZURh
dGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCBkZXN0aW5hdGlvbiwgMyk7CisgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBh
Y2tSR0JBOFRvUkdCOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAzKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5
OgotICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCB1aW50OF90LCBwYWNrUkdCQThU
b1JHQjhVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50
cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDMpOworICAgICAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQjhVbm11bHRpcGx5Pihzb3VyY2VE
YXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsIGRlc3RpbmF0aW9uLCAzKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJHQkE6CiAgICAgICAgICAgICBz
d2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAg
ICAgICAgICAgICAgIEFTU0VSVChzb3VyY2VEYXRhRm9ybWF0ICE9IGtTb3VyY2VGb3JtYXRSR0JB
OCk7IC8vIEhhbmRsZWQgYWJvdmUgd2l0aCBmYXN0IGNhc2UuCi0gICAgICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQTg+KHNvdXJjZURhdGEsIHNv
dXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0
aW5hdGlvbiwgNCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURhdGFGb3JtYXQgIT0g
a1NvdXJjZUZvcm1hdFJHQkE4IHx8IHNvdXJjZVVucGFja0FsaWdubWVudCA+IDQpOyAvLyBIYW5k
bGVkIGFib3ZlIHdpdGggZmFzdCBjYXNlLgorICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JHQkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToK
LSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwgcGFja1JHQkE4VG9S
R0JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50
cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDQpOworICAgICAgICAgICAg
ICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdCQThUb1JHQkE4UHJlbXVsdGlwbHk+KHNvdXJj
ZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgZGVzdGluYXRpb24sIDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVp
bnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBz
b3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVz
dGluYXRpb24sIDQpOworICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNrUkdC
QThUb1JHQkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTA0LDcgKzczMCw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAgIC8vIEZyb20gdGhlIGRlc2t0b3Ag
T3BlbkdMIGNvbnZlcnNpb24gcnVsZXMgKE9wZW5HTCAyLjEKICAgICAgICAgICAgIC8vIHNwZWNp
ZmljYXRpb24sIFRhYmxlIDMuMTUpLCB0aGUgYWxwaGEgY2hhbm5lbCBpcyBjaG9zZW4KICAgICAg
ICAgICAgIC8vIGZyb20gdGhlIFJHQkEgZGF0YS4KLSAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCB1aW50OF90LCBwYWNrUkdCQThUb0E4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0
LCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOwor
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvQTg+KHNvdXJjZURhdGEs
IHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwg
ZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTFVNSU5B
TkNFOgogICAgICAgICAgICAgLy8gRnJvbSB0aGUgZGVza3RvcCBPcGVuR0wgY29udmVyc2lvbiBy
dWxlcyAoT3BlbkdMIDIuMQpAQCAtNTEyLDEzICs3MzgsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgICAgICAgICAgLy8gZnJvbSB0aGUgUkdCQSBkYXRh
LgogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgICAgICBjYXNlIGtBbHBo
YURvTm90aGluZzoKLSAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDhfdCwg
cGFja1JHQkE4VG9SOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgICAg
ICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOD4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlv
biwgMSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURv
UHJlbXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3Qs
IHBhY2tSR0JBOFRvUjhQcmVtdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
bnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAxKTsKKyAg
ICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOFByZW11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5OgotICAgICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50OF90LCB1aW50OF90LCBwYWNrUkdCQThUb1I4VW5tdWx0aXBseT4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IGRlc3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFj
a1JHQkE4VG9SOFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRo
LCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC01
MjgsMTMgKzc1NCwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0
CiAgICAgICAgICAgICAvLyBhcmUgY2hvc2VuIGZyb20gdGhlIFJHQkEgZGF0YS4KICAgICAgICAg
ICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6
Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRv
UkE4Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDIpOworICAgICAgICAgICAgICAgIGRvUGFja2lu
Zzx1aW50OF90LCBwYWNrUkdCQThUb1JBOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwg
d2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMik7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVsdGlw
bHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JB
OFRvUkE4UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1l
bnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMik7CisgICAgICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4UHJlbXVsdGlwbHk+KHNvdXJj
ZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdu
bWVudCwgZGVzdGluYXRpb24sIDIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6Ci0gICAgICAgICAgICAgICAgZG9QYWNraW5nPHVp
bnQ4X3QsIHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291
cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3Rp
bmF0aW9uLCAyKTsKKyAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4
VG9SQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTQ1LDEz
ICs3NzEsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAg
ICAgICB1aW50MTZfdCogZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDx1aW50MTZfdCo+KGRlc3Rp
bmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewogICAgICAgICBjYXNlIGtB
bHBoYURvTm90aGluZzoKLSAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCB1aW50MTZfdCwg
cGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0ND4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1h
dCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAxKTsK
KyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0
NDQ0ND4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNl
VW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVp
bnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0UHJlbXVsdGlwbHk+
KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2
X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRQcmVtdWx0aXBseT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBk
ZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBrQWxwaGFE
b1VubXVsdGlwbHk6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBh
Y2tSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VE
YXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRp
b24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2ln
bmVkU2hvcnQ0NDQ0VW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTU2MCwxMyArNzg2
LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAg
dWludDE2X3QqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8dWludDE2X3QqPihkZXN0aW5hdGlv
bkRhdGEpOwogICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsKICAgICAgICAgY2FzZSBrQWxwaGFE
b05vdGhpbmc6Ci0gICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgdWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDU1NTE+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51
bUVsZW1lbnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAg
ICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTE+
KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKLSAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90
LCB1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MVByZW11bHRpcGx5Pihzb3Vy
Y2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1FbGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBw
YWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NTUxUHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJj
ZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGlu
YXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11
bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdC
QThUb1Vuc2lnbmVkU2hvcnQ1NTUxVW5tdWx0aXBseT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZv
cm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRlc3RpbmF0aW9uLCAx
KTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNo
b3J0NTU1MVVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC01NzUsMTMgKzgwMSwxMyBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgIHVpbnQx
Nl90KiBkZXN0aW5hdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQxNl90Kj4oZGVzdGluYXRpb25EYXRh
KTsKICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3Ro
aW5nOgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdCQThU
b1Vuc2lnbmVkU2hvcnQ1NjU+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIG51bUVsZW1l
bnRzLCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBkZXN0aW5hdGlvbiwgMSk7CisgICAgICAgICAg
ICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tSR0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291cmNl
RGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25t
ZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBr
QWxwaGFEb1ByZW11bHRpcGx5OgotICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQx
Nl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVQcmVtdWx0aXBseT4oc291cmNlRGF0YSwg
c291cmNlRGF0YUZvcm1hdCwgbnVtRWxlbWVudHMsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIGRl
c3RpbmF0aW9uLCAxKTsKKyAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4
VG9VbnNpZ25lZFNob3J0NTY1UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5Ogot
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2ln
bmVkU2hvcnQ1NjVVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCBudW1F
bGVtZW50cywgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgZGVzdGluYXRpb24sIDEpOworICAgICAg
ICAgICAgZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11
bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3Vy
Y2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNjIwNzMpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTUw
MCw2ICs1MDAsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBwcmVtdWx0aXBseUFscGhhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKTsKIAorICAgICAgICAvLyBIZWxwZXIgZnVuY3Rp
b24gd2hpY2ggZXh0cmFjdHMgdGhlIHVzZXItc3VwcGxpZWQgdGV4dHVyZQorICAgICAgICAvLyBk
YXRhLCBhcHBseWluZyB0aGUgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgcGFyYW1ldGVycy4K
KyAgICAgICAgLy8gSWYgdGhlIGRhdGEgaXMgbm90IHRpZ2h0bHkgcGFja2VkIGFjY29yZGluZyB0
byB0aGUgcGFzc2VkCisgICAgICAgIC8vIHVucGFja0FsaWdubWVudCwgdGhlIG91dHB1dCBkYXRh
IHdpbGwgYmUgdGlnaHRseSBwYWNrZWQuCisgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzdWNj
ZXNzZnVsLCBmYWxzZSBpZiBhbnkgZXJyb3Igb2NjdXJyZWQuCisgICAgICAgIGJvb2wgZXh0cmFj
dFRleHR1cmVEYXRhKHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZvcm1hdCwgdW5zaWdu
ZWQgaW50IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCB1bnBhY2tBbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQXJyYXlCdWZmZXJWaWV3KiBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFZlY3Rvcjx1aW50OF90PiYgZGF0YSk7CisKICAgICAgICAgLy8gRmxpcHMgdGhlIGdp
dmVuIGltYWdlIGRhdGEgdmVydGljYWxseSwgaW4tcGxhY2UuCiAgICAgICAgIHZvaWQgZmxpcFZl
cnRpY2FsbHkodm9pZCogaW1hZ2VEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCB3aWR0aCwKQEAgLTUxNCw3ICs1MjYsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBlbnVtIFNvdXJjZURhdGFGb3JtYXQgewogICAgICAgICAgICAga1NvdXJjZUZv
cm1hdFJHQkE4LAogICAgICAgICAgICAga1NvdXJjZUZvcm1hdFJHQjgsCi0gICAgICAgICAgICBr
U291cmNlRm9ybWF0QkdSQTgKKyAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRCR1JBOCwKKyAgICAg
ICAgICAgIGtTb3VyY2VGb3JtYXRSR0JBNTU1MSwKKyAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRS
R0JBNDQ0NCwKKyAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRSR0I1NjUsCisgICAgICAgICAgICBr
U291cmNlRm9ybWF0UjgsCisgICAgICAgICAgICBrU291cmNlRm9ybWF0UkE4LAorICAgICAgICAg
ICAga1NvdXJjZUZvcm1hdEE4CiAgICAgICAgIH07CiAKICAgICAgICAgLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CkBAIC03NTgsMTIgKzc3NiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8g
SGVscGVyIGZvciBnZXRJbWFnZURhdGEgd2hpY2ggaW1wbGVtZW50cyBwYWNraW5nIG9mIHBpeGVs
CiAgICAgICAgIC8vIGRhdGEgaW50byB0aGUgc3BlY2lmaWVkIE9wZW5HTCBkZXN0aW5hdGlvbiBm
b3JtYXQgYW5kIHR5cGUuCi0gICAgICAgIC8vIFNvdXJjZSBkYXRhIG11c3QgYmUgaW4gUkdCQSBm
b3JtYXQgd2l0aCBubyBnYXBzIGJldHdlZW4KLSAgICAgICAgLy8gcm93cy4gRGVzdGluYXRpb24g
ZGF0YSB3aWxsIGhhdmUgbm8gZ2FwcyBiZXR3ZWVuIHJvd3MuCisgICAgICAgIC8vIEEgc291cmNl
VW5wYWNrQWxpZ25tZW50IG9mIHplcm8gaW5kaWNhdGVzIHRoYXQgdGhlIHNvdXJjZQorICAgICAg
ICAvLyBkYXRhIGlzIHRpZ2h0bHkgcGFja2VkLiBOb24temVybyB2YWx1ZXMgbWF5IHRha2UgYSBz
bG93IHBhdGguCisgICAgICAgIC8vIERlc3RpbmF0aW9uIGRhdGEgd2lsbCBoYXZlIG5vIGdhcHMg
YmV0d2VlbiByb3dzLgogICAgICAgICBib29sIHBhY2tQaXhlbHMoY29uc3QgdWludDhfdCogc291
cmNlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZURhdGFGb3JtYXQgc291cmNl
RGF0YUZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlVW5wYWNrQWxpZ25tZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uRm9ybWF0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlc3RpbmF0aW9uVHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIEFscGhhT3AgYWxwaGFPcCwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24g
NjIwNzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgIGlmICghcHJlbXVsdGlwbHlBbHBoYSAmJiBo
YXNBbHBoYUNoYW5uZWwpCiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGZldGNoIHRoZSBpbWFnZSBk
YXRhIGJlZm9yZSB0aGUgcHJlbXVsdGlwbGljYXRpb24gc3RlcC4KICAgICAgICAgbmVlZGVkQWxw
aGFPcCA9IGtBbHBoYURvVW5tdWx0aXBseTsKLSAgICByZXR1cm4gcGFja1BpeGVscyh0ZW1wVmVj
dG9yLmRhdGEoKSwga1NvdXJjZUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LAorICAgIHJldHVy
biBwYWNrUGl4ZWxzKHRlbXBWZWN0b3IuZGF0YSgpLCBrU291cmNlRm9ybWF0UkdCQTgsIHdpZHRo
LCBoZWlnaHQsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLCBuZWVkZWRB
bHBoYU9wLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHQzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCShyZXZpc2lv
biA2MjA3MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
M0RRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MzcsNyArMTYzNyw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgbmVlZGVkQWxwaGFPcCA9IGtB
bHBoYURvVW5tdWx0aXBseTsKICAgICBRSW1hZ2UgbmF0aXZlSW1hZ2UgPSBuYXRpdmVQaXhtYXAt
PnRvSW1hZ2UoKS5jb252ZXJ0VG9Gb3JtYXQoUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKICAgICBv
dXRwdXRWZWN0b3IucmVzaXplKG5hdGl2ZUltYWdlLmJ5dGVDb3VudCgpKTsKLSAgICByZXR1cm4g
cGFja1BpeGVscyhuYXRpdmVJbWFnZS5yZ2JTd2FwcGVkKCkuYml0cygpLCBrU291cmNlRm9ybWF0
UkdCQTgsIGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCksCisgICAgcmV0dXJuIHBhY2tQ
aXhlbHMobmF0aXZlSW1hZ2UucmdiU3dhcHBlZCgpLmJpdHMoKSwga1NvdXJjZUZvcm1hdFJHQkE4
LCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLAogICAgICAgICAgICAgICAgICAg
ICAgIGZvcm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEoKSk7CiB9
CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQz
RFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9H
cmFwaGljc0NvbnRleHQzRFNraWEuY3BwCShyZXZpc2lvbiA2MjA3MykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0
YShJbWEKICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCiAgICAgICAgIC8vIEZJWE1FOiBtdXN0
IGZldGNoIHRoZSBpbWFnZSBkYXRhIGJlZm9yZSB0aGUgcHJlbXVsdGlwbGljYXRpb24gc3RlcAog
ICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhhRG9Vbm11bHRpcGx5OwotICAgIHJldHVybiBw
YWNrUGl4ZWxzKHBpeGVscywga1NvdXJjZUZvcm1hdEJHUkE4LCBza2lhSW1hZ2UtPndpZHRoKCks
IGhlaWdodCwKKyAgICByZXR1cm4gcGFja1BpeGVscyhwaXhlbHMsIGtTb3VyY2VGb3JtYXRCR1JB
OCwgc2tpYUltYWdlLT53aWR0aCgpLCBoZWlnaHQsIDAsCiAgICAgICAgICAgICAgICAgICAgICAg
Zm9ybWF0LCB0eXBlLCBuZWVkZWRBbHBoYU9wLCBvdXRwdXRWZWN0b3IuZGF0YSgpKTsKIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gNjIwNzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNi0yOCAgS2VubmV0aCBSdXNzZWxsICA8
a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBVTlBBQ0tfRkxJUF9ZX1dFQkdMIGFuZCBVTlBBQ0tfUFJFTVVMVElQ
TFlfQUxQSEFfV0VCR0wgZm9yIHRleEltYWdlMkQgdGFraW5nIEFycmF5QnVmZmVyVmlldworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzOTgKKworICAg
ICAgICBBZGRlZCBzdXBwb3J0IGZvciBVTlBBQ0tfRkxJUF9ZX1dFQkdMIGFuZCBVTlBBQ0tfUFJF
TVVMVElQTFlfQUxQSEFfV0VCR0wgcGl4ZWwgc3RvcmUKKyAgICAgICAgcGFyYW1ldGVycyB0byB0
ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGVudHJ5IHBvaW50cyB0YWtpbmcgQXJyYXlCdWZm
ZXJWaWV3LgorICAgICAgICBNb3JlIGNsZWFubHkgc2VwYXJhdGVkIHRoZSB1bnBhY2tpbmcgYW5k
IHBhY2tpbmcgcGhhc2VzIG9mIHVzZXItc3VwcGxpZWQgcGl4ZWwgZGF0YQorICAgICAgICBpbiBH
cmFwaGljc0NvbnRleHQzRCwgYW5kIGFkZGVkIHN1cHBvcnQgZm9yIHVucGFjayBhbGlnbm1lbnQu
IEZpeGVkIGJ1ZyBpbiBoYW5kbGluZworICAgICAgICBvZiB1bnBhY2tBbGlnbm1lbnQgaW4gR3Jh
cGhpY3NDb250ZXh0M0Q6OmZsaXBWZXJ0aWNhbGx5LiBOZWNlc3NhcmlseSBhZGRlZAorICAgICAg
ICB2YWxpZGF0aW9uIG9mIHRoZSBhbW91bnQgb2YgZGF0YSBwYXNzZWQgdG8gdGV4SW1hZ2UyRCBh
bmQgdGV4U3ViSW1hZ2UyRC4gTW9kaWZpZWQKKyAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvdGV4
LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwgdG8gaW5jbHVkZSBwcmVtdWx0aXBsaWVk
IGFscGhhCisgICAgICAgIHRlc3RzIGZvciByZWxldmFudCBzb3VyY2UgZm9ybWF0czsgYWRkZWQg
bmV3IHRlc3Qgd2hpY2ggZXhlcmNpc2VzIGFsbCBjb21iaW5hdGlvbnMKKyAgICAgICAgb2YgVU5Q
QUNLX0ZMSVBfWV9XRUJHTCwgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBhbmQgVU5Q
QUNLX0FMSUdOTUVOVCBwaXhlbAorICAgICAgICBzdG9yZSBwYXJhbWV0ZXJzLgorCisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJh
eS1idWZmZXItdmlldy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFz
L3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXktYnVmZmVyLXZpZXcu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgt
Zm9ybWF0LWFuZC10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbDoKKwogMjAxMC0wNi0yOCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFn
ZS0yZC13aXRoLWFycmF5LWJ1ZmZlci12aWV3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OTAgQEAKKyAKK1ZlcmlmaWVzIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQg
Y29kZSBwYXRocyB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAzOTggOiBTdXBwb3J0IFVOUEFDS19GTElQX1lfV0VCR0wgYW5kIFVOUEFD
S19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBmb3IgdGV4SW1hZ2UyRCB0YWtpbmcgQXJyYXlCdWZm
ZXJWaWV3CitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tB
bGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBh
Y2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tB
bGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBh
Y2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tB
bGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBh
Y2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFj
a0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBhY2tB
bGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0Fs
aWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9CWVRFLCB1bnBh
Y2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX0JZVEUsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwg
cHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81
XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleElt
YWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0x
LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBp
eGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNT
IHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJ
R05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVu
cGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdl
MkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBm
bGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lH
TkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVs
dGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNv
cnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xv
cgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8x
LCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1Yklt
YWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0x
LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lH
TkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0
aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVu
cGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hl
Y2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcg
dG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxp
cFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlB
bHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0
aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFj
a0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD0yLCBmbGlw
WT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQ
QVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVs
IGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05F
RF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVu
cGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlw
WT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlB
bHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVz
dGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tB
bGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JU
XzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhh
PWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0Fs
aWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcg
Ym90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBp
eGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdp
dGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxpcFk9
dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlB
bHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0
aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0Fs
aWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBp
eGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNv
cnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81
XzVfNV8xLCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10
cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitD
aGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRl
eEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVu
dD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBl
PVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBw
cmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzVf
NV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1m
YWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgor
Q2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0
ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF81XzVfNV8xLCB1bnBhY2tBbGln
bm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0
b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzVfNV81XzEsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxz
ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRf
NF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZh
bHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitD
aGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRl
eEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVu
dD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9t
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQ
QVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1V
TlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJl
bXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQs
IHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1Yklt
YWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0x
LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVO
U0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0xLCBmbGlwWT1mYWxzZSwgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRf
NF80LCB1bnBhY2tBbGlnbm1lbnQ9MSwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1
YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVu
dD0xLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVO
U0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQs
IHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQor
Q2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tp
bmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFn
ZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9Miwg
ZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVu
cGFja0FsaWdubWVudD0yLCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVj
a2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0
b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdl
MkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD0yLCBm
bGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVs
CitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBp
eGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJ
R05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9MiwgZmxpcFk9dHJ1ZSwgcHJlbXVs
dGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQs
IHVucGFja0FsaWdubWVudD0yLCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdl
MkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBm
bGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJl
Y3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgor
VGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBh
Y2tBbGlnbm1lbnQ9NCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NI
T1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFs
cGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0
aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFj
a0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9NCwgZmxp
cFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVE
X1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD00LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFj
a0FsaWdubWVudD04LCBmbGlwWT10cnVlLCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNT
IHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9S
VF80XzRfNF80LCB1bnBhY2tBbGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBo
YT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdu
bWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0
b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwK
K1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0
eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT10cnVl
LCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCB0eXBlPVVOU0lHTkVEX1NIT1JU
XzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1mYWxzZSwgcHJlbXVsdGlwbHlBbHBo
YT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xv
cgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGlu
ZyB0ZXhTdWJJbWFnZTJEIHdpdGggdHlwZT1VTlNJR05FRF9TSE9SVF80XzRfNF80LCB1bnBhY2tB
bGlnbm1lbnQ9OCwgZmxpcFk9dHJ1ZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBi
b3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCB0eXBlPVVOU0lHTkVEX1NIT1JUXzRfNF80XzQsIHVucGFja0FsaWdubWVudD04LCBmbGlwWT1m
YWxzZSwgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFu
ZC1zdWItaW1hZ2UtMmQtd2l0aC1hcnJheS1idWZmZXItdmlldy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtYXJyYXktYnVmZmVyLXZpZXcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtYXJyYXkt
YnVmZmVyLXZpZXcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyODAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsczNkLmpzIj4gPC9zY3Jp
cHQ+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRy
aWJ1dGUgdmVjMyBnX1Bvc2l0aW9uOworYXR0cmlidXRlIHZlYzIgZ19UZXhDb29yZDA7CisKK3Zh
cnlpbmcgdmVjMiB0ZXhDb29yZDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQoZ19Qb3NpdGlvbi54LCBnX1Bvc2l0aW9uLnksIGdfUG9zaXRpb24ueiwgMS4wKTsKKyAg
ICB0ZXhDb29yZCA9IGdfVGV4Q29vcmQwOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZz
aGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgordW5pZm9ybSBzYW1wbGVyMkQgdGV4
OwordmFyeWluZyB2ZWMyIHRleENvb3JkOworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdD
b2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0
PgordmFyIGdsID0gbnVsbDsKK3ZhciB0ZXh0dXJlTG9jID0gbnVsbDsKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSBmYWxzZTsKK3ZhciBpbWFnZURhdGEgPSBudWxsOworCitmdW5jdGlvbiBpbml0
KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVk
IiwgIjEiKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAg
ZGVzY3JpcHRpb24oJ1ZlcmlmaWVzIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBw
YXRocyB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3Jyk7CisKKyAgICBkZWJ1ZygnUmVncmVzc2lvbiB0
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAzOTgiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM5ODwvYT4g
OiA8Y29kZT5TdXBwb3J0IFVOUEFDS19GTElQX1lfV0VCR0wgYW5kIFVOUEFDS19QUkVNVUxUSVBM
WV9BTFBIQV9XRUJHTCBmb3IgdGV4SW1hZ2UyRCB0YWtpbmcgQXJyYXlCdWZmZXJWaWV3PC9jb2Rl
PicpOworCisgICAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleGNh
bnZhcyIpOworICAgIHZhciBjb250ZXh0MmQgPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOwor
ICAgIGltYWdlRGF0YSA9IGNvbnRleHQyZC5jcmVhdGVJbWFnZURhdGEoMSwgMik7CisgICAgdmFy
IGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAgICBkYXRhWzBdID0gMjU1OworICAgIGRhdGFbMV0g
PSAwOworICAgIGRhdGFbMl0gPSAwOworICAgIGRhdGFbM10gPSAyNTU7CisgICAgZGF0YVs0XSA9
IDA7CisgICAgZGF0YVs1XSA9IDI1NTsKKyAgICBkYXRhWzZdID0gMDsKKyAgICBkYXRhWzddID0g
MDsKKworICAgIGdsID0gaW5pdFdlYkdMKCJleGFtcGxlIiwgInZzaGFkZXIiLCAiZnNoYWRlciIs
IFsgImdfUG9zaXRpb24iLCAiZ19UZXhDb29yZDAiIF0sIFsgMCwgMCwgMCwgMSBdLCAxKTsKKyAg
ICBnbC52aWV3cG9ydCgwLCAwLCAxLCAyKTsKKyAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKKwor
ICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgInRleCIp
OworCisgICAgdmFyIHZlcnRpY2VzID0gbmV3IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAgICAx
LjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEuMCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAt
MS4wLCAwLjAsCisgICAgICAgICAxLjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEuMCwgLTEuMCwg
MC4wLAorICAgICAgICAgMS4wLCAtMS4wLCAwLjBdKTsKKyAgICB2YXIgdGV4Q29vcmRzID0gbmV3
IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAgIDEuMCwgMS4wLAorICAgICAgICAwLjAsIDEuMCwK
KyAgICAgICAgMC4wLCAwLjAsCisgICAgICAgIDEuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwK
KyAgICAgICAgMS4wLCAwLjBdKTsKKyAgICB2YXIgdGV4Q29vcmRPZmZzZXQgPSB2ZXJ0aWNlcy5i
eXRlTGVuZ3RoOworCisgICAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJp
bmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJS
QVlfQlVGRkVSLAorICAgICAgICAgICAgICAgICAgdGV4Q29vcmRPZmZzZXQgKyB0ZXhDb29yZHMu
Ynl0ZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5i
dWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgdmVydGljZXMpOworICAgIGdsLmJ1ZmZl
clN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZE9mZnNldCwgdGV4Q29vcmRzKTsKKwor
ICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworICAgIGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIoMCwgMywgZ2wuRkxPQVQsIGdsLkZBTFNFLCAwLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZM
T0FULCBnbC5GQUxTRSwgMCwgdGV4Q29vcmRPZmZzZXQpOworCisgICAgcnVuVGVzdCgpOworfQor
CisvLyBUaGVzZSB0d28gZGVjbGFyYXRpb25zIG5lZWQgdG8gYmUgZ2xvYmFsIGZvciAic2hvdWxk
QmUiIHRvIHNlZSB0aGVtCit2YXIgYnVmID0gbnVsbDsKK3ZhciBpZHggPSAwOwordmFyIHBpeGVs
ID0gWzAsIDAsIDAsIDFdOwordmFyIGNvcnJlY3RDb2xvciA9IG51bGw7CisKK2Z1bmN0aW9uIGdl
bmVyYXRlUkdCQURhdGEodHlwZSwgdW5wYWNrQWxpZ25tZW50KQoreworICAgIHZhciBzb3VyY2VE
YXRhID0gWyAyNTUsICAgMCwgICAwLCAyNTUsCisgICAgICAgICAgICAgICAgICAgICAgIDAsICAg
MjU1LCAgIDAsICAgMCBdOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgZ2wuVU5TSUdO
RURfQllURTogeworICAgICAgICB2YXIgcm93V2lkdGggPSBNYXRoLm1heCh1bnBhY2tBbGlnbm1l
bnQsIDQpOworICAgICAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KDIgKiByb3dXaWR0aCk7
CisgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgMjsgKyt5KSB7CisgICAgICAgICAgICB2YXIg
aW5kZXggPSB5ICogcm93V2lkdGg7CisgICAgICAgICAgICBmb3IgKHZhciBlbGVtZW50ID0gMDsg
ZWxlbWVudCA8IDQ7ICsrZWxlbWVudCkgeworICAgICAgICAgICAgICAgIGRhdGFbaW5kZXggKyBl
bGVtZW50XSA9IHNvdXJjZURhdGFbNCAqIHkgKyBlbGVtZW50XTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisgICAgY2FzZSBnbC5VTlNJR05F
RF9TSE9SVF80XzRfNF80OiB7CisgICAgICAgIHZhciByb3dXaWR0aCA9IE1hdGgubWF4KHVucGFj
a0FsaWdubWVudCwgMikgLyAyOworICAgICAgICB2YXIgZGF0YSA9IG5ldyBVaW50MTZBcnJheSgy
ICogcm93V2lkdGgpOworICAgICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IDI7ICsreSkgeworICAg
ICAgICAgICAgdmFyIGluZGV4ID0geSAqIHJvd1dpZHRoOworICAgICAgICAgICAgZGF0YVtpbmRl
eF0gPSAoKChzb3VyY2VEYXRhWzQgKiB5XSAmIDB4RjApIDw8IDgpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICgoc291cmNlRGF0YVs0ICogeSArIDFdICYgMHhGMCkgPDwgNCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgKHNvdXJjZURhdGFbNCAqIHkgKyAyXSAmIDB4RjApCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzb3VyY2VEYXRhWzQgKiB5ICsgM10gPj4gNCkp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICBjYXNlIGdsLlVO
U0lHTkVEX1NIT1JUXzVfNV81XzE6IHsKKyAgICAgICAgdmFyIHJvd1dpZHRoID0gTWF0aC5tYXgo
dW5wYWNrQWxpZ25tZW50LCAyKSAvIDI7CisgICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQxNkFy
cmF5KDIgKiByb3dXaWR0aCk7CisgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgMjsgKyt5KSB7
CisgICAgICAgICAgICB2YXIgaW5kZXggPSB5ICogcm93V2lkdGg7CisgICAgICAgICAgICBkYXRh
W2luZGV4XSA9ICgoKHNvdXJjZURhdGFbNCAqIHldICYgMHhGOCkgPDwgOCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgKChzb3VyY2VEYXRhWzQgKiB5ICsgMV0gJiAweEY4KSA8PCAzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoKHNvdXJjZURhdGFbNCAqIHkgKyAyXSAmIDB4
RjgpID4+IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzb3VyY2VEYXRhWzQgKiB5
ICsgM10gPj4gNykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIHR5cGVUb1N0cmluZyh0eXBlKQoreworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgZ2wuVU5TSUdORURfQllURTogIHJldHVybiAnVU5TSUdORURfQllURSc7
CisgICAgY2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xOiAgcmV0dXJuICdVTlNJR05FRF9T
SE9SVF81XzVfNV8xJzsKKyAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6ICByZXR1
cm4gJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzQnOworICAgIH0KKyAgICByZXR1cm4gJ1Vua25vd24g
dHlwZSAnICsgdHlwZTsKK30KKworZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKHVzZVRleFN1Yklt
YWdlMkQsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRv
cENvbG9yLCBib3R0b21Db2xvcikKK3sKKyAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1
YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKKyAgICAgICAgICAn
IHdpdGggdHlwZT0nICsgdHlwZVRvU3RyaW5nKHR5cGUpICsKKyAgICAgICAgICAnLCB1bnBhY2tB
bGlnbm1lbnQ9JyArIHVucGFja0FsaWdubWVudCArCisgICAgICAgICAgJywgZmxpcFk9JyArIGZs
aXBZICsgJywgcHJlbXVsdGlwbHlBbHBoYT0nICsgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgZ2wu
Y29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpOworICAgIGdsLmNsZWFyQ29sb3IoMCwg
MCwgMCwgMS4wKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7CisgICAgLy8gRW5hYmxlIHdyaXRlcyB0byB0aGUgUkdCIGNoYW5uZWxzCisg
ICAgZ2wuY29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUsIGZhbHNlKTsKKyAgICB2YXIgdGV4dHVy
ZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1
cmUgdW5pdCAwCisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Cisg
ICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7CisgICAgLy8gU2V0IHVwIHBpeGVsIHN0b3JlIHBhcmFtZXRlcnMKKyAgICBnbC5waXhl
bFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCB1bnBhY2tBbGlnbm1lbnQpOworICAgIGdsLnBp
eGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZsaXBZKTsKKyAgICBnbC5waXhlbFN0
b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHByZW11bHRpcGx5QWxwaGEp
OworICAgIC8vIEdlbmVyYXRlIHRoZSBkYXRhCisgICAgdmFyIGRhdGEgPSBnZW5lcmF0ZVJHQkFE
YXRhKHR5cGUsIHVucGFja0FsaWdubWVudCk7CisgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wu
Tk9fRVJST1IpCisgICAgICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGJlZm9yZSB0ZXh0dXJlIHVw
bG9hZCIpOworICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQorICAgIGlm
ICh1c2VUZXhTdWJJbWFnZTJEKSB7CisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUg
dG8gYmxhY2sgZmlyc3QKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCAxLCAyLCAwLAorICAgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIHR5cGUsIG51
bGwpOworICAgICAgICBpZiAoZ2wuZ2V0RXJyb3IoKSAhPSBnbC5OT19FUlJPUikKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkdMIGVycm9yIGFmdGVyIHRleEltYWdlMkQobnVsbCkiKTsKKyAgICAg
ICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCAxLCAyLCBnbC5SR0JB
LCB0eXBlLCBkYXRhKTsKKyAgICAgICAgaWYgKGdsLmdldEVycm9yKCkgIT0gZ2wuTk9fRVJST1Ip
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJvciBhZnRlciB0ZXhTdWJJbWFnZTJEIik7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCAxLCAyLCAwLCBnbC5SR0JBLCB0eXBlLCBkYXRhKTsKKyAgICAgICAgaWYgKGdsLmdl
dEVycm9yKCkgIT0gZ2wuTk9fRVJST1IpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTCBlcnJv
ciBhZnRlciB0ZXhJbWFnZTJEIik7CisgICAgfQorCisgICAgLy8gUG9pbnQgdGhlIHVuaWZvcm0g
c2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAorICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAw
KTsKKyAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgNik7CisKKyAgICAvLyBSZWFkIGJhY2sgdGhlIHJlbmRlcmluZyByZXN1bHRzCisg
ICAgYnVmID0gbmV3IFVpbnQ4QXJyYXkoMSAqIDIgKiA0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIDEsIDIsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgLy8gQ2hlY2sg
dGhlIHRvcCBwaXhlbCBhbmQgYm90dG9tIHBpeGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCisg
ICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgorICAgIGRlYnVnKCJDaGVja2luZyBib3R0b20gcGl4ZWwi
KTsKKyAgICBjb3JyZWN0Q29sb3IgPSBib3R0b21Db2xvcjsKKyAgICBpZHggPSAwOworICAgIHBp
eGVsWzBdID0gYnVmW2lkeF07CisgICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAgcGl4
ZWxbMl0gPSBidWZbaWR4ICsgMl07CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107CisgICAg
c2hvdWxkQmUoInBpeGVsIiwgImNvcnJlY3RDb2xvciIpOworICAgIGRlYnVnKCJDaGVja2luZyB0
b3AgcGl4ZWwiKTsKKyAgICBjb3JyZWN0Q29sb3IgPSB0b3BDb2xvcjsKKyAgICBpZHggPSA0Owor
ICAgIHBpeGVsWzBdID0gYnVmW2lkeF07CisgICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07Cisg
ICAgcGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107
CisgICAgc2hvdWxkQmUoInBpeGVsIiwgImNvcnJlY3RDb2xvciIpOworfQorCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICB2YXIgcmVkID0gWzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3Jl
ZW4gPSBbMCwgMjU1LCAwLCAyNTVdOworICAgIHZhciByZWRQcmVtdWx0aXBseUFscGhhID0gWzI1
NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3JlZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAs
IDI1NV07CisKKyAgICB2YXIgdHlwZXMgPSBbIGdsLlVOU0lHTkVEX0JZVEUsIGdsLlVOU0lHTkVE
X1NIT1JUXzVfNV81XzEsIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQgXTsKKyAgICB2YXIgdW5w
YWNrQWxpZ25tZW50cyA9IFsgMSwgMiwgNCwgOCBdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0eXBlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgdHlwZSA9IHR5cGVzW2ldOworICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVucGFja0FsaWdubWVudHMubGVuZ3RoOyArK2opIHsK
KyAgICAgICAgICAgIHZhciB1bnBhY2tBbGlnbm1lbnQgPSB1bnBhY2tBbGlnbm1lbnRzW2pdOwor
ICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQs
IHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOwor
ICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0eXBlLCB1bnBhY2tBbGlnbm1lbnQs
IGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlbiwgcmVkKTsK
KyAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHlwZSwgdW5wYWNrQWxpZ25tZW50
LCB0cnVlLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5
QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICBydW5PbmVJdGVyYXRp
b24oZmFsc2UsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIHRydWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBseUFs
cGhhKTsKKyAgICAgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0eXBlLCB1bnBhY2tBbGln
bm1lbnQsIHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3Jl
ZW4pOworICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdu
bWVudCwgZmFsc2UsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuLCBy
ZWQpOworICAgICAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdu
bWVudCwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0
aXBseUFscGhhLCBncmVlblByZW11bHRpcGx5QWxwaGEpOworICAgICAgICAgICAgcnVuT25lSXRl
cmF0aW9uKHRydWUsIHR5cGUsIHVucGFja0FsaWdubWVudCwgZmFsc2UsIHRydWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBs
eUFscGhhKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgdmFyIGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7
CisgICAgZXBpbG9ndWUub25sb2FkID0gZmluaXNoOworICAgIGVwaWxvZ3VlLnNyYyA9ICIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVwaWxvZ3VlKTsKK30KKworZnVuY3Rpb24gZmluaXNoKCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJpbml0KCkiPgorPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJw
eCI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJw
eCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgt
Zm9ybWF0LWFuZC10eXBlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjIwNzMpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsMTAgQEAKLVZlcmlmeSB0ZXhJbWFn
ZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEhUTUwgZGF0YSB3aXRoIGFs
bCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJ
bWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIGJvdGggSFRNTCBhbmQgdXNlci1zcGVjaWZpZWQgZGF0
YSB3aXRoIGFsbCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMKIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCi1SZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDMxOSA6IEltcGxlbWVudCBmb3JtYXQgY29udmVyc2lvbnMgaW4gdGV4
SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0YWtpbmcgSFRNTCBkYXRhCitSZWdyZXNzaW9uIHRl
c3QgZm9yOgoraHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzE5IDog
SW1wbGVtZW50IGZvcm1hdCBjb252ZXJzaW9ucyBpbiB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFn
ZTJEIHRha2luZyBIVE1MIGRhdGEKK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDM5OCA6IFN1cHBvcnQgVU5QQUNLX0ZMSVBfWV9XRUJHTCBhbmQgVU5QQUNLX1BSRU1V
TFRJUExZX0FMUEhBX1dFQkdMIGZvciB0ZXhJbWFnZTJEIHRha2luZyBBcnJheUJ1ZmZlclZpZXcK
IFRlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIEltYWdlIGF0IDI1NngxCiBQQVNTIFJHQkEvVU5TSUdO
RURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YQogVGVzdGluZyB0
ZXhJbWFnZTJEIHdpdGggSW1hZ2UgYXQgMjU2eDEKQEAgLTEzMSw2ICsxMzMsMjIgQEAgVGVzdGlu
ZyB0ZXhTdWJJbWFnZTJEIHdpdGggSW1hZ2VEYXRhIGF0IAogUEFTUyBVTlBBQ0tfUFJFTVVMVElQ
TFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0UvVU5TSUdORURfQllURQogVGVzdGluZyB0ZXhT
dWJJbWFnZTJEIHdpdGggSW1hZ2VEYXRhIGF0IDI1NngxCiBQQVNTIFVOUEFDS19QUkVNVUxUSVBM
WV9BTFBIQV9XRUJHTCB3aXRoIExVTUlOQU5DRV9BTFBIQS9VTlNJR05FRF9CWVRFCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCByYXcgZGF0YSBhdCAyNTZ4MQorUEFTUyBVTlBBQ0tfUFJFTVVMVElQ
TFlfQUxQSEFfV0VCR0wgd2l0aCBSR0JBL1VOU0lHTkVEX0JZVEUKK1Rlc3RpbmcgdGV4SW1hZ2Uy
RCB3aXRoIHJhdyBkYXRhIGF0IDI1NngxCitQQVNTIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9X
RUJHTCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRfNF80XzRfNAorVGVzdGluZyB0ZXhJbWFnZTJE
IHdpdGggcmF3IGRhdGEgYXQgMjU2eDEKK1BBU1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9SVF81XzVfNV8xCitUZXN0aW5nIHRleEltYWdlMkQg
d2l0aCByYXcgZGF0YSBhdCAyNTZ4MQorUEFTUyBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VC
R0wgd2l0aCBMVU1JTkFOQ0VfQUxQSEEvVU5TSUdORURfQllURQorVGVzdGluZyB0ZXhTdWJJbWFn
ZTJEIHdpdGggcmF3IGRhdGEgYXQgMjU2eDEKK1BBU1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhB
X1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9CWVRFCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0
aCByYXcgZGF0YSBhdCAyNTZ4MQorUEFTUyBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wg
d2l0aCBSR0JBL1VOU0lHTkVEX1NIT1JUXzRfNF80XzQKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3
aXRoIHJhdyBkYXRhIGF0IDI1NngxCitQQVNTIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJH
TCB3aXRoIFJHQkEvVU5TSUdORURfU0hPUlRfNV81XzVfMQorVGVzdGluZyB0ZXhTdWJJbWFnZTJE
IHdpdGggcmF3IGRhdGEgYXQgMjU2eDEKK1BBU1MgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dF
QkdMIHdpdGggTFVNSU5BTkNFX0FMUEhBL1VOU0lHTkVEX0JZVEUKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0
LWFuZC10eXBlLmh0bWwJKHJldmlzaW9uIDYyMDczKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDYgKzM4LDE4IEBAIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKIAog
dmFyIHRlc3RDYXNlcyA9IFtdOwogCit2YXIgRGF0YU1vZGUgPSB7CisgICAgSU1BR0U6IDAsCisg
ICAgSU1BR0VfREFUQTogMSwKKworICAgIE5VTV9IVE1MX01PREVTOiAyLAorCisgICAgUkFXX0RB
VEE6IDIsCisKKyAgICAvLyBUaGlzIG11c3QgcmVtYWluIHRoZSBsYXN0IG1vZGUuCisgICAgTlVN
X01PREVTOiAzCit9OworCiBmdW5jdGlvbiBpbml0KCkKIHsKICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CkBAIC00Niw5ICs1OCwxMSBAQCBmdW5jdGlvbiBpbml0KCkKICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAotICAg
IGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBh
dGhzIHRha2luZyBIVE1MIGRhdGEgd2l0aCBhbGwgZm9ybWF0L3R5cGUgY29tYmluYXRpb25zJyk7
CisgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNv
ZGUgcGF0aHMgdGFraW5nIGJvdGggSFRNTCBhbmQgdXNlci1zcGVjaWZpZWQgZGF0YSB3aXRoIGFs
bCBmb3JtYXQvdHlwZSBjb21iaW5hdGlvbnMnKTsKIAotICAgIGRlYnVnKCdSZWdyZXNzaW9uIHRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDMxOSI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzE5PC9hPiA6
IDxjb2RlPkltcGxlbWVudCBmb3JtYXQgY29udmVyc2lvbnMgaW4gdGV4SW1hZ2UyRCBhbmQgdGV4
U3ViSW1hZ2UyRCB0YWtpbmcgSFRNTCBkYXRhPC9jb2RlPicpOworICAgIGRlYnVnKCdSZWdyZXNz
aW9uIHRlc3QgZm9yOicpOworICAgIGRlYnVnKCc8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMTkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDMxOTwvYT4gOiA8Y29kZT5JbXBsZW1lbnQgZm9ybWF0IGNvbnZlcnNpb25z
IGluIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGFraW5nIEhUTUwgZGF0YTwvY29kZT4n
KTsKKyAgICBkZWJ1ZygnPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMzk4Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAz
OTg8L2E+IDogPGNvZGU+U3VwcG9ydCBVTlBBQ0tfRkxJUF9ZX1dFQkdMIGFuZCBVTlBBQ0tfUFJF
TVVMVElQTFlfQUxQSEFfV0VCR0wgZm9yIHRleEltYWdlMkQgdGFraW5nIEFycmF5QnVmZmVyVmll
dzwvY29kZT4nKTsKIAogICAgIGdsID0gaW5pdFdlYkdMKCJleGFtcGxlIiwgInZzaGFkZXIiLCAi
ZnNoYWRlciIsIFsgImdfUG9zaXRpb24iLCAiZ19UZXhDb29yZDAiIF0sIFsgMCwgMCwgMCwgMSBd
LCAxKTsKICAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKQEAgLTkxLDEwICsxMDUsMTAgQEAgZnVu
Y3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKIHsKICAgICAvLyBWZXJpZnkgdGhhdCB1cGxvYWRpbmcg
dG8gcGFja2VkIHBpeGVsIGZvcm1hdHMgcGVyZm9ybXMgdGhlCiAgICAgLy8gcmVxdWlyZWQgY29u
dmVyc2lvbiBhbmQgYXNzb2NpYXRlZCBsb3NzIG9mIHByZWNpc2lvbi4KLSAgICBmb3IgKHZhciB1
c2VJbWFnZURhdGEgPSAwOyB1c2VJbWFnZURhdGEgPCAyOyArK3VzZUltYWdlRGF0YSkgeworICAg
IGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0YU1vZGUgPCBEYXRhTW9kZS5OVU1fSFRNTF9NT0RF
UzsgKytkYXRhTW9kZSkgewogICAgICAgICBmb3IgKHZhciB1c2VUZXhTdWJJbWFnZTJEID0gMDsg
dXNlVGV4U3ViSW1hZ2UyRCA8IDI7ICsrdXNlVGV4U3ViSW1hZ2UyRCkgewogICAgICAgICAgICAg
dGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFn
ZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAg
ICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAg
ICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTEwOCw3ICsxMjIs
NyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAiUkdCQS9VTlNJR05FRF9CWVRFIHNob3VsZCBtYWludGFpbiBmdWxsIHByZWNpc2lvbiBv
ZiBkYXRhIgogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0g
ICAgICAgICAgICAgICAgdXNlSW1hZ2VEYXRhOiAhIXVzZUltYWdlRGF0YSwKKyAgICAgICAgICAg
ICAgICBkYXRhTW9kZTogZGF0YU1vZGUsCiAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2Uy
RDogISF1c2VUZXhTdWJJbWFnZTJELAogICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCiAgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAxLApAQCAtMTIyLDcgKzEzNiw3IEBAIGZ1bmN0aW9uIGluaXRp
YWxpemVUZXN0cygpCiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVE
X1NIT1JUXzRfNF80XzQgbXVzdCBkcm9wIGxvdyBmb3VyIGJpdHMgb2YgcHJlY2lzaW9uIgogICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAg
ICAgdXNlSW1hZ2VEYXRhOiAhIXVzZUltYWdlRGF0YSwKKyAgICAgICAgICAgICAgICBkYXRhTW9k
ZTogZGF0YU1vZGUsCiAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhT
dWJJbWFnZTJELAogICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCiAgICAgICAgICAgICAgICAg
aGVpZ2h0OiAxLApAQCAtMTM2LDcgKzE1MCw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVUZXN0cygp
CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJSR0JBL1VOU0lHTkVEX1NIT1JUXzVfNV81
XzEgbXVzdCBkcm9wIGxvdyB0aHJlZSBiaXRzIG9mIHByZWNpc2lvbiIKICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdl
RGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2Rl
LAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwK
ICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwK
QEAgLTE1MCw3ICsxNjQsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiUkdCL1VOU0lHTkVEX0JZVEUgc2hvdWxkIG1haW50YWluIGZ1
bGwgcHJlY2lzaW9uIG9mIGRhdGEiCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHRlc3RD
YXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRh
LAorICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKICAgICAgICAgICAgICAgICB1
c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCiAgICAgICAgICAgICAgICAgd2lk
dGg6IDI1NiwKICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCkBAIC0xNjQsNyArMTc4LDcgQEAg
ZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjog
IlJHQi9VTlNJR05FRF9TSE9SVF81XzZfNSBtdXN0IGRyb3AgbG93IHR3byBvciB0aHJlZSBiaXRz
IG9mIHByZWNpc2lvbiIKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGVzdENhc2VzLnB1
c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAg
ICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1
YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2
LAogICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTE3OCw3ICsxOTIsNyBAQCBmdW5jdGlv
biBpbml0aWFsaXplVGVzdHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQUxQSEEv
VU5TSUdORURfQllURSBzaG91bGQgbWFpbnRhaW4gZnVsbCBwcmVjaXNpb24gb2YgZGF0YSIKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAgICAgICAgICAg
ICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAgICAgZGF0YU1v
ZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4
U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAgICAgICAgICAg
IGhlaWdodDogMSwKQEAgLTE5Miw3ICsyMDYsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMo
KQogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTFVNSU5BTkNFL1VOU0lHTkVEX0JZVEUg
c2hvdWxkIG1haW50YWluIGZ1bGwgcHJlY2lzaW9uIG9mIGRhdGEiCiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURh
dGE6ICEhdXNlSW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwK
ICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCiAg
ICAgICAgICAgICAgICAgd2lkdGg6IDI1NiwKICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCkBA
IC0yMTEsMTAgKzIyNSwxMCBAQCBmdW5jdGlvbiBpbml0aWFsaXplVGVzdHMoKQogICAgIC8vIFZl
cmlmeSB0aGF0IHNldHRpbmcgdGhlIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCBwaXhl
bAogICAgIC8vIHN0b3JlIHBhcmFtZXRlciBhbmQgc2VuZGluZyBkb3duIGEgemVybyBhbHBoYSBj
YXVzZXMgdGhlIGNvbG9yCiAgICAgLy8gY2hhbm5lbHMgdG8gZ28gdG8gemVyby4KLSAgICBmb3Ig
KHZhciB1c2VJbWFnZURhdGEgPSAwOyB1c2VJbWFnZURhdGEgPCAyOyArK3VzZUltYWdlRGF0YSkg
eworICAgIGZvciAodmFyIGRhdGFNb2RlID0gMDsgZGF0YU1vZGUgPCBEYXRhTW9kZS5OVU1fTU9E
RVM7ICsrZGF0YU1vZGUpIHsKICAgICAgICAgZm9yICh2YXIgdXNlVGV4U3ViSW1hZ2UyRCA9IDA7
IHVzZVRleFN1YkltYWdlMkQgPCAyOyArK3VzZVRleFN1YkltYWdlMkQpIHsKICAgICAgICAgICAg
IHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1h
Z2VEYXRhLAorICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKICAgICAgICAgICAg
ICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCiAgICAgICAgICAgICAg
ICAgd2lkdGg6IDI1NiwKICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEsCkBAIC0yMjYsNyArMjQw
LDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkKICAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQkEvVU5TSUdORURf
QllURSIKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgdGVzdENhc2VzLnB1c2goewotICAg
ICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAgICAgICAg
ICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAogICAgICAg
ICAgICAgICAgIGhlaWdodDogMSwKQEAgLTIzOCw3ICsyNTIsNyBAQCBmdW5jdGlvbiBpbml0aWFs
aXplVGVzdHMoKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVU5QQUNLX1BSRU1VTFRJ
UExZX0FMUEhBX1dFQkdMIHdpdGggUkdCQS9VTlNJR05FRF9TSE9SVF80XzRfNF80IgogICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICB0ZXN0Q2FzZXMucHVzaCh7Ci0gICAgICAgICAgICAgICAg
dXNlSW1hZ2VEYXRhOiAhIXVzZUltYWdlRGF0YSwKKyAgICAgICAgICAgICAgICBkYXRhTW9kZTog
ZGF0YU1vZGUsCiAgICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJ
bWFnZTJELAogICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCiAgICAgICAgICAgICAgICAgaGVp
Z2h0OiAxLApAQCAtMjQ5LDU2ICsyNjMsNjEgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVRlc3RzKCkK
ICAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCiAgICAgICAg
ICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0
aCBSR0JBL1VOU0lHTkVEX1NIT1JUXzVfNV81XzEiCiAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIC8vIFRoZSBmb2xsb3dpbmcgZmV3IHRlc3RzIGFyZSBpbnZhbGlkIGZvciB0aGUgcmF3IGRh
dGEKKyAgICAgICAgICAgIC8vIG1vZGUgYmVjYXVzZSB0aGVyZSBpcyBlaXRoZXIgbm8gYWxwaGEg
Y2hhbm5lbCBvciBubworICAgICAgICAgICAgLy8gc2VwYXJhdGUgYWxwaGEgY2hhbm5lbC4KKyAg
ICAgICAgICAgIGlmIChkYXRhTW9kZSAhPSBEYXRhTW9kZS5SQVdfREFUQSkgeworICAgICAgICAg
ICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRh
dGFNb2RlLAorICAgICAgICAgICAgICAgICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1
YkltYWdlMkQsCisgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCisgICAgICAgICAgICAg
ICAgICAgIGhlaWdodDogMSwKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0
ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFtcCwKKyAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlw
bHlBbHBoYTogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5SR0IsCisgICAg
ICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAg
ICAgIHZlcmlmaWVyOiBjb2xvckNoYW5uZWxzQXJlWmVybywKKyAgICAgICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5T
SUdORURfQllURSIKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2Fz
ZXMucHVzaCh7CisgICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAorICAg
ICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAorICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEsCisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdy
YXlzY2FsZVJhbXAsCisgICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUs
CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuUkdCLAorICAgICAgICAgICAgICAgICAg
ICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwKKyAgICAgICAgICAgICAgICAgICAgdmVy
aWZpZXI6IGNvbG9yQ2hhbm5lbHNBcmVaZXJvLAorICAgICAgICAgICAgICAgICAgICBkZXNjcmlw
dGlvbjogIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIFJHQi9VTlNJR05FRF9T
SE9SVF81XzZfNSIKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2Fz
ZXMucHVzaCh7CisgICAgICAgICAgICAgICAgICAgIGRhdGFNb2RlOiBkYXRhTW9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJELAorICAg
ICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAorICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEsCisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdy
YXlzY2FsZVJhbXAsCisgICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUs
CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogZ2wuQUxQSEEsCisgICAgICAgICAgICAgICAg
ICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAgICAgIHZlcmlmaWVy
OiBjb2xvckNoYW5uZWxzQXJlWmVybywKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246
ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBBTFBIQS9VTlNJR05FRF9CWVRF
IgorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsK
KyAgICAgICAgICAgICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAorICAgICAgICAgICAgICAg
ICAgICB1c2VUZXhTdWJJbWFnZTJEOiAhIXVzZVRleFN1YkltYWdlMkQsCisgICAgICAgICAgICAg
ICAgICAgIHdpZHRoOiAyNTYsCisgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMSwKKyAgICAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBnZW5lcmF0ZVRyYW5zcGFyZW50R3JheXNjYWxlUmFt
cCwKKyAgICAgICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0UsCisgICAgICAgICAgICAgICAgICAgIHR5
cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBjb2xv
ckNoYW5uZWxzQXJlWmVybywKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBB
Q0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0UvVU5TSUdORURfQllURSIK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRlc3RDYXNl
cy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAot
ICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1w
LAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAg
ICAgZm9ybWF0OiBnbC5SR0IsCi0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllU
RSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAg
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wg
d2l0aCBSR0IvVU5TSUdORURfQllURSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVz
dENhc2VzLnB1c2goewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURh
dGEsCi0gICAgICAgICAgICAgICAgdXNlVGV4U3ViSW1hZ2UyRDogISF1c2VUZXhTdWJJbWFnZTJE
LAotICAgICAgICAgICAgICAgIHdpZHRoOiAyNTYsCi0gICAgICAgICAgICAgICAgaGVpZ2h0OiAx
LAotICAgICAgICAgICAgICAgIGdlbmVyYXRvcjogZ2VuZXJhdGVUcmFuc3BhcmVudEdyYXlzY2Fs
ZVJhbXAsCi0gICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYTogdHJ1ZSwKLSAgICAgICAg
ICAgICAgICBmb3JtYXQ6IGdsLlJHQiwKLSAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05F
RF9TSE9SVF81XzZfNSwKLSAgICAgICAgICAgICAgICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0Fy
ZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlf
QUxQSEFfV0VCR0wgd2l0aCBSR0IvVU5TSUdORURfU0hPUlRfNV82XzUiCi0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAgICB1c2VJbWFn
ZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAotICAgICAgICAgICAgICAgIHVzZVRleFN1YkltYWdlMkQ6
ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAotICAgICAg
ICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGdlbmVyYXRl
VHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxw
aGE6IHRydWUsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5BTFBIQSwKLSAgICAgICAgICAg
ICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAotICAgICAgICAgICAgICAgIHZlcmlmaWVyOiBj
b2xvckNoYW5uZWxzQXJlWmVybywKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlVOUEFD
S19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCB3aXRoIEFMUEhBL1VOU0lHTkVEX0JZVEUiCi0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHRlc3RDYXNlcy5wdXNoKHsKLSAgICAgICAgICAgICAg
ICB1c2VJbWFnZURhdGE6ICEhdXNlSW1hZ2VEYXRhLAotICAgICAgICAgICAgICAgIHVzZVRleFN1
YkltYWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKLSAgICAgICAgICAgICAgICB3aWR0aDogMjU2
LAotICAgICAgICAgICAgICAgIGhlaWdodDogMSwKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3I6
IGdlbmVyYXRlVHJhbnNwYXJlbnRHcmF5c2NhbGVSYW1wLAotICAgICAgICAgICAgICAgIHByZW11
bHRpcGx5QWxwaGE6IHRydWUsCi0gICAgICAgICAgICAgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0Us
Ci0gICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKLSAgICAgICAgICAgICAg
ICB2ZXJpZmllcjogY29sb3JDaGFubmVsc0FyZVplcm8sCi0gICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb246ICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgd2l0aCBMVU1JTkFOQ0UvVU5T
SUdORURfQllURSIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGVzdENhc2VzLnB1c2go
ewotICAgICAgICAgICAgICAgIHVzZUltYWdlRGF0YTogISF1c2VJbWFnZURhdGEsCisgICAgICAg
ICAgICAgICAgZGF0YU1vZGU6IGRhdGFNb2RlLAogICAgICAgICAgICAgICAgIHVzZVRleFN1Yklt
YWdlMkQ6ICEhdXNlVGV4U3ViSW1hZ2UyRCwKICAgICAgICAgICAgICAgICB3aWR0aDogMjU2LAog
ICAgICAgICAgICAgICAgIGhlaWdodDogMSwKQEAgLTMyMiwxMCArMzQxLDQ1IEBAIGZ1bmN0aW9u
IGdlbmVyYXRlVGVzdERhdGEoKQogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxl
bmd0aDsgaSsrKSB7CiAgICAgICAgIHZhciB0ZXN0Q2FzZSA9IHRlc3RDYXNlc1tpXTsKICAgICAg
ICAgdmFyIHdyYXBwZXIgPSBudWxsOwotICAgICAgICBpZiAodGVzdENhc2UudXNlSW1hZ2VEYXRh
KQotICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBJbWFnZURhdGFXcmFwcGVyKHRlc3RDYXNlLndp
ZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOwotICAgICAgICBlbHNlCisgICAgICAgIHN3aXRjaCAodGVz
dENhc2UuZGF0YU1vZGUpIHsKKyAgICAgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKICAgICAgICAg
ICAgIHdyYXBwZXIgPSBuZXcgSW1hZ2VXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5o
ZWlnaHQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0YU1vZGUuSU1BR0Vf
REFUQToKKyAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgSW1hZ2VEYXRhV3JhcHBlcih0ZXN0Q2Fz
ZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIERhdGFNb2RlLlJBV19EQVRBOgorICAgICAgICAgICAgc3dpdGNoICh0ZXN0Q2FzZS50eXBl
KSB7CisgICAgICAgICAgICBjYXNlIGdsLlVOU0lHTkVEX0JZVEU6CisgICAgICAgICAgICAgICAg
c3dpdGNoICh0ZXN0Q2FzZS5mb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIGdsLlJHQkE6
CisgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBuZXcgUkdCQThEYXRhV3JhcHBlcih0ZXN0
Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSBnbC5SR0I6CisgICAgICAgICAgICAgICAgICAgIHdyYXBw
ZXIgPSBuZXcgUkdCOERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGdsLkFM
UEhBOgorICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IEE4RGF0YVdyYXBwZXIodGVz
dENhc2Uud2lkdGgsIHRlc3RDYXNlLmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgZ2wuTFVNSU5BTkNFOgorICAgICAgICAgICAgICAgICAg
ICB3cmFwcGVyID0gbmV3IEw4RGF0YVdyYXBwZXIodGVzdENhc2Uud2lkdGgsIHRlc3RDYXNlLmhl
aWdodCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
Z2wuTFVNSU5BTkNFX0FMUEhBOgorICAgICAgICAgICAgICAgICAgICB3cmFwcGVyID0gbmV3IExB
OERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIGdsLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CisgICAgICAg
ICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0JBNDQ0NERhdGFXcmFwcGVyKHRlc3RDYXNlLndpZHRo
LCB0ZXN0Q2FzZS5oZWlnaHQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBnbC5VTlNJR05FRF9TSE9SVF81XzVfNV8xOgorICAgICAgICAgICAgICAgIHdyYXBwZXIg
PSBuZXcgUkdCQTU1NTFEYXRhV3JhcHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZ2wuVU5TSUdORURf
U0hPUlRfNV82XzU6CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IG5ldyBSR0I1NjVEYXRhV3Jh
cHBlcih0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICB0ZXN0Q2FzZS53cmFwcGVy
ID0gd3JhcHBlcjsKICAgICAgICAgdGVzdENhc2UuZ2VuZXJhdG9yKHdyYXBwZXIpOwogICAgICAg
ICB0ZXN0Q2FzZS53cmFwcGVyLmdlbmVyYXRlRGF0YSgpOwpAQCAtMzU5LDkgKzQxMywyMCBAQCBm
dW5jdGlvbiBtYXliZVJ1blRlc3RzKCkKIAogZnVuY3Rpb24gdGVzdENhc2VUb1N0cmluZyh0ZXN0
Q2FzZSkKIHsKKyAgICB2YXIgbW9kZTsKKyAgICBzd2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7
CisgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKKyAgICAgICAgbW9kZSA9ICJJbWFnZSI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGF0YU1vZGUuSU1BR0VfREFUQToKKyAgICAgICAgbW9kZSA9
ICJJbWFnZURhdGEiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGFNb2RlLlJBV19EQVRB
OgorICAgICAgICBtb2RlID0gInJhdyBkYXRhIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAg
IHJldHVybiAodGVzdENhc2UudXNlVGV4U3ViSW1hZ2UyRCA/ICJ0ZXhTdWJJbWFnZTJEIiA6ICJ0
ZXhJbWFnZTJEIikgKwotICAgICAgICAgICAgIiB3aXRoICIgKyAodGVzdENhc2UudXNlSW1hZ2VE
YXRhID8gIkltYWdlRGF0YSIgOiAiSW1hZ2UiKSArCi0gICAgICAgICAgICAiIGF0ICIgKyB0ZXN0
Q2FzZS53aWR0aCArICJ4IiArIHRlc3RDYXNlLmhlaWdodDsKKyAgICAgICAgICAgICIgd2l0aCAi
ICsgbW9kZSArICAiIGF0ICIgKyB0ZXN0Q2FzZS53aWR0aCArICJ4IiArIHRlc3RDYXNlLmhlaWdo
dDsKIH0KIAogZnVuY3Rpb24gcnVuT25lVGVzdCh0ZXN0Q2FzZSkKQEAgLTM4MiwxMSArNDQ3LDIy
IEBAIGZ1bmN0aW9uIHJ1bk9uZVRlc3QodGVzdENhc2UpCiAgICAgICAgIC8vIEluaXRpYWxpemUg
dGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QuCiAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS53aWR0aCwgdGVzdENhc2UuaGVp
Z2h0LCAwLAogICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLmZvcm1hdCwgdGVzdENhc2Uu
dHlwZSwgbnVsbCk7Ci0gICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
MCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNlLmZvcm1h
dCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKICAgICB9Ci0KKyAgICBz
d2l0Y2ggKHRlc3RDYXNlLmRhdGFNb2RlKSB7CisgICAgY2FzZSBEYXRhTW9kZS5JTUFHRToKKyAg
ICBjYXNlIERhdGFNb2RlLklNQUdFX0RBVEE6CisgICAgICAgIGlmICh0ZXN0Q2FzZS51c2VUZXhT
dWJJbWFnZTJEKQorICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5cGUsIGRhdGEpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIHRlc3RDYXNl
LmZvcm1hdCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2FzZS50eXBlLCBkYXRhKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEYXRhTW9kZS5SQVdfREFUQToKKyAgICAgICAgaWYgKHRlc3RDYXNl
LnVzZVRleFN1YkltYWdlMkQpCisgICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIDAsIDAsIHRlc3RDYXNlLndpZHRoLCB0ZXN0Q2FzZS5oZWlnaHQsIHRlc3RDYXNl
LmZvcm1hdCwgdGVzdENhc2UudHlwZSwgZGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgdGVzdENhc2UuZm9ybWF0LCB0ZXN0Q2Fz
ZS53aWR0aCwgdGVzdENhc2UuaGVpZ2h0LCAwLCB0ZXN0Q2FzZS5mb3JtYXQsIHRlc3RDYXNlLnR5
cGUsIGRhdGEpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgLy8gUG9pbnQgdGhlIHVuaWZv
cm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMC4KICAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxv
YywgMCk7CiAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzLgpAQCAtNDExLDcgKzQ4Nyw3IEBAIGZ1
bmN0aW9uIGZpbmlzaCgpIHsKIH0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBXcmFwcGVycyBmb3Ig
cHJvZ3JhbW1hdGljIGNvbnN0cnVjdGlvbiBvZiBJbWFnZSBhbmQgSW1hZ2VEYXRhCisvLyBXcmFw
cGVycyBmb3IgcHJvZ3JhbW1hdGljIGNvbnN0cnVjdGlvbiBvZiBJbWFnZSwgSW1hZ2VEYXRhIGFu
ZCByYXcgdGV4dHVyZSBkYXRhCiAvLwogCiBmdW5jdGlvbiBJbWFnZVdyYXBwZXIod2lkdGgsIGhl
aWdodCkKQEAgLTQ3Myw2ICs1NDksMTQxIEBAIEltYWdlRGF0YVdyYXBwZXIucHJvdG90eXBlLmdl
bmVyYXRlRGF0YSAKICAgICBtYXliZVJ1blRlc3RzKCk7CiB9OwogCitmdW5jdGlvbiBUZXh0dXJl
RGF0YVdyYXBwZXIod2lkdGgsIGhlaWdodCkKK3sKKyAgICB0aGlzLndpZHRoXyA9IHdpZHRoOwor
ICAgIHRoaXMuaGVpZ2h0XyA9IGhlaWdodDsKK30KKworVGV4dHVyZURhdGFXcmFwcGVyLnByb3Rv
dHlwZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLndpZHRoXzsKK307
CisKK1RleHR1cmVEYXRhV3JhcHBlci5wcm90b3R5cGUuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuIHRoaXMuaGVpZ2h0XzsKK307CisKK1RleHR1cmVEYXRhV3JhcHBlci5wcm90
b3R5cGUuZ2VuZXJhdGVEYXRhID0gZnVuY3Rpb24oKSB7CisgICAgdGhpcy5kYXRhID0gdGhpcy5k
YXRhXzsKKyAgICBtYXliZVJ1blRlc3RzKCk7Cit9OworCitmdW5jdGlvbiBSR0JBOERhdGFXcmFw
cGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywg
d2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDQgKiB3aWR0
aCAqIGhlaWdodCk7Cit9CisKK1JHQkE4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1
cmVEYXRhV3JhcHBlcjsKKworUkdCQThEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBm
dW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIGluZGV4ID0gNCAqICh0aGlzLndp
ZHRoXyAqIHkgKyB4KTsKKyAgICB0aGlzLmRhdGFfW2luZGV4XSA9IHI7CisgICAgdGhpcy5kYXRh
X1tpbmRleCArIDFdID0gZzsKKyAgICB0aGlzLmRhdGFfW2luZGV4ICsgMl0gPSBiOworICAgIHRo
aXMuZGF0YV9baW5kZXggKyAzXSA9IGE7Cit9OworCitmdW5jdGlvbiBSR0JBNTU1MURhdGFXcmFw
cGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywg
d2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50MTZBcnJheSh3aWR0aCAq
IGhlaWdodCk7Cit9CisKK1JHQkE1NTUxRGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1
cmVEYXRhV3JhcHBlcjsKKworUkdCQTU1NTFEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwg
PSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIHZhbHVlID0gKCgociAmIDB4
RjgpIDw8IDgpCisgICAgICAgICAgICAgICAgIHwgKChnICYgMHhGOCkgPDwgMykKKyAgICAgICAg
ICAgICAgICAgfCAoKGIgJiAweEY4KSA+PiAyKQorICAgICAgICAgICAgICAgICB8IChhID4+IDcp
KTsKKyAgICB0aGlzLmRhdGFfW3RoaXMud2lkdGhfICogeSArIHhdID0gdmFsdWU7Cit9OworCitm
dW5jdGlvbiBSR0JBNDQ0NERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVy
ZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9
IG5ldyBVaW50MTZBcnJheSh3aWR0aCAqIGhlaWdodCk7Cit9CisKK1JHQkE0NDQ0RGF0YVdyYXBw
ZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdCQTQ0NDREYXRhV3Jh
cHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7Cisg
ICAgdmFyIHZhbHVlID0gKCgociAmIDB4RjApIDw8IDgpCisgICAgICAgICAgICAgICAgIHwgKChn
ICYgMHhGMCkgPDwgNCkKKyAgICAgICAgICAgICAgICAgfCAoYiAmIDB4RjApCisgICAgICAgICAg
ICAgICAgIHwgKGEgPj4gNCkpOworICAgIHRoaXMuZGF0YV9bdGhpcy53aWR0aF8gKiB5ICsgeF0g
PSB2YWx1ZTsKK307CisKK2Z1bmN0aW9uIFJHQjhEYXRhV3JhcHBlcih3aWR0aCwgaGVpZ2h0KQor
eworICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQpOworICAg
IHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSgzICogd2lkdGggKiBoZWlnaHQpOworfQorCitS
R0I4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworUkdC
OERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIs
IGEpIHsKKyAgICB2YXIgaW5kZXggPSAzICogKHRoaXMud2lkdGhfICogeSArIHgpOworICAgIHRo
aXMuZGF0YV9baW5kZXhdID0gcjsKKyAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBnOworICAg
IHRoaXMuZGF0YV9baW5kZXggKyAyXSA9IGI7Cit9OworCitmdW5jdGlvbiBSR0I1NjVEYXRhV3Jh
cHBlcih3aWR0aCwgaGVpZ2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMs
IHdpZHRoLCBoZWlnaHQpOworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDE2QXJyYXkod2lkdGgg
KiBoZWlnaHQpOworfQorCitSR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBuZXcgVGV4dHVy
ZURhdGFXcmFwcGVyOworCitSR0I1NjVEYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBm
dW5jdGlvbih4LCB5LCByLCBnLCBiLCBhKSB7CisgICAgdmFyIHZhbHVlID0gKCgociAmIDB4Rjgp
IDw8IDgpCisgICAgICAgICAgICAgICAgIHwgKChnICYgMHhGQykgPDwgMykKKyAgICAgICAgICAg
ICAgICAgfCAoKGIgJiAweEY4KSA+PiAzKSk7CisgICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAq
IHkgKyB4XSA9IHZhbHVlOworfTsKKworZnVuY3Rpb24gQThEYXRhV3JhcHBlcih3aWR0aCwgaGVp
Z2h0KQoreworICAgIFRleHR1cmVEYXRhV3JhcHBlci5jYWxsKHRoaXMsIHdpZHRoLCBoZWlnaHQp
OworICAgIHRoaXMuZGF0YV8gPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7Cit9CisK
K0E4RGF0YVdyYXBwZXIucHJvdG90eXBlID0gbmV3IFRleHR1cmVEYXRhV3JhcHBlcjsKKworQThE
YXRhV3JhcHBlci5wcm90b3R5cGUuc2V0UGl4ZWwgPSBmdW5jdGlvbih4LCB5LCByLCBnLCBiLCBh
KSB7CisgICAgdGhpcy5kYXRhX1t0aGlzLndpZHRoXyAqIHkgKyB4XSA9IGE7Cit9OworCitmdW5j
dGlvbiBMOERhdGFXcmFwcGVyKHdpZHRoLCBoZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFw
cGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdodCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50
OEFycmF5KHdpZHRoICogaGVpZ2h0KTsKK30KKworTDhEYXRhV3JhcHBlci5wcm90b3R5cGUgPSBu
ZXcgVGV4dHVyZURhdGFXcmFwcGVyOworCitMOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhl
bCA9IGZ1bmN0aW9uKHgsIHksIHIsIGcsIGIsIGEpIHsKKyAgICB0aGlzLmRhdGFfW3RoaXMud2lk
dGhfICogeSArIHhdID0gcjsKK307CisKK2Z1bmN0aW9uIExBOERhdGFXcmFwcGVyKHdpZHRoLCBo
ZWlnaHQpCit7CisgICAgVGV4dHVyZURhdGFXcmFwcGVyLmNhbGwodGhpcywgd2lkdGgsIGhlaWdo
dCk7CisgICAgdGhpcy5kYXRhXyA9IG5ldyBVaW50OEFycmF5KDIgKiB3aWR0aCAqIGhlaWdodCk7
Cit9CisKK0xBOERhdGFXcmFwcGVyLnByb3RvdHlwZSA9IG5ldyBUZXh0dXJlRGF0YVdyYXBwZXI7
CisKK0xBOERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRQaXhlbCA9IGZ1bmN0aW9uKHgsIHksIHIs
IGcsIGIsIGEpIHsKKyAgICB2YXIgaW5kZXggPSAyICogKHRoaXMud2lkdGhfICogeSArIHgpOwor
ICAgIHRoaXMuZGF0YV9baW5kZXhdID0gcjsKKyAgICB0aGlzLmRhdGFfW2luZGV4ICsgMV0gPSBh
OworfTsKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBDb2xvciByYW1wIGdlbmVyYXRpb24gZnVuY3Rp
b25zCiAvLwpAQCAtNTUxLDggKzc2Miw4IEBAIGZ1bmN0aW9uIGNvbG9yQ2hhbm5lbHNBcmVaZXJv
KGFycmF5LCB0aHIKICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAzOyArK2opCiAgICAgICAg
ICAgICBpZiAoYXJyYXlbaSArIGpdICE9IDApIHsKICAgICAgICAgICAgICAgICBwYXNzZWQgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICBpZiAoKytudW1GYWlsdXJlcyA8IDUpCi0gICAgICAgICAg
ICAgICAgICAgIGRlYnVnKCIgIGFycmF5WyIgKyBpICsgIl0gc2hvdWxkIGhhdmUgYmVlbiAwLCB3
YXMgIiArIGFycmF5W2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoKytudW1GYWlsdXJlcyA8PSA1
KQorICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICBhcnJheVsiICsgKGkgKyBqKSArICJdIHNo
b3VsZCBoYXZlIGJlZW4gMCwgd2FzICIgKyBhcnJheVtpICsgal0pOwogICAgICAgICAgICAgfQog
CiAgICAgcmV0dXJuIHBhc3NlZDsK
</data>
<flag name="review"
          id="47165"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="47166"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>