<?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>21556</bug_id>
          
          <creation_ts>2008-10-12 11:12:21 -0700</creation_ts>
          <short_desc>non-ASCII digits are allowed in places where only ASCII should be</short_desc>
          <delta_ts>2008-10-12 15:51:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95046</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 11:12:21 -0700</bug_when>
    <thetext>We shouldn&apos;t have isDigit and digitValue in our Unicode class, because there&apos;s no context where we want to support arbitrary Unicode digits. All the places we support digits they need to be ASCII digits only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95048</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 11:33:31 -0700</bug_when>
    <thetext>My plan is to remove unused functions from our Unicode headers and also remove used functions that are being used when an ASCII function should be used instead.

    - digitValue is never used except where it should be ASCII-only
    - isDigit is never used except where it should be ASCII-only
    - isFormatChar is unused

As far as I can tell, the other functions are used correctly, so I won&apos;t touch them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95066</commentid>
    <comment_count>2</comment_count>
      <attachid>24309</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 13:28:01 -0700</bug_when>
    <thetext>Created attachment 24309
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95067</commentid>
    <comment_count>3</comment_count>
      <attachid>24310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 13:29:37 -0700</bug_when>
    <thetext>Created attachment 24310
patch

Oops, included unrelated changes by accident.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95089</commentid>
    <comment_count>4</comment_count>
      <attachid>24310</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-12 15:25:14 -0700</bug_when>
    <thetext>Comment on attachment 24310
patch

r=me, but I think you should land the cleanups separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95092</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 15:51:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/37531</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24309</attachid>
            <date>2008-10-12 13:28:01 -0700</date>
            <delta_ts>2008-10-12 13:29:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>NonASCIIDigitPatch.txt</filename>
            <type>text/plain</type>
            <size>123203</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMTIgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTU2CisgICAgICAgICAgQnVnIDIxNTU2OiBub24tQVNDSUkgZGlnaXRzIGFyZSBhbGxvd2Vk
IGluIHBsYWNlcyB3aGVyZSBvbmx5IEFTQ0lJIHNob3VsZCBiZQorCisgICAgICAgICogd3RmL3Vu
aWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogRml4ZWQgaW5kZW50YXRpb24gdG8gbWF0Y2ggV2ViS2l0
IGNvZGluZyBzdHlsZS4KKyAgICAgICAgUmVtb3ZlZCBpc0RpZ2l0LCBkaWdpdFZhbHVlLCBhbmQg
aXNGb3JtYXRDaGFyLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6IERp
dHRvLgorCiAyMDA4LTEwLTEyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgJKHJldmlzaW9uIDM3NTI2KQorKysgSmF2
YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw4ICsxLDcgQEAKIC8qCi0gKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJy
YXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgR2VvcmdlIFN0YWlrb3MgPHN0YWlrb3NAa2Rl
Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlw
b3AuY29tPgotICogIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsMjE1ICsyMywxOTcg
QEAKICNpZm5kZWYgS0pTX1VOSUNPREVfSUNVX0gKICNkZWZpbmUgS0pTX1VOSUNPREVfSUNVX0gK
IAorI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWNoYXIuaD4KICNpbmNs
dWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2Lmg+CiAKLSNp
bmNsdWRlIDxzdGRsaWIuaD4KLQogbmFtZXNwYWNlIFdURiB7Ci0gIG5hbWVzcGFjZSBVbmljb2Rl
IHsKK25hbWVzcGFjZSBVbmljb2RlIHsKKworZW51bSBEaXJlY3Rpb24geworICAgIExlZnRUb1Jp
Z2h0ID0gVV9MRUZUX1RPX1JJR0hULAorICAgIFJpZ2h0VG9MZWZ0ID0gVV9SSUdIVF9UT19MRUZU
LAorICAgIEV1cm9wZWFuTnVtYmVyID0gVV9FVVJPUEVBTl9OVU1CRVIsCisgICAgRXVyb3BlYW5O
dW1iZXJTZXBhcmF0b3IgPSBVX0VVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IsCisgICAgRXVyb3Bl
YW5OdW1iZXJUZXJtaW5hdG9yID0gVV9FVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUiwKKyAgICBB
cmFiaWNOdW1iZXIgPSBVX0FSQUJJQ19OVU1CRVIsCisgICAgQ29tbW9uTnVtYmVyU2VwYXJhdG9y
ID0gVV9DT01NT05fTlVNQkVSX1NFUEFSQVRPUiwKKyAgICBCbG9ja1NlcGFyYXRvciA9IFVfQkxP
Q0tfU0VQQVJBVE9SLAorICAgIFNlZ21lbnRTZXBhcmF0b3IgPSBVX1NFR01FTlRfU0VQQVJBVE9S
LAorICAgIFdoaXRlU3BhY2VOZXV0cmFsID0gVV9XSElURV9TUEFDRV9ORVVUUkFMLAorICAgIE90
aGVyTmV1dHJhbCA9IFVfT1RIRVJfTkVVVFJBTCwKKyAgICBMZWZ0VG9SaWdodEVtYmVkZGluZyA9
IFVfTEVGVF9UT19SSUdIVF9FTUJFRERJTkcsCisgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFVf
TEVGVF9UT19SSUdIVF9PVkVSUklERSwKKyAgICBSaWdodFRvTGVmdEFyYWJpYyA9IFVfUklHSFRf
VE9fTEVGVF9BUkFCSUMsCisgICAgUmlnaHRUb0xlZnRFbWJlZGRpbmcgPSBVX1JJR0hUX1RPX0xF
RlRfRU1CRURESU5HLAorICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBVX1JJR0hUX1RPX0xFRlRf
T1ZFUlJJREUsCisgICAgUG9wRGlyZWN0aW9uYWxGb3JtYXQgPSBVX1BPUF9ESVJFQ1RJT05BTF9G
T1JNQVQsCisgICAgTm9uU3BhY2luZ01hcmsgPSBVX0RJUl9OT05fU1BBQ0lOR19NQVJLLAorICAg
IEJvdW5kYXJ5TmV1dHJhbCA9IFVfQk9VTkRBUllfTkVVVFJBTAorfTsKKworZW51bSBEZWNvbXBv
c2l0aW9uVHlwZSB7CisgICAgRGVjb21wb3NpdGlvbk5vbmUgPSBVX0RUX05PTkUsCisgICAgRGVj
b21wb3NpdGlvbkNhbm9uaWNhbCA9IFVfRFRfQ0FOT05JQ0FMLAorICAgIERlY29tcG9zaXRpb25D
b21wYXQgPSBVX0RUX0NPTVBBVCwKKyAgICBEZWNvbXBvc2l0aW9uQ2lyY2xlID0gVV9EVF9DSVJD
TEUsCisgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gVV9EVF9GSU5BTCwKKyAgICBEZWNvbXBvc2l0
aW9uRm9udCA9IFVfRFRfRk9OVCwKKyAgICBEZWNvbXBvc2l0aW9uRnJhY3Rpb24gPSBVX0RUX0ZS
QUNUSU9OLAorICAgIERlY29tcG9zaXRpb25Jbml0aWFsID0gVV9EVF9JTklUSUFMLAorICAgIERl
Y29tcG9zaXRpb25Jc29sYXRlZCA9IFVfRFRfSVNPTEFURUQsCisgICAgRGVjb21wb3NpdGlvbk1l
ZGlhbCA9IFVfRFRfTUVESUFMLAorICAgIERlY29tcG9zaXRpb25OYXJyb3cgPSBVX0RUX05BUlJP
VywKKyAgICBEZWNvbXBvc2l0aW9uTm9CcmVhayA9IFVfRFRfTk9CUkVBSywKKyAgICBEZWNvbXBv
c2l0aW9uU21hbGwgPSBVX0RUX1NNQUxMLAorICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBVX0RU
X1NRVUFSRSwKKyAgICBEZWNvbXBvc2l0aW9uU3ViID0gVV9EVF9TVUIsCisgICAgRGVjb21wb3Np
dGlvblN1cGVyID0gVV9EVF9TVVBFUiwKKyAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwgPSBVX0RU
X1ZFUlRJQ0FMLAorICAgIERlY29tcG9zaXRpb25XaWRlID0gVV9EVF9XSURFLAorfTsKKworZW51
bSBDaGFyQ2F0ZWdvcnkgeworICAgIE5vQ2F0ZWdvcnkgPSAgMCwKKyAgICBPdGhlcl9Ob3RBc3Np
Z25lZCA9IFVfTUFTSyhVX0dFTkVSQUxfT1RIRVJfVFlQRVMpLAorICAgIExldHRlcl9VcHBlcmNh
c2UgPSBVX01BU0soVV9VUFBFUkNBU0VfTEVUVEVSKSwKKyAgICBMZXR0ZXJfTG93ZXJjYXNlID0g
VV9NQVNLKFVfTE9XRVJDQVNFX0xFVFRFUiksCisgICAgTGV0dGVyX1RpdGxlY2FzZSA9IFVfTUFT
SyhVX1RJVExFQ0FTRV9MRVRURVIpLAorICAgIExldHRlcl9Nb2RpZmllciA9IFVfTUFTSyhVX01P
RElGSUVSX0xFVFRFUiksCisgICAgTGV0dGVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTEVUVEVS
KSwKKworICAgIE1hcmtfTm9uU3BhY2luZyA9IFVfTUFTSyhVX05PTl9TUEFDSU5HX01BUkspLAor
ICAgIE1hcmtfRW5jbG9zaW5nID0gVV9NQVNLKFVfRU5DTE9TSU5HX01BUkspLAorICAgIE1hcmtf
U3BhY2luZ0NvbWJpbmluZyA9IFVfTUFTSyhVX0NPTUJJTklOR19TUEFDSU5HX01BUkspLAorCisg
ICAgTnVtYmVyX0RlY2ltYWxEaWdpdCA9IFVfTUFTSyhVX0RFQ0lNQUxfRElHSVRfTlVNQkVSKSwK
KyAgICBOdW1iZXJfTGV0dGVyID0gVV9NQVNLKFVfTEVUVEVSX05VTUJFUiksCisgICAgTnVtYmVy
X090aGVyID0gVV9NQVNLKFVfT1RIRVJfTlVNQkVSKSwKKworICAgIFNlcGFyYXRvcl9TcGFjZSA9
IFVfTUFTSyhVX1NQQUNFX1NFUEFSQVRPUiksCisgICAgU2VwYXJhdG9yX0xpbmUgPSBVX01BU0so
VV9MSU5FX1NFUEFSQVRPUiksCisgICAgU2VwYXJhdG9yX1BhcmFncmFwaCA9IFVfTUFTSyhVX1BB
UkFHUkFQSF9TRVBBUkFUT1IpLAorCisgICAgT3RoZXJfQ29udHJvbCA9IFVfTUFTSyhVX0NPTlRS
T0xfQ0hBUiksCisgICAgT3RoZXJfRm9ybWF0ID0gVV9NQVNLKFVfRk9STUFUX0NIQVIpLAorICAg
IE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soVV9QUklWQVRFX1VTRV9DSEFSKSwKKyAgICBPdGhl
cl9TdXJyb2dhdGUgPSBVX01BU0soVV9TVVJST0dBVEUpLAorCisgICAgUHVuY3R1YXRpb25fRGFz
aCA9IFVfTUFTSyhVX0RBU0hfUFVOQ1RVQVRJT04pLAorICAgIFB1bmN0dWF0aW9uX09wZW4gPSBV
X01BU0soVV9TVEFSVF9QVU5DVFVBVElPTiksCisgICAgUHVuY3R1YXRpb25fQ2xvc2UgPSBVX01B
U0soVV9FTkRfUFVOQ1RVQVRJT04pLAorICAgIFB1bmN0dWF0aW9uX0Nvbm5lY3RvciA9IFVfTUFT
SyhVX0NPTk5FQ1RPUl9QVU5DVFVBVElPTiksCisgICAgUHVuY3R1YXRpb25fT3RoZXIgPSBVX01B
U0soVV9PVEhFUl9QVU5DVFVBVElPTiksCisKKyAgICBTeW1ib2xfTWF0aCA9IFVfTUFTSyhVX01B
VEhfU1lNQk9MKSwKKyAgICBTeW1ib2xfQ3VycmVuY3kgPSBVX01BU0soVV9DVVJSRU5DWV9TWU1C
T0wpLAorICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhVX01PRElGSUVSX1NZTUJPTCksCisg
ICAgU3ltYm9sX090aGVyID0gVV9NQVNLKFVfT1RIRVJfU1lNQk9MKSwKKworICAgIFB1bmN0dWF0
aW9uX0luaXRpYWxRdW90ZSA9IFVfTUFTSyhVX0lOSVRJQUxfUFVOQ1RVQVRJT04pLAorICAgIFB1
bmN0dWF0aW9uX0ZpbmFsUXVvdGUgPSBVX01BU0soVV9GSU5BTF9QVU5DVFVBVElPTikKK307CisK
K2lubGluZSBVQ2hhcjMyIGZvbGRDYXNlKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV9mb2xk
Q2FzZShjLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKK30KIAotICAgIGVudW0gRGlyZWN0aW9uIHsK
LSAgICAgIExlZnRUb1JpZ2h0ID0gVV9MRUZUX1RPX1JJR0hULAotICAgICAgUmlnaHRUb0xlZnQg
PSBVX1JJR0hUX1RPX0xFRlQsCi0gICAgICBFdXJvcGVhbk51bWJlciA9IFVfRVVST1BFQU5fTlVN
QkVSLAotICAgICAgRXVyb3BlYW5OdW1iZXJTZXBhcmF0b3IgPSBVX0VVUk9QRUFOX05VTUJFUl9T
RVBBUkFUT1IsCi0gICAgICBFdXJvcGVhbk51bWJlclRlcm1pbmF0b3IgPSBVX0VVUk9QRUFOX05V
TUJFUl9URVJNSU5BVE9SLAotICAgICAgQXJhYmljTnVtYmVyID0gVV9BUkFCSUNfTlVNQkVSLAot
ICAgICAgQ29tbW9uTnVtYmVyU2VwYXJhdG9yID0gVV9DT01NT05fTlVNQkVSX1NFUEFSQVRPUiwK
LSAgICAgIEJsb2NrU2VwYXJhdG9yID0gVV9CTE9DS19TRVBBUkFUT1IsCi0gICAgICBTZWdtZW50
U2VwYXJhdG9yID0gVV9TRUdNRU5UX1NFUEFSQVRPUiwKLSAgICAgIFdoaXRlU3BhY2VOZXV0cmFs
ID0gVV9XSElURV9TUEFDRV9ORVVUUkFMLAotICAgICAgT3RoZXJOZXV0cmFsID0gVV9PVEhFUl9O
RVVUUkFMLAotICAgICAgTGVmdFRvUmlnaHRFbWJlZGRpbmcgPSBVX0xFRlRfVE9fUklHSFRfRU1C
RURESU5HLAotICAgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFVfTEVGVF9UT19SSUdIVF9PVkVS
UklERSwKLSAgICAgIFJpZ2h0VG9MZWZ0QXJhYmljID0gVV9SSUdIVF9UT19MRUZUX0FSQUJJQywK
LSAgICAgIFJpZ2h0VG9MZWZ0RW1iZWRkaW5nID0gVV9SSUdIVF9UT19MRUZUX0VNQkVERElORywK
LSAgICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBVX1JJR0hUX1RPX0xFRlRfT1ZFUlJJREUsCi0g
ICAgICBQb3BEaXJlY3Rpb25hbEZvcm1hdCA9IFVfUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCwKLSAg
ICAgIE5vblNwYWNpbmdNYXJrID0gVV9ESVJfTk9OX1NQQUNJTkdfTUFSSywKLSAgICAgIEJvdW5k
YXJ5TmV1dHJhbCA9IFVfQk9VTkRBUllfTkVVVFJBTAotICAgIH07Ci0KLSAgICBlbnVtIERlY29t
cG9zaXRpb25UeXBlIHsKLSAgICAgIERlY29tcG9zaXRpb25Ob25lID0gVV9EVF9OT05FLAotICAg
ICAgRGVjb21wb3NpdGlvbkNhbm9uaWNhbCA9IFVfRFRfQ0FOT05JQ0FMLAotICAgICAgRGVjb21w
b3NpdGlvbkNvbXBhdCA9IFVfRFRfQ09NUEFULAotICAgICAgRGVjb21wb3NpdGlvbkNpcmNsZSA9
IFVfRFRfQ0lSQ0xFLAotICAgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gVV9EVF9GSU5BTCwKLSAg
ICAgIERlY29tcG9zaXRpb25Gb250ID0gVV9EVF9GT05ULAotICAgICAgRGVjb21wb3NpdGlvbkZy
YWN0aW9uID0gVV9EVF9GUkFDVElPTiwKLSAgICAgIERlY29tcG9zaXRpb25Jbml0aWFsID0gVV9E
VF9JTklUSUFMLAotICAgICAgRGVjb21wb3NpdGlvbklzb2xhdGVkID0gVV9EVF9JU09MQVRFRCwK
LSAgICAgIERlY29tcG9zaXRpb25NZWRpYWwgPSBVX0RUX01FRElBTCwKLSAgICAgIERlY29tcG9z
aXRpb25OYXJyb3cgPSBVX0RUX05BUlJPVywKLSAgICAgIERlY29tcG9zaXRpb25Ob0JyZWFrID0g
VV9EVF9OT0JSRUFLLAotICAgICAgRGVjb21wb3NpdGlvblNtYWxsID0gVV9EVF9TTUFMTCwKLSAg
ICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBVX0RUX1NRVUFSRSwKLSAgICAgIERlY29tcG9zaXRp
b25TdWIgPSBVX0RUX1NVQiwKLSAgICAgIERlY29tcG9zaXRpb25TdXBlciA9IFVfRFRfU1VQRVIs
Ci0gICAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwgPSBVX0RUX1ZFUlRJQ0FMLAotICAgICAgRGVj
b21wb3NpdGlvbldpZGUgPSBVX0RUX1dJREUsCi0gICAgfTsKLQotICAgIGVudW0gQ2hhckNhdGVn
b3J5IHsKLSAgICAgIE5vQ2F0ZWdvcnkgPSAgMCwKLSAgICAgIE90aGVyX05vdEFzc2lnbmVkID0g
VV9NQVNLKFVfR0VORVJBTF9PVEhFUl9UWVBFUyksCi0gICAgICBMZXR0ZXJfVXBwZXJjYXNlID0g
VV9NQVNLKFVfVVBQRVJDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfTG93ZXJjYXNlID0gVV9N
QVNLKFVfTE9XRVJDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfVGl0bGVjYXNlID0gVV9NQVNL
KFVfVElUTEVDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfTW9kaWZpZXIgPSBVX01BU0soVV9N
T0RJRklFUl9MRVRURVIpLAotICAgICAgTGV0dGVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTEVU
VEVSKSwKLQotICAgICAgTWFya19Ob25TcGFjaW5nID0gVV9NQVNLKFVfTk9OX1NQQUNJTkdfTUFS
SyksCi0gICAgICBNYXJrX0VuY2xvc2luZyA9IFVfTUFTSyhVX0VOQ0xPU0lOR19NQVJLKSwKLSAg
ICAgIE1hcmtfU3BhY2luZ0NvbWJpbmluZyA9IFVfTUFTSyhVX0NPTUJJTklOR19TUEFDSU5HX01B
UkspLAotCi0gICAgICBOdW1iZXJfRGVjaW1hbERpZ2l0ID0gVV9NQVNLKFVfREVDSU1BTF9ESUdJ
VF9OVU1CRVIpLAotICAgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhVX0xFVFRFUl9OVU1CRVIp
LAotICAgICAgTnVtYmVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTlVNQkVSKSwKLQotICAgICAg
U2VwYXJhdG9yX1NwYWNlID0gVV9NQVNLKFVfU1BBQ0VfU0VQQVJBVE9SKSwKLSAgICAgIFNlcGFy
YXRvcl9MaW5lID0gVV9NQVNLKFVfTElORV9TRVBBUkFUT1IpLAotICAgICAgU2VwYXJhdG9yX1Bh
cmFncmFwaCA9IFVfTUFTSyhVX1BBUkFHUkFQSF9TRVBBUkFUT1IpLAotCi0gICAgICBPdGhlcl9D
b250cm9sID0gVV9NQVNLKFVfQ09OVFJPTF9DSEFSKSwKLSAgICAgIE90aGVyX0Zvcm1hdCA9IFVf
TUFTSyhVX0ZPUk1BVF9DSEFSKSwKLSAgICAgIE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soVV9Q
UklWQVRFX1VTRV9DSEFSKSwKLSAgICAgIE90aGVyX1N1cnJvZ2F0ZSA9IFVfTUFTSyhVX1NVUlJP
R0FURSksCi0KLSAgICAgIFB1bmN0dWF0aW9uX0Rhc2ggPSBVX01BU0soVV9EQVNIX1BVTkNUVUFU
SU9OKSwKLSAgICAgIFB1bmN0dWF0aW9uX09wZW4gPSBVX01BU0soVV9TVEFSVF9QVU5DVFVBVElP
TiksCi0gICAgICBQdW5jdHVhdGlvbl9DbG9zZSA9IFVfTUFTSyhVX0VORF9QVU5DVFVBVElPTiks
Ci0gICAgICBQdW5jdHVhdGlvbl9Db25uZWN0b3IgPSBVX01BU0soVV9DT05ORUNUT1JfUFVOQ1RV
QVRJT04pLAotICAgICAgUHVuY3R1YXRpb25fT3RoZXIgPSBVX01BU0soVV9PVEhFUl9QVU5DVFVB
VElPTiksCi0KLSAgICAgIFN5bWJvbF9NYXRoID0gVV9NQVNLKFVfTUFUSF9TWU1CT0wpLAotICAg
ICAgU3ltYm9sX0N1cnJlbmN5ID0gVV9NQVNLKFVfQ1VSUkVOQ1lfU1lNQk9MKSwKLSAgICAgIFN5
bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhVX01PRElGSUVSX1NZTUJPTCksCi0gICAgICBTeW1ib2xf
T3RoZXIgPSBVX01BU0soVV9PVEhFUl9TWU1CT0wpLAotCi0gICAgICBQdW5jdHVhdGlvbl9Jbml0
aWFsUXVvdGUgPSBVX01BU0soVV9JTklUSUFMX1BVTkNUVUFUSU9OKSwKLSAgICAgIFB1bmN0dWF0
aW9uX0ZpbmFsUXVvdGUgPSBVX01BU0soVV9GSU5BTF9QVU5DVFVBVElPTikKLSAgICB9OwotCi0g
ICAgaW5saW5lIFVDaGFyMzIgZm9sZENhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVy
biB1X2ZvbGRDYXNlKGMsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOwotICAgIH0KLQotICAgIGlubGlu
ZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNo
YXIqIHNyYywgaW50IHNyY0xlbmd0aCwgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgVUVycm9y
Q29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICBpbnQgcmVhbExlbmd0aCA9IHVfc3Ry
Rm9sZENhc2UocmVzdWx0LCByZXN1bHRMZW5ndGgsIHNyYywgc3JjTGVuZ3RoLCBVX0ZPTERfQ0FT
RV9ERUZBVUxULCAmc3RhdHVzKTsKLSAgICAgICplcnJvciA9ICFVX1NVQ0NFU1Moc3RhdHVzKTsK
LSAgICAgIHJldHVybiByZWFsTGVuZ3RoOwotICAgIH0KLQotICAgIGlubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCBib29sKiBlcnJvcikKLSAgICB7Ci0gICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9
IFVfWkVST19FUlJPUjsKLSAgICAgIGludCByZWFsTGVuZ3RoID0gdV9zdHJUb0xvd2VyKHJlc3Vs
dCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgIiIsICZzdGF0dXMpOwotICAgICAgKmVy
cm9yID0gISFVX0ZBSUxVUkUoc3RhdHVzKTsKLSAgICAgIHJldHVybiByZWFsTGVuZ3RoOwotICAg
IH0KLQotICAgIGlubGluZSBVQ2hhcjMyIHRvTG93ZXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAg
IHJldHVybiB1X3RvbG93ZXIoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIFVDaGFyMzIgdG9VcHBl
cihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIHVfdG91cHBlcihjKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgaW50IHRvVXBwZXIoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwg
Y29uc3QgVUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgYm9vbCogZXJyb3IpCi0gICAgewotICAg
ICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICBpbnQgcmVhbExlbmd0
aCA9IHVfc3RyVG9VcHBlcihyZXN1bHQsIHJlc3VsdExlbmd0aCwgc3JjLCBzcmNMZW5ndGgsICIi
LCAmc3RhdHVzKTsKLSAgICAgICplcnJvciA9ICEhVV9GQUlMVVJFKHN0YXR1cyk7Ci0gICAgICBy
ZXR1cm4gcmVhbExlbmd0aDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgVUNoYXIzMiB0b1RpdGxlQ2Fz
ZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIHVfdG90aXRsZShjKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgYm9vbCBpc0FyYWJpY0NoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHVibG9ja19nZXRDb2RlKGMpID09IFVCTE9DS19BUkFCSUM7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNGb3JtYXRDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4g
dV9jaGFyVHlwZShjKSA9PSBVX0ZPUk1BVF9DSEFSOwotICAgIH0KLQotICAgIGlubGluZSBib29s
IGlzU2VwYXJhdG9yU3BhY2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiB1X2NoYXJU
eXBlKGMpID09IFVfU1BBQ0VfU0VQQVJBVE9SOwotICAgIH0KLQotICAgIGlubGluZSBib29sIGlz
UHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuICEhdV9pc3ByaW50
KGMpOwotICAgIH0KLSAgICAKLSAgICBpbmxpbmUgYm9vbCBpc0RpZ2l0KFVDaGFyMzIgYykKLSAg
ICB7Ci0gICAgICByZXR1cm4gISF1X2lzZGlnaXQoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgaXNQdW5jdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuICEhdV9pc3B1bmN0KGMp
OwotICAgIH0KLQotICAgIGlubGluZSBVQ2hhcjMyIG1pcnJvcmVkQ2hhcihVQ2hhcjMyIGMpCi0g
ICAgewotICAgICAgcmV0dXJuIHVfY2hhck1pcnJvcihjKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Q2hhckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2hhckNhdGVnb3J5PihVX0dFVF9HQ19NQVNLKGMpKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERpcmVjdGlvbj4odV9jaGFyRGlyZWN0aW9uKGMpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgYm9vbCBpc0xvd2VyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gISF1
X2lzbG93ZXIoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludCBkaWdpdFZhbHVlKFVDaGFyMzIg
YykKLSAgICB7Ci0gICAgICByZXR1cm4gdV9jaGFyRGlnaXRWYWx1ZShjKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgdWludDhfdCBjb21iaW5pbmdDbGFzcyhVQ2hhcjMyIGMpCi0gICAgewotICAgICAg
cmV0dXJuIHVfZ2V0Q29tYmluaW5nQ2xhc3MoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIERlY29t
cG9zaXRpb25UeXBlIGRlY29tcG9zaXRpb25UeXBlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGVjb21wb3NpdGlvblR5cGU+KHVfZ2V0SW50UHJvcGVydHlWYWx1
ZShjLCBVQ0hBUl9ERUNPTVBPU0lUSU9OX1RZUEUpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50
IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKLSAg
ICB7Ci0gICAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9GT0xEX0NBU0VfREVG
QVVMVCk7Ci0gICAgfQoraW5saW5lIGludCBmb2xkQ2FzZShVQ2hhciogcmVzdWx0LCBpbnQgcmVz
dWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCBib29sKiBlcnJvcikK
K3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBpbnQgcmVhbExl
bmd0aCA9IHVfc3RyRm9sZENhc2UocmVzdWx0LCByZXN1bHRMZW5ndGgsIHNyYywgc3JjTGVuZ3Ro
LCBVX0ZPTERfQ0FTRV9ERUZBVUxULCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhVV9TVUNDRVNT
KHN0YXR1cyk7CisgICAgcmV0dXJuIHJlYWxMZW5ndGg7Cit9CisKK2lubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCBib29sKiBlcnJvcikKK3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVS
T19FUlJPUjsKKyAgICBpbnQgcmVhbExlbmd0aCA9IHVfc3RyVG9Mb3dlcihyZXN1bHQsIHJlc3Vs
dExlbmd0aCwgc3JjLCBzcmNMZW5ndGgsICIiLCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhIVVf
RkFJTFVSRShzdGF0dXMpOworICAgIHJldHVybiByZWFsTGVuZ3RoOworfQorCitpbmxpbmUgVUNo
YXIzMiB0b0xvd2VyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV90b2xvd2VyKGMpOworfQog
Ci0gIH0KK2lubGluZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjKQoreworICAgIHJldHVybiB1
X3RvdXBwZXIoYyk7CiB9CiAKK2lubGluZSBpbnQgdG9VcHBlcihVQ2hhciogcmVzdWx0LCBpbnQg
cmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCBib29sKiBlcnJv
cikKK3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBpbnQgcmVh
bExlbmd0aCA9IHVfc3RyVG9VcHBlcihyZXN1bHQsIHJlc3VsdExlbmd0aCwgc3JjLCBzcmNMZW5n
dGgsICIiLCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhIVVfRkFJTFVSRShzdGF0dXMpOworICAg
IHJldHVybiByZWFsTGVuZ3RoOworfQorCitpbmxpbmUgVUNoYXIzMiB0b1RpdGxlQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIHVfdG90aXRsZShjKTsKK30KKworaW5saW5lIGJvb2wgaXNB
cmFiaWNDaGFyKFVDaGFyMzIgYykKK3sKKyAgICAgIHJldHVybiB1YmxvY2tfZ2V0Q29kZShjKSA9
PSBVQkxPQ0tfQVJBQklDOworfQorCitpbmxpbmUgYm9vbCBpc1NlcGFyYXRvclNwYWNlKFVDaGFy
MzIgYykKK3sKKyAgICByZXR1cm4gdV9jaGFyVHlwZShjKSA9PSBVX1NQQUNFX1NFUEFSQVRPUjsK
K30KKworaW5saW5lIGJvb2wgaXNQcmludGFibGVDaGFyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1
cm4gISF1X2lzcHJpbnQoYyk7Cit9CisKK2lubGluZSBib29sIGlzUHVuY3QoVUNoYXIzMiBjKQor
eworICAgIHJldHVybiAhIXVfaXNwdW5jdChjKTsKK30KKworaW5saW5lIFVDaGFyMzIgbWlycm9y
ZWRDaGFyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV9jaGFyTWlycm9yKGMpOworfQorCitp
bmxpbmUgQ2hhckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2hhckNhdGVnb3J5PihVX0dFVF9HQ19NQVNLKGMpKTsKK30KKworaW5saW5lIERp
cmVjdGlvbiBkaXJlY3Rpb24oVUNoYXIzMiBjKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
aXJlY3Rpb24+KHVfY2hhckRpcmVjdGlvbihjKSk7Cit9CisKK2lubGluZSBib29sIGlzTG93ZXIo
VUNoYXIzMiBjKQoreworICAgIHJldHVybiAhIXVfaXNsb3dlcihjKTsKK30KKworaW5saW5lIHVp
bnQ4X3QgY29tYmluaW5nQ2xhc3MoVUNoYXIzMiBjKQoreworICAgIHJldHVybiB1X2dldENvbWJp
bmluZ0NsYXNzKGMpOworfQorCitpbmxpbmUgRGVjb21wb3NpdGlvblR5cGUgZGVjb21wb3NpdGlv
blR5cGUoVUNoYXIzMiBjKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWNvbXBvc2l0aW9u
VHlwZT4odV9nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVDSEFSX0RFQ09NUE9TSVRJT05fVFlQRSkp
OworfQorCitpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hh
ciogYiwgaW50IGxlbikKK3sKKyAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9G
T0xEX0NBU0VfREVGQVVMVCk7Cit9CisKK30gfQorCiAjZW5kaWYKLS8vIHZpbTogdHM9MiBzdz0y
IGV0CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgJ
KHJldmlzaW9uIDM3NTI2KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNv
ZGVRdDQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDQgQEAKIC8qCi0gKiAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgR2Vv
cmdlIFN0YWlrb3MgPHN0YWlrb3NAa2RlLm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxl
eGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3AuY29tPgogICoKQEAgLTk1LDQ2NSArOTQsNDMyIEBA
IHR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsKICNkZWZpbmUgVV9NQVNLKHgpICgodWludDMyX3Qp
MTw8KHgpKQogCiBuYW1lc3BhY2UgV1RGIHsKLSAgbmFtZXNwYWNlIFVuaWNvZGUgeworbmFtZXNw
YWNlIFVuaWNvZGUgewogCi0gICAgZW51bSBEaXJlY3Rpb24gewotICAgICAgTGVmdFRvUmlnaHQg
PSBRQ2hhcjo6RGlyTCwKLSAgICAgIFJpZ2h0VG9MZWZ0ID0gUUNoYXI6OkRpclIsCi0gICAgICBF
dXJvcGVhbk51bWJlciA9IFFDaGFyOjpEaXJFTiwKLSAgICAgIEV1cm9wZWFuTnVtYmVyU2VwYXJh
dG9yID0gUUNoYXI6OkRpckVTLAotICAgICAgRXVyb3BlYW5OdW1iZXJUZXJtaW5hdG9yID0gUUNo
YXI6OkRpckVULAotICAgICAgQXJhYmljTnVtYmVyID0gUUNoYXI6OkRpckFOLAotICAgICAgQ29t
bW9uTnVtYmVyU2VwYXJhdG9yID0gUUNoYXI6OkRpckNTLAotICAgICAgQmxvY2tTZXBhcmF0b3Ig
PSBRQ2hhcjo6RGlyQiwKLSAgICAgIFNlZ21lbnRTZXBhcmF0b3IgPSBRQ2hhcjo6RGlyUywKLSAg
ICAgIFdoaXRlU3BhY2VOZXV0cmFsID0gUUNoYXI6OkRpcldTLAotICAgICAgT3RoZXJOZXV0cmFs
ID0gUUNoYXI6OkRpck9OLAotICAgICAgTGVmdFRvUmlnaHRFbWJlZGRpbmcgPSBRQ2hhcjo6RGly
TFJFLAotICAgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFFDaGFyOjpEaXJMUk8sCi0gICAgICBS
aWdodFRvTGVmdEFyYWJpYyA9IFFDaGFyOjpEaXJBTCwKLSAgICAgIFJpZ2h0VG9MZWZ0RW1iZWRk
aW5nID0gUUNoYXI6OkRpclJMRSwKLSAgICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBRQ2hhcjo6
RGlyUkxPLAotICAgICAgUG9wRGlyZWN0aW9uYWxGb3JtYXQgPSBRQ2hhcjo6RGlyUERGLAotICAg
ICAgTm9uU3BhY2luZ01hcmsgPSBRQ2hhcjo6RGlyTlNNLAotICAgICAgQm91bmRhcnlOZXV0cmFs
ID0gUUNoYXI6OkRpckJOCi0gICAgfTsKLQotICAgIGVudW0gRGVjb21wb3NpdGlvblR5cGUgewot
ICAgICAgRGVjb21wb3NpdGlvbk5vbmUgPSBRQ2hhcjo6Tm9EZWNvbXBvc2l0aW9uLAotICAgICAg
RGVjb21wb3NpdGlvbkNhbm9uaWNhbCA9IFFDaGFyOjpDYW5vbmljYWwsCi0gICAgICBEZWNvbXBv
c2l0aW9uQ29tcGF0ID0gUUNoYXI6OkNvbXBhdCwKLSAgICAgIERlY29tcG9zaXRpb25DaXJjbGUg
PSBRQ2hhcjo6Q2lyY2xlLAotICAgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gUUNoYXI6OkZpbmFs
LAotICAgICAgRGVjb21wb3NpdGlvbkZvbnQgPSBRQ2hhcjo6Rm9udCwKLSAgICAgIERlY29tcG9z
aXRpb25GcmFjdGlvbiA9IFFDaGFyOjpGcmFjdGlvbiwKLSAgICAgIERlY29tcG9zaXRpb25Jbml0
aWFsID0gUUNoYXI6OkluaXRpYWwsCi0gICAgICBEZWNvbXBvc2l0aW9uSXNvbGF0ZWQgPSBRQ2hh
cjo6SXNvbGF0ZWQsCi0gICAgICBEZWNvbXBvc2l0aW9uTWVkaWFsID0gUUNoYXI6Ok1lZGlhbCwK
LSAgICAgIERlY29tcG9zaXRpb25OYXJyb3cgPSBRQ2hhcjo6TmFycm93LAotICAgICAgRGVjb21w
b3NpdGlvbk5vQnJlYWsgPSBRQ2hhcjo6Tm9CcmVhaywKLSAgICAgIERlY29tcG9zaXRpb25TbWFs
bCA9IFFDaGFyOjpTbWFsbCwKLSAgICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBRQ2hhcjo6U3F1
YXJlLAotICAgICAgRGVjb21wb3NpdGlvblN1YiA9IFFDaGFyOjpTdWIsCi0gICAgICBEZWNvbXBv
c2l0aW9uU3VwZXIgPSBRQ2hhcjo6U3VwZXIsCi0gICAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwg
PSBRQ2hhcjo6VmVydGljYWwsCi0gICAgICBEZWNvbXBvc2l0aW9uV2lkZSA9IFFDaGFyOjpXaWRl
Ci0gICAgfTsKLQotICAgIGVudW0gQ2hhckNhdGVnb3J5IHsKLSAgICAgIE5vQ2F0ZWdvcnkgPSAw
LAotICAgICAgTWFya19Ob25TcGFjaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX05vblNwYWNpbmcp
LAotICAgICAgTWFya19TcGFjaW5nQ29tYmluaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX1NwYWNp
bmdDb21iaW5pbmcpLAotICAgICAgTWFya19FbmNsb3NpbmcgPSBVX01BU0soUUNoYXI6Ok1hcmtf
RW5jbG9zaW5nKSwKLSAgICAgIE51bWJlcl9EZWNpbWFsRGlnaXQgPSBVX01BU0soUUNoYXI6Ok51
bWJlcl9EZWNpbWFsRGlnaXQpLAotICAgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhRQ2hhcjo6
TnVtYmVyX0xldHRlciksCi0gICAgICBOdW1iZXJfT3RoZXIgPSBVX01BU0soUUNoYXI6Ok51bWJl
cl9PdGhlciksCi0gICAgICBTZXBhcmF0b3JfU3BhY2UgPSBVX01BU0soUUNoYXI6OlNlcGFyYXRv
cl9TcGFjZSksCi0gICAgICBTZXBhcmF0b3JfTGluZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9y
X0xpbmUpLAotICAgICAgU2VwYXJhdG9yX1BhcmFncmFwaCA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJh
dG9yX1BhcmFncmFwaCksCi0gICAgICBPdGhlcl9Db250cm9sID0gVV9NQVNLKFFDaGFyOjpPdGhl
cl9Db250cm9sKSwKLSAgICAgIE90aGVyX0Zvcm1hdCA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfRm9y
bWF0KSwKLSAgICAgIE90aGVyX1N1cnJvZ2F0ZSA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfU3Vycm9n
YXRlKSwKLSAgICAgIE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soUUNoYXI6Ok90aGVyX1ByaXZh
dGVVc2UpLAotICAgICAgT3RoZXJfTm90QXNzaWduZWQgPSBVX01BU0soUUNoYXI6Ok90aGVyX05v
dEFzc2lnbmVkKSwKLSAgICAgIExldHRlcl9VcHBlcmNhc2UgPSBVX01BU0soUUNoYXI6OkxldHRl
cl9VcHBlcmNhc2UpLAotICAgICAgTGV0dGVyX0xvd2VyY2FzZSA9IFVfTUFTSyhRQ2hhcjo6TGV0
dGVyX0xvd2VyY2FzZSksCi0gICAgICBMZXR0ZXJfVGl0bGVjYXNlID0gVV9NQVNLKFFDaGFyOjpM
ZXR0ZXJfVGl0bGVjYXNlKSwKLSAgICAgIExldHRlcl9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6
TGV0dGVyX01vZGlmaWVyKSwKLSAgICAgIExldHRlcl9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6TGV0
dGVyX090aGVyKSwKLSAgICAgIFB1bmN0dWF0aW9uX0Nvbm5lY3RvciA9IFVfTUFTSyhRQ2hhcjo6
UHVuY3R1YXRpb25fQ29ubmVjdG9yKSwKLSAgICAgIFB1bmN0dWF0aW9uX0Rhc2ggPSBVX01BU0so
UUNoYXI6OlB1bmN0dWF0aW9uX0Rhc2gpLAotICAgICAgUHVuY3R1YXRpb25fT3BlbiA9IFVfTUFT
SyhRQ2hhcjo6UHVuY3R1YXRpb25fT3BlbiksCi0gICAgICBQdW5jdHVhdGlvbl9DbG9zZSA9IFVf
TUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ2xvc2UpLAotICAgICAgUHVuY3R1YXRpb25fSW5pdGlh
bFF1b3RlID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9Jbml0aWFsUXVvdGUpLAotICAgICAg
UHVuY3R1YXRpb25fRmluYWxRdW90ZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fRmluYWxR
dW90ZSksCi0gICAgICBQdW5jdHVhdGlvbl9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRp
b25fT3RoZXIpLAotICAgICAgU3ltYm9sX01hdGggPSBVX01BU0soUUNoYXI6OlN5bWJvbF9NYXRo
KSwKLSAgICAgIFN5bWJvbF9DdXJyZW5jeSA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX0N1cnJlbmN5
KSwKLSAgICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX01vZGlmaWVy
KSwKLSAgICAgIFN5bWJvbF9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX090aGVyKSwKLSAg
ICB9OworZW51bSBEaXJlY3Rpb24geworICAgIExlZnRUb1JpZ2h0ID0gUUNoYXI6OkRpckwsCisg
ICAgUmlnaHRUb0xlZnQgPSBRQ2hhcjo6RGlyUiwKKyAgICBFdXJvcGVhbk51bWJlciA9IFFDaGFy
OjpEaXJFTiwKKyAgICBFdXJvcGVhbk51bWJlclNlcGFyYXRvciA9IFFDaGFyOjpEaXJFUywKKyAg
ICBFdXJvcGVhbk51bWJlclRlcm1pbmF0b3IgPSBRQ2hhcjo6RGlyRVQsCisgICAgQXJhYmljTnVt
YmVyID0gUUNoYXI6OkRpckFOLAorICAgIENvbW1vbk51bWJlclNlcGFyYXRvciA9IFFDaGFyOjpE
aXJDUywKKyAgICBCbG9ja1NlcGFyYXRvciA9IFFDaGFyOjpEaXJCLAorICAgIFNlZ21lbnRTZXBh
cmF0b3IgPSBRQ2hhcjo6RGlyUywKKyAgICBXaGl0ZVNwYWNlTmV1dHJhbCA9IFFDaGFyOjpEaXJX
UywKKyAgICBPdGhlck5ldXRyYWwgPSBRQ2hhcjo6RGlyT04sCisgICAgTGVmdFRvUmlnaHRFbWJl
ZGRpbmcgPSBRQ2hhcjo6RGlyTFJFLAorICAgIExlZnRUb1JpZ2h0T3ZlcnJpZGUgPSBRQ2hhcjo6
RGlyTFJPLAorICAgIFJpZ2h0VG9MZWZ0QXJhYmljID0gUUNoYXI6OkRpckFMLAorICAgIFJpZ2h0
VG9MZWZ0RW1iZWRkaW5nID0gUUNoYXI6OkRpclJMRSwKKyAgICBSaWdodFRvTGVmdE92ZXJyaWRl
ID0gUUNoYXI6OkRpclJMTywKKyAgICBQb3BEaXJlY3Rpb25hbEZvcm1hdCA9IFFDaGFyOjpEaXJQ
REYsCisgICAgTm9uU3BhY2luZ01hcmsgPSBRQ2hhcjo6RGlyTlNNLAorICAgIEJvdW5kYXJ5TmV1
dHJhbCA9IFFDaGFyOjpEaXJCTgorfTsKKworZW51bSBEZWNvbXBvc2l0aW9uVHlwZSB7CisgICAg
RGVjb21wb3NpdGlvbk5vbmUgPSBRQ2hhcjo6Tm9EZWNvbXBvc2l0aW9uLAorICAgIERlY29tcG9z
aXRpb25DYW5vbmljYWwgPSBRQ2hhcjo6Q2Fub25pY2FsLAorICAgIERlY29tcG9zaXRpb25Db21w
YXQgPSBRQ2hhcjo6Q29tcGF0LAorICAgIERlY29tcG9zaXRpb25DaXJjbGUgPSBRQ2hhcjo6Q2ly
Y2xlLAorICAgIERlY29tcG9zaXRpb25GaW5hbCA9IFFDaGFyOjpGaW5hbCwKKyAgICBEZWNvbXBv
c2l0aW9uRm9udCA9IFFDaGFyOjpGb250LAorICAgIERlY29tcG9zaXRpb25GcmFjdGlvbiA9IFFD
aGFyOjpGcmFjdGlvbiwKKyAgICBEZWNvbXBvc2l0aW9uSW5pdGlhbCA9IFFDaGFyOjpJbml0aWFs
LAorICAgIERlY29tcG9zaXRpb25Jc29sYXRlZCA9IFFDaGFyOjpJc29sYXRlZCwKKyAgICBEZWNv
bXBvc2l0aW9uTWVkaWFsID0gUUNoYXI6Ok1lZGlhbCwKKyAgICBEZWNvbXBvc2l0aW9uTmFycm93
ID0gUUNoYXI6Ok5hcnJvdywKKyAgICBEZWNvbXBvc2l0aW9uTm9CcmVhayA9IFFDaGFyOjpOb0Jy
ZWFrLAorICAgIERlY29tcG9zaXRpb25TbWFsbCA9IFFDaGFyOjpTbWFsbCwKKyAgICBEZWNvbXBv
c2l0aW9uU3F1YXJlID0gUUNoYXI6OlNxdWFyZSwKKyAgICBEZWNvbXBvc2l0aW9uU3ViID0gUUNo
YXI6OlN1YiwKKyAgICBEZWNvbXBvc2l0aW9uU3VwZXIgPSBRQ2hhcjo6U3VwZXIsCisgICAgRGVj
b21wb3NpdGlvblZlcnRpY2FsID0gUUNoYXI6OlZlcnRpY2FsLAorICAgIERlY29tcG9zaXRpb25X
aWRlID0gUUNoYXI6OldpZGUKK307CisKK2VudW0gQ2hhckNhdGVnb3J5IHsKKyAgICBOb0NhdGVn
b3J5ID0gMCwKKyAgICBNYXJrX05vblNwYWNpbmcgPSBVX01BU0soUUNoYXI6Ok1hcmtfTm9uU3Bh
Y2luZyksCisgICAgTWFya19TcGFjaW5nQ29tYmluaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX1Nw
YWNpbmdDb21iaW5pbmcpLAorICAgIE1hcmtfRW5jbG9zaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJr
X0VuY2xvc2luZyksCisgICAgTnVtYmVyX0RlY2ltYWxEaWdpdCA9IFVfTUFTSyhRQ2hhcjo6TnVt
YmVyX0RlY2ltYWxEaWdpdCksCisgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhRQ2hhcjo6TnVt
YmVyX0xldHRlciksCisgICAgTnVtYmVyX090aGVyID0gVV9NQVNLKFFDaGFyOjpOdW1iZXJfT3Ro
ZXIpLAorICAgIFNlcGFyYXRvcl9TcGFjZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9yX1NwYWNl
KSwKKyAgICBTZXBhcmF0b3JfTGluZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9yX0xpbmUpLAor
ICAgIFNlcGFyYXRvcl9QYXJhZ3JhcGggPSBVX01BU0soUUNoYXI6OlNlcGFyYXRvcl9QYXJhZ3Jh
cGgpLAorICAgIE90aGVyX0NvbnRyb2wgPSBVX01BU0soUUNoYXI6Ok90aGVyX0NvbnRyb2wpLAor
ICAgIE90aGVyX0Zvcm1hdCA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfRm9ybWF0KSwKKyAgICBPdGhl
cl9TdXJyb2dhdGUgPSBVX01BU0soUUNoYXI6Ok90aGVyX1N1cnJvZ2F0ZSksCisgICAgT3RoZXJf
UHJpdmF0ZVVzZSA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfUHJpdmF0ZVVzZSksCisgICAgT3RoZXJf
Tm90QXNzaWduZWQgPSBVX01BU0soUUNoYXI6Ok90aGVyX05vdEFzc2lnbmVkKSwKKyAgICBMZXR0
ZXJfVXBwZXJjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfVXBwZXJjYXNlKSwKKyAgICBMZXR0
ZXJfTG93ZXJjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfTG93ZXJjYXNlKSwKKyAgICBMZXR0
ZXJfVGl0bGVjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfVGl0bGVjYXNlKSwKKyAgICBMZXR0
ZXJfTW9kaWZpZXIgPSBVX01BU0soUUNoYXI6OkxldHRlcl9Nb2RpZmllciksCisgICAgTGV0dGVy
X090aGVyID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfT3RoZXIpLAorICAgIFB1bmN0dWF0aW9uX0Nv
bm5lY3RvciA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ29ubmVjdG9yKSwKKyAgICBQdW5j
dHVhdGlvbl9EYXNoID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9EYXNoKSwKKyAgICBQdW5j
dHVhdGlvbl9PcGVuID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9PcGVuKSwKKyAgICBQdW5j
dHVhdGlvbl9DbG9zZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ2xvc2UpLAorICAgIFB1
bmN0dWF0aW9uX0luaXRpYWxRdW90ZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fSW5pdGlh
bFF1b3RlKSwKKyAgICBQdW5jdHVhdGlvbl9GaW5hbFF1b3RlID0gVV9NQVNLKFFDaGFyOjpQdW5j
dHVhdGlvbl9GaW5hbFF1b3RlKSwKKyAgICBQdW5jdHVhdGlvbl9PdGhlciA9IFVfTUFTSyhRQ2hh
cjo6UHVuY3R1YXRpb25fT3RoZXIpLAorICAgIFN5bWJvbF9NYXRoID0gVV9NQVNLKFFDaGFyOjpT
eW1ib2xfTWF0aCksCisgICAgU3ltYm9sX0N1cnJlbmN5ID0gVV9NQVNLKFFDaGFyOjpTeW1ib2xf
Q3VycmVuY3kpLAorICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX01v
ZGlmaWVyKSwKKyAgICBTeW1ib2xfT3RoZXIgPSBVX01BU0soUUNoYXI6OlN5bWJvbF9PdGhlciks
Cit9OwogCiAKICNpZiBRVF9WRVJTSU9OID49IDB4MDQwMzAwCi0gICAgLy8gRklYTUU6IGhhbmRs
ZSBzdXJyb2dhdGVzIGNvcnJlY3RseSBpbiBhbGwgbWV0aG9kcwotCi0gICAgaW5saW5lIFVDaGFy
MzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQotICAgIHsKLSAgICAgIHJldHVybiBRQ2hhcjo6dG9Mb3dl
cihjaCk7Ci0gICAgfQogCi0gICAgaW5saW5lIGludCB0b0xvd2VyKFVDaGFyKiByZXN1bHQsIGlu
dCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBzcmNMZW5ndGgsICBib29sKiBl
cnJvcikKLSAgICB7Ci0gICAgICAgIGNvbnN0IFVDaGFyICplID0gc3JjICsgc3JjTGVuZ3RoOwot
ICAgICAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKLSAgICAgICAgVUNoYXIgKnIgPSByZXN1bHQ7
Ci0gICAgICAgIHVpbnQgcmluZGV4ID0gMDsKKy8vIEZJWE1FOiBoYW5kbGUgc3Vycm9nYXRlcyBj
b3JyZWN0bHkgaW4gYWxsIG1ldGhvZHMKIAotICAgICAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0
IG9mIGJvdW5kcyBjaGVjayBpbiB0aGUgbG9vcAotICAgICAgICBpZiAocyA8IGUgJiYgUUNoYXIo
KnMpLmlzTG93U3Vycm9nYXRlKCkpIHsKLSAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAg
ICAgIHJbcmluZGV4XSA9ICpzKys7Ci0gICAgICAgICAgICArK3JpbmRleDsKLSAgICAgICAgfQor
aW5saW5lIFVDaGFyMzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQoreworICAgIHJldHVybiBRQ2hhcjo6
dG9Mb3dlcihjaCk7Cit9CiAKLSAgICAgICAgaW50IG5lZWRlZCA9IDA7Ci0gICAgICAgIHdoaWxl
IChzIDwgZSAmJiAocmluZGV4IDwgdWludChyZXN1bHRMZW5ndGgpIHx8ICFyKSkgewotICAgICAg
ICAgICAgdWludCBjID0gKnM7Ci0gICAgICAgICAgICBpZiAoUUNoYXIoYykuaXNMb3dTdXJyb2dh
dGUoKSAmJiBRQ2hhcigqKHMgLSAxKSkuaXNIaWdoU3Vycm9nYXRlKCkpCi0gICAgICAgICAgICAg
ICAgYyA9IFFDaGFyOjpzdXJyb2dhdGVUb1VjczQoKihzIC0gMSksIGMpOwotICAgICAgICAgICAg
Y29uc3QgUVVuaWNvZGVUYWJsZXM6OlByb3BlcnRpZXMgKnByb3AgPSBRVW5pY29kZVRhYmxlczo6
cHJvcGVydGllcyhjKTsKLSAgICAgICAgICAgIGlmIChwcm9wLT5sb3dlckNhc2VTcGVjaWFsKSB7
Ci0gICAgICAgICAgICAgICAgUVN0cmluZyBxc3RyaW5nOwotICAgICAgICAgICAgICAgIGlmIChj
IDwgMHgxMDAwMCkgewotICAgICAgICAgICAgICAgICAgICBxc3RyaW5nICs9IFFDaGFyKGMpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHFzdHJpbmcgKz0g
UUNoYXIoKihzLTEpKTsKLSAgICAgICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqcyk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFzdHJpbmcgPSBxc3RyaW5nLnRv
TG93ZXIoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHFzdHJpbmcubGVu
Z3RoKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocmluZGV4ID49IHVpbnQocmVz
dWx0TGVuZ3RoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGVkICs9IHFzdHJpbmcu
bGVuZ3RoKCkgLSBpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByW3JpbmRleF0gPSBxc3RyaW5nLmF0KGkpLnVuaWNvZGUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgKytyaW5kZXg7Ci0gICAgICAgICAgICAgICAgfQoraW5saW5lIGludCB0b0xvd2Vy
KFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBz
cmNMZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICBjb25zdCBVQ2hhciAqZSA9IHNyYyArIHNy
Y0xlbmd0aDsKKyAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKKyAgICBVQ2hhciAqciA9IHJlc3Vs
dDsKKyAgICB1aW50IHJpbmRleCA9IDA7CisKKyAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0IG9m
IGJvdW5kcyBjaGVjayBpbiB0aGUgbG9vcAorICAgIGlmIChzIDwgZSAmJiBRQ2hhcigqcykuaXNM
b3dTdXJyb2dhdGUoKSkgeworICAgICAgICBpZiAocikKKyAgICAgICAgICAgIHJbcmluZGV4XSA9
ICpzKys7CisgICAgICAgICsrcmluZGV4OworICAgIH0KKworICAgIGludCBuZWVkZWQgPSAwOwor
ICAgIHdoaWxlIChzIDwgZSAmJiAocmluZGV4IDwgdWludChyZXN1bHRMZW5ndGgpIHx8ICFyKSkg
eworICAgICAgICB1aW50IGMgPSAqczsKKyAgICAgICAgaWYgKFFDaGFyKGMpLmlzTG93U3Vycm9n
YXRlKCkgJiYgUUNoYXIoKihzIC0gMSkpLmlzSGlnaFN1cnJvZ2F0ZSgpKQorICAgICAgICAgICAg
YyA9IFFDaGFyOjpzdXJyb2dhdGVUb1VjczQoKihzIC0gMSksIGMpOworICAgICAgICBjb25zdCBR
VW5pY29kZVRhYmxlczo6UHJvcGVydGllcyAqcHJvcCA9IFFVbmljb2RlVGFibGVzOjpwcm9wZXJ0
aWVzKGMpOworICAgICAgICBpZiAocHJvcC0+bG93ZXJDYXNlU3BlY2lhbCkgeworICAgICAgICAg
ICAgUVN0cmluZyBxc3RyaW5nOworICAgICAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7CisgICAg
ICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcihjKTsKICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqKHMtMSkpOworICAgICAgICAgICAgICAg
IHFzdHJpbmcgKz0gUUNoYXIoKnMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcXN0cmlu
ZyA9IHFzdHJpbmcudG9Mb3dlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBx
c3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmluZGV4ID49IHVp
bnQocmVzdWx0TGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICBuZWVkZWQgKz0gcXN0cmlu
Zy5sZW5ndGgoKSAtIGk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICAgICAgcltyaW5k
ZXhdID0gKnMgKyBwcm9wLT5sb3dlckNhc2VEaWZmOworICAgICAgICAgICAgICAgICAgICByW3Jp
bmRleF0gPSBxc3RyaW5nLmF0KGkpLnVuaWNvZGUoKTsKICAgICAgICAgICAgICAgICArK3JpbmRl
eDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICsrczsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocyA8IGUpCi0gICAgICAgICAgICBuZWVkZWQgKz0gZSAtIHM7Ci0gICAgICAgICplcnJvciA9
IChuZWVkZWQgIT0gMCk7Ci0gICAgICAgIGlmIChyaW5kZXggPCB1aW50KHJlc3VsdExlbmd0aCkp
Ci0gICAgICAgICAgICByW3JpbmRleF0gPSAwOwotICAgICAgICByZXR1cm4gcmluZGV4ICsgbmVl
ZGVkOwotICAgIH0KLQotICAgIGlubGluZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjaCkKLSAg
ICB7Ci0gICAgICByZXR1cm4gUUNoYXI6OnRvVXBwZXIoY2gpOwotICAgIH0KLQotICAgIGlubGlu
ZSBpbnQgdG9VcHBlcihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hh
ciogc3JjLCBpbnQgc3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgICBjb25z
dCBVQ2hhciAqZSA9IHNyYyArIHNyY0xlbmd0aDsKLSAgICAgICAgY29uc3QgVUNoYXIgKnMgPSBz
cmM7Ci0gICAgICAgIFVDaGFyICpyID0gcmVzdWx0OwotICAgICAgICBpbnQgcmluZGV4ID0gMDsK
LQotICAgICAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0IG9mIGJvdW5kcyBjaGVjayBpbiB0aGUg
bG9vcAotICAgICAgICBpZiAocyA8IGUgJiYgUUNoYXIoKnMpLmlzTG93U3Vycm9nYXRlKCkpIHsK
KyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgIHJb
cmluZGV4XSA9ICpzKys7CisgICAgICAgICAgICAgICAgcltyaW5kZXhdID0gKnMgKyBwcm9wLT5s
b3dlckNhc2VEaWZmOwogICAgICAgICAgICAgKytyaW5kZXg7CiAgICAgICAgIH0KKyAgICAgICAg
KytzOworICAgIH0KKyAgICBpZiAocyA8IGUpCisgICAgICAgIG5lZWRlZCArPSBlIC0gczsKKyAg
ICAqZXJyb3IgPSAobmVlZGVkICE9IDApOworICAgIGlmIChyaW5kZXggPCB1aW50KHJlc3VsdExl
bmd0aCkpCisgICAgICAgIHJbcmluZGV4XSA9IDA7CisgICAgcmV0dXJuIHJpbmRleCArIG5lZWRl
ZDsKK30KIAotICAgICAgICBpbnQgbmVlZGVkID0gMDsKLSAgICAgICAgd2hpbGUgKHMgPCBlICYm
IChyaW5kZXggPCByZXN1bHRMZW5ndGggfHwgIXIpKSB7Ci0gICAgICAgICAgICB1aW50IGMgPSAq
czsKLSAgICAgICAgICAgIGlmIChRQ2hhcihjKS5pc0xvd1N1cnJvZ2F0ZSgpICYmIFFDaGFyKCoo
cyAtIDEpKS5pc0hpZ2hTdXJyb2dhdGUoKSkKLSAgICAgICAgICAgICAgICBjID0gUUNoYXI6OnN1
cnJvZ2F0ZVRvVWNzNCgqKHMgLSAxKSwgYyk7Ci0gICAgICAgICAgICBjb25zdCBRVW5pY29kZVRh
Ymxlczo6UHJvcGVydGllcyAqcHJvcCA9IFFVbmljb2RlVGFibGVzOjpwcm9wZXJ0aWVzKGMpOwot
ICAgICAgICAgICAgaWYgKHByb3AtPnVwcGVyQ2FzZVNwZWNpYWwpIHsKLSAgICAgICAgICAgICAg
ICBRU3RyaW5nIHFzdHJpbmc7Ci0gICAgICAgICAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHFzdHJpbmcgKz0gUUNoYXIoYyk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqKHMtMSkpOwot
ICAgICAgICAgICAgICAgICAgICBxc3RyaW5nICs9IFFDaGFyKCpzKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgcXN0cmluZyA9IHFzdHJpbmcudG9VcHBlcigpOwotICAgICAg
ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcXN0cmluZy5sZW5ndGgoKTsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChyaW5kZXggPj0gcmVzdWx0TGVuZ3RoKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBuZWVkZWQgKz0gcXN0cmluZy5sZW5ndGgoKSAtIGk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJbcmluZGV4XSA9IHFz
dHJpbmcuYXQoaSkudW5pY29kZSgpOwotICAgICAgICAgICAgICAgICAgICArK3JpbmRleDsKLSAg
ICAgICAgICAgICAgICB9CitpbmxpbmUgVUNoYXIzMiB0b1VwcGVyKFVDaGFyMzIgY2gpCit7Cisg
ICAgcmV0dXJuIFFDaGFyOjp0b1VwcGVyKGNoKTsKK30KKworaW5saW5lIGludCB0b1VwcGVyKFVD
aGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBzcmNM
ZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICBjb25zdCBVQ2hhciAqZSA9IHNyYyArIHNyY0xl
bmd0aDsKKyAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKKyAgICBVQ2hhciAqciA9IHJlc3VsdDsK
KyAgICBpbnQgcmluZGV4ID0gMDsKKworICAgIC8vIHRoaXMgYXZvaWRzIG9uZSBvdXQgb2YgYm91
bmRzIGNoZWNrIGluIHRoZSBsb29wCisgICAgaWYgKHMgPCBlICYmIFFDaGFyKCpzKS5pc0xvd1N1
cnJvZ2F0ZSgpKSB7CisgICAgICAgIGlmIChyKQorICAgICAgICAgICAgcltyaW5kZXhdID0gKnMr
KzsKKyAgICAgICAgKytyaW5kZXg7CisgICAgfQorCisgICAgaW50IG5lZWRlZCA9IDA7CisgICAg
d2hpbGUgKHMgPCBlICYmIChyaW5kZXggPCByZXN1bHRMZW5ndGggfHwgIXIpKSB7CisgICAgICAg
IHVpbnQgYyA9ICpzOworICAgICAgICBpZiAoUUNoYXIoYykuaXNMb3dTdXJyb2dhdGUoKSAmJiBR
Q2hhcigqKHMgLSAxKSkuaXNIaWdoU3Vycm9nYXRlKCkpCisgICAgICAgICAgICBjID0gUUNoYXI6
OnN1cnJvZ2F0ZVRvVWNzNCgqKHMgLSAxKSwgYyk7CisgICAgICAgIGNvbnN0IFFVbmljb2RlVGFi
bGVzOjpQcm9wZXJ0aWVzICpwcm9wID0gUVVuaWNvZGVUYWJsZXM6OnByb3BlcnRpZXMoYyk7Cisg
ICAgICAgIGlmIChwcm9wLT51cHBlckNhc2VTcGVjaWFsKSB7CisgICAgICAgICAgICBRU3RyaW5n
IHFzdHJpbmc7CisgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMDApIHsKKyAgICAgICAgICAgICAg
ICBxc3RyaW5nICs9IFFDaGFyKGMpOwogICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBxc3RyaW5nICs9IFFDaGFyKCoocy0xKSk7CisgICAgICAgICAgICAgICAgcXN0cmluZyAr
PSBRQ2hhcigqcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBxc3RyaW5nID0gcXN0cmlu
Zy50b1VwcGVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHFzdHJpbmcubGVu
Z3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyaW5kZXggPj0gcmVzdWx0TGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgICAgIG5lZWRlZCArPSBxc3RyaW5nLmxlbmd0aCgpIC0gaTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgICAgICByW3JpbmRleF0gPSAqcyArIHByb3At
PnVwcGVyQ2FzZURpZmY7CisgICAgICAgICAgICAgICAgICAgIHJbcmluZGV4XSA9IHFzdHJpbmcu
YXQoaSkudW5pY29kZSgpOwogICAgICAgICAgICAgICAgICsrcmluZGV4OwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgKytzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHIp
CisgICAgICAgICAgICAgICAgcltyaW5kZXhdID0gKnMgKyBwcm9wLT51cHBlckNhc2VEaWZmOwor
ICAgICAgICAgICAgKytyaW5kZXg7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHMgPCBlKQotICAg
ICAgICAgICAgbmVlZGVkICs9IGUgLSBzOwotICAgICAgICAqZXJyb3IgPSAobmVlZGVkICE9IDAp
OwotICAgICAgICBpZiAocmluZGV4IDwgcmVzdWx0TGVuZ3RoKQotICAgICAgICAgICAgcltyaW5k
ZXhdID0gMDsKLSAgICAgICAgcmV0dXJuIHJpbmRleCArIG5lZWRlZDsKKyAgICAgICAgKytzOwog
ICAgIH0KKyAgICBpZiAocyA8IGUpCisgICAgICAgIG5lZWRlZCArPSBlIC0gczsKKyAgICAqZXJy
b3IgPSAobmVlZGVkICE9IDApOworICAgIGlmIChyaW5kZXggPCByZXN1bHRMZW5ndGgpCisgICAg
ICAgIHJbcmluZGV4XSA9IDA7CisgICAgcmV0dXJuIHJpbmRleCArIG5lZWRlZDsKK30KIAotICAg
IGlubGluZSBpbnQgdG9UaXRsZUNhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiBR
Q2hhcjo6dG9UaXRsZUNhc2UoYyk7Ci0gICAgfQoraW5saW5lIGludCB0b1RpdGxlQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjp0b1RpdGxlQ2FzZShjKTsKK30KIAotICAgIGlu
bGluZSBVQ2hhcjMyIGZvbGRDYXNlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gUUNo
YXI6OnRvQ2FzZUZvbGRlZChjKTsKLSAgICB9CitpbmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjp0b0Nhc2VGb2xkZWQoYyk7Cit9CiAKLSAgICBp
bmxpbmUgaW50IGZvbGRDYXNlKFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0
IFVDaGFyKiBzcmMsIGludCBzcmNMZW5ndGgsICBib29sKiBlcnJvcikKLSAgICB7Ci0gICAgICAv
LyBGSVhNRTogaGFuZGxlIHNwZWNpYWwgY2FzaW5nLiBFYXNpZXN0IHdpdGggc29tZSBsb3cgbGV2
ZWwgQVBJIGluIFF0Ci0gICAgICAqZXJyb3IgPSBmYWxzZTsKLSAgICAgIGlmIChyZXN1bHRMZW5n
dGggPCBzcmNMZW5ndGgpIHsKK2lubGluZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50
IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVy
cm9yKQoreworICAgIC8vIEZJWE1FOiBoYW5kbGUgc3BlY2lhbCBjYXNpbmcuIEVhc2llc3Qgd2l0
aCBzb21lIGxvdyBsZXZlbCBBUEkgaW4gUXQKKyAgICAqZXJyb3IgPSBmYWxzZTsKKyAgICBpZiAo
cmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CiAgICAgICAgICplcnJvciA9IHRydWU7CiAgICAg
ICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBpID0gMDsgaSA8
IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcjo6dG9DYXNlRm9sZGVk
KHVzaG9ydChzcmNbaV0pKTsKLSAgICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNGb3JtYXRDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4g
UUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpPdGhlcl9Gb3JtYXQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNBcmFiaWNDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICAgIHJldHVy
biBjID49IDB4MDYwMCAmJiBjIDw9IDB4MDZGRjsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBp
c1ByaW50YWJsZUNoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGNvbnN0IHVpbnQgdGVzdCA9
IFVfTUFTSyhRQ2hhcjo6T3RoZXJfQ29udHJvbCkgfAotICAgICAgICAgICAgICAgICAgICAgICAg
VV9NQVNLKFFDaGFyOjpPdGhlcl9Ob3RBc3NpZ25lZCk7Ci0gICAgICByZXR1cm4gIShVX01BU0so
UUNoYXI6OmNhdGVnb3J5KGMpKSAmIHRlc3QpOwogICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IHNyY0xlbmd0aDsgKytpKQorICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcjo6dG9DYXNlRm9s
ZGVkKHVzaG9ydChzcmNbaV0pKTsKKyAgICByZXR1cm4gc3JjTGVuZ3RoOworfQogCi0gICAgaW5s
aW5lIGJvb2wgaXNTZXBhcmF0b3JTcGFjZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJu
IFFDaGFyOjpjYXRlZ29yeShjKSA9PSBRQ2hhcjo6U2VwYXJhdG9yX1NwYWNlOwotICAgIH0KK2lu
bGluZSBib29sIGlzQXJhYmljQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIGMgPj0gMHgw
NjAwICYmIGMgPD0gMHgwNkZGOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMy
IGMpCi0gICAgewotICAgICAgY29uc3QgdWludCB0ZXN0ID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVh
dGlvbl9Db25uZWN0b3IpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgIFVfTUFTSyhRQ2hhcjo6
UHVuY3R1YXRpb25fRGFzaCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFy
OjpQdW5jdHVhdGlvbl9PcGVuKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICBVX01BU0soUUNo
YXI6OlB1bmN0dWF0aW9uX0Nsb3NlKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICBVX01BU0so
UUNoYXI6OlB1bmN0dWF0aW9uX0luaXRpYWxRdW90ZSkgfAotICAgICAgICAgICAgICAgICAgICAg
ICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9GaW5hbFF1b3RlKSB8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBVX01BU0soUUNoYXI6OlB1bmN0dWF0aW9uX090aGVyKTsKLSAgICAgIHJldHVy
biBVX01BU0soUUNoYXI6OmNhdGVnb3J5KGMpKSAmIHRlc3Q7Ci0gICAgfQoraW5saW5lIGJvb2wg
aXNQcmludGFibGVDaGFyKFVDaGFyMzIgYykKK3sKKyAgICBjb25zdCB1aW50IHRlc3QgPSBVX01B
U0soUUNoYXI6Ok90aGVyX0NvbnRyb2wpIHwKKyAgICAgICAgICAgICAgICAgICAgICBVX01BU0so
UUNoYXI6Ok90aGVyX05vdEFzc2lnbmVkKTsKKyAgICByZXR1cm4gIShVX01BU0soUUNoYXI6OmNh
dGVnb3J5KGMpKSAmIHRlc3QpOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNEaWdpdChVQ2hhcjMy
IGMpCi0gICAgewotICAgICAgcmV0dXJuIFFDaGFyOjpjYXRlZ29yeShjKSA9PSBRQ2hhcjo6TnVt
YmVyX0RlY2ltYWxEaWdpdDsKLSAgICB9CitpbmxpbmUgYm9vbCBpc1NlcGFyYXRvclNwYWNlKFVD
aGFyMzIgYykKK3sKKyAgICByZXR1cm4gUUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpTZXBh
cmF0b3JfU3BhY2U7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0xvd2VyKFVDaGFyMzIgYykKLSAg
ICB7Ci0gICAgICByZXR1cm4gUUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpMZXR0ZXJfTG93
ZXJjYXNlOwotICAgIH0KK2lubGluZSBib29sIGlzUHVuY3QoVUNoYXIzMiBjKQoreworICAgIGNv
bnN0IHVpbnQgdGVzdCA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ29ubmVjdG9yKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9EYXNoKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9PcGVuKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9DbG9zZSkgfAor
ICAgICAgICAgICAgICAgICAgICAgIFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fSW5pdGlhbFF1
b3RlKSB8CisgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9G
aW5hbFF1b3RlKSB8CisgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVh
dGlvbl9PdGhlcik7CisgICAgcmV0dXJuIFVfTUFTSyhRQ2hhcjo6Y2F0ZWdvcnkoYykpICYgdGVz
dDsKK30KIAotICAgIGlubGluZSBpbnQgZGlnaXRWYWx1ZShVQ2hhcjMyIGMpCi0gICAgewotICAg
ICAgcmV0dXJuIFFDaGFyOjpkaWdpdFZhbHVlKGMpOwotICAgIH0KK2lubGluZSBib29sIGlzTG93
ZXIoVUNoYXIzMiBjKQoreworICAgIHJldHVybiBRQ2hhcjo6Y2F0ZWdvcnkoYykgPT0gUUNoYXI6
OkxldHRlcl9Mb3dlcmNhc2U7Cit9CiAKLSAgICBpbmxpbmUgVUNoYXIzMiBtaXJyb3JlZENoYXIo
VUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiBRQ2hhcjo6bWlycm9yZWRDaGFyKGMpOwot
ICAgIH0KK2lubGluZSBVQ2hhcjMyIG1pcnJvcmVkQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0
dXJuIFFDaGFyOjptaXJyb3JlZENoYXIoYyk7Cit9CiAKLSAgICBpbmxpbmUgdWludDhfdCBjb21i
aW5pbmdDbGFzcyhVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIFFDaGFyOjpjb21iaW5p
bmdDbGFzcyhjKTsKLSAgICB9CitpbmxpbmUgdWludDhfdCBjb21iaW5pbmdDbGFzcyhVQ2hhcjMy
IGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjpjb21iaW5pbmdDbGFzcyhjKTsKK30KIAotICAgIGlu
bGluZSBEZWNvbXBvc2l0aW9uVHlwZSBkZWNvbXBvc2l0aW9uVHlwZShVQ2hhcjMyIGMpCi0gICAg
ewotICAgICAgcmV0dXJuIChEZWNvbXBvc2l0aW9uVHlwZSlRQ2hhcjo6ZGVjb21wb3NpdGlvblRh
ZyhjKTsKLSAgICB9CitpbmxpbmUgRGVjb21wb3NpdGlvblR5cGUgZGVjb21wb3NpdGlvblR5cGUo
VUNoYXIzMiBjKQoreworICAgIHJldHVybiAoRGVjb21wb3NpdGlvblR5cGUpUUNoYXI6OmRlY29t
cG9zaXRpb25UYWcoYyk7Cit9CiAKLSAgICBpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0IFVD
aGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKLSAgICB7Ci0gICAgICAvLyBoYW5kbGUg
c3Vycm9nYXRlcyBjb3JyZWN0bHkKLSAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kp
IHsKLSAgICAgICAgICB1aW50IGMxID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYVtpXSkp
OwotICAgICAgICAgIHVpbnQgYzIgPSBRQ2hhcjo6dG9DYXNlRm9sZGVkKHVzaG9ydChiW2ldKSk7
Ci0gICAgICAgICAgaWYgKGMxICE9IGMyKQotICAgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsK
LSAgICAgIH0KLSAgICAgIHJldHVybiAwOworaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBV
Q2hhciogYSwgY29uc3QgVUNoYXIqIGIsIGludCBsZW4pCit7CisgICAgLy8gaGFuZGxlIHN1cnJv
Z2F0ZXMgY29ycmVjdGx5CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAg
ICAgICB1aW50IGMxID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYVtpXSkpOworICAgICAg
ICB1aW50IGMyID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYltpXSkpOworICAgICAgICBp
ZiAoYzEgIT0gYzIpCisgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsKICAgICB9CisgICAgcmV0
dXJuIDA7Cit9CiAKLSAgICBpbmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCi0g
ICAgewotICAgICAgcmV0dXJuIChEaXJlY3Rpb24pUUNoYXI6OmRpcmVjdGlvbihjKTsKLSAgICB9
CitpbmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChE
aXJlY3Rpb24pUUNoYXI6OmRpcmVjdGlvbihjKTsKK30KIAotICAgIGlubGluZSBDaGFyQ2F0ZWdv
cnkgY2F0ZWdvcnkoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiAoQ2hhckNhdGVnb3J5
KSBVX01BU0soUUNoYXI6OmNhdGVnb3J5KGMpKTsKLSAgICB9CitpbmxpbmUgQ2hhckNhdGVnb3J5
IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gKENoYXJDYXRlZ29yeSkgVV9NQVNL
KFFDaGFyOjpjYXRlZ29yeShjKSk7Cit9CiAKICNlbHNlCiAKLSAgICBpbmxpbmUgVUNoYXIzMiB0
b0xvd2VyKFVDaGFyMzIgY2gpCi0gICAgewotICAgICAgaWYgKGNoID4gMHhmZmZmKQoraW5saW5l
IFVDaGFyMzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQoreworICAgIGlmIChjaCA+IDB4ZmZmZikKICAg
ICAgICAgcmV0dXJuIGNoOwotICAgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBzaG9ydCljaCku
dG9Mb3dlcigpLnVuaWNvZGUoKTsKLSAgICB9CisgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBz
aG9ydCljaCkudG9Mb3dlcigpLnVuaWNvZGUoKTsKK30KIAotICAgIGlubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgKmVycm9yID0gZmFsc2U7Ci0g
ICAgICBpZiAocmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7Ci0gICAgICAgICplcnJvciA9IHRy
dWU7Ci0gICAgICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcihzcmNb
aV0pLnRvTG93ZXIoKS51bmljb2RlKCk7Ci0gICAgICByZXR1cm4gc3JjTGVuZ3RoOwotICAgIH0K
K2lubGluZSBpbnQgdG9Mb3dlcihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25z
dCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCit7CisgICplcnJvciA9
IGZhbHNlOworICBpZiAocmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CisgICAgKmVycm9yID0g
dHJ1ZTsKKyAgICByZXR1cm4gc3JjTGVuZ3RoOworICB9CisgIGZvciAoaW50IGkgPSAwOyBpIDwg
c3JjTGVuZ3RoOyArK2kpCisgICAgcmVzdWx0W2ldID0gUUNoYXIoc3JjW2ldKS50b0xvd2VyKCku
dW5pY29kZSgpOworICByZXR1cm4gc3JjTGVuZ3RoOworfQogCi0gICAgaW5saW5lIFVDaGFyMzIg
dG9VcHBlcihVQ2hhcjMyIGNoKQotICAgIHsKLSAgICAgIGlmIChjaCA+IDB4ZmZmZikKK2lubGlu
ZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjaCkKK3sKKyAgICBpZiAoY2ggPiAweGZmZmYpCiAg
ICAgICAgIHJldHVybiBjaDsKLSAgICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQgc2hvcnQpY2gp
LnRvVXBwZXIoKS51bmljb2RlKCk7Ci0gICAgfQorICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQg
c2hvcnQpY2gpLnRvVXBwZXIoKS51bmljb2RlKCk7Cit9CiAKLSAgICBpbmxpbmUgaW50IHRvVXBw
ZXIoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNyYywgaW50
IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQotICAgIHsKLSAgICAgICplcnJvciA9IGZhbHNlOwot
ICAgICAgaWYgKHJlc3VsdExlbmd0aCA8IHNyY0xlbmd0aCkgeworaW5saW5lIGludCB0b1VwcGVy
KFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBz
cmNMZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICAqZXJyb3IgPSBmYWxzZTsKKyAgICBpZiAo
cmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CiAgICAgICAgICplcnJvciA9IHRydWU7CiAgICAg
ICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBpID0gMDsgaSA8
IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcihzcmNbaV0pLnRvVXBw
ZXIoKS51bmljb2RlKCk7Ci0gICAgICByZXR1cm4gc3JjTGVuZ3RoOwogICAgIH0KKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHNyY0xlbmd0aDsgKytpKQorICAgICAgICByZXN1bHRbaV0gPSBRQ2hh
cihzcmNbaV0pLnRvVXBwZXIoKS51bmljb2RlKCk7CisgICAgcmV0dXJuIHNyY0xlbmd0aDsKK30K
IAotICAgIGlubGluZSBpbnQgdG9UaXRsZUNhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlm
IChjID4gMHhmZmZmKQoraW5saW5lIGludCB0b1RpdGxlQ2FzZShVQ2hhcjMyIGMpCit7CisgICAg
aWYgKGMgPiAweGZmZmYpCiAgICAgICAgIHJldHVybiBjOwotICAgICAgcmV0dXJuIFFDaGFyKCh1
bnNpZ25lZCBzaG9ydCljKS50b1VwcGVyKCkudW5pY29kZSgpOwotICAgIH0KKyAgICByZXR1cm4g
UUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLnRvVXBwZXIoKS51bmljb2RlKCk7Cit9CiAKLSAgICBp
bmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgaWYgKGMgPiAw
eGZmZmYpCitpbmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hhcjMyIGMpCit7CisgICAgaWYgKGMg
PiAweGZmZmYpCiAgICAgICAgIHJldHVybiBjOwotICAgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25l
ZCBzaG9ydCljKS50b0xvd2VyKCkudW5pY29kZSgpOwotICAgIH0KLQotICAgIGlubGluZSBpbnQg
Zm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNy
YywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQotICAgIHsKLSAgICAgIHJldHVybiB0b0xv
d2VyKHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgZXJyb3IpOwotICAgIH0K
LQotICAgIGlubGluZSBib29sIGlzRm9ybWF0Q2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAg
cmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYyku
Y2F0ZWdvcnkoKSA9PSBRQ2hhcjo6T3RoZXJfRm9ybWF0OwotICAgIH0KLQotICAgIGlubGluZSBi
b29sIGlzUHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChjICYg
MHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQcmludCgpOwot
ICAgIH0KKyAgICByZXR1cm4gUUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLnRvTG93ZXIoKS51bmlj
b2RlKCk7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0FyYWJpY0NoYXIoVUNoYXIzMiBjKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGMgPj0gMHgwNjAwICYmIGMgPD0gMHgwNkZGOwotICAgIH0KK2lu
bGluZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3Qg
VUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQoreworICAgIHJldHVybiB0
b0xvd2VyKHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgZXJyb3IpOworfQog
Ci0gICAgaW5saW5lIGJvb2wgaXNTZXBhcmF0b3JTcGFjZShVQ2hhcjMyIGMpCi0gICAgewotICAg
ICAgcmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQp
YykuY2F0ZWdvcnkoKSA9PSBRQ2hhcjo6U2VwYXJhdG9yX1NwYWNlOwotICAgIH0KK2lubGluZSBi
b29sIGlzUHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChjICYgMHhmZmZm
MDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQcmludCgpOworfQogCi0g
ICAgaW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChj
ICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQdW5jdCgp
OwotICAgIH0KK2lubGluZSBib29sIGlzQXJhYmljQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0
dXJuIGMgPj0gMHgwNjAwICYmIGMgPD0gMHgwNkZGOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNE
aWdpdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0g
MCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNEaWdpdCgpOwotICAgIH0KK2lubGluZSBi
b29sIGlzU2VwYXJhdG9yU3BhY2UoVUNoYXIzMiBjKQoreworICAgIHJldHVybiAoYyAmIDB4ZmZm
ZjAwMDApID09IDAgJiYgUUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNo
YXI6OlNlcGFyYXRvcl9TcGFjZTsKK30KIAotICAgIGlubGluZSBib29sIGlzTG93ZXIoVUNoYXIz
MiBjKQotICAgIHsKLSAgICAgIHJldHVybiAoYyAmIDB4ZmZmZjAwMDApID09IDAgJiYgUUNoYXIo
KHVuc2lnbmVkIHNob3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNoYXI6OkxldHRlcl9Mb3dlcmNhc2U7
Ci0gICAgfQoraW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChj
ICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQdW5jdCgp
OworfQogCi0gICAgaW5saW5lIGludCBkaWdpdFZhbHVlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAg
ICBpZiAoYyA+IDB4ZmZmZikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICByZXR1cm4gUUNoYXIo
YykuZGlnaXRWYWx1ZSgpOwotICAgIH0KK2lubGluZSBib29sIGlzTG93ZXIoVUNoYXIzMiBjKQor
eworICAgIHJldHVybiAoYyAmIDB4ZmZmZjAwMDApID09IDAgJiYgUUNoYXIoKHVuc2lnbmVkIHNo
b3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNoYXI6OkxldHRlcl9Mb3dlcmNhc2U7Cit9CiAKLSAgICBp
bmxpbmUgVUNoYXIzMiBtaXJyb3JlZENoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlmIChj
ID4gMHhmZmZmKQoraW5saW5lIFVDaGFyMzIgbWlycm9yZWRDaGFyKFVDaGFyMzIgYykKK3sKKyAg
ICBpZiAoYyA+IDB4ZmZmZikKICAgICAgICAgcmV0dXJuIGM7Ci0gICAgICByZXR1cm4gUUNoYXIo
YykubWlycm9yZWRDaGFyKCkudW5pY29kZSgpOwotICAgIH0KKyAgICByZXR1cm4gUUNoYXIoYyku
bWlycm9yZWRDaGFyKCkudW5pY29kZSgpOworfQogCi0gICAgaW5saW5lIHVpbnQ4X3QgY29tYmlu
aW5nQ2xhc3MoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlmIChjID4gMHhmZmZmKQoraW5saW5l
IHVpbnQ4X3QgY29tYmluaW5nQ2xhc3MoVUNoYXIzMiBjKQoreworICAgIGlmIChjID4gMHhmZmZm
KQogICAgICAgICByZXR1cm4gMDsKLSAgICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQgc2hvcnQp
YykuY29tYmluaW5nQ2xhc3MoKTsKLSAgICB9CisgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBz
aG9ydCljKS5jb21iaW5pbmdDbGFzcygpOworfQogCi0gICAgaW5saW5lIERlY29tcG9zaXRpb25U
eXBlIGRlY29tcG9zaXRpb25UeXBlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBpZiAoYyA+IDB4
ZmZmZikKK2lubGluZSBEZWNvbXBvc2l0aW9uVHlwZSBkZWNvbXBvc2l0aW9uVHlwZShVQ2hhcjMy
IGMpCit7CisgICAgaWYgKGMgPiAweGZmZmYpCiAgICAgICAgIHJldHVybiBEZWNvbXBvc2l0aW9u
Tm9uZTsKLSAgICAgIHJldHVybiAoRGVjb21wb3NpdGlvblR5cGUpUUNoYXIoYykuZGVjb21wb3Np
dGlvblRhZygpOwotICAgIH0KKyAgICByZXR1cm4gKERlY29tcG9zaXRpb25UeXBlKVFDaGFyKGMp
LmRlY29tcG9zaXRpb25UYWcoKTsKK30KIAotICAgIGlubGluZSBpbnQgdW1lbWNhc2VjbXAoY29u
c3QgVUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQotICAgIHsKLSAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKK2lubGluZSBpbnQgdW1lbWNhc2VjbXAoY29uc3Qg
VUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQoreworICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgUUNoYXIgYzEgPSBRQ2hhcihhW2ldKS50b0xvd2Vy
KCk7CiAgICAgICAgIFFDaGFyIGMyID0gUUNoYXIoYltpXSkudG9Mb3dlcigpOwogICAgICAgICBp
ZiAoYzEgIT0gYzIpCi0gICAgICAgICAgcmV0dXJuIGMxLnVuaWNvZGUoKSAtIGMyLnVuaWNvZGUo
KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gYzEudW5pY29kZSgp
IC0gYzIudW5pY29kZSgpOwogICAgIH0KKyAgICByZXR1cm4gMDsKK30KIAotICAgIGlubGluZSBE
aXJlY3Rpb24gZGlyZWN0aW9uKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBpZiAoYyA+IDB4ZmZm
ZikKK2lubGluZSBEaXJlY3Rpb24gZGlyZWN0aW9uKFVDaGFyMzIgYykKK3sKKyAgICBpZiAoYyA+
IDB4ZmZmZikKICAgICAgICAgcmV0dXJuIExlZnRUb1JpZ2h0OwotICAgICAgcmV0dXJuIChEaXJl
Y3Rpb24pUUNoYXIoYykuZGlyZWN0aW9uKCk7Ci0gICAgfQorICAgIHJldHVybiAoRGlyZWN0aW9u
KVFDaGFyKGMpLmRpcmVjdGlvbigpOworfQogCi0gICAgaW5saW5lIENoYXJDYXRlZ29yeSBjYXRl
Z29yeShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgaWYgKGMgPiAweGZmZmYpCitpbmxpbmUgQ2hh
ckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICBpZiAoYyA+IDB4ZmZmZikKICAg
ICAgICAgcmV0dXJuIE5vQ2F0ZWdvcnk7Ci0gICAgICByZXR1cm4gKENoYXJDYXRlZ29yeSkgVV9N
QVNLKFFDaGFyKGMpLmNhdGVnb3J5KCkpOwotICAgIH0KKyAgICByZXR1cm4gKENoYXJDYXRlZ29y
eSkgVV9NQVNLKFFDaGFyKGMpLmNhdGVnb3J5KCkpOworfQogCiAjZW5kaWYKIAotICB9Ci19Cit9
IH0KIAogI2VuZGlmCi0vLyB2aW06IHRzPTIgc3c9MiBldApJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAwOC0x
MC0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE1NTYKKyAgICAgICAgICBCdWcgMjE1NTY6IG5vbi1BU0NJSSBkaWdp
dHMgYXJlIGFsbG93ZWQgaW4gcGxhY2VzIHdoZXJlIG9ubHkgQVNDSUkgc2hvdWxkIGJlCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXR0cmlidXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRp
bmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRm9udFNpemVOdW1iZXIpOiBVc2UgaXNBU0NJSURpZ2l0
IGluc3RlYWQgb2YKKyAgICAgICAgVW5pY29kZTo6aXNEaWdpdCwgc2luY2Ugbm9uLUFTQ0lJIGRp
Z2l0cyBhcmUgbm90IHZhbGlkIGhlcmUuCisgICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQu
aDogVHdlYWtlZCBmb3JtYXR0aW5nIGEgYml0IGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5l
ZWRlZCBkZXN0cnVjdG9yIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3Ry
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcik6
IFVzZSBpc0FTQ0lJRGlnaXQgaW5zdGVhZAorICAgICAgICBvZiBVbmljb2RlOjppc0RpZ2l0LCBz
aW5jZSBub24tQVNDSUkgZGlnaXRzIGFyZSBub3QgdmFsaWQuCisKIDIwMDgtMTAtMTIgIEJyYWQg
R2FyY2lhICA8YmdhcmNpYUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHJldmlzaW9uIDM3NTI2KQor
KysgV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTAgKzEsOCBAQAotLyoqCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRE9NIGltcGxlbWVu
dGF0aW9uIGZvciBLREUuCi0gKgorLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChr
b2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxo
YXVzbWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNSwxMiArMzMsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhU
TUxGb250RWxlbWVudDo6SFRNTEZvbnRFbGVtZW50KERvY3VtZW50KiBkb2MpCi0gICAgOiBIVE1M
RWxlbWVudChmb250VGFnLCBkb2MpCi17Ci19Ci0KLUhUTUxGb250RWxlbWVudDo6fkhUTUxGb250
RWxlbWVudCgpCitIVE1MRm9udEVsZW1lbnQ6OkhUTUxGb250RWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBIVE1MRWxlbWVudChmb250VGFnLCBkb2N1bWVudCkKIHsKIH0KIApAQCAt
NjcsMTIgKzYxLDEyIEBAIHN0YXRpYyBib29sIHBhcnNlRm9udFNpemVOdW1iZXIoY29uc3QgU3QK
ICAgICB9CiAgICAgCiAgICAgLy8gUGFyc2UgYSBzaW5nbGUgZGlnaXQuCi0gICAgaWYgKCFVbmlj
b2RlOjppc0RpZ2l0KHNbcG9zXSkpCisgICAgaWYgKCFpc0FTQ0lJRGlnaXQoc1twb3NdKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGludCBudW0gPSBVbmljb2RlOjpkaWdpdFZhbHVlKHNb
cG9zKytdKTsKKyAgICBpbnQgbnVtID0gc1twb3MrK10gLSAnMCc7CiAgICAgCiAgICAgLy8gQ2hl
Y2sgZm9yIGFuIGFkZGl0aW9uYWwgZGlnaXQuCi0gICAgaWYgKFVuaWNvZGU6OmlzRGlnaXQoc1tw
b3NdKSkKKyAgICBpZiAoaXNBU0NJSURpZ2l0KHNbcG9zXSkpCiAgICAgICAgIG51bSA9IDEwOwog
ICAgIAogICAgIGlmIChzYXdQbHVzKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCShyZXZp
c2lvbiAzNzUyNikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRE9N
IGltcGxlbWVudGF0aW9uIGZvciBLREUuCi0gKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgU2ltb24gSGF1c21h
bm4gPGhhdXNtYW5uQGtkZS5vcmc+CkBAIC0yOCwxMyArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFN0cmluZzsKLQotY2xhc3MgSFRNTEZvbnRFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50Ci17CitjbGFzcyBIVE1MRm9udEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1l
bnQgewogcHVibGljOgogICAgIEhUTUxGb250RWxlbWVudChEb2N1bWVudCopOwotICAgIH5IVE1M
Rm9udEVsZW1lbnQoKTsKICAgICAKICAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogICAgIHZpcnR1
YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gMTsgfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1N0cmluZy5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0MSw3ICs3NDEsNyBAQCBzdGF0aWMgdW5z
aWduZWQgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlCiAgICAgCiAgICAgLy8gQWxsb3cgZGlnaXRz
LgogICAgIGZvciAoOyBpICE9IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghVW5pY29kZTo6
aXNEaWdpdChkYXRhW2ldKSkKKyAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoZGF0YVtpXSkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MDgtMTAtMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU2CisgICAgICAgICAgQnVnIDIxNTU2OiBu
b24tQVNDSUkgZGlnaXRzIGFyZSBhbGxvd2VkIGluIHBsYWNlcyB3aGVyZSBvbmx5IEFTQ0lJIHNo
b3VsZCBiZQorCisgICAgICAgICogZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNvdXJjZXMvc2l6ZS1h
dHRyaWJ1dGUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9z
aXplLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6
ZS1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRhYmxlRWxl
bWVudC9jZWxscGFkZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9jZWxs
cGFkZGluZy1hdHRyaWJ1dGUuanM6IEFkZGVkLgorCiAyMDA4LTEwLTEyICBCcmFkIEdhcmNpYSAg
PGJnYXJjaWFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZv
bnRFbGVtZW50L3NpemUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK0hUTUxGb250RWxlbWVudCBzaXpl
IGF0dHJpYnV0ZSB0ZXN0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCIiKSBpcyBudWxsCitQQVNTIGZvbnRTaXplQXR0cmlidXRl
RWZmZWN0KCIxIikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIyIikg
aXMgIjEzcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIzIikgaXMgIjE2cHgiCitQ
QVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI0IikgaXMgIjE4cHgiCitQQVNTIGZvbnRTaXpl
QXR0cmlidXRlRWZmZWN0KCI1IikgaXMgIjI0cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZm
ZWN0KCI2IikgaXMgIjMycHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI3IikgaXMg
IjQ4cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIwIikgaXMgIjE2cHgiCitQQVNT
IGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItMSIpIGlzICIxM3B4IgorUEFTUyBmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiLTIiKSBpcyAiMTBweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZl
Y3QoIi0zIikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItNCIpIGlz
ICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTUiKSBpcyAiMTBweCIKK1BB
U1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIi02IikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXpl
QXR0cmlidXRlRWZmZWN0KCItNyIpIGlzICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVm
ZmVjdCgiLTgiKSBpcyAiMTBweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIi05Iikg
aXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItMTAiKSBpcyAiMTBweCIK
K1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjgiKSBpcyAiNDhweCIKK1BBU1MgZm9udFNp
emVBdHRyaWJ1dGVFZmZlY3QoIjkiKSBpcyAiNDhweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjEwIikgaXMgIjQ4cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIxMDAi
KSBpcyAiNDhweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjEwMDAiKSBpcyAiNDhw
eCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjF4IikgaXMgIjEwcHgiCitQQVNTIGZv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCIxLiIpIGlzICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJp
YnV0ZUVmZmVjdCgiMS45IikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0
KCIyeCIpIGlzICIxM3B4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMi4iKSBpcyAi
MTNweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjIuOSIpIGlzICIxM3B4IgorUEFT
UyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiYSIpIGlzIG51bGwKK1BBU1MgZm9udFNpemVBdHRy
aWJ1dGVFZmZlY3QoYXJhYmljSW5kaWNEaWdpdE9uZSkgaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50L3NpemUtYXR0cmlidXRlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50L3Np
emUtYXR0cmlidXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRm9udEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1l
bnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3Vy
Y2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVz
b3VyY2VzL1RFTVBMQVRFLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
dGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNv
dXJjZXMvc2l6ZS1hdHRyaWJ1dGUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU4IEBACitkZXNjcmlwdGlvbigiSFRNTEZvbnRFbGVtZW50IHNpemUg
YXR0cmlidXRlIHRlc3QiKTsKKworZnVuY3Rpb24gZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QodmFs
dWUpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb250Iik7
CisgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNpemUiLCB2YWx1ZSk7CisgICAgdmFyIG91dGVy
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICBvdXRlckVsZW1lbnQu
c2V0QXR0cmlidXRlKCJzdHlsZSIsICJmb250LXNpemU6IDEwMHB4Iik7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChvdXRlckVsZW1lbnQpOworICAgIG91dGVyRWxlbWVudC5hcHBlbmRD
aGlsZChlbGVtZW50KTsKKyAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgIiIpOworICAgIHZhciByZXN1bHQgPSBjb21wdXRlZFN0eWxlLmZvbnRTaXplOwor
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0ZXJFbGVtZW50KTsKKyAgICByZXR1cm4g
cmVzdWx0ID09PSAiMTAwcHgiID8gbnVsbCA6IHJlc3VsdDsKK30KKworc2hvdWxkQmUoJ2ZvbnRT
aXplQXR0cmlidXRlRWZmZWN0KCIiKScsICdudWxsJyk7CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMSIpJywgJyIxMHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0cmli
dXRlRWZmZWN0KCIyIiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjMiKScsICciMTZweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiNCIpJywgJyIxOHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI1
IiknLCAnIjI0cHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjYiKScs
ICciMzJweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiNyIpJywgJyI0
OHB4IicpOworCitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjAiKScsICciMTZw
eCInKTsgLy8gR2Vja28gYW5kIFdlYktpdCBkbyBub3QgYWdyZWUgb24gdGhpcyByZXN1bHQuIFdo
aWNoIG1hdGNoZXMgSUU/CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTEi
KScsICciMTNweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTIiKScs
ICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTMiKScsICci
MTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTQiKScsICciMTBw
eCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTUiKScsICciMTBweCIn
KTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTYiKScsICciMTBweCInKTsK
K3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTciKScsICciMTBweCInKTsKK3No
b3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTgiKScsICciMTBweCInKTsKK3Nob3Vs
ZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTkiKScsICciMTBweCInKTsKK3Nob3VsZEJl
KCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTEwIiknLCAnIjEwcHgiJyk7CisKK3Nob3VsZEJl
KCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiOCIpJywgJyI0OHB4IicpOworc2hvdWxkQmUoJ2Zv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCI5IiknLCAnIjQ4cHgiJyk7CitzaG91bGRCZSgnZm9udFNp
emVBdHRyaWJ1dGVFZmZlY3QoIjEwIiknLCAnIjQ4cHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVB
dHRyaWJ1dGVFZmZlY3QoIjEwMCIpJywgJyI0OHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0
cmlidXRlRWZmZWN0KCIxMDAwIiknLCAnIjQ4cHgiJyk7CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMXgiKScsICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJp
YnV0ZUVmZmVjdCgiMS4iKScsICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0
ZUVmZmVjdCgiMS45IiknLCAnIjEwcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjJ4IiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZl
Y3QoIjIuIiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3Qo
IjIuOSIpJywgJyIxM3B4IicpOworCitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3Qo
ImEiKScsICdudWxsJyk7CisKK3ZhciBhcmFiaWNJbmRpY0RpZ2l0T25lID0gU3RyaW5nLmZyb21D
aGFyQ29kZSgweDY2MSk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoYXJhYmlj
SW5kaWNEaWdpdE9uZSknLCAnbnVsbCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK0hUTUxJbnB1dEVsZW1l
bnQgc2l6ZSBhdHRyaWJ1dGUgdGVzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNpemUgaXMgMjAKK1BBU1Mgc2l6
ZUF0dHJpYnV0ZUVmZmVjdCgiIikgaXMgMAorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIxIikg
aXMgMQorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIyIikgaXMgMgorUEFTUyBzaXplQXR0cmli
dXRlRWZmZWN0KCIxMCIpIGlzIDEwCitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIjAiKSBpcyAw
CitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIi0xIikgaXMgLTEKK1BBU1Mgc2l6ZUF0dHJpYnV0
ZUVmZmVjdCgiMXgiKSBpcyAxCitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIjEuIikgaXMgMQor
UEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIxLjkiKSBpcyAxCitQQVNTIHNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjJ4IikgaXMgMgorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIyLiIpIGlzIDIKK1BB
U1Mgc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMi45IikgaXMgMgorUEFTUyBzaXplQXR0cmlidXRlRWZm
ZWN0KCJhIikgaXMgMAorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KGFyYWJpY0luZGljRGlnaXRP
bmUpIGlzIDAKK1BBU1Mgc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0
T25lKSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0
RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElu
cHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1
dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXR0cmlidXRlLmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wt
c3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRF
bGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQv
cmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBA
CitkZXNjcmlwdGlvbigiSFRNTElucHV0RWxlbWVudCBzaXplIGF0dHJpYnV0ZSB0ZXN0Iik7CisK
K2Z1bmN0aW9uIHNpemVBdHRyaWJ1dGVFZmZlY3QodmFsdWUpCit7CisgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgIGVsZW1lbnQuc2V0QXR0cmli
dXRlKCJzaXplIiwgdmFsdWUpOworICAgIHJldHVybiBlbGVtZW50LnNpemU7Cit9CisKK3Nob3Vs
ZEJlKCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNpemUnLCAnMjAnKTsgLy8gR2Vj
a28gYW5kIFdlYktpdCBkb24ndCBtYXRjaC4KKworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZl
Y3QoIiIpJywgJzAnKTsKKworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjEiKScsICcx
Jyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMiIpJywgJzInKTsKK3Nob3VsZEJl
KCdzaXplQXR0cmlidXRlRWZmZWN0KCIxMCIpJywgJzEwJyk7CisKK3Nob3VsZEJlKCdzaXplQXR0
cmlidXRlRWZmZWN0KCIwIiknLCAnMCcpOworCitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiLTEiKScsICctMScpOyAvLyBHZWNrbyBhbmQgV2ViS2l0IGRvbid0IG1hdGNoLgorCitzaG91
bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMXgiKScsICcxJyk7CitzaG91bGRCZSgnc2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMS4iKScsICcxJyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiMS45IiknLCAnMScpOworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjJ4IiknLCAn
MicpOworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjIuIiknLCAnMicpOworc2hvdWxk
QmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjIuOSIpJywgJzInKTsKKworc2hvdWxkQmUoJ3NpemVB
dHRyaWJ1dGVFZmZlY3QoImEiKScsICcwJyk7CisKK3ZhciBhcmFiaWNJbmRpY0RpZ2l0T25lID0g
U3RyaW5nLmZyb21DaGFyQ29kZSgweDY2MSk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dChhcmFiaWNJbmRpY0RpZ2l0T25lKScsICcwJyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVm
ZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0T25lKScsICcyJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxl
bWVudC9jZWxscGFkZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyNCBAQAorSFRNTFRhYmxlRWxlbWVudCBjZWxscGFkZGluZyBhdHRyaWJ1
dGUgdGVzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjZWxsUGFkZGlu
Z0F0dHJpYnV0ZUVmZmVjdCgiIikgaXMgIjFweCIKK1BBU1MgY2VsbFBhZGRpbmdBdHRyaWJ1dGVF
ZmZlY3QoIjEiKSBpcyAiMXB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMiIp
IGlzICIycHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIxMCIpIGlzICIxMHB4
IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMCIpIGlzICIwcHgiCitQQVNTIGNl
bGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCItMSIpIGlzICIwcHgiCitQQVNTIGNlbGxQYWRkaW5n
QXR0cmlidXRlRWZmZWN0KCIxeCIpIGlzICIxcHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRl
RWZmZWN0KCIxLiIpIGlzICIxcHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIx
LjkiKSBpcyAiMXB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMngiKSBpcyAi
MnB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi4iKSBpcyAiMnB4IgorUEFT
UyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi45IikgaXMgIjJweCIKK1BBU1MgY2VsbFBh
ZGRpbmdBdHRyaWJ1dGVFZmZlY3QoImEiKSBpcyAiMHB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJp
YnV0ZUVmZmVjdChhcmFiaWNJbmRpY0RpZ2l0T25lKSBpcyAiMHB4IgorUEFTUyBjZWxsUGFkZGlu
Z0F0dHJpYnV0ZUVmZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0T25lKSBpcyAiMnB4IgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBh
ZGRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjplb2wtc3R5
bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVt
ZW50L2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRlLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2Nl
bGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIHRleHQvaHRtbApOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yZXNvdXJjZXMvY2VsbHBhZGRpbmct
YXR0cmlidXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJs
ZUVsZW1lbnQvcmVzb3VyY2VzL2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvcmVzb3VyY2VzL2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorZGVzY3Jp
cHRpb24oIkhUTUxUYWJsZUVsZW1lbnQgY2VsbHBhZGRpbmcgYXR0cmlidXRlIHRlc3QiKTsKKwor
ZnVuY3Rpb24gY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QodmFsdWUpCit7CisgICAgdmFyIHRh
YmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKKyAgICB0YWJsZS5zZXRBdHRy
aWJ1dGUoImNlbGxwYWRkaW5nIiwgdmFsdWUpOworICAgIHZhciBjZWxsID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGQiKTsKKyAgICB0YWJsZS5hcHBlbmRDaGlsZChjZWxsKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhYmxlKTsKKyAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdl
dENvbXB1dGVkU3R5bGUoY2VsbCwgIiIpOworICAgIHZhciByZXN1bHQgPSBjb21wdXRlZFN0eWxl
LnBhZGRpbmdUb3A7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YWJsZSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0
KCIiKScsICciMXB4IicpOworCitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3Qo
IjEiKScsICciMXB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIy
IiknLCAnIjJweCInKTsKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMTAi
KScsICciMTBweCInKTsKKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIw
IiknLCAnIjBweCInKTsKKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIt
MSIpJywgJyIwcHgiJyk7CisKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgi
MXgiKScsICciMXB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIx
LiIpJywgJyIxcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoIjEu
OSIpJywgJyIxcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoIjJ4
IiknLCAnIjJweCInKTsKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi4i
KScsICciMnB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIyLjki
KScsICciMnB4IicpOworCitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoImEi
KScsICciMHB4IicpOworCit2YXIgYXJhYmljSW5kaWNEaWdpdE9uZSA9IFN0cmluZy5mcm9tQ2hh
ckNvZGUoMHg2NjEpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KGFyYWJp
Y0luZGljRGlnaXRPbmUpJywgJyIwcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1
dGVFZmZlY3QoIjIiICsgYXJhYmljSW5kaWNEaWdpdE9uZSknLCAnIjJweCInKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2lt
bXV0YWJsZS1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9pbW11dGFibGUtcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vaW1tdXRhYmxlLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMyArMSwxMyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaW1tdXRhYmxlLXByb3BlcnRpZXMuanMiPjwvc2Ny
aXB0PiAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbW11
dGFibGUtcHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLW1vZGlmeS1jdXJyZW50VHJhbnNsYXRl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctbW9kaWZ5LWN1
cnJlbnRUcmFuc2xhdGUuaHRtbAkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1tb2RpZnktY3VycmVudFRyYW5zbGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEzICsxLDEzIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zdmctbW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUuanMiPjwv
c2NyaXB0PiAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
dmctbW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy14bWwtZG9tLXN5bmMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy14bWwtZG9tLXN5
bmMuaHRtbAkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy14
bWwtZG9tLXN5bmMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMSwxMyBAQAogPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c3ZnLXhtbC1kb20tc3luYy5qcyI+PC9zY3JpcHQ+IAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N2Zy14bWwtZG9tLXN5bmMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3RlYXJv
ZmZzLXdpdGgtdGVhcm9mZnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuaHRtbAkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMyArMSwxMyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5qcyI+
PC9zY3JpcHQ+IAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL0xheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdBRWxlbWVudC1kb20taHJlZi1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0FFbGVtZW50LWRvbS1ocmVmLWF0dHIuanMJ
KHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNv
dXJjZXMvU1ZHQUVsZW1lbnQtZG9tLWhyZWYtYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjUs
MyArMjUsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogZXhlY3V0ZVRlc3QoKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdBRWxlbWVudC1kb20tdGFyZ2V0LWF0dHIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHQUVsZW1lbnQtZG9tLXRhcmdldC1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0FFbGVtZW50LWRvbS10YXJn
ZXQtYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjYsMyArMjYsNSBAQCBmdW5jdGlvbiBleGVj
dXRlVGVzdCgpIHsKIH0KIAogZXhlY3V0ZVRlc3QoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdBRWxlbWVudC1zdmdkb20taHJlZi1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0FFbGVtZW50LXN2Z2RvbS1ocmVm
LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHQUVsZW1lbnQtc3ZnZG9tLWhyZWYtcHJvcC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMjUsMyArMjUsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogZXhl
Y3V0ZVRlc3QoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdBRWxlbWVudC1zdmdkb20t
dGFyZ2V0LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHQUVsZW1lbnQtc3ZnZG9tLXRhcmdldC1wcm9wLmpzCShyZXZpc2lv
biAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0FFbGVtZW50LXN2Z2RvbS10YXJnZXQtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjYsMyAr
MjYsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogZXhlY3V0ZVRlc3QoKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeC1hdHRyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0NpcmNsZUVsZW1lbnQtZG9tLWN4LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20t
Y3gtYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsMyArMjEsNSBAQCBmdW5jdGlvbiBleGVj
dXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGNpcmNsZUVsZW1lbnQsIDUwLCAxNTApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN5LWF0dHIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
Q2lyY2xlRWxlbWVudC1kb20tY3ktYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1j
eS1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwzICsyMSw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoY2lyY2xlRWxlbWVudCwgMTUwLCA1MCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tci1hdHRyLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0Np
cmNsZUVsZW1lbnQtZG9tLXItYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1yLWF0
dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIxLDMgKzIxLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChjaXJjbGVFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdD
aXJjbGVFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NpcmNsZUVsZW1lbnQtc3Zn
ZG9tLWN4LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTIxLDMgKzIxLDUgQEAgZnVuY3Rpb24g
ZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChjaXJjbGVFbGVtZW50LCA1MCwgMTUwKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1jeS1wcm9w
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQor
KysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ2lyY2xlRWxl
bWVudC1zdmdkb20tY3ktcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsMyArMjEsNSBAQCBm
dW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGNpcmNsZUVsZW1lbnQsIDE1
MCwgNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9t
LXItcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1yLXByb3AuanMJKHJldmlzaW9uIDM3
NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1zdmdkb20tci1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwzICsyMSw1
IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoY2lyY2xlRWxlbWVu
dCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NsaXBQYXRoRWxlbWVu
dC1kb20tY2xpcFBhdGhVbml0cy1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NsaXBQYXRoRWxlbWVudC1kb20tY2xpcFBh
dGhVbml0cy1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0NsaXBQYXRoRWxlbWVudC1kb20tY2xpcFBhdGhVbml0
cy1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwzICszNiw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5p
dHMtcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMtcHJvcC5q
cwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMtcHJvcC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMzYsMyArMzYsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
IH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0N1cnNvckVsZW1lbnQt
ZG9tLXgtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdDdXJzb3JFbGVtZW50LWRvbS14LWF0dHIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAK
IHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0N1cnNvckVsZW1lbnQtZG9tLXktYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdDdXJzb3JFbGVtZW50LWRvbS15
LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teS1hdHRyLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywzICsyNyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFy
dFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdDdXJzb3JFbGVtZW50LXN2Z2RvbS14LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20t
eC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsMyArMjcsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAog
c3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0N1cnNvckVsZW1lbnQtc3Zn
ZG9tLXktcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdDdXJzb3JFbGVtZW50LXN2Z2RvbS15LXByb3AuanMJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9
CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50
LWRvbS1jeC1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewog
fQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDQ1LCAxNTApOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMv
cmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeS1hdHRyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVt
ZW50LWRvbS1jeS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeS1hdHRyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgNTApOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeC1hdHRyLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VF
bGVtZW50LWRvbS1yeC1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeC1hdHRy
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnktYXR0ci5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdFbGxp
cHNlRWxlbWVudC1kb20tcnktYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnkt
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjIsMyArMjIsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysg
TGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1l
bnQtc3ZnZG9tLWN4LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTIyLDMgKzIyLDUgQEAgZnVu
Y3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgNDUs
IDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9t
LWN5LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AuanMJKHJldmlzaW9u
IDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
RWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTIyLDMg
KzIyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNl
RWxlbWVudCwgMTUwLCA1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVs
ZW1lbnQtc3ZnZG9tLXJ4LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3Au
anMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3AuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDMgKzIyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0
VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LXN2
Z2RvbS1yeS1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeS1wcm9wLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLmpzCShyZXZpc2lvbiAzNzUy
NikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjcs
MyArMjcsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGZvcmVp
Z25PYmplY3RFbGVtZW50LCAxNTAsIDgxKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC1kb20td2lkdGgtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9z
dmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20t
d2lkdGgtYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjcsMyArMjcsNSBAQCBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGZvcmVpZ25PYmplY3RFbGVtZW50LCAxMDEs
IDEwMCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQt
ZG9tLXgtYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teC1hdHRyLmpzCShyZXZp
c2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChm
b3JlaWduT2JqZWN0RWxlbWVudCwgMTAsIDEwMCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXktYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC1kb20teS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS15LWF0
dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChmb3JlaWduT2JqZWN0RWxlbWVudCwgMTUwLCA1MCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhl
aWdodC1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC5q
cwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AuanMJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9
CiAKIHN0YXJ0VGVzdChmb3JlaWduT2JqZWN0RWxlbWVudCwgMTUwLCA4MSk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3Au
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuanMJKHJldmlzaW9u
IDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuanMJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDMgKzI3LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVz
dChmb3JlaWduT2JqZWN0RWxlbWVudCwgMTAxLCAxMDApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS14LXByb3AuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC1zdmdkb20teC1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzICsyNyw1IEBAIGZ1bmN0
aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoZm9yZWlnbk9iamVjdEVsZW1lbnQs
IDEwLCAxMDApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LXN2Z2RvbS15LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXktcHJv
cC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teS1wcm9wLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNywzICsyNyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQog
CiBzdGFydFRlc3QoZm9yZWlnbk9iamVjdEVsZW1lbnQsIDE1MCwgNTApOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHSW1hZ2VF
bGVtZW50LWRvbS1oZWlnaHQtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLWhlaWdo
dC1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoaW1hZ2VFbGVtZW50LCAxNTAsIDUwKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0
aW8tYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci5q
cwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjQsMyArMjQsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
IH0KIAogc3RhcnRUZXN0KGltYWdlRWxlbWVudCwgNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVu
dC1kb20td2lkdGgtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXdpZHRoLWF0dHIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDMgKzIzLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3Qo
KSB7CiB9CiAKIHN0YXJ0VGVzdChpbWFnZUVsZW1lbnQsIDUwLCAxNTApOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1kb20teC1hdHRyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVu
dC1kb20teC1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1kb20teC1hdHRyLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQog
CiBzdGFydFRlc3QoaW1hZ2VFbGVtZW50LCA1LCAxMDApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1kb20teS1h
dHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRl
c3QoaW1hZ2VFbGVtZW50LCAxMDAsIDUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0lt
YWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1o
ZWlnaHQtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewogfQogCiBzdGFydFRlc3QoaW1hZ2VFbGVtZW50LCAxNTAsIDUwKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tcHJv
cC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tcHJvcC5qcwko
cmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tcHJvcC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMjUsMyArMjUsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
IH0KIAogc3RhcnRUZXN0KGltYWdlRWxlbWVudCwgNTAsIDEwMCk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxl
bWVudC1zdmdkb20td2lkdGgtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXdp
ZHRoLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDMgKzIzLDUgQEAgZnVuY3Rpb24gZXhl
Y3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChpbWFnZUVsZW1lbnQsIDUwLCAxNTApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teC1wcm9wLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0ltYWdlRWxlbWVudC1zdmdkb20teC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1zdmdk
b20teC1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4
ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoaW1hZ2VFbGVtZW50LCA1LCAxMDApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0ltYWdlRWxlbWVudC1zdmdk
b20teS1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4
ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoaW1hZ2VFbGVtZW50LCAxMDAsIDUpOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xp
bmVFbGVtZW50LWRvbS14MS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3Rz
L3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRy
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgewogfQogCiBzdGFydFRlc3QobGluZUVsZW1lbnQsIDEwMSwgMTEpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LWRvbS14Mi1hdHRyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50
LWRvbS14Mi1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LWRvbS14Mi1hdHRyLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywzICsyMyw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQog
CiBzdGFydFRlc3QobGluZUVsZW1lbnQsIDExLCAxMSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0
dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHIuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDMgKzIzLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVz
dChsaW5lRWxlbWVudCwgMTEsIDEwMSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGlu
ZUVsZW1lbnQtZG9tLXkyLWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkyLWF0dHIuanMJKHJl
dmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkyLWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDMg
KzIzLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChsaW5lRWxl
bWVudCwgMTEsIDExKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lRWxlbWVudC1z
dmdkb20teDEtcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC5qcwkocmV2aXNp
b24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjMsMyAr
MjMsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGxpbmVFbGVt
ZW50LCAxMDEsIDExKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lRWxlbWVudC1z
dmdkb20teDItcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC5qcwkocmV2aXNp
b24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjMsMyAr
MjMsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGxpbmVFbGVt
ZW50LCAxMSwgMTEpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LXN2
Z2RvbS15MS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLmpzCShyZXZpc2lv
biAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsy
Myw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QobGluZUVsZW1l
bnQsIDExLCAxMDEpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LXN2
Z2RvbS15Mi1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLmpzCShyZXZpc2lv
biAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R0xpbmVFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMywzICsy
Myw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QobGluZUVsZW1l
bnQsIDExLCAxMSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQtZG9tLWdyYWRpZW50VHJhbnNmb3JtLWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDMgKzQxLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChl
bGxpcHNlRWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikK
KysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC00MCwzICs0MCw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3Qo
ZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgxLWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LWRvbS14MS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDEt
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1hdHRy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci5qcwkocmV2aXNpb24gMzc1
MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQtZG9tLXgyLWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDMg
KzQyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNl
RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20teTEtYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9t
LXkxLWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1hdHRyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXkyLWF0dHIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysr
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC1kb20teTItYXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDIsMyArNDIsNSBA
QCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VFbGVtZW50
LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC5qcwkocmV2aXNpb24gMzc1MjYp
CisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDMgKzY5LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0
YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLmpzCShy
ZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC00MCwzICs0MCw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkg
ewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXgxLXByb3AuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14MS1wcm9wLmpzCShyZXZpc2lvbiAzNzUy
NikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC1zdmdkb20teDEtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEs
MyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlw
c2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC1zdmdkb20teDItcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9t
LXgyLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDMgKzQyLDUgQEAgZnVuY3Rpb24gZXhl
Y3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTApOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20t
eTEtcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXkxLXByb3AuanMJKHJl
dmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFy
dFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXkyLXByb3AuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC1zdmdkb20teTItcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDIsMyArNDIsNSBAQCBm
dW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VFbGVtZW50LCAx
NTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
bWFya2VySGVpZ2h0LWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0
dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDMgKzQxLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9
CiAKIHN0YXJ0VGVzdChwYXRoRWxlbWVudCwgMTgwLCAxODApOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlclVuaXRzLWF0dHIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2Vy
RWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LWRv
bS1tYXJrZXJVbml0cy1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocGF0aEVsZW1lbnQsIDE4MCwg
MTgwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJr
ZXJXaWR0aC1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlcldpZHRoLWF0dHIuanMJ
KHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNv
dXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyV2lkdGgtYXR0ci5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3Rh
cnRUZXN0KHBhdGhFbGVtZW50LCAxODAsIDE4MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHTWFya2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
b3JpZW50LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHIuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDMgKzQyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CiB9CiAKIHN0YXJ0VGVzdChwYXRoRWxlbWVudCwgMTgwLCAxODApOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMv
cmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlgtYXR0ci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVt
ZW50LWRvbS1yZWZYLWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRy
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0
KCkgewogfQogCiBzdGFydFRlc3QocGF0aEVsZW1lbnQsIDE4MCwgMTgwKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRh
dGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1yZWZZLWF0dHIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2Vy
RWxlbWVudC1kb20tcmVmWS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3Rz
L3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlkt
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHBhdGhFbGVtZW50LCAxODAsIDE4MCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXBy
b3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNv
dXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3AuanMJKHJldmlz
aW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3AuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDMgKzQyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0
VGVzdChwYXRoRWxlbWVudCwgMTgwLCAxODApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVuaXRzLXByb3AuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVu
dC1zdmdkb20tbWFya2VyVW5pdHMtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2Rv
bS1tYXJrZXJVbml0cy1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocGF0aEVsZW1lbnQsIDE4MCwg
MTgwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1t
YXJrZXJXaWR0aC1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlcldpZHRoLXBy
b3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyV2lkdGgtcHJvcC5qcwko
d29ya2luZyBjb3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsK
IH0KIAogc3RhcnRUZXN0KHBhdGhFbGVtZW50LCAxODAsIDE4MCk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9y
ZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5nbGUtcHJvcC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikK
KysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVs
ZW1lbnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDMg
KzQ1LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChwYXRoRWxl
bWVudCwgMTgwLCAxODApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLW9yaWVudFR5cGUtcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1vcmll
bnRUeXBlLXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50VHlwZS1w
cm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVU
ZXN0KCkgewogfQogCiBzdGFydFRlc3QocGF0aEVsZW1lbnQsIDE4MCwgMTgwKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1yZWZYLXByb3AuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
TWFya2VyRWxlbWVudC1zdmdkb20tcmVmWC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQt
c3ZnZG9tLXJlZlgtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5j
dGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHBhdGhFbGVtZW50LCAxODAsIDE4
MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVm
WS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMv
cmVzb3VyY2VzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC5qcwkocmV2aXNpb24g
Mzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1yZWZZLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQxLDMg
KzQxLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChwYXRoRWxl
bWVudCwgMTgwLCAxODApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLXNldE9yaWVudFRvQW5nbGUtY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2Rv
bS1zZXRPcmllbnRUb0FuZ2xlLWNhbGwuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
c2V0T3JpZW50VG9BbmdsZS1jYWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBA
IGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocGF0aEVsZW1lbnQsIDE4
MCwgMTgwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2Rv
bS1zZXRPcmllbnRUb0F1dG8tY2FsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmll
bnRUb0F1dG8tY2FsbC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRU
b0F1dG8tY2FsbC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDUsMyArNDUsNSBAQCBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHBhdGhFbGVtZW50LCAxODAsIDE4MCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdodC1hdHRyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR01hc2tFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXNrRWxlbWVudC1k
b20taGVpZ2h0LWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDMgKzQ0LDUgQEAgZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTAp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrQ29udGVu
dFVuaXRzLWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tDb250ZW50VW5pdHMtYXR0ci5q
cwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza0NvbnRlbnRVbml0cy1hdHRyLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQog
CiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza1VuaXRzLWF0dHIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQt
ZG9tLW1hc2tVbml0cy1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrVW5pdHMt
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDgsMyArNDgsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRoLWF0dHIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFz
a0VsZW1lbnQtZG9tLXdpZHRoLWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVz
dHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRo
LWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDMgKzQ0LDUgQEAgZnVuY3Rpb24gZXhlY3V0
ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0Vs
ZW1lbnQtZG9tLXgtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXNrRWxlbWVudC1kb20teC1hdHRyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewog
fQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LWRvbS15
LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXktYXR0ci5qcwkod29ya2luZyBjb3B5
KQpAQCAtNDUsMyArNDUsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRU
ZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
TWFza0VsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1o
ZWlnaHQtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDMgKzQ0LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMv
cmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVudFVuaXRzLXByb3AuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tDb250ZW50VW5pdHMtcHJvcC5qcwkocmV2aXNpb24g
Mzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdN
YXNrRWxlbWVudC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRl
c3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdN
YXNrRWxlbWVudC1zdmdkb20tbWFza1VuaXRzLXByb3AuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9t
LW1hc2tVbml0cy1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrVW5pdHMt
cHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDgsMyArNDgsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
TWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtc3Zn
ZG9tLXdpZHRoLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDMgKzQ0LDUgQEAgZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTAp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS14LXByb3Au
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXgtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXNrRWxlbWVudC1z
dmdkb20teC1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9u
IGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teS1wcm9wLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR01hc2tFbGVtZW50LXN2Z2RvbS15LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTWFza0VsZW1lbnQtc3Zn
ZG9tLXktcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDUsMyArNDUsNSBAQCBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhlaWdodC1hdHRy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYp
CisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJu
RWxlbWVudC1kb20taGVpZ2h0LWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDMgKzQ2LDUg
QEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwg
MTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRv
bS1wYXR0ZXJuQ29udGVudFVuaXRzLWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRl
cm5Db250ZW50VW5pdHMtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9z
dmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0dGVy
bkNvbnRlbnRVbml0cy1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwg
MTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0
dGVyblRyYW5zZm9ybS1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVHJhbnNm
b3JtLWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5UcmFuc2Zvcm0t
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDcsMyArNDcsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3Vy
Y2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci5qcwkocmV2aXNpb24g
Mzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblVuaXRzLWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDMgKzQ1LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChy
ZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRl
cm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1h
dHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC00NiwzICs0Niw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBz
dGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teC1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14
LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXgtYXR0ci5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDgsMyArNDgsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3Rh
cnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHUGF0dGVybkVsZW1lbnQtZG9tLXktYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teS1h
dHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS15LWF0dHIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDMgKzQ4LDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0
VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NW
R1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1z
dmdkb20taGVpZ2h0LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdo
dC1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00NiwzICs0Niw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRl
bnRVbml0cy1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuQ29udGVudFVu
aXRzLXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Db250ZW50
VW5pdHMtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDUsMyArNDUsNSBAQCBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5U
cmFuc2Zvcm0tcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRyYW5zZm9y
bS1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVHJhbnNmb3Jt
LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTc1LDMgKzc1LDUgQEAgZnVuY3Rpb24gZXhlY3V0
ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTApOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMt
cHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jl
c291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblVuaXRzLXByb3AuanMJKHJl
dmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Vbml0cy1wcm9wLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC00NSwzICs0NSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBz
dGFydFRlc3QocmVjdEVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNl
cy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVu
dC1zdmdkb20td2lkdGgtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9z
dmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20td2lk
dGgtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDYsMyArNDYsNSBAQCBmdW5jdGlvbiBleGVj
dXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxNTAsIDE1MCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXgtcHJvcC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9T
VkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExh
eW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50
LXN2Z2RvbS14LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDMgKzQ4LDUgQEAgZnVuY3Rp
b24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTUwLCAxNTAp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS15LXBy
b3AuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNv
dXJjZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXktcHJvcC5qcwkocmV2aXNpb24gMzc1MjYp
CisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdQYXR0ZXJu
RWxlbWVudC1zdmdkb20teS1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00OCwzICs0OCw1IEBA
IGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDE1
MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtZG9tLWN4LWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeC1hdHRyLmpz
CShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3gtYXR0ci5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3Rh
cnRUZXN0KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeS1hdHRyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1kb20tY3ktYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0
cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQt
ZG9tLWN5LWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQxLDMgKzQxLDUgQEAgZnVuY3Rpb24g
ZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTAp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
ZngtYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWZ4LWF0dHIuanMJKHJldmlz
aW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC00MSwzICs0MSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3Qo
ZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWZ5LWF0dHIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LWRvbS1meS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZnkt
YXR0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsMyArNDEsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVu
dFRyYW5zZm9ybS1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRU
cmFuc2Zvcm0tYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRp
ZW50VHJhbnNmb3JtLWF0dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQxLDMgKzQxLDUgQEAgZnVu
Y3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUw
LCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
Z3JhZGllbnRVbml0cy1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
Z3JhZGllbnRVbml0cy1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00MCwzICs0MCw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1
MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtZG9tLXItYXR0ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLXItYXR0ci5qcwko
cmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLXItYXR0ci5qcwkod29ya2luZyBjb3B5
KQpAQCAtNDIsMyArNDIsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRU
ZXN0KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1zdmdkb20tY3gtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWN4LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQxLDMgKzQxLDUgQEAgZnVu
Y3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUw
LCAxNTApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1zdmdkb20tY3ktcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1p
Yy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN5LXBy
b3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC00MSwzICs0MSw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewog
fQogCiBzdGFydFRlc3QoZWxsaXBzZUVsZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVz
L3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWZ4LXByb3AuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikK
KysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC1zdmdkb20tZngtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDEsMyAr
NDEsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KGVsbGlwc2VF
bGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1z
dmdkb20tZnktcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRUZXN0cy9zdmcvZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWZ5
LXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQxLDMgKzQxLDUgQEAgZnVuY3Rpb24gZXhlY3V0
ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRUcmFuc2Zvcm0tcHJvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHlu
YW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdy
YWRpZW50VHJhbnNmb3JtLXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC02OCwzICs2
OCw1IEBAIGZ1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QoZWxsaXBzZUVs
ZW1lbnQsIDE1MCwgMTUwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisr
KyBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC5qcwkod29ya2luZyBjb3B5KQpA
QCAtNDAsMyArNDAsNSBAQCBmdW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0
KGVsbGlwc2VFbGVtZW50LCAxNTAsIDE1MCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1yLXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5b3V0VGVzdHMv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1yLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDMgKzQyLDUgQEAgZnVuY3Rpb24g
ZXhlY3V0ZVRlc3QoKSB7CiB9CiAKIHN0YXJ0VGVzdChlbGxpcHNlRWxlbWVudCwgMTUwLCAxNTAp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0
ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdSZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHIuanMJKHJldmlzaW9uIDM3NTI2KQor
KysgTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmVjdEVsZW1l
bnQtZG9tLWhlaWdodC1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDEwMCwg
MjUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LWRvbS13aWR0aC1h
dHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVz
b3VyY2VzL1NWR1JlY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikK
KysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVt
ZW50LWRvbS13aWR0aC1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1
bmN0aW9uIGV4ZWN1dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDI1LCAx
MDApOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LWRvbS14LWF0dHIu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJj
ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxlbWVudC1kb20t
eC1hdHRyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDAsIDEwMCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXktYXR0ci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxl
bWVudC1kb20teS1hdHRyLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LWRvbS15LWF0dHIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDMgKzIyLDUgQEAgZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7CiB9
CiAKIHN0YXJ0VGVzdChyZWN0RWxlbWVudCwgMTAwLCAwKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291
cmNlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmVjdEVsZW1lbnQt
c3ZnZG9tLWhlaWdodC1wcm9wLmpzCShyZXZpc2lvbiAzNzUyNikKKysrIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQt
cHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjIsMyArMjIsNSBAQCBmdW5jdGlvbiBleGVjdXRl
VGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAxMDAsIDI1KTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11
cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdS
ZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxlbWVudC1zdmdk
b20td2lkdGgtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjIsMyArMjIsNSBAQCBmdW5jdGlv
biBleGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAyNSwgMTAwKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
ZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20teC1wcm9wLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2Vz
L1NWR1JlY3RFbGVtZW50LXN2Z2RvbS14LXByb3AuanMJKHJldmlzaW9uIDM3NTI2KQorKysgTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHUmVjdEVsZW1lbnQtc3Zn
ZG9tLXgtcHJvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjIsMyArMjIsNSBAQCBmdW5jdGlvbiBl
eGVjdXRlVGVzdCgpIHsKIH0KIAogc3RhcnRUZXN0KHJlY3RFbGVtZW50LCAwLCAxMDApOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS15LXByb3AuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
UmVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC5qcwkocmV2aXNpb24gMzc1MjYpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20t
eS1wcm9wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwzICsyMiw1IEBAIGZ1bmN0aW9uIGV4ZWN1
dGVUZXN0KCkgewogfQogCiBzdGFydFRlc3QocmVjdEVsZW1lbnQsIDEwMCwgMCk7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24310</attachid>
            <date>2008-10-12 13:29:37 -0700</date>
            <delta_ts>2008-10-12 15:25:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>NonASCIIDigitPatch.txt</filename>
            <type>text/plain</type>
            <size>59818</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMTIgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTU2CisgICAgICAgICAgQnVnIDIxNTU2OiBub24tQVNDSUkgZGlnaXRzIGFyZSBhbGxvd2Vk
IGluIHBsYWNlcyB3aGVyZSBvbmx5IEFTQ0lJIHNob3VsZCBiZQorCisgICAgICAgICogd3RmL3Vu
aWNvZGUvaWN1L1VuaWNvZGVJY3UuaDogRml4ZWQgaW5kZW50YXRpb24gdG8gbWF0Y2ggV2ViS2l0
IGNvZGluZyBzdHlsZS4KKyAgICAgICAgUmVtb3ZlZCBpc0RpZ2l0LCBkaWdpdFZhbHVlLCBhbmQg
aXNGb3JtYXRDaGFyLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6IERp
dHRvLgorCiAyMDA4LTEwLTEyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS93dGYvdW5pY29kZS9pY3UvVW5pY29kZUljdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3d0Zi91bmljb2RlL2ljdS9Vbmljb2RlSWN1LmgJKHJldmlzaW9uIDM3NTI2KQorKysgSmF2
YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvaWN1L1VuaWNvZGVJY3UuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw4ICsxLDcgQEAKIC8qCi0gKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJy
YXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgR2VvcmdlIFN0YWlrb3MgPHN0YWlrb3NAa2Rl
Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlw
b3AuY29tPgotICogIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsMjE1ICsyMywxOTcg
QEAKICNpZm5kZWYgS0pTX1VOSUNPREVfSUNVX0gKICNkZWZpbmUgS0pTX1VOSUNPREVfSUNVX0gK
IAorI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWNoYXIuaD4KICNpbmNs
dWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3V0ZjE2Lmg+CiAKLSNp
bmNsdWRlIDxzdGRsaWIuaD4KLQogbmFtZXNwYWNlIFdURiB7Ci0gIG5hbWVzcGFjZSBVbmljb2Rl
IHsKK25hbWVzcGFjZSBVbmljb2RlIHsKKworZW51bSBEaXJlY3Rpb24geworICAgIExlZnRUb1Jp
Z2h0ID0gVV9MRUZUX1RPX1JJR0hULAorICAgIFJpZ2h0VG9MZWZ0ID0gVV9SSUdIVF9UT19MRUZU
LAorICAgIEV1cm9wZWFuTnVtYmVyID0gVV9FVVJPUEVBTl9OVU1CRVIsCisgICAgRXVyb3BlYW5O
dW1iZXJTZXBhcmF0b3IgPSBVX0VVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IsCisgICAgRXVyb3Bl
YW5OdW1iZXJUZXJtaW5hdG9yID0gVV9FVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUiwKKyAgICBB
cmFiaWNOdW1iZXIgPSBVX0FSQUJJQ19OVU1CRVIsCisgICAgQ29tbW9uTnVtYmVyU2VwYXJhdG9y
ID0gVV9DT01NT05fTlVNQkVSX1NFUEFSQVRPUiwKKyAgICBCbG9ja1NlcGFyYXRvciA9IFVfQkxP
Q0tfU0VQQVJBVE9SLAorICAgIFNlZ21lbnRTZXBhcmF0b3IgPSBVX1NFR01FTlRfU0VQQVJBVE9S
LAorICAgIFdoaXRlU3BhY2VOZXV0cmFsID0gVV9XSElURV9TUEFDRV9ORVVUUkFMLAorICAgIE90
aGVyTmV1dHJhbCA9IFVfT1RIRVJfTkVVVFJBTCwKKyAgICBMZWZ0VG9SaWdodEVtYmVkZGluZyA9
IFVfTEVGVF9UT19SSUdIVF9FTUJFRERJTkcsCisgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFVf
TEVGVF9UT19SSUdIVF9PVkVSUklERSwKKyAgICBSaWdodFRvTGVmdEFyYWJpYyA9IFVfUklHSFRf
VE9fTEVGVF9BUkFCSUMsCisgICAgUmlnaHRUb0xlZnRFbWJlZGRpbmcgPSBVX1JJR0hUX1RPX0xF
RlRfRU1CRURESU5HLAorICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBVX1JJR0hUX1RPX0xFRlRf
T1ZFUlJJREUsCisgICAgUG9wRGlyZWN0aW9uYWxGb3JtYXQgPSBVX1BPUF9ESVJFQ1RJT05BTF9G
T1JNQVQsCisgICAgTm9uU3BhY2luZ01hcmsgPSBVX0RJUl9OT05fU1BBQ0lOR19NQVJLLAorICAg
IEJvdW5kYXJ5TmV1dHJhbCA9IFVfQk9VTkRBUllfTkVVVFJBTAorfTsKKworZW51bSBEZWNvbXBv
c2l0aW9uVHlwZSB7CisgICAgRGVjb21wb3NpdGlvbk5vbmUgPSBVX0RUX05PTkUsCisgICAgRGVj
b21wb3NpdGlvbkNhbm9uaWNhbCA9IFVfRFRfQ0FOT05JQ0FMLAorICAgIERlY29tcG9zaXRpb25D
b21wYXQgPSBVX0RUX0NPTVBBVCwKKyAgICBEZWNvbXBvc2l0aW9uQ2lyY2xlID0gVV9EVF9DSVJD
TEUsCisgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gVV9EVF9GSU5BTCwKKyAgICBEZWNvbXBvc2l0
aW9uRm9udCA9IFVfRFRfRk9OVCwKKyAgICBEZWNvbXBvc2l0aW9uRnJhY3Rpb24gPSBVX0RUX0ZS
QUNUSU9OLAorICAgIERlY29tcG9zaXRpb25Jbml0aWFsID0gVV9EVF9JTklUSUFMLAorICAgIERl
Y29tcG9zaXRpb25Jc29sYXRlZCA9IFVfRFRfSVNPTEFURUQsCisgICAgRGVjb21wb3NpdGlvbk1l
ZGlhbCA9IFVfRFRfTUVESUFMLAorICAgIERlY29tcG9zaXRpb25OYXJyb3cgPSBVX0RUX05BUlJP
VywKKyAgICBEZWNvbXBvc2l0aW9uTm9CcmVhayA9IFVfRFRfTk9CUkVBSywKKyAgICBEZWNvbXBv
c2l0aW9uU21hbGwgPSBVX0RUX1NNQUxMLAorICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBVX0RU
X1NRVUFSRSwKKyAgICBEZWNvbXBvc2l0aW9uU3ViID0gVV9EVF9TVUIsCisgICAgRGVjb21wb3Np
dGlvblN1cGVyID0gVV9EVF9TVVBFUiwKKyAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwgPSBVX0RU
X1ZFUlRJQ0FMLAorICAgIERlY29tcG9zaXRpb25XaWRlID0gVV9EVF9XSURFLAorfTsKKworZW51
bSBDaGFyQ2F0ZWdvcnkgeworICAgIE5vQ2F0ZWdvcnkgPSAgMCwKKyAgICBPdGhlcl9Ob3RBc3Np
Z25lZCA9IFVfTUFTSyhVX0dFTkVSQUxfT1RIRVJfVFlQRVMpLAorICAgIExldHRlcl9VcHBlcmNh
c2UgPSBVX01BU0soVV9VUFBFUkNBU0VfTEVUVEVSKSwKKyAgICBMZXR0ZXJfTG93ZXJjYXNlID0g
VV9NQVNLKFVfTE9XRVJDQVNFX0xFVFRFUiksCisgICAgTGV0dGVyX1RpdGxlY2FzZSA9IFVfTUFT
SyhVX1RJVExFQ0FTRV9MRVRURVIpLAorICAgIExldHRlcl9Nb2RpZmllciA9IFVfTUFTSyhVX01P
RElGSUVSX0xFVFRFUiksCisgICAgTGV0dGVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTEVUVEVS
KSwKKworICAgIE1hcmtfTm9uU3BhY2luZyA9IFVfTUFTSyhVX05PTl9TUEFDSU5HX01BUkspLAor
ICAgIE1hcmtfRW5jbG9zaW5nID0gVV9NQVNLKFVfRU5DTE9TSU5HX01BUkspLAorICAgIE1hcmtf
U3BhY2luZ0NvbWJpbmluZyA9IFVfTUFTSyhVX0NPTUJJTklOR19TUEFDSU5HX01BUkspLAorCisg
ICAgTnVtYmVyX0RlY2ltYWxEaWdpdCA9IFVfTUFTSyhVX0RFQ0lNQUxfRElHSVRfTlVNQkVSKSwK
KyAgICBOdW1iZXJfTGV0dGVyID0gVV9NQVNLKFVfTEVUVEVSX05VTUJFUiksCisgICAgTnVtYmVy
X090aGVyID0gVV9NQVNLKFVfT1RIRVJfTlVNQkVSKSwKKworICAgIFNlcGFyYXRvcl9TcGFjZSA9
IFVfTUFTSyhVX1NQQUNFX1NFUEFSQVRPUiksCisgICAgU2VwYXJhdG9yX0xpbmUgPSBVX01BU0so
VV9MSU5FX1NFUEFSQVRPUiksCisgICAgU2VwYXJhdG9yX1BhcmFncmFwaCA9IFVfTUFTSyhVX1BB
UkFHUkFQSF9TRVBBUkFUT1IpLAorCisgICAgT3RoZXJfQ29udHJvbCA9IFVfTUFTSyhVX0NPTlRS
T0xfQ0hBUiksCisgICAgT3RoZXJfRm9ybWF0ID0gVV9NQVNLKFVfRk9STUFUX0NIQVIpLAorICAg
IE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soVV9QUklWQVRFX1VTRV9DSEFSKSwKKyAgICBPdGhl
cl9TdXJyb2dhdGUgPSBVX01BU0soVV9TVVJST0dBVEUpLAorCisgICAgUHVuY3R1YXRpb25fRGFz
aCA9IFVfTUFTSyhVX0RBU0hfUFVOQ1RVQVRJT04pLAorICAgIFB1bmN0dWF0aW9uX09wZW4gPSBV
X01BU0soVV9TVEFSVF9QVU5DVFVBVElPTiksCisgICAgUHVuY3R1YXRpb25fQ2xvc2UgPSBVX01B
U0soVV9FTkRfUFVOQ1RVQVRJT04pLAorICAgIFB1bmN0dWF0aW9uX0Nvbm5lY3RvciA9IFVfTUFT
SyhVX0NPTk5FQ1RPUl9QVU5DVFVBVElPTiksCisgICAgUHVuY3R1YXRpb25fT3RoZXIgPSBVX01B
U0soVV9PVEhFUl9QVU5DVFVBVElPTiksCisKKyAgICBTeW1ib2xfTWF0aCA9IFVfTUFTSyhVX01B
VEhfU1lNQk9MKSwKKyAgICBTeW1ib2xfQ3VycmVuY3kgPSBVX01BU0soVV9DVVJSRU5DWV9TWU1C
T0wpLAorICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhVX01PRElGSUVSX1NZTUJPTCksCisg
ICAgU3ltYm9sX090aGVyID0gVV9NQVNLKFVfT1RIRVJfU1lNQk9MKSwKKworICAgIFB1bmN0dWF0
aW9uX0luaXRpYWxRdW90ZSA9IFVfTUFTSyhVX0lOSVRJQUxfUFVOQ1RVQVRJT04pLAorICAgIFB1
bmN0dWF0aW9uX0ZpbmFsUXVvdGUgPSBVX01BU0soVV9GSU5BTF9QVU5DVFVBVElPTikKK307CisK
K2lubGluZSBVQ2hhcjMyIGZvbGRDYXNlKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV9mb2xk
Q2FzZShjLCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKK30KIAotICAgIGVudW0gRGlyZWN0aW9uIHsK
LSAgICAgIExlZnRUb1JpZ2h0ID0gVV9MRUZUX1RPX1JJR0hULAotICAgICAgUmlnaHRUb0xlZnQg
PSBVX1JJR0hUX1RPX0xFRlQsCi0gICAgICBFdXJvcGVhbk51bWJlciA9IFVfRVVST1BFQU5fTlVN
QkVSLAotICAgICAgRXVyb3BlYW5OdW1iZXJTZXBhcmF0b3IgPSBVX0VVUk9QRUFOX05VTUJFUl9T
RVBBUkFUT1IsCi0gICAgICBFdXJvcGVhbk51bWJlclRlcm1pbmF0b3IgPSBVX0VVUk9QRUFOX05V
TUJFUl9URVJNSU5BVE9SLAotICAgICAgQXJhYmljTnVtYmVyID0gVV9BUkFCSUNfTlVNQkVSLAot
ICAgICAgQ29tbW9uTnVtYmVyU2VwYXJhdG9yID0gVV9DT01NT05fTlVNQkVSX1NFUEFSQVRPUiwK
LSAgICAgIEJsb2NrU2VwYXJhdG9yID0gVV9CTE9DS19TRVBBUkFUT1IsCi0gICAgICBTZWdtZW50
U2VwYXJhdG9yID0gVV9TRUdNRU5UX1NFUEFSQVRPUiwKLSAgICAgIFdoaXRlU3BhY2VOZXV0cmFs
ID0gVV9XSElURV9TUEFDRV9ORVVUUkFMLAotICAgICAgT3RoZXJOZXV0cmFsID0gVV9PVEhFUl9O
RVVUUkFMLAotICAgICAgTGVmdFRvUmlnaHRFbWJlZGRpbmcgPSBVX0xFRlRfVE9fUklHSFRfRU1C
RURESU5HLAotICAgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFVfTEVGVF9UT19SSUdIVF9PVkVS
UklERSwKLSAgICAgIFJpZ2h0VG9MZWZ0QXJhYmljID0gVV9SSUdIVF9UT19MRUZUX0FSQUJJQywK
LSAgICAgIFJpZ2h0VG9MZWZ0RW1iZWRkaW5nID0gVV9SSUdIVF9UT19MRUZUX0VNQkVERElORywK
LSAgICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBVX1JJR0hUX1RPX0xFRlRfT1ZFUlJJREUsCi0g
ICAgICBQb3BEaXJlY3Rpb25hbEZvcm1hdCA9IFVfUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCwKLSAg
ICAgIE5vblNwYWNpbmdNYXJrID0gVV9ESVJfTk9OX1NQQUNJTkdfTUFSSywKLSAgICAgIEJvdW5k
YXJ5TmV1dHJhbCA9IFVfQk9VTkRBUllfTkVVVFJBTAotICAgIH07Ci0KLSAgICBlbnVtIERlY29t
cG9zaXRpb25UeXBlIHsKLSAgICAgIERlY29tcG9zaXRpb25Ob25lID0gVV9EVF9OT05FLAotICAg
ICAgRGVjb21wb3NpdGlvbkNhbm9uaWNhbCA9IFVfRFRfQ0FOT05JQ0FMLAotICAgICAgRGVjb21w
b3NpdGlvbkNvbXBhdCA9IFVfRFRfQ09NUEFULAotICAgICAgRGVjb21wb3NpdGlvbkNpcmNsZSA9
IFVfRFRfQ0lSQ0xFLAotICAgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gVV9EVF9GSU5BTCwKLSAg
ICAgIERlY29tcG9zaXRpb25Gb250ID0gVV9EVF9GT05ULAotICAgICAgRGVjb21wb3NpdGlvbkZy
YWN0aW9uID0gVV9EVF9GUkFDVElPTiwKLSAgICAgIERlY29tcG9zaXRpb25Jbml0aWFsID0gVV9E
VF9JTklUSUFMLAotICAgICAgRGVjb21wb3NpdGlvbklzb2xhdGVkID0gVV9EVF9JU09MQVRFRCwK
LSAgICAgIERlY29tcG9zaXRpb25NZWRpYWwgPSBVX0RUX01FRElBTCwKLSAgICAgIERlY29tcG9z
aXRpb25OYXJyb3cgPSBVX0RUX05BUlJPVywKLSAgICAgIERlY29tcG9zaXRpb25Ob0JyZWFrID0g
VV9EVF9OT0JSRUFLLAotICAgICAgRGVjb21wb3NpdGlvblNtYWxsID0gVV9EVF9TTUFMTCwKLSAg
ICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBVX0RUX1NRVUFSRSwKLSAgICAgIERlY29tcG9zaXRp
b25TdWIgPSBVX0RUX1NVQiwKLSAgICAgIERlY29tcG9zaXRpb25TdXBlciA9IFVfRFRfU1VQRVIs
Ci0gICAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwgPSBVX0RUX1ZFUlRJQ0FMLAotICAgICAgRGVj
b21wb3NpdGlvbldpZGUgPSBVX0RUX1dJREUsCi0gICAgfTsKLQotICAgIGVudW0gQ2hhckNhdGVn
b3J5IHsKLSAgICAgIE5vQ2F0ZWdvcnkgPSAgMCwKLSAgICAgIE90aGVyX05vdEFzc2lnbmVkID0g
VV9NQVNLKFVfR0VORVJBTF9PVEhFUl9UWVBFUyksCi0gICAgICBMZXR0ZXJfVXBwZXJjYXNlID0g
VV9NQVNLKFVfVVBQRVJDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfTG93ZXJjYXNlID0gVV9N
QVNLKFVfTE9XRVJDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfVGl0bGVjYXNlID0gVV9NQVNL
KFVfVElUTEVDQVNFX0xFVFRFUiksCi0gICAgICBMZXR0ZXJfTW9kaWZpZXIgPSBVX01BU0soVV9N
T0RJRklFUl9MRVRURVIpLAotICAgICAgTGV0dGVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTEVU
VEVSKSwKLQotICAgICAgTWFya19Ob25TcGFjaW5nID0gVV9NQVNLKFVfTk9OX1NQQUNJTkdfTUFS
SyksCi0gICAgICBNYXJrX0VuY2xvc2luZyA9IFVfTUFTSyhVX0VOQ0xPU0lOR19NQVJLKSwKLSAg
ICAgIE1hcmtfU3BhY2luZ0NvbWJpbmluZyA9IFVfTUFTSyhVX0NPTUJJTklOR19TUEFDSU5HX01B
UkspLAotCi0gICAgICBOdW1iZXJfRGVjaW1hbERpZ2l0ID0gVV9NQVNLKFVfREVDSU1BTF9ESUdJ
VF9OVU1CRVIpLAotICAgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhVX0xFVFRFUl9OVU1CRVIp
LAotICAgICAgTnVtYmVyX090aGVyID0gVV9NQVNLKFVfT1RIRVJfTlVNQkVSKSwKLQotICAgICAg
U2VwYXJhdG9yX1NwYWNlID0gVV9NQVNLKFVfU1BBQ0VfU0VQQVJBVE9SKSwKLSAgICAgIFNlcGFy
YXRvcl9MaW5lID0gVV9NQVNLKFVfTElORV9TRVBBUkFUT1IpLAotICAgICAgU2VwYXJhdG9yX1Bh
cmFncmFwaCA9IFVfTUFTSyhVX1BBUkFHUkFQSF9TRVBBUkFUT1IpLAotCi0gICAgICBPdGhlcl9D
b250cm9sID0gVV9NQVNLKFVfQ09OVFJPTF9DSEFSKSwKLSAgICAgIE90aGVyX0Zvcm1hdCA9IFVf
TUFTSyhVX0ZPUk1BVF9DSEFSKSwKLSAgICAgIE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soVV9Q
UklWQVRFX1VTRV9DSEFSKSwKLSAgICAgIE90aGVyX1N1cnJvZ2F0ZSA9IFVfTUFTSyhVX1NVUlJP
R0FURSksCi0KLSAgICAgIFB1bmN0dWF0aW9uX0Rhc2ggPSBVX01BU0soVV9EQVNIX1BVTkNUVUFU
SU9OKSwKLSAgICAgIFB1bmN0dWF0aW9uX09wZW4gPSBVX01BU0soVV9TVEFSVF9QVU5DVFVBVElP
TiksCi0gICAgICBQdW5jdHVhdGlvbl9DbG9zZSA9IFVfTUFTSyhVX0VORF9QVU5DVFVBVElPTiks
Ci0gICAgICBQdW5jdHVhdGlvbl9Db25uZWN0b3IgPSBVX01BU0soVV9DT05ORUNUT1JfUFVOQ1RV
QVRJT04pLAotICAgICAgUHVuY3R1YXRpb25fT3RoZXIgPSBVX01BU0soVV9PVEhFUl9QVU5DVFVB
VElPTiksCi0KLSAgICAgIFN5bWJvbF9NYXRoID0gVV9NQVNLKFVfTUFUSF9TWU1CT0wpLAotICAg
ICAgU3ltYm9sX0N1cnJlbmN5ID0gVV9NQVNLKFVfQ1VSUkVOQ1lfU1lNQk9MKSwKLSAgICAgIFN5
bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhVX01PRElGSUVSX1NZTUJPTCksCi0gICAgICBTeW1ib2xf
T3RoZXIgPSBVX01BU0soVV9PVEhFUl9TWU1CT0wpLAotCi0gICAgICBQdW5jdHVhdGlvbl9Jbml0
aWFsUXVvdGUgPSBVX01BU0soVV9JTklUSUFMX1BVTkNUVUFUSU9OKSwKLSAgICAgIFB1bmN0dWF0
aW9uX0ZpbmFsUXVvdGUgPSBVX01BU0soVV9GSU5BTF9QVU5DVFVBVElPTikKLSAgICB9OwotCi0g
ICAgaW5saW5lIFVDaGFyMzIgZm9sZENhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVy
biB1X2ZvbGRDYXNlKGMsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOwotICAgIH0KLQotICAgIGlubGlu
ZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNo
YXIqIHNyYywgaW50IHNyY0xlbmd0aCwgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgVUVycm9y
Q29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICBpbnQgcmVhbExlbmd0aCA9IHVfc3Ry
Rm9sZENhc2UocmVzdWx0LCByZXN1bHRMZW5ndGgsIHNyYywgc3JjTGVuZ3RoLCBVX0ZPTERfQ0FT
RV9ERUZBVUxULCAmc3RhdHVzKTsKLSAgICAgICplcnJvciA9ICFVX1NVQ0NFU1Moc3RhdHVzKTsK
LSAgICAgIHJldHVybiByZWFsTGVuZ3RoOwotICAgIH0KLQotICAgIGlubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCBib29sKiBlcnJvcikKLSAgICB7Ci0gICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9
IFVfWkVST19FUlJPUjsKLSAgICAgIGludCByZWFsTGVuZ3RoID0gdV9zdHJUb0xvd2VyKHJlc3Vs
dCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgIiIsICZzdGF0dXMpOwotICAgICAgKmVy
cm9yID0gISFVX0ZBSUxVUkUoc3RhdHVzKTsKLSAgICAgIHJldHVybiByZWFsTGVuZ3RoOwotICAg
IH0KLQotICAgIGlubGluZSBVQ2hhcjMyIHRvTG93ZXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAg
IHJldHVybiB1X3RvbG93ZXIoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIFVDaGFyMzIgdG9VcHBl
cihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIHVfdG91cHBlcihjKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgaW50IHRvVXBwZXIoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwg
Y29uc3QgVUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgYm9vbCogZXJyb3IpCi0gICAgewotICAg
ICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICBpbnQgcmVhbExlbmd0
aCA9IHVfc3RyVG9VcHBlcihyZXN1bHQsIHJlc3VsdExlbmd0aCwgc3JjLCBzcmNMZW5ndGgsICIi
LCAmc3RhdHVzKTsKLSAgICAgICplcnJvciA9ICEhVV9GQUlMVVJFKHN0YXR1cyk7Ci0gICAgICBy
ZXR1cm4gcmVhbExlbmd0aDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgVUNoYXIzMiB0b1RpdGxlQ2Fz
ZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIHVfdG90aXRsZShjKTsKLSAgICB9Ci0K
LSAgICBpbmxpbmUgYm9vbCBpc0FyYWJpY0NoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHVibG9ja19nZXRDb2RlKGMpID09IFVCTE9DS19BUkFCSUM7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNGb3JtYXRDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4g
dV9jaGFyVHlwZShjKSA9PSBVX0ZPUk1BVF9DSEFSOwotICAgIH0KLQotICAgIGlubGluZSBib29s
IGlzU2VwYXJhdG9yU3BhY2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiB1X2NoYXJU
eXBlKGMpID09IFVfU1BBQ0VfU0VQQVJBVE9SOwotICAgIH0KLQotICAgIGlubGluZSBib29sIGlz
UHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuICEhdV9pc3ByaW50
KGMpOwotICAgIH0KLSAgICAKLSAgICBpbmxpbmUgYm9vbCBpc0RpZ2l0KFVDaGFyMzIgYykKLSAg
ICB7Ci0gICAgICByZXR1cm4gISF1X2lzZGlnaXQoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJv
b2wgaXNQdW5jdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuICEhdV9pc3B1bmN0KGMp
OwotICAgIH0KLQotICAgIGlubGluZSBVQ2hhcjMyIG1pcnJvcmVkQ2hhcihVQ2hhcjMyIGMpCi0g
ICAgewotICAgICAgcmV0dXJuIHVfY2hhck1pcnJvcihjKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
Q2hhckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2hhckNhdGVnb3J5PihVX0dFVF9HQ19NQVNLKGMpKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERpcmVjdGlvbj4odV9jaGFyRGlyZWN0aW9uKGMpKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgYm9vbCBpc0xvd2VyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gISF1
X2lzbG93ZXIoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIGludCBkaWdpdFZhbHVlKFVDaGFyMzIg
YykKLSAgICB7Ci0gICAgICByZXR1cm4gdV9jaGFyRGlnaXRWYWx1ZShjKTsKLSAgICB9Ci0KLSAg
ICBpbmxpbmUgdWludDhfdCBjb21iaW5pbmdDbGFzcyhVQ2hhcjMyIGMpCi0gICAgewotICAgICAg
cmV0dXJuIHVfZ2V0Q29tYmluaW5nQ2xhc3MoYyk7Ci0gICAgfQotCi0gICAgaW5saW5lIERlY29t
cG9zaXRpb25UeXBlIGRlY29tcG9zaXRpb25UeXBlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGVjb21wb3NpdGlvblR5cGU+KHVfZ2V0SW50UHJvcGVydHlWYWx1
ZShjLCBVQ0hBUl9ERUNPTVBPU0lUSU9OX1RZUEUpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgaW50
IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKLSAg
ICB7Ci0gICAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9GT0xEX0NBU0VfREVG
QVVMVCk7Ci0gICAgfQoraW5saW5lIGludCBmb2xkQ2FzZShVQ2hhciogcmVzdWx0LCBpbnQgcmVz
dWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCBib29sKiBlcnJvcikK
K3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBpbnQgcmVhbExl
bmd0aCA9IHVfc3RyRm9sZENhc2UocmVzdWx0LCByZXN1bHRMZW5ndGgsIHNyYywgc3JjTGVuZ3Ro
LCBVX0ZPTERfQ0FTRV9ERUZBVUxULCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhVV9TVUNDRVNT
KHN0YXR1cyk7CisgICAgcmV0dXJuIHJlYWxMZW5ndGg7Cit9CisKK2lubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCBib29sKiBlcnJvcikKK3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVS
T19FUlJPUjsKKyAgICBpbnQgcmVhbExlbmd0aCA9IHVfc3RyVG9Mb3dlcihyZXN1bHQsIHJlc3Vs
dExlbmd0aCwgc3JjLCBzcmNMZW5ndGgsICIiLCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhIVVf
RkFJTFVSRShzdGF0dXMpOworICAgIHJldHVybiByZWFsTGVuZ3RoOworfQorCitpbmxpbmUgVUNo
YXIzMiB0b0xvd2VyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV90b2xvd2VyKGMpOworfQog
Ci0gIH0KK2lubGluZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjKQoreworICAgIHJldHVybiB1
X3RvdXBwZXIoYyk7CiB9CiAKK2lubGluZSBpbnQgdG9VcHBlcihVQ2hhciogcmVzdWx0LCBpbnQg
cmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCBib29sKiBlcnJv
cikKK3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBpbnQgcmVh
bExlbmd0aCA9IHVfc3RyVG9VcHBlcihyZXN1bHQsIHJlc3VsdExlbmd0aCwgc3JjLCBzcmNMZW5n
dGgsICIiLCAmc3RhdHVzKTsKKyAgICAqZXJyb3IgPSAhIVVfRkFJTFVSRShzdGF0dXMpOworICAg
IHJldHVybiByZWFsTGVuZ3RoOworfQorCitpbmxpbmUgVUNoYXIzMiB0b1RpdGxlQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIHVfdG90aXRsZShjKTsKK30KKworaW5saW5lIGJvb2wgaXNB
cmFiaWNDaGFyKFVDaGFyMzIgYykKK3sKKyAgICAgIHJldHVybiB1YmxvY2tfZ2V0Q29kZShjKSA9
PSBVQkxPQ0tfQVJBQklDOworfQorCitpbmxpbmUgYm9vbCBpc1NlcGFyYXRvclNwYWNlKFVDaGFy
MzIgYykKK3sKKyAgICByZXR1cm4gdV9jaGFyVHlwZShjKSA9PSBVX1NQQUNFX1NFUEFSQVRPUjsK
K30KKworaW5saW5lIGJvb2wgaXNQcmludGFibGVDaGFyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1
cm4gISF1X2lzcHJpbnQoYyk7Cit9CisKK2lubGluZSBib29sIGlzUHVuY3QoVUNoYXIzMiBjKQor
eworICAgIHJldHVybiAhIXVfaXNwdW5jdChjKTsKK30KKworaW5saW5lIFVDaGFyMzIgbWlycm9y
ZWRDaGFyKFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gdV9jaGFyTWlycm9yKGMpOworfQorCitp
bmxpbmUgQ2hhckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2hhckNhdGVnb3J5PihVX0dFVF9HQ19NQVNLKGMpKTsKK30KKworaW5saW5lIERp
cmVjdGlvbiBkaXJlY3Rpb24oVUNoYXIzMiBjKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
aXJlY3Rpb24+KHVfY2hhckRpcmVjdGlvbihjKSk7Cit9CisKK2lubGluZSBib29sIGlzTG93ZXIo
VUNoYXIzMiBjKQoreworICAgIHJldHVybiAhIXVfaXNsb3dlcihjKTsKK30KKworaW5saW5lIHVp
bnQ4X3QgY29tYmluaW5nQ2xhc3MoVUNoYXIzMiBjKQoreworICAgIHJldHVybiB1X2dldENvbWJp
bmluZ0NsYXNzKGMpOworfQorCitpbmxpbmUgRGVjb21wb3NpdGlvblR5cGUgZGVjb21wb3NpdGlv
blR5cGUoVUNoYXIzMiBjKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWNvbXBvc2l0aW9u
VHlwZT4odV9nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVDSEFSX0RFQ09NUE9TSVRJT05fVFlQRSkp
OworfQorCitpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hh
ciogYiwgaW50IGxlbikKK3sKKyAgICByZXR1cm4gdV9tZW1jYXNlY21wKGEsIGIsIGxlbiwgVV9G
T0xEX0NBU0VfREVGQVVMVCk7Cit9CisKK30gfQorCiAjZW5kaWYKLS8vIHZpbTogdHM9MiBzdz0y
IGV0CkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgJ
KHJldmlzaW9uIDM3NTI2KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNv
ZGVRdDQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDQgQEAKIC8qCi0gKiAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgR2Vv
cmdlIFN0YWlrb3MgPHN0YWlrb3NAa2RlLm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxl
eGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3AuY29tPgogICoKQEAgLTk1LDQ2NSArOTQsNDMyIEBA
IHR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsKICNkZWZpbmUgVV9NQVNLKHgpICgodWludDMyX3Qp
MTw8KHgpKQogCiBuYW1lc3BhY2UgV1RGIHsKLSAgbmFtZXNwYWNlIFVuaWNvZGUgeworbmFtZXNw
YWNlIFVuaWNvZGUgewogCi0gICAgZW51bSBEaXJlY3Rpb24gewotICAgICAgTGVmdFRvUmlnaHQg
PSBRQ2hhcjo6RGlyTCwKLSAgICAgIFJpZ2h0VG9MZWZ0ID0gUUNoYXI6OkRpclIsCi0gICAgICBF
dXJvcGVhbk51bWJlciA9IFFDaGFyOjpEaXJFTiwKLSAgICAgIEV1cm9wZWFuTnVtYmVyU2VwYXJh
dG9yID0gUUNoYXI6OkRpckVTLAotICAgICAgRXVyb3BlYW5OdW1iZXJUZXJtaW5hdG9yID0gUUNo
YXI6OkRpckVULAotICAgICAgQXJhYmljTnVtYmVyID0gUUNoYXI6OkRpckFOLAotICAgICAgQ29t
bW9uTnVtYmVyU2VwYXJhdG9yID0gUUNoYXI6OkRpckNTLAotICAgICAgQmxvY2tTZXBhcmF0b3Ig
PSBRQ2hhcjo6RGlyQiwKLSAgICAgIFNlZ21lbnRTZXBhcmF0b3IgPSBRQ2hhcjo6RGlyUywKLSAg
ICAgIFdoaXRlU3BhY2VOZXV0cmFsID0gUUNoYXI6OkRpcldTLAotICAgICAgT3RoZXJOZXV0cmFs
ID0gUUNoYXI6OkRpck9OLAotICAgICAgTGVmdFRvUmlnaHRFbWJlZGRpbmcgPSBRQ2hhcjo6RGly
TFJFLAotICAgICAgTGVmdFRvUmlnaHRPdmVycmlkZSA9IFFDaGFyOjpEaXJMUk8sCi0gICAgICBS
aWdodFRvTGVmdEFyYWJpYyA9IFFDaGFyOjpEaXJBTCwKLSAgICAgIFJpZ2h0VG9MZWZ0RW1iZWRk
aW5nID0gUUNoYXI6OkRpclJMRSwKLSAgICAgIFJpZ2h0VG9MZWZ0T3ZlcnJpZGUgPSBRQ2hhcjo6
RGlyUkxPLAotICAgICAgUG9wRGlyZWN0aW9uYWxGb3JtYXQgPSBRQ2hhcjo6RGlyUERGLAotICAg
ICAgTm9uU3BhY2luZ01hcmsgPSBRQ2hhcjo6RGlyTlNNLAotICAgICAgQm91bmRhcnlOZXV0cmFs
ID0gUUNoYXI6OkRpckJOCi0gICAgfTsKLQotICAgIGVudW0gRGVjb21wb3NpdGlvblR5cGUgewot
ICAgICAgRGVjb21wb3NpdGlvbk5vbmUgPSBRQ2hhcjo6Tm9EZWNvbXBvc2l0aW9uLAotICAgICAg
RGVjb21wb3NpdGlvbkNhbm9uaWNhbCA9IFFDaGFyOjpDYW5vbmljYWwsCi0gICAgICBEZWNvbXBv
c2l0aW9uQ29tcGF0ID0gUUNoYXI6OkNvbXBhdCwKLSAgICAgIERlY29tcG9zaXRpb25DaXJjbGUg
PSBRQ2hhcjo6Q2lyY2xlLAotICAgICAgRGVjb21wb3NpdGlvbkZpbmFsID0gUUNoYXI6OkZpbmFs
LAotICAgICAgRGVjb21wb3NpdGlvbkZvbnQgPSBRQ2hhcjo6Rm9udCwKLSAgICAgIERlY29tcG9z
aXRpb25GcmFjdGlvbiA9IFFDaGFyOjpGcmFjdGlvbiwKLSAgICAgIERlY29tcG9zaXRpb25Jbml0
aWFsID0gUUNoYXI6OkluaXRpYWwsCi0gICAgICBEZWNvbXBvc2l0aW9uSXNvbGF0ZWQgPSBRQ2hh
cjo6SXNvbGF0ZWQsCi0gICAgICBEZWNvbXBvc2l0aW9uTWVkaWFsID0gUUNoYXI6Ok1lZGlhbCwK
LSAgICAgIERlY29tcG9zaXRpb25OYXJyb3cgPSBRQ2hhcjo6TmFycm93LAotICAgICAgRGVjb21w
b3NpdGlvbk5vQnJlYWsgPSBRQ2hhcjo6Tm9CcmVhaywKLSAgICAgIERlY29tcG9zaXRpb25TbWFs
bCA9IFFDaGFyOjpTbWFsbCwKLSAgICAgIERlY29tcG9zaXRpb25TcXVhcmUgPSBRQ2hhcjo6U3F1
YXJlLAotICAgICAgRGVjb21wb3NpdGlvblN1YiA9IFFDaGFyOjpTdWIsCi0gICAgICBEZWNvbXBv
c2l0aW9uU3VwZXIgPSBRQ2hhcjo6U3VwZXIsCi0gICAgICBEZWNvbXBvc2l0aW9uVmVydGljYWwg
PSBRQ2hhcjo6VmVydGljYWwsCi0gICAgICBEZWNvbXBvc2l0aW9uV2lkZSA9IFFDaGFyOjpXaWRl
Ci0gICAgfTsKLQotICAgIGVudW0gQ2hhckNhdGVnb3J5IHsKLSAgICAgIE5vQ2F0ZWdvcnkgPSAw
LAotICAgICAgTWFya19Ob25TcGFjaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX05vblNwYWNpbmcp
LAotICAgICAgTWFya19TcGFjaW5nQ29tYmluaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX1NwYWNp
bmdDb21iaW5pbmcpLAotICAgICAgTWFya19FbmNsb3NpbmcgPSBVX01BU0soUUNoYXI6Ok1hcmtf
RW5jbG9zaW5nKSwKLSAgICAgIE51bWJlcl9EZWNpbWFsRGlnaXQgPSBVX01BU0soUUNoYXI6Ok51
bWJlcl9EZWNpbWFsRGlnaXQpLAotICAgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhRQ2hhcjo6
TnVtYmVyX0xldHRlciksCi0gICAgICBOdW1iZXJfT3RoZXIgPSBVX01BU0soUUNoYXI6Ok51bWJl
cl9PdGhlciksCi0gICAgICBTZXBhcmF0b3JfU3BhY2UgPSBVX01BU0soUUNoYXI6OlNlcGFyYXRv
cl9TcGFjZSksCi0gICAgICBTZXBhcmF0b3JfTGluZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9y
X0xpbmUpLAotICAgICAgU2VwYXJhdG9yX1BhcmFncmFwaCA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJh
dG9yX1BhcmFncmFwaCksCi0gICAgICBPdGhlcl9Db250cm9sID0gVV9NQVNLKFFDaGFyOjpPdGhl
cl9Db250cm9sKSwKLSAgICAgIE90aGVyX0Zvcm1hdCA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfRm9y
bWF0KSwKLSAgICAgIE90aGVyX1N1cnJvZ2F0ZSA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfU3Vycm9n
YXRlKSwKLSAgICAgIE90aGVyX1ByaXZhdGVVc2UgPSBVX01BU0soUUNoYXI6Ok90aGVyX1ByaXZh
dGVVc2UpLAotICAgICAgT3RoZXJfTm90QXNzaWduZWQgPSBVX01BU0soUUNoYXI6Ok90aGVyX05v
dEFzc2lnbmVkKSwKLSAgICAgIExldHRlcl9VcHBlcmNhc2UgPSBVX01BU0soUUNoYXI6OkxldHRl
cl9VcHBlcmNhc2UpLAotICAgICAgTGV0dGVyX0xvd2VyY2FzZSA9IFVfTUFTSyhRQ2hhcjo6TGV0
dGVyX0xvd2VyY2FzZSksCi0gICAgICBMZXR0ZXJfVGl0bGVjYXNlID0gVV9NQVNLKFFDaGFyOjpM
ZXR0ZXJfVGl0bGVjYXNlKSwKLSAgICAgIExldHRlcl9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6
TGV0dGVyX01vZGlmaWVyKSwKLSAgICAgIExldHRlcl9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6TGV0
dGVyX090aGVyKSwKLSAgICAgIFB1bmN0dWF0aW9uX0Nvbm5lY3RvciA9IFVfTUFTSyhRQ2hhcjo6
UHVuY3R1YXRpb25fQ29ubmVjdG9yKSwKLSAgICAgIFB1bmN0dWF0aW9uX0Rhc2ggPSBVX01BU0so
UUNoYXI6OlB1bmN0dWF0aW9uX0Rhc2gpLAotICAgICAgUHVuY3R1YXRpb25fT3BlbiA9IFVfTUFT
SyhRQ2hhcjo6UHVuY3R1YXRpb25fT3BlbiksCi0gICAgICBQdW5jdHVhdGlvbl9DbG9zZSA9IFVf
TUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ2xvc2UpLAotICAgICAgUHVuY3R1YXRpb25fSW5pdGlh
bFF1b3RlID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9Jbml0aWFsUXVvdGUpLAotICAgICAg
UHVuY3R1YXRpb25fRmluYWxRdW90ZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fRmluYWxR
dW90ZSksCi0gICAgICBQdW5jdHVhdGlvbl9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRp
b25fT3RoZXIpLAotICAgICAgU3ltYm9sX01hdGggPSBVX01BU0soUUNoYXI6OlN5bWJvbF9NYXRo
KSwKLSAgICAgIFN5bWJvbF9DdXJyZW5jeSA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX0N1cnJlbmN5
KSwKLSAgICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX01vZGlmaWVy
KSwKLSAgICAgIFN5bWJvbF9PdGhlciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX090aGVyKSwKLSAg
ICB9OworZW51bSBEaXJlY3Rpb24geworICAgIExlZnRUb1JpZ2h0ID0gUUNoYXI6OkRpckwsCisg
ICAgUmlnaHRUb0xlZnQgPSBRQ2hhcjo6RGlyUiwKKyAgICBFdXJvcGVhbk51bWJlciA9IFFDaGFy
OjpEaXJFTiwKKyAgICBFdXJvcGVhbk51bWJlclNlcGFyYXRvciA9IFFDaGFyOjpEaXJFUywKKyAg
ICBFdXJvcGVhbk51bWJlclRlcm1pbmF0b3IgPSBRQ2hhcjo6RGlyRVQsCisgICAgQXJhYmljTnVt
YmVyID0gUUNoYXI6OkRpckFOLAorICAgIENvbW1vbk51bWJlclNlcGFyYXRvciA9IFFDaGFyOjpE
aXJDUywKKyAgICBCbG9ja1NlcGFyYXRvciA9IFFDaGFyOjpEaXJCLAorICAgIFNlZ21lbnRTZXBh
cmF0b3IgPSBRQ2hhcjo6RGlyUywKKyAgICBXaGl0ZVNwYWNlTmV1dHJhbCA9IFFDaGFyOjpEaXJX
UywKKyAgICBPdGhlck5ldXRyYWwgPSBRQ2hhcjo6RGlyT04sCisgICAgTGVmdFRvUmlnaHRFbWJl
ZGRpbmcgPSBRQ2hhcjo6RGlyTFJFLAorICAgIExlZnRUb1JpZ2h0T3ZlcnJpZGUgPSBRQ2hhcjo6
RGlyTFJPLAorICAgIFJpZ2h0VG9MZWZ0QXJhYmljID0gUUNoYXI6OkRpckFMLAorICAgIFJpZ2h0
VG9MZWZ0RW1iZWRkaW5nID0gUUNoYXI6OkRpclJMRSwKKyAgICBSaWdodFRvTGVmdE92ZXJyaWRl
ID0gUUNoYXI6OkRpclJMTywKKyAgICBQb3BEaXJlY3Rpb25hbEZvcm1hdCA9IFFDaGFyOjpEaXJQ
REYsCisgICAgTm9uU3BhY2luZ01hcmsgPSBRQ2hhcjo6RGlyTlNNLAorICAgIEJvdW5kYXJ5TmV1
dHJhbCA9IFFDaGFyOjpEaXJCTgorfTsKKworZW51bSBEZWNvbXBvc2l0aW9uVHlwZSB7CisgICAg
RGVjb21wb3NpdGlvbk5vbmUgPSBRQ2hhcjo6Tm9EZWNvbXBvc2l0aW9uLAorICAgIERlY29tcG9z
aXRpb25DYW5vbmljYWwgPSBRQ2hhcjo6Q2Fub25pY2FsLAorICAgIERlY29tcG9zaXRpb25Db21w
YXQgPSBRQ2hhcjo6Q29tcGF0LAorICAgIERlY29tcG9zaXRpb25DaXJjbGUgPSBRQ2hhcjo6Q2ly
Y2xlLAorICAgIERlY29tcG9zaXRpb25GaW5hbCA9IFFDaGFyOjpGaW5hbCwKKyAgICBEZWNvbXBv
c2l0aW9uRm9udCA9IFFDaGFyOjpGb250LAorICAgIERlY29tcG9zaXRpb25GcmFjdGlvbiA9IFFD
aGFyOjpGcmFjdGlvbiwKKyAgICBEZWNvbXBvc2l0aW9uSW5pdGlhbCA9IFFDaGFyOjpJbml0aWFs
LAorICAgIERlY29tcG9zaXRpb25Jc29sYXRlZCA9IFFDaGFyOjpJc29sYXRlZCwKKyAgICBEZWNv
bXBvc2l0aW9uTWVkaWFsID0gUUNoYXI6Ok1lZGlhbCwKKyAgICBEZWNvbXBvc2l0aW9uTmFycm93
ID0gUUNoYXI6Ok5hcnJvdywKKyAgICBEZWNvbXBvc2l0aW9uTm9CcmVhayA9IFFDaGFyOjpOb0Jy
ZWFrLAorICAgIERlY29tcG9zaXRpb25TbWFsbCA9IFFDaGFyOjpTbWFsbCwKKyAgICBEZWNvbXBv
c2l0aW9uU3F1YXJlID0gUUNoYXI6OlNxdWFyZSwKKyAgICBEZWNvbXBvc2l0aW9uU3ViID0gUUNo
YXI6OlN1YiwKKyAgICBEZWNvbXBvc2l0aW9uU3VwZXIgPSBRQ2hhcjo6U3VwZXIsCisgICAgRGVj
b21wb3NpdGlvblZlcnRpY2FsID0gUUNoYXI6OlZlcnRpY2FsLAorICAgIERlY29tcG9zaXRpb25X
aWRlID0gUUNoYXI6OldpZGUKK307CisKK2VudW0gQ2hhckNhdGVnb3J5IHsKKyAgICBOb0NhdGVn
b3J5ID0gMCwKKyAgICBNYXJrX05vblNwYWNpbmcgPSBVX01BU0soUUNoYXI6Ok1hcmtfTm9uU3Bh
Y2luZyksCisgICAgTWFya19TcGFjaW5nQ29tYmluaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJrX1Nw
YWNpbmdDb21iaW5pbmcpLAorICAgIE1hcmtfRW5jbG9zaW5nID0gVV9NQVNLKFFDaGFyOjpNYXJr
X0VuY2xvc2luZyksCisgICAgTnVtYmVyX0RlY2ltYWxEaWdpdCA9IFVfTUFTSyhRQ2hhcjo6TnVt
YmVyX0RlY2ltYWxEaWdpdCksCisgICAgTnVtYmVyX0xldHRlciA9IFVfTUFTSyhRQ2hhcjo6TnVt
YmVyX0xldHRlciksCisgICAgTnVtYmVyX090aGVyID0gVV9NQVNLKFFDaGFyOjpOdW1iZXJfT3Ro
ZXIpLAorICAgIFNlcGFyYXRvcl9TcGFjZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9yX1NwYWNl
KSwKKyAgICBTZXBhcmF0b3JfTGluZSA9IFVfTUFTSyhRQ2hhcjo6U2VwYXJhdG9yX0xpbmUpLAor
ICAgIFNlcGFyYXRvcl9QYXJhZ3JhcGggPSBVX01BU0soUUNoYXI6OlNlcGFyYXRvcl9QYXJhZ3Jh
cGgpLAorICAgIE90aGVyX0NvbnRyb2wgPSBVX01BU0soUUNoYXI6Ok90aGVyX0NvbnRyb2wpLAor
ICAgIE90aGVyX0Zvcm1hdCA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfRm9ybWF0KSwKKyAgICBPdGhl
cl9TdXJyb2dhdGUgPSBVX01BU0soUUNoYXI6Ok90aGVyX1N1cnJvZ2F0ZSksCisgICAgT3RoZXJf
UHJpdmF0ZVVzZSA9IFVfTUFTSyhRQ2hhcjo6T3RoZXJfUHJpdmF0ZVVzZSksCisgICAgT3RoZXJf
Tm90QXNzaWduZWQgPSBVX01BU0soUUNoYXI6Ok90aGVyX05vdEFzc2lnbmVkKSwKKyAgICBMZXR0
ZXJfVXBwZXJjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfVXBwZXJjYXNlKSwKKyAgICBMZXR0
ZXJfTG93ZXJjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfTG93ZXJjYXNlKSwKKyAgICBMZXR0
ZXJfVGl0bGVjYXNlID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfVGl0bGVjYXNlKSwKKyAgICBMZXR0
ZXJfTW9kaWZpZXIgPSBVX01BU0soUUNoYXI6OkxldHRlcl9Nb2RpZmllciksCisgICAgTGV0dGVy
X090aGVyID0gVV9NQVNLKFFDaGFyOjpMZXR0ZXJfT3RoZXIpLAorICAgIFB1bmN0dWF0aW9uX0Nv
bm5lY3RvciA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ29ubmVjdG9yKSwKKyAgICBQdW5j
dHVhdGlvbl9EYXNoID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9EYXNoKSwKKyAgICBQdW5j
dHVhdGlvbl9PcGVuID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9PcGVuKSwKKyAgICBQdW5j
dHVhdGlvbl9DbG9zZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ2xvc2UpLAorICAgIFB1
bmN0dWF0aW9uX0luaXRpYWxRdW90ZSA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fSW5pdGlh
bFF1b3RlKSwKKyAgICBQdW5jdHVhdGlvbl9GaW5hbFF1b3RlID0gVV9NQVNLKFFDaGFyOjpQdW5j
dHVhdGlvbl9GaW5hbFF1b3RlKSwKKyAgICBQdW5jdHVhdGlvbl9PdGhlciA9IFVfTUFTSyhRQ2hh
cjo6UHVuY3R1YXRpb25fT3RoZXIpLAorICAgIFN5bWJvbF9NYXRoID0gVV9NQVNLKFFDaGFyOjpT
eW1ib2xfTWF0aCksCisgICAgU3ltYm9sX0N1cnJlbmN5ID0gVV9NQVNLKFFDaGFyOjpTeW1ib2xf
Q3VycmVuY3kpLAorICAgIFN5bWJvbF9Nb2RpZmllciA9IFVfTUFTSyhRQ2hhcjo6U3ltYm9sX01v
ZGlmaWVyKSwKKyAgICBTeW1ib2xfT3RoZXIgPSBVX01BU0soUUNoYXI6OlN5bWJvbF9PdGhlciks
Cit9OwogCiAKICNpZiBRVF9WRVJTSU9OID49IDB4MDQwMzAwCi0gICAgLy8gRklYTUU6IGhhbmRs
ZSBzdXJyb2dhdGVzIGNvcnJlY3RseSBpbiBhbGwgbWV0aG9kcwotCi0gICAgaW5saW5lIFVDaGFy
MzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQotICAgIHsKLSAgICAgIHJldHVybiBRQ2hhcjo6dG9Mb3dl
cihjaCk7Ci0gICAgfQogCi0gICAgaW5saW5lIGludCB0b0xvd2VyKFVDaGFyKiByZXN1bHQsIGlu
dCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBzcmNMZW5ndGgsICBib29sKiBl
cnJvcikKLSAgICB7Ci0gICAgICAgIGNvbnN0IFVDaGFyICplID0gc3JjICsgc3JjTGVuZ3RoOwot
ICAgICAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKLSAgICAgICAgVUNoYXIgKnIgPSByZXN1bHQ7
Ci0gICAgICAgIHVpbnQgcmluZGV4ID0gMDsKKy8vIEZJWE1FOiBoYW5kbGUgc3Vycm9nYXRlcyBj
b3JyZWN0bHkgaW4gYWxsIG1ldGhvZHMKIAotICAgICAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0
IG9mIGJvdW5kcyBjaGVjayBpbiB0aGUgbG9vcAotICAgICAgICBpZiAocyA8IGUgJiYgUUNoYXIo
KnMpLmlzTG93U3Vycm9nYXRlKCkpIHsKLSAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAg
ICAgIHJbcmluZGV4XSA9ICpzKys7Ci0gICAgICAgICAgICArK3JpbmRleDsKLSAgICAgICAgfQor
aW5saW5lIFVDaGFyMzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQoreworICAgIHJldHVybiBRQ2hhcjo6
dG9Mb3dlcihjaCk7Cit9CiAKLSAgICAgICAgaW50IG5lZWRlZCA9IDA7Ci0gICAgICAgIHdoaWxl
IChzIDwgZSAmJiAocmluZGV4IDwgdWludChyZXN1bHRMZW5ndGgpIHx8ICFyKSkgewotICAgICAg
ICAgICAgdWludCBjID0gKnM7Ci0gICAgICAgICAgICBpZiAoUUNoYXIoYykuaXNMb3dTdXJyb2dh
dGUoKSAmJiBRQ2hhcigqKHMgLSAxKSkuaXNIaWdoU3Vycm9nYXRlKCkpCi0gICAgICAgICAgICAg
ICAgYyA9IFFDaGFyOjpzdXJyb2dhdGVUb1VjczQoKihzIC0gMSksIGMpOwotICAgICAgICAgICAg
Y29uc3QgUVVuaWNvZGVUYWJsZXM6OlByb3BlcnRpZXMgKnByb3AgPSBRVW5pY29kZVRhYmxlczo6
cHJvcGVydGllcyhjKTsKLSAgICAgICAgICAgIGlmIChwcm9wLT5sb3dlckNhc2VTcGVjaWFsKSB7
Ci0gICAgICAgICAgICAgICAgUVN0cmluZyBxc3RyaW5nOwotICAgICAgICAgICAgICAgIGlmIChj
IDwgMHgxMDAwMCkgewotICAgICAgICAgICAgICAgICAgICBxc3RyaW5nICs9IFFDaGFyKGMpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHFzdHJpbmcgKz0g
UUNoYXIoKihzLTEpKTsKLSAgICAgICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqcyk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFzdHJpbmcgPSBxc3RyaW5nLnRv
TG93ZXIoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHFzdHJpbmcubGVu
Z3RoKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocmluZGV4ID49IHVpbnQocmVz
dWx0TGVuZ3RoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGVkICs9IHFzdHJpbmcu
bGVuZ3RoKCkgLSBpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByW3JpbmRleF0gPSBxc3RyaW5nLmF0KGkpLnVuaWNvZGUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgKytyaW5kZXg7Ci0gICAgICAgICAgICAgICAgfQoraW5saW5lIGludCB0b0xvd2Vy
KFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBz
cmNMZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICBjb25zdCBVQ2hhciAqZSA9IHNyYyArIHNy
Y0xlbmd0aDsKKyAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKKyAgICBVQ2hhciAqciA9IHJlc3Vs
dDsKKyAgICB1aW50IHJpbmRleCA9IDA7CisKKyAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0IG9m
IGJvdW5kcyBjaGVjayBpbiB0aGUgbG9vcAorICAgIGlmIChzIDwgZSAmJiBRQ2hhcigqcykuaXNM
b3dTdXJyb2dhdGUoKSkgeworICAgICAgICBpZiAocikKKyAgICAgICAgICAgIHJbcmluZGV4XSA9
ICpzKys7CisgICAgICAgICsrcmluZGV4OworICAgIH0KKworICAgIGludCBuZWVkZWQgPSAwOwor
ICAgIHdoaWxlIChzIDwgZSAmJiAocmluZGV4IDwgdWludChyZXN1bHRMZW5ndGgpIHx8ICFyKSkg
eworICAgICAgICB1aW50IGMgPSAqczsKKyAgICAgICAgaWYgKFFDaGFyKGMpLmlzTG93U3Vycm9n
YXRlKCkgJiYgUUNoYXIoKihzIC0gMSkpLmlzSGlnaFN1cnJvZ2F0ZSgpKQorICAgICAgICAgICAg
YyA9IFFDaGFyOjpzdXJyb2dhdGVUb1VjczQoKihzIC0gMSksIGMpOworICAgICAgICBjb25zdCBR
VW5pY29kZVRhYmxlczo6UHJvcGVydGllcyAqcHJvcCA9IFFVbmljb2RlVGFibGVzOjpwcm9wZXJ0
aWVzKGMpOworICAgICAgICBpZiAocHJvcC0+bG93ZXJDYXNlU3BlY2lhbCkgeworICAgICAgICAg
ICAgUVN0cmluZyBxc3RyaW5nOworICAgICAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7CisgICAg
ICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcihjKTsKICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqKHMtMSkpOworICAgICAgICAgICAgICAg
IHFzdHJpbmcgKz0gUUNoYXIoKnMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcXN0cmlu
ZyA9IHFzdHJpbmcudG9Mb3dlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBx
c3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmluZGV4ID49IHVp
bnQocmVzdWx0TGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICBuZWVkZWQgKz0gcXN0cmlu
Zy5sZW5ndGgoKSAtIGk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICAgICAgcltyaW5k
ZXhdID0gKnMgKyBwcm9wLT5sb3dlckNhc2VEaWZmOworICAgICAgICAgICAgICAgICAgICByW3Jp
bmRleF0gPSBxc3RyaW5nLmF0KGkpLnVuaWNvZGUoKTsKICAgICAgICAgICAgICAgICArK3JpbmRl
eDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICsrczsKLSAgICAgICAgfQotICAgICAgICBp
ZiAocyA8IGUpCi0gICAgICAgICAgICBuZWVkZWQgKz0gZSAtIHM7Ci0gICAgICAgICplcnJvciA9
IChuZWVkZWQgIT0gMCk7Ci0gICAgICAgIGlmIChyaW5kZXggPCB1aW50KHJlc3VsdExlbmd0aCkp
Ci0gICAgICAgICAgICByW3JpbmRleF0gPSAwOwotICAgICAgICByZXR1cm4gcmluZGV4ICsgbmVl
ZGVkOwotICAgIH0KLQotICAgIGlubGluZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjaCkKLSAg
ICB7Ci0gICAgICByZXR1cm4gUUNoYXI6OnRvVXBwZXIoY2gpOwotICAgIH0KLQotICAgIGlubGlu
ZSBpbnQgdG9VcHBlcihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hh
ciogc3JjLCBpbnQgc3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgICBjb25z
dCBVQ2hhciAqZSA9IHNyYyArIHNyY0xlbmd0aDsKLSAgICAgICAgY29uc3QgVUNoYXIgKnMgPSBz
cmM7Ci0gICAgICAgIFVDaGFyICpyID0gcmVzdWx0OwotICAgICAgICBpbnQgcmluZGV4ID0gMDsK
LQotICAgICAgICAvLyB0aGlzIGF2b2lkcyBvbmUgb3V0IG9mIGJvdW5kcyBjaGVjayBpbiB0aGUg
bG9vcAotICAgICAgICBpZiAocyA8IGUgJiYgUUNoYXIoKnMpLmlzTG93U3Vycm9nYXRlKCkpIHsK
KyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgIHJb
cmluZGV4XSA9ICpzKys7CisgICAgICAgICAgICAgICAgcltyaW5kZXhdID0gKnMgKyBwcm9wLT5s
b3dlckNhc2VEaWZmOwogICAgICAgICAgICAgKytyaW5kZXg7CiAgICAgICAgIH0KKyAgICAgICAg
KytzOworICAgIH0KKyAgICBpZiAocyA8IGUpCisgICAgICAgIG5lZWRlZCArPSBlIC0gczsKKyAg
ICAqZXJyb3IgPSAobmVlZGVkICE9IDApOworICAgIGlmIChyaW5kZXggPCB1aW50KHJlc3VsdExl
bmd0aCkpCisgICAgICAgIHJbcmluZGV4XSA9IDA7CisgICAgcmV0dXJuIHJpbmRleCArIG5lZWRl
ZDsKK30KIAotICAgICAgICBpbnQgbmVlZGVkID0gMDsKLSAgICAgICAgd2hpbGUgKHMgPCBlICYm
IChyaW5kZXggPCByZXN1bHRMZW5ndGggfHwgIXIpKSB7Ci0gICAgICAgICAgICB1aW50IGMgPSAq
czsKLSAgICAgICAgICAgIGlmIChRQ2hhcihjKS5pc0xvd1N1cnJvZ2F0ZSgpICYmIFFDaGFyKCoo
cyAtIDEpKS5pc0hpZ2hTdXJyb2dhdGUoKSkKLSAgICAgICAgICAgICAgICBjID0gUUNoYXI6OnN1
cnJvZ2F0ZVRvVWNzNCgqKHMgLSAxKSwgYyk7Ci0gICAgICAgICAgICBjb25zdCBRVW5pY29kZVRh
Ymxlczo6UHJvcGVydGllcyAqcHJvcCA9IFFVbmljb2RlVGFibGVzOjpwcm9wZXJ0aWVzKGMpOwot
ICAgICAgICAgICAgaWYgKHByb3AtPnVwcGVyQ2FzZVNwZWNpYWwpIHsKLSAgICAgICAgICAgICAg
ICBRU3RyaW5nIHFzdHJpbmc7Ci0gICAgICAgICAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHFzdHJpbmcgKz0gUUNoYXIoYyk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcXN0cmluZyArPSBRQ2hhcigqKHMtMSkpOwot
ICAgICAgICAgICAgICAgICAgICBxc3RyaW5nICs9IFFDaGFyKCpzKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgcXN0cmluZyA9IHFzdHJpbmcudG9VcHBlcigpOwotICAgICAg
ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcXN0cmluZy5sZW5ndGgoKTsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChyaW5kZXggPj0gcmVzdWx0TGVuZ3RoKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBuZWVkZWQgKz0gcXN0cmluZy5sZW5ndGgoKSAtIGk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBpZiAocikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJbcmluZGV4XSA9IHFz
dHJpbmcuYXQoaSkudW5pY29kZSgpOwotICAgICAgICAgICAgICAgICAgICArK3JpbmRleDsKLSAg
ICAgICAgICAgICAgICB9CitpbmxpbmUgVUNoYXIzMiB0b1VwcGVyKFVDaGFyMzIgY2gpCit7Cisg
ICAgcmV0dXJuIFFDaGFyOjp0b1VwcGVyKGNoKTsKK30KKworaW5saW5lIGludCB0b1VwcGVyKFVD
aGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBzcmNM
ZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICBjb25zdCBVQ2hhciAqZSA9IHNyYyArIHNyY0xl
bmd0aDsKKyAgICBjb25zdCBVQ2hhciAqcyA9IHNyYzsKKyAgICBVQ2hhciAqciA9IHJlc3VsdDsK
KyAgICBpbnQgcmluZGV4ID0gMDsKKworICAgIC8vIHRoaXMgYXZvaWRzIG9uZSBvdXQgb2YgYm91
bmRzIGNoZWNrIGluIHRoZSBsb29wCisgICAgaWYgKHMgPCBlICYmIFFDaGFyKCpzKS5pc0xvd1N1
cnJvZ2F0ZSgpKSB7CisgICAgICAgIGlmIChyKQorICAgICAgICAgICAgcltyaW5kZXhdID0gKnMr
KzsKKyAgICAgICAgKytyaW5kZXg7CisgICAgfQorCisgICAgaW50IG5lZWRlZCA9IDA7CisgICAg
d2hpbGUgKHMgPCBlICYmIChyaW5kZXggPCByZXN1bHRMZW5ndGggfHwgIXIpKSB7CisgICAgICAg
IHVpbnQgYyA9ICpzOworICAgICAgICBpZiAoUUNoYXIoYykuaXNMb3dTdXJyb2dhdGUoKSAmJiBR
Q2hhcigqKHMgLSAxKSkuaXNIaWdoU3Vycm9nYXRlKCkpCisgICAgICAgICAgICBjID0gUUNoYXI6
OnN1cnJvZ2F0ZVRvVWNzNCgqKHMgLSAxKSwgYyk7CisgICAgICAgIGNvbnN0IFFVbmljb2RlVGFi
bGVzOjpQcm9wZXJ0aWVzICpwcm9wID0gUVVuaWNvZGVUYWJsZXM6OnByb3BlcnRpZXMoYyk7Cisg
ICAgICAgIGlmIChwcm9wLT51cHBlckNhc2VTcGVjaWFsKSB7CisgICAgICAgICAgICBRU3RyaW5n
IHFzdHJpbmc7CisgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMDApIHsKKyAgICAgICAgICAgICAg
ICBxc3RyaW5nICs9IFFDaGFyKGMpOwogICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBxc3RyaW5nICs9IFFDaGFyKCoocy0xKSk7CisgICAgICAgICAgICAgICAgcXN0cmluZyAr
PSBRQ2hhcigqcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBxc3RyaW5nID0gcXN0cmlu
Zy50b1VwcGVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHFzdHJpbmcubGVu
Z3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyaW5kZXggPj0gcmVzdWx0TGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgICAgIG5lZWRlZCArPSBxc3RyaW5nLmxlbmd0aCgpIC0gaTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgICAgICByW3JpbmRleF0gPSAqcyArIHByb3At
PnVwcGVyQ2FzZURpZmY7CisgICAgICAgICAgICAgICAgICAgIHJbcmluZGV4XSA9IHFzdHJpbmcu
YXQoaSkudW5pY29kZSgpOwogICAgICAgICAgICAgICAgICsrcmluZGV4OwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgKytzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHIp
CisgICAgICAgICAgICAgICAgcltyaW5kZXhdID0gKnMgKyBwcm9wLT51cHBlckNhc2VEaWZmOwor
ICAgICAgICAgICAgKytyaW5kZXg7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHMgPCBlKQotICAg
ICAgICAgICAgbmVlZGVkICs9IGUgLSBzOwotICAgICAgICAqZXJyb3IgPSAobmVlZGVkICE9IDAp
OwotICAgICAgICBpZiAocmluZGV4IDwgcmVzdWx0TGVuZ3RoKQotICAgICAgICAgICAgcltyaW5k
ZXhdID0gMDsKLSAgICAgICAgcmV0dXJuIHJpbmRleCArIG5lZWRlZDsKKyAgICAgICAgKytzOwog
ICAgIH0KKyAgICBpZiAocyA8IGUpCisgICAgICAgIG5lZWRlZCArPSBlIC0gczsKKyAgICAqZXJy
b3IgPSAobmVlZGVkICE9IDApOworICAgIGlmIChyaW5kZXggPCByZXN1bHRMZW5ndGgpCisgICAg
ICAgIHJbcmluZGV4XSA9IDA7CisgICAgcmV0dXJuIHJpbmRleCArIG5lZWRlZDsKK30KIAotICAg
IGlubGluZSBpbnQgdG9UaXRsZUNhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiBR
Q2hhcjo6dG9UaXRsZUNhc2UoYyk7Ci0gICAgfQoraW5saW5lIGludCB0b1RpdGxlQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjp0b1RpdGxlQ2FzZShjKTsKK30KIAotICAgIGlu
bGluZSBVQ2hhcjMyIGZvbGRDYXNlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4gUUNo
YXI6OnRvQ2FzZUZvbGRlZChjKTsKLSAgICB9CitpbmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hh
cjMyIGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjp0b0Nhc2VGb2xkZWQoYyk7Cit9CiAKLSAgICBp
bmxpbmUgaW50IGZvbGRDYXNlKFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0
IFVDaGFyKiBzcmMsIGludCBzcmNMZW5ndGgsICBib29sKiBlcnJvcikKLSAgICB7Ci0gICAgICAv
LyBGSVhNRTogaGFuZGxlIHNwZWNpYWwgY2FzaW5nLiBFYXNpZXN0IHdpdGggc29tZSBsb3cgbGV2
ZWwgQVBJIGluIFF0Ci0gICAgICAqZXJyb3IgPSBmYWxzZTsKLSAgICAgIGlmIChyZXN1bHRMZW5n
dGggPCBzcmNMZW5ndGgpIHsKK2lubGluZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50
IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVy
cm9yKQoreworICAgIC8vIEZJWE1FOiBoYW5kbGUgc3BlY2lhbCBjYXNpbmcuIEVhc2llc3Qgd2l0
aCBzb21lIGxvdyBsZXZlbCBBUEkgaW4gUXQKKyAgICAqZXJyb3IgPSBmYWxzZTsKKyAgICBpZiAo
cmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CiAgICAgICAgICplcnJvciA9IHRydWU7CiAgICAg
ICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBpID0gMDsgaSA8
IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcjo6dG9DYXNlRm9sZGVk
KHVzaG9ydChzcmNbaV0pKTsKLSAgICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNGb3JtYXRDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICByZXR1cm4g
UUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpPdGhlcl9Gb3JtYXQ7Ci0gICAgfQotCi0gICAg
aW5saW5lIGJvb2wgaXNBcmFiaWNDaGFyKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICAgIHJldHVy
biBjID49IDB4MDYwMCAmJiBjIDw9IDB4MDZGRjsKLSAgICB9Ci0KLSAgICBpbmxpbmUgYm9vbCBp
c1ByaW50YWJsZUNoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGNvbnN0IHVpbnQgdGVzdCA9
IFVfTUFTSyhRQ2hhcjo6T3RoZXJfQ29udHJvbCkgfAotICAgICAgICAgICAgICAgICAgICAgICAg
VV9NQVNLKFFDaGFyOjpPdGhlcl9Ob3RBc3NpZ25lZCk7Ci0gICAgICByZXR1cm4gIShVX01BU0so
UUNoYXI6OmNhdGVnb3J5KGMpKSAmIHRlc3QpOwogICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IHNyY0xlbmd0aDsgKytpKQorICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcjo6dG9DYXNlRm9s
ZGVkKHVzaG9ydChzcmNbaV0pKTsKKyAgICByZXR1cm4gc3JjTGVuZ3RoOworfQogCi0gICAgaW5s
aW5lIGJvb2wgaXNTZXBhcmF0b3JTcGFjZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJu
IFFDaGFyOjpjYXRlZ29yeShjKSA9PSBRQ2hhcjo6U2VwYXJhdG9yX1NwYWNlOwotICAgIH0KK2lu
bGluZSBib29sIGlzQXJhYmljQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIGMgPj0gMHgw
NjAwICYmIGMgPD0gMHgwNkZGOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMy
IGMpCi0gICAgewotICAgICAgY29uc3QgdWludCB0ZXN0ID0gVV9NQVNLKFFDaGFyOjpQdW5jdHVh
dGlvbl9Db25uZWN0b3IpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgIFVfTUFTSyhRQ2hhcjo6
UHVuY3R1YXRpb25fRGFzaCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFy
OjpQdW5jdHVhdGlvbl9PcGVuKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICBVX01BU0soUUNo
YXI6OlB1bmN0dWF0aW9uX0Nsb3NlKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICBVX01BU0so
UUNoYXI6OlB1bmN0dWF0aW9uX0luaXRpYWxRdW90ZSkgfAotICAgICAgICAgICAgICAgICAgICAg
ICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9GaW5hbFF1b3RlKSB8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBVX01BU0soUUNoYXI6OlB1bmN0dWF0aW9uX090aGVyKTsKLSAgICAgIHJldHVy
biBVX01BU0soUUNoYXI6OmNhdGVnb3J5KGMpKSAmIHRlc3Q7Ci0gICAgfQoraW5saW5lIGJvb2wg
aXNQcmludGFibGVDaGFyKFVDaGFyMzIgYykKK3sKKyAgICBjb25zdCB1aW50IHRlc3QgPSBVX01B
U0soUUNoYXI6Ok90aGVyX0NvbnRyb2wpIHwKKyAgICAgICAgICAgICAgICAgICAgICBVX01BU0so
UUNoYXI6Ok90aGVyX05vdEFzc2lnbmVkKTsKKyAgICByZXR1cm4gIShVX01BU0soUUNoYXI6OmNh
dGVnb3J5KGMpKSAmIHRlc3QpOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNEaWdpdChVQ2hhcjMy
IGMpCi0gICAgewotICAgICAgcmV0dXJuIFFDaGFyOjpjYXRlZ29yeShjKSA9PSBRQ2hhcjo6TnVt
YmVyX0RlY2ltYWxEaWdpdDsKLSAgICB9CitpbmxpbmUgYm9vbCBpc1NlcGFyYXRvclNwYWNlKFVD
aGFyMzIgYykKK3sKKyAgICByZXR1cm4gUUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpTZXBh
cmF0b3JfU3BhY2U7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0xvd2VyKFVDaGFyMzIgYykKLSAg
ICB7Ci0gICAgICByZXR1cm4gUUNoYXI6OmNhdGVnb3J5KGMpID09IFFDaGFyOjpMZXR0ZXJfTG93
ZXJjYXNlOwotICAgIH0KK2lubGluZSBib29sIGlzUHVuY3QoVUNoYXIzMiBjKQoreworICAgIGNv
bnN0IHVpbnQgdGVzdCA9IFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fQ29ubmVjdG9yKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9EYXNoKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9PcGVuKSB8Cisg
ICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9DbG9zZSkgfAor
ICAgICAgICAgICAgICAgICAgICAgIFVfTUFTSyhRQ2hhcjo6UHVuY3R1YXRpb25fSW5pdGlhbFF1
b3RlKSB8CisgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVhdGlvbl9G
aW5hbFF1b3RlKSB8CisgICAgICAgICAgICAgICAgICAgICAgVV9NQVNLKFFDaGFyOjpQdW5jdHVh
dGlvbl9PdGhlcik7CisgICAgcmV0dXJuIFVfTUFTSyhRQ2hhcjo6Y2F0ZWdvcnkoYykpICYgdGVz
dDsKK30KIAotICAgIGlubGluZSBpbnQgZGlnaXRWYWx1ZShVQ2hhcjMyIGMpCi0gICAgewotICAg
ICAgcmV0dXJuIFFDaGFyOjpkaWdpdFZhbHVlKGMpOwotICAgIH0KK2lubGluZSBib29sIGlzTG93
ZXIoVUNoYXIzMiBjKQoreworICAgIHJldHVybiBRQ2hhcjo6Y2F0ZWdvcnkoYykgPT0gUUNoYXI6
OkxldHRlcl9Mb3dlcmNhc2U7Cit9CiAKLSAgICBpbmxpbmUgVUNoYXIzMiBtaXJyb3JlZENoYXIo
VUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiBRQ2hhcjo6bWlycm9yZWRDaGFyKGMpOwot
ICAgIH0KK2lubGluZSBVQ2hhcjMyIG1pcnJvcmVkQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0
dXJuIFFDaGFyOjptaXJyb3JlZENoYXIoYyk7Cit9CiAKLSAgICBpbmxpbmUgdWludDhfdCBjb21i
aW5pbmdDbGFzcyhVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIFFDaGFyOjpjb21iaW5p
bmdDbGFzcyhjKTsKLSAgICB9CitpbmxpbmUgdWludDhfdCBjb21iaW5pbmdDbGFzcyhVQ2hhcjMy
IGMpCit7CisgICAgcmV0dXJuIFFDaGFyOjpjb21iaW5pbmdDbGFzcyhjKTsKK30KIAotICAgIGlu
bGluZSBEZWNvbXBvc2l0aW9uVHlwZSBkZWNvbXBvc2l0aW9uVHlwZShVQ2hhcjMyIGMpCi0gICAg
ewotICAgICAgcmV0dXJuIChEZWNvbXBvc2l0aW9uVHlwZSlRQ2hhcjo6ZGVjb21wb3NpdGlvblRh
ZyhjKTsKLSAgICB9CitpbmxpbmUgRGVjb21wb3NpdGlvblR5cGUgZGVjb21wb3NpdGlvblR5cGUo
VUNoYXIzMiBjKQoreworICAgIHJldHVybiAoRGVjb21wb3NpdGlvblR5cGUpUUNoYXI6OmRlY29t
cG9zaXRpb25UYWcoYyk7Cit9CiAKLSAgICBpbmxpbmUgaW50IHVtZW1jYXNlY21wKGNvbnN0IFVD
aGFyKiBhLCBjb25zdCBVQ2hhciogYiwgaW50IGxlbikKLSAgICB7Ci0gICAgICAvLyBoYW5kbGUg
c3Vycm9nYXRlcyBjb3JyZWN0bHkKLSAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kp
IHsKLSAgICAgICAgICB1aW50IGMxID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYVtpXSkp
OwotICAgICAgICAgIHVpbnQgYzIgPSBRQ2hhcjo6dG9DYXNlRm9sZGVkKHVzaG9ydChiW2ldKSk7
Ci0gICAgICAgICAgaWYgKGMxICE9IGMyKQotICAgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsK
LSAgICAgIH0KLSAgICAgIHJldHVybiAwOworaW5saW5lIGludCB1bWVtY2FzZWNtcChjb25zdCBV
Q2hhciogYSwgY29uc3QgVUNoYXIqIGIsIGludCBsZW4pCit7CisgICAgLy8gaGFuZGxlIHN1cnJv
Z2F0ZXMgY29ycmVjdGx5CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAg
ICAgICB1aW50IGMxID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYVtpXSkpOworICAgICAg
ICB1aW50IGMyID0gUUNoYXI6OnRvQ2FzZUZvbGRlZCh1c2hvcnQoYltpXSkpOworICAgICAgICBp
ZiAoYzEgIT0gYzIpCisgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsKICAgICB9CisgICAgcmV0
dXJuIDA7Cit9CiAKLSAgICBpbmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCi0g
ICAgewotICAgICAgcmV0dXJuIChEaXJlY3Rpb24pUUNoYXI6OmRpcmVjdGlvbihjKTsKLSAgICB9
CitpbmxpbmUgRGlyZWN0aW9uIGRpcmVjdGlvbihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChE
aXJlY3Rpb24pUUNoYXI6OmRpcmVjdGlvbihjKTsKK30KIAotICAgIGlubGluZSBDaGFyQ2F0ZWdv
cnkgY2F0ZWdvcnkoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIHJldHVybiAoQ2hhckNhdGVnb3J5
KSBVX01BU0soUUNoYXI6OmNhdGVnb3J5KGMpKTsKLSAgICB9CitpbmxpbmUgQ2hhckNhdGVnb3J5
IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICByZXR1cm4gKENoYXJDYXRlZ29yeSkgVV9NQVNL
KFFDaGFyOjpjYXRlZ29yeShjKSk7Cit9CiAKICNlbHNlCiAKLSAgICBpbmxpbmUgVUNoYXIzMiB0
b0xvd2VyKFVDaGFyMzIgY2gpCi0gICAgewotICAgICAgaWYgKGNoID4gMHhmZmZmKQoraW5saW5l
IFVDaGFyMzIgdG9Mb3dlcihVQ2hhcjMyIGNoKQoreworICAgIGlmIChjaCA+IDB4ZmZmZikKICAg
ICAgICAgcmV0dXJuIGNoOwotICAgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBzaG9ydCljaCku
dG9Mb3dlcigpLnVuaWNvZGUoKTsKLSAgICB9CisgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBz
aG9ydCljaCkudG9Mb3dlcigpLnVuaWNvZGUoKTsKK30KIAotICAgIGlubGluZSBpbnQgdG9Mb3dl
cihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25zdCBVQ2hhciogc3JjLCBpbnQg
c3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCi0gICAgewotICAgICAgKmVycm9yID0gZmFsc2U7Ci0g
ICAgICBpZiAocmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7Ci0gICAgICAgICplcnJvciA9IHRy
dWU7Ci0gICAgICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcihzcmNb
aV0pLnRvTG93ZXIoKS51bmljb2RlKCk7Ci0gICAgICByZXR1cm4gc3JjTGVuZ3RoOwotICAgIH0K
K2lubGluZSBpbnQgdG9Mb3dlcihVQ2hhciogcmVzdWx0LCBpbnQgcmVzdWx0TGVuZ3RoLCBjb25z
dCBVQ2hhciogc3JjLCBpbnQgc3JjTGVuZ3RoLCAgYm9vbCogZXJyb3IpCit7CisgICplcnJvciA9
IGZhbHNlOworICBpZiAocmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CisgICAgKmVycm9yID0g
dHJ1ZTsKKyAgICByZXR1cm4gc3JjTGVuZ3RoOworICB9CisgIGZvciAoaW50IGkgPSAwOyBpIDwg
c3JjTGVuZ3RoOyArK2kpCisgICAgcmVzdWx0W2ldID0gUUNoYXIoc3JjW2ldKS50b0xvd2VyKCku
dW5pY29kZSgpOworICByZXR1cm4gc3JjTGVuZ3RoOworfQogCi0gICAgaW5saW5lIFVDaGFyMzIg
dG9VcHBlcihVQ2hhcjMyIGNoKQotICAgIHsKLSAgICAgIGlmIChjaCA+IDB4ZmZmZikKK2lubGlu
ZSBVQ2hhcjMyIHRvVXBwZXIoVUNoYXIzMiBjaCkKK3sKKyAgICBpZiAoY2ggPiAweGZmZmYpCiAg
ICAgICAgIHJldHVybiBjaDsKLSAgICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQgc2hvcnQpY2gp
LnRvVXBwZXIoKS51bmljb2RlKCk7Ci0gICAgfQorICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQg
c2hvcnQpY2gpLnRvVXBwZXIoKS51bmljb2RlKCk7Cit9CiAKLSAgICBpbmxpbmUgaW50IHRvVXBw
ZXIoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNyYywgaW50
IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQotICAgIHsKLSAgICAgICplcnJvciA9IGZhbHNlOwot
ICAgICAgaWYgKHJlc3VsdExlbmd0aCA8IHNyY0xlbmd0aCkgeworaW5saW5lIGludCB0b1VwcGVy
KFVDaGFyKiByZXN1bHQsIGludCByZXN1bHRMZW5ndGgsIGNvbnN0IFVDaGFyKiBzcmMsIGludCBz
cmNMZW5ndGgsICBib29sKiBlcnJvcikKK3sKKyAgICAqZXJyb3IgPSBmYWxzZTsKKyAgICBpZiAo
cmVzdWx0TGVuZ3RoIDwgc3JjTGVuZ3RoKSB7CiAgICAgICAgICplcnJvciA9IHRydWU7CiAgICAg
ICAgIHJldHVybiBzcmNMZW5ndGg7Ci0gICAgICB9Ci0gICAgICBmb3IgKGludCBpID0gMDsgaSA8
IHNyY0xlbmd0aDsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBRQ2hhcihzcmNbaV0pLnRvVXBw
ZXIoKS51bmljb2RlKCk7Ci0gICAgICByZXR1cm4gc3JjTGVuZ3RoOwogICAgIH0KKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHNyY0xlbmd0aDsgKytpKQorICAgICAgICByZXN1bHRbaV0gPSBRQ2hh
cihzcmNbaV0pLnRvVXBwZXIoKS51bmljb2RlKCk7CisgICAgcmV0dXJuIHNyY0xlbmd0aDsKK30K
IAotICAgIGlubGluZSBpbnQgdG9UaXRsZUNhc2UoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlm
IChjID4gMHhmZmZmKQoraW5saW5lIGludCB0b1RpdGxlQ2FzZShVQ2hhcjMyIGMpCit7CisgICAg
aWYgKGMgPiAweGZmZmYpCiAgICAgICAgIHJldHVybiBjOwotICAgICAgcmV0dXJuIFFDaGFyKCh1
bnNpZ25lZCBzaG9ydCljKS50b1VwcGVyKCkudW5pY29kZSgpOwotICAgIH0KKyAgICByZXR1cm4g
UUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLnRvVXBwZXIoKS51bmljb2RlKCk7Cit9CiAKLSAgICBp
bmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgaWYgKGMgPiAw
eGZmZmYpCitpbmxpbmUgVUNoYXIzMiBmb2xkQ2FzZShVQ2hhcjMyIGMpCit7CisgICAgaWYgKGMg
PiAweGZmZmYpCiAgICAgICAgIHJldHVybiBjOwotICAgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25l
ZCBzaG9ydCljKS50b0xvd2VyKCkudW5pY29kZSgpOwotICAgIH0KLQotICAgIGlubGluZSBpbnQg
Zm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3QgVUNoYXIqIHNy
YywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQotICAgIHsKLSAgICAgIHJldHVybiB0b0xv
d2VyKHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgZXJyb3IpOwotICAgIH0K
LQotICAgIGlubGluZSBib29sIGlzRm9ybWF0Q2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAg
cmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYyku
Y2F0ZWdvcnkoKSA9PSBRQ2hhcjo6T3RoZXJfRm9ybWF0OwotICAgIH0KLQotICAgIGlubGluZSBi
b29sIGlzUHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChjICYg
MHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQcmludCgpOwot
ICAgIH0KKyAgICByZXR1cm4gUUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLnRvTG93ZXIoKS51bmlj
b2RlKCk7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0FyYWJpY0NoYXIoVUNoYXIzMiBjKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGMgPj0gMHgwNjAwICYmIGMgPD0gMHgwNkZGOwotICAgIH0KK2lu
bGluZSBpbnQgZm9sZENhc2UoVUNoYXIqIHJlc3VsdCwgaW50IHJlc3VsdExlbmd0aCwgY29uc3Qg
VUNoYXIqIHNyYywgaW50IHNyY0xlbmd0aCwgIGJvb2wqIGVycm9yKQoreworICAgIHJldHVybiB0
b0xvd2VyKHJlc3VsdCwgcmVzdWx0TGVuZ3RoLCBzcmMsIHNyY0xlbmd0aCwgZXJyb3IpOworfQog
Ci0gICAgaW5saW5lIGJvb2wgaXNTZXBhcmF0b3JTcGFjZShVQ2hhcjMyIGMpCi0gICAgewotICAg
ICAgcmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQp
YykuY2F0ZWdvcnkoKSA9PSBRQ2hhcjo6U2VwYXJhdG9yX1NwYWNlOwotICAgIH0KK2lubGluZSBi
b29sIGlzUHJpbnRhYmxlQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChjICYgMHhmZmZm
MDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQcmludCgpOworfQogCi0g
ICAgaW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChj
ICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQdW5jdCgp
OwotICAgIH0KK2lubGluZSBib29sIGlzQXJhYmljQ2hhcihVQ2hhcjMyIGMpCit7CisgICAgcmV0
dXJuIGMgPj0gMHgwNjAwICYmIGMgPD0gMHgwNkZGOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNE
aWdpdChVQ2hhcjMyIGMpCi0gICAgewotICAgICAgcmV0dXJuIChjICYgMHhmZmZmMDAwMCkgPT0g
MCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNEaWdpdCgpOwotICAgIH0KK2lubGluZSBi
b29sIGlzU2VwYXJhdG9yU3BhY2UoVUNoYXIzMiBjKQoreworICAgIHJldHVybiAoYyAmIDB4ZmZm
ZjAwMDApID09IDAgJiYgUUNoYXIoKHVuc2lnbmVkIHNob3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNo
YXI6OlNlcGFyYXRvcl9TcGFjZTsKK30KIAotICAgIGlubGluZSBib29sIGlzTG93ZXIoVUNoYXIz
MiBjKQotICAgIHsKLSAgICAgIHJldHVybiAoYyAmIDB4ZmZmZjAwMDApID09IDAgJiYgUUNoYXIo
KHVuc2lnbmVkIHNob3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNoYXI6OkxldHRlcl9Mb3dlcmNhc2U7
Ci0gICAgfQoraW5saW5lIGJvb2wgaXNQdW5jdChVQ2hhcjMyIGMpCit7CisgICAgcmV0dXJuIChj
ICYgMHhmZmZmMDAwMCkgPT0gMCAmJiBRQ2hhcigodW5zaWduZWQgc2hvcnQpYykuaXNQdW5jdCgp
OworfQogCi0gICAgaW5saW5lIGludCBkaWdpdFZhbHVlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAg
ICBpZiAoYyA+IDB4ZmZmZikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICByZXR1cm4gUUNoYXIo
YykuZGlnaXRWYWx1ZSgpOwotICAgIH0KK2lubGluZSBib29sIGlzTG93ZXIoVUNoYXIzMiBjKQor
eworICAgIHJldHVybiAoYyAmIDB4ZmZmZjAwMDApID09IDAgJiYgUUNoYXIoKHVuc2lnbmVkIHNo
b3J0KWMpLmNhdGVnb3J5KCkgPT0gUUNoYXI6OkxldHRlcl9Mb3dlcmNhc2U7Cit9CiAKLSAgICBp
bmxpbmUgVUNoYXIzMiBtaXJyb3JlZENoYXIoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlmIChj
ID4gMHhmZmZmKQoraW5saW5lIFVDaGFyMzIgbWlycm9yZWRDaGFyKFVDaGFyMzIgYykKK3sKKyAg
ICBpZiAoYyA+IDB4ZmZmZikKICAgICAgICAgcmV0dXJuIGM7Ci0gICAgICByZXR1cm4gUUNoYXIo
YykubWlycm9yZWRDaGFyKCkudW5pY29kZSgpOwotICAgIH0KKyAgICByZXR1cm4gUUNoYXIoYyku
bWlycm9yZWRDaGFyKCkudW5pY29kZSgpOworfQogCi0gICAgaW5saW5lIHVpbnQ4X3QgY29tYmlu
aW5nQ2xhc3MoVUNoYXIzMiBjKQotICAgIHsKLSAgICAgIGlmIChjID4gMHhmZmZmKQoraW5saW5l
IHVpbnQ4X3QgY29tYmluaW5nQ2xhc3MoVUNoYXIzMiBjKQoreworICAgIGlmIChjID4gMHhmZmZm
KQogICAgICAgICByZXR1cm4gMDsKLSAgICAgIHJldHVybiBRQ2hhcigodW5zaWduZWQgc2hvcnQp
YykuY29tYmluaW5nQ2xhc3MoKTsKLSAgICB9CisgICAgcmV0dXJuIFFDaGFyKCh1bnNpZ25lZCBz
aG9ydCljKS5jb21iaW5pbmdDbGFzcygpOworfQogCi0gICAgaW5saW5lIERlY29tcG9zaXRpb25U
eXBlIGRlY29tcG9zaXRpb25UeXBlKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBpZiAoYyA+IDB4
ZmZmZikKK2lubGluZSBEZWNvbXBvc2l0aW9uVHlwZSBkZWNvbXBvc2l0aW9uVHlwZShVQ2hhcjMy
IGMpCit7CisgICAgaWYgKGMgPiAweGZmZmYpCiAgICAgICAgIHJldHVybiBEZWNvbXBvc2l0aW9u
Tm9uZTsKLSAgICAgIHJldHVybiAoRGVjb21wb3NpdGlvblR5cGUpUUNoYXIoYykuZGVjb21wb3Np
dGlvblRhZygpOwotICAgIH0KKyAgICByZXR1cm4gKERlY29tcG9zaXRpb25UeXBlKVFDaGFyKGMp
LmRlY29tcG9zaXRpb25UYWcoKTsKK30KIAotICAgIGlubGluZSBpbnQgdW1lbWNhc2VjbXAoY29u
c3QgVUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQotICAgIHsKLSAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKK2lubGluZSBpbnQgdW1lbWNhc2VjbXAoY29uc3Qg
VUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBiLCBpbnQgbGVuKQoreworICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgUUNoYXIgYzEgPSBRQ2hhcihhW2ldKS50b0xvd2Vy
KCk7CiAgICAgICAgIFFDaGFyIGMyID0gUUNoYXIoYltpXSkudG9Mb3dlcigpOwogICAgICAgICBp
ZiAoYzEgIT0gYzIpCi0gICAgICAgICAgcmV0dXJuIGMxLnVuaWNvZGUoKSAtIGMyLnVuaWNvZGUo
KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gYzEudW5pY29kZSgp
IC0gYzIudW5pY29kZSgpOwogICAgIH0KKyAgICByZXR1cm4gMDsKK30KIAotICAgIGlubGluZSBE
aXJlY3Rpb24gZGlyZWN0aW9uKFVDaGFyMzIgYykKLSAgICB7Ci0gICAgICBpZiAoYyA+IDB4ZmZm
ZikKK2lubGluZSBEaXJlY3Rpb24gZGlyZWN0aW9uKFVDaGFyMzIgYykKK3sKKyAgICBpZiAoYyA+
IDB4ZmZmZikKICAgICAgICAgcmV0dXJuIExlZnRUb1JpZ2h0OwotICAgICAgcmV0dXJuIChEaXJl
Y3Rpb24pUUNoYXIoYykuZGlyZWN0aW9uKCk7Ci0gICAgfQorICAgIHJldHVybiAoRGlyZWN0aW9u
KVFDaGFyKGMpLmRpcmVjdGlvbigpOworfQogCi0gICAgaW5saW5lIENoYXJDYXRlZ29yeSBjYXRl
Z29yeShVQ2hhcjMyIGMpCi0gICAgewotICAgICAgaWYgKGMgPiAweGZmZmYpCitpbmxpbmUgQ2hh
ckNhdGVnb3J5IGNhdGVnb3J5KFVDaGFyMzIgYykKK3sKKyAgICBpZiAoYyA+IDB4ZmZmZikKICAg
ICAgICAgcmV0dXJuIE5vQ2F0ZWdvcnk7Ci0gICAgICByZXR1cm4gKENoYXJDYXRlZ29yeSkgVV9N
QVNLKFFDaGFyKGMpLmNhdGVnb3J5KCkpOwotICAgIH0KKyAgICByZXR1cm4gKENoYXJDYXRlZ29y
eSkgVV9NQVNLKFFDaGFyKGMpLmNhdGVnb3J5KCkpOworfQogCiAjZW5kaWYKIAotICB9Ci19Cit9
IH0KIAogI2VuZGlmCi0vLyB2aW06IHRzPTIgc3c9MiBldApJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAwOC0x
MC0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE1NTYKKyAgICAgICAgICBCdWcgMjE1NTY6IG5vbi1BU0NJSSBkaWdp
dHMgYXJlIGFsbG93ZWQgaW4gcGxhY2VzIHdoZXJlIG9ubHkgQVNDSUkgc2hvdWxkIGJlCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXR0cmlidXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRp
bmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRm9udFNpemVOdW1iZXIpOiBVc2UgaXNBU0NJSURpZ2l0
IGluc3RlYWQgb2YKKyAgICAgICAgVW5pY29kZTo6aXNEaWdpdCwgc2luY2Ugbm9uLUFTQ0lJIGRp
Z2l0cyBhcmUgbm90IHZhbGlkIGhlcmUuCisgICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQu
aDogVHdlYWtlZCBmb3JtYXR0aW5nIGEgYml0IGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5l
ZWRlZCBkZXN0cnVjdG9yIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3Ry
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcik6
IFVzZSBpc0FTQ0lJRGlnaXQgaW5zdGVhZAorICAgICAgICBvZiBVbmljb2RlOjppc0RpZ2l0LCBz
aW5jZSBub24tQVNDSUkgZGlnaXRzIGFyZSBub3QgdmFsaWQuCisKIDIwMDgtMTAtMTIgIEJyYWQg
R2FyY2lhICA8YmdhcmNpYUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHJldmlzaW9uIDM3NTI2KQor
KysgV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTAgKzEsOCBAQAotLyoqCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRE9NIGltcGxlbWVu
dGF0aW9uIGZvciBLREUuCi0gKgorLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChr
b2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxo
YXVzbWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNSwxMiArMzMsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhU
TUxGb250RWxlbWVudDo6SFRNTEZvbnRFbGVtZW50KERvY3VtZW50KiBkb2MpCi0gICAgOiBIVE1M
RWxlbWVudChmb250VGFnLCBkb2MpCi17Ci19Ci0KLUhUTUxGb250RWxlbWVudDo6fkhUTUxGb250
RWxlbWVudCgpCitIVE1MRm9udEVsZW1lbnQ6OkhUTUxGb250RWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBIVE1MRWxlbWVudChmb250VGFnLCBkb2N1bWVudCkKIHsKIH0KIApAQCAt
NjcsMTIgKzYxLDEyIEBAIHN0YXRpYyBib29sIHBhcnNlRm9udFNpemVOdW1iZXIoY29uc3QgU3QK
ICAgICB9CiAgICAgCiAgICAgLy8gUGFyc2UgYSBzaW5nbGUgZGlnaXQuCi0gICAgaWYgKCFVbmlj
b2RlOjppc0RpZ2l0KHNbcG9zXSkpCisgICAgaWYgKCFpc0FTQ0lJRGlnaXQoc1twb3NdKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGludCBudW0gPSBVbmljb2RlOjpkaWdpdFZhbHVlKHNb
cG9zKytdKTsKKyAgICBpbnQgbnVtID0gc1twb3MrK10gLSAnMCc7CiAgICAgCiAgICAgLy8gQ2hl
Y2sgZm9yIGFuIGFkZGl0aW9uYWwgZGlnaXQuCi0gICAgaWYgKFVuaWNvZGU6OmlzRGlnaXQoc1tw
b3NdKSkKKyAgICBpZiAoaXNBU0NJSURpZ2l0KHNbcG9zXSkpCiAgICAgICAgIG51bSA9IDEwOwog
ICAgIAogICAgIGlmIChzYXdQbHVzKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCShyZXZp
c2lvbiAzNzUyNikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRE9N
IGltcGxlbWVudGF0aW9uIGZvciBLREUuCi0gKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgU2ltb24gSGF1c21h
bm4gPGhhdXNtYW5uQGtkZS5vcmc+CkBAIC0yOCwxMyArMjYsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFN0cmluZzsKLQotY2xhc3MgSFRNTEZvbnRFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50Ci17CitjbGFzcyBIVE1MRm9udEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1l
bnQgewogcHVibGljOgogICAgIEhUTUxGb250RWxlbWVudChEb2N1bWVudCopOwotICAgIH5IVE1M
Rm9udEVsZW1lbnQoKTsKICAgICAKICAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogICAgIHZpcnR1
YWwgaW50IHRhZ1ByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gMTsgfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1N0cmluZy5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0MSw3ICs3NDEsNyBAQCBzdGF0aWMgdW5z
aWduZWQgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlCiAgICAgCiAgICAgLy8gQWxsb3cgZGlnaXRz
LgogICAgIGZvciAoOyBpICE9IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghVW5pY29kZTo6
aXNEaWdpdChkYXRhW2ldKSkKKyAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoZGF0YVtpXSkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NTI2KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MDgtMTAtMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTU2CisgICAgICAgICAgQnVnIDIxNTU2OiBu
b24tQVNDSUkgZGlnaXRzIGFyZSBhbGxvd2VkIGluIHBsYWNlcyB3aGVyZSBvbmx5IEFTQ0lJIHNo
b3VsZCBiZQorCisgICAgICAgICogZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNvdXJjZXMvc2l6ZS1h
dHRyaWJ1dGUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxGb250RWxlbWVudC9z
aXplLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6
ZS1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRhYmxlRWxl
bWVudC9jZWxscGFkZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9jZWxs
cGFkZGluZy1hdHRyaWJ1dGUuanM6IEFkZGVkLgorCiAyMDA4LTEwLTEyICBCcmFkIEdhcmNpYSAg
PGJnYXJjaWFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZv
bnRFbGVtZW50L3NpemUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK0hUTUxGb250RWxlbWVudCBzaXpl
IGF0dHJpYnV0ZSB0ZXN0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCIiKSBpcyBudWxsCitQQVNTIGZvbnRTaXplQXR0cmlidXRl
RWZmZWN0KCIxIikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIyIikg
aXMgIjEzcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIzIikgaXMgIjE2cHgiCitQ
QVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI0IikgaXMgIjE4cHgiCitQQVNTIGZvbnRTaXpl
QXR0cmlidXRlRWZmZWN0KCI1IikgaXMgIjI0cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZm
ZWN0KCI2IikgaXMgIjMycHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI3IikgaXMg
IjQ4cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIwIikgaXMgIjE2cHgiCitQQVNT
IGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItMSIpIGlzICIxM3B4IgorUEFTUyBmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiLTIiKSBpcyAiMTBweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZl
Y3QoIi0zIikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItNCIpIGlz
ICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTUiKSBpcyAiMTBweCIKK1BB
U1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIi02IikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXpl
QXR0cmlidXRlRWZmZWN0KCItNyIpIGlzICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVm
ZmVjdCgiLTgiKSBpcyAiMTBweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIi05Iikg
aXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCItMTAiKSBpcyAiMTBweCIK
K1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjgiKSBpcyAiNDhweCIKK1BBU1MgZm9udFNp
emVBdHRyaWJ1dGVFZmZlY3QoIjkiKSBpcyAiNDhweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjEwIikgaXMgIjQ4cHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCIxMDAi
KSBpcyAiNDhweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjEwMDAiKSBpcyAiNDhw
eCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjF4IikgaXMgIjEwcHgiCitQQVNTIGZv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCIxLiIpIGlzICIxMHB4IgorUEFTUyBmb250U2l6ZUF0dHJp
YnV0ZUVmZmVjdCgiMS45IikgaXMgIjEwcHgiCitQQVNTIGZvbnRTaXplQXR0cmlidXRlRWZmZWN0
KCIyeCIpIGlzICIxM3B4IgorUEFTUyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMi4iKSBpcyAi
MTNweCIKK1BBU1MgZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjIuOSIpIGlzICIxM3B4IgorUEFT
UyBmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiYSIpIGlzIG51bGwKK1BBU1MgZm9udFNpemVBdHRy
aWJ1dGVFZmZlY3QoYXJhYmljSW5kaWNEaWdpdE9uZSkgaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50L3NpemUtYXR0cmlidXRlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvbnRFbGVtZW50L3Np
emUtYXR0cmlidXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRm9udEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1l
bnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3Vy
Y2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVz
b3VyY2VzL1RFTVBMQVRFLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
dGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb250RWxlbWVudC9yZXNv
dXJjZXMvc2l6ZS1hdHRyaWJ1dGUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRm9udEVsZW1lbnQvcmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU4IEBACitkZXNjcmlwdGlvbigiSFRNTEZvbnRFbGVtZW50IHNpemUg
YXR0cmlidXRlIHRlc3QiKTsKKworZnVuY3Rpb24gZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QodmFs
dWUpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb250Iik7
CisgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNpemUiLCB2YWx1ZSk7CisgICAgdmFyIG91dGVy
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICBvdXRlckVsZW1lbnQu
c2V0QXR0cmlidXRlKCJzdHlsZSIsICJmb250LXNpemU6IDEwMHB4Iik7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChvdXRlckVsZW1lbnQpOworICAgIG91dGVyRWxlbWVudC5hcHBlbmRD
aGlsZChlbGVtZW50KTsKKyAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgIiIpOworICAgIHZhciByZXN1bHQgPSBjb21wdXRlZFN0eWxlLmZvbnRTaXplOwor
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0ZXJFbGVtZW50KTsKKyAgICByZXR1cm4g
cmVzdWx0ID09PSAiMTAwcHgiID8gbnVsbCA6IHJlc3VsdDsKK30KKworc2hvdWxkQmUoJ2ZvbnRT
aXplQXR0cmlidXRlRWZmZWN0KCIiKScsICdudWxsJyk7CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMSIpJywgJyIxMHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0cmli
dXRlRWZmZWN0KCIyIiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjMiKScsICciMTZweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiNCIpJywgJyIxOHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0cmlidXRlRWZmZWN0KCI1
IiknLCAnIjI0cHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjYiKScs
ICciMzJweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiNyIpJywgJyI0
OHB4IicpOworCitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoIjAiKScsICciMTZw
eCInKTsgLy8gR2Vja28gYW5kIFdlYktpdCBkbyBub3QgYWdyZWUgb24gdGhpcyByZXN1bHQuIFdo
aWNoIG1hdGNoZXMgSUU/CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTEi
KScsICciMTNweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTIiKScs
ICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTMiKScsICci
MTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTQiKScsICciMTBw
eCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTUiKScsICciMTBweCIn
KTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTYiKScsICciMTBweCInKTsK
K3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTciKScsICciMTBweCInKTsKK3No
b3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTgiKScsICciMTBweCInKTsKK3Nob3Vs
ZEJlKCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTkiKScsICciMTBweCInKTsKK3Nob3VsZEJl
KCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiLTEwIiknLCAnIjEwcHgiJyk7CisKK3Nob3VsZEJl
KCdmb250U2l6ZUF0dHJpYnV0ZUVmZmVjdCgiOCIpJywgJyI0OHB4IicpOworc2hvdWxkQmUoJ2Zv
bnRTaXplQXR0cmlidXRlRWZmZWN0KCI5IiknLCAnIjQ4cHgiJyk7CitzaG91bGRCZSgnZm9udFNp
emVBdHRyaWJ1dGVFZmZlY3QoIjEwIiknLCAnIjQ4cHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVB
dHRyaWJ1dGVFZmZlY3QoIjEwMCIpJywgJyI0OHB4IicpOworc2hvdWxkQmUoJ2ZvbnRTaXplQXR0
cmlidXRlRWZmZWN0KCIxMDAwIiknLCAnIjQ4cHgiJyk7CisKK3Nob3VsZEJlKCdmb250U2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMXgiKScsICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJp
YnV0ZUVmZmVjdCgiMS4iKScsICciMTBweCInKTsKK3Nob3VsZEJlKCdmb250U2l6ZUF0dHJpYnV0
ZUVmZmVjdCgiMS45IiknLCAnIjEwcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjJ4IiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZl
Y3QoIjIuIiknLCAnIjEzcHgiJyk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3Qo
IjIuOSIpJywgJyIxM3B4IicpOworCitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3Qo
ImEiKScsICdudWxsJyk7CisKK3ZhciBhcmFiaWNJbmRpY0RpZ2l0T25lID0gU3RyaW5nLmZyb21D
aGFyQ29kZSgweDY2MSk7CitzaG91bGRCZSgnZm9udFNpemVBdHRyaWJ1dGVFZmZlY3QoYXJhYmlj
SW5kaWNEaWdpdE9uZSknLCAnbnVsbCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK0hUTUxJbnB1dEVsZW1l
bnQgc2l6ZSBhdHRyaWJ1dGUgdGVzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNpemUgaXMgMjAKK1BBU1Mgc2l6
ZUF0dHJpYnV0ZUVmZmVjdCgiIikgaXMgMAorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIxIikg
aXMgMQorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIyIikgaXMgMgorUEFTUyBzaXplQXR0cmli
dXRlRWZmZWN0KCIxMCIpIGlzIDEwCitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIjAiKSBpcyAw
CitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIi0xIikgaXMgLTEKK1BBU1Mgc2l6ZUF0dHJpYnV0
ZUVmZmVjdCgiMXgiKSBpcyAxCitQQVNTIHNpemVBdHRyaWJ1dGVFZmZlY3QoIjEuIikgaXMgMQor
UEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIxLjkiKSBpcyAxCitQQVNTIHNpemVBdHRyaWJ1dGVF
ZmZlY3QoIjJ4IikgaXMgMgorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KCIyLiIpIGlzIDIKK1BB
U1Mgc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMi45IikgaXMgMgorUEFTUyBzaXplQXR0cmlidXRlRWZm
ZWN0KCJhIikgaXMgMAorUEFTUyBzaXplQXR0cmlidXRlRWZmZWN0KGFyYWJpY0luZGljRGlnaXRP
bmUpIGlzIDAKK1BBU1Mgc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0
T25lKSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0
RWxlbWVudC9zaXplLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElu
cHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1
dGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXR0cmlidXRlLmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wt
c3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRF
bGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Jlc291cmNlcy9zaXplLWF0dHJpYnV0ZS5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQv
cmVzb3VyY2VzL3NpemUtYXR0cmlidXRlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBA
CitkZXNjcmlwdGlvbigiSFRNTElucHV0RWxlbWVudCBzaXplIGF0dHJpYnV0ZSB0ZXN0Iik7CisK
K2Z1bmN0aW9uIHNpemVBdHRyaWJ1dGVFZmZlY3QodmFsdWUpCit7CisgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgIGVsZW1lbnQuc2V0QXR0cmli
dXRlKCJzaXplIiwgdmFsdWUpOworICAgIHJldHVybiBlbGVtZW50LnNpemU7Cit9CisKK3Nob3Vs
ZEJlKCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNpemUnLCAnMjAnKTsgLy8gR2Vj
a28gYW5kIFdlYktpdCBkb24ndCBtYXRjaC4KKworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZl
Y3QoIiIpJywgJzAnKTsKKworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjEiKScsICcx
Jyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMiIpJywgJzInKTsKK3Nob3VsZEJl
KCdzaXplQXR0cmlidXRlRWZmZWN0KCIxMCIpJywgJzEwJyk7CisKK3Nob3VsZEJlKCdzaXplQXR0
cmlidXRlRWZmZWN0KCIwIiknLCAnMCcpOworCitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiLTEiKScsICctMScpOyAvLyBHZWNrbyBhbmQgV2ViS2l0IGRvbid0IG1hdGNoLgorCitzaG91
bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVjdCgiMXgiKScsICcxJyk7CitzaG91bGRCZSgnc2l6ZUF0
dHJpYnV0ZUVmZmVjdCgiMS4iKScsICcxJyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dCgiMS45IiknLCAnMScpOworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjJ4IiknLCAn
MicpOworc2hvdWxkQmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjIuIiknLCAnMicpOworc2hvdWxk
QmUoJ3NpemVBdHRyaWJ1dGVFZmZlY3QoIjIuOSIpJywgJzInKTsKKworc2hvdWxkQmUoJ3NpemVB
dHRyaWJ1dGVFZmZlY3QoImEiKScsICcwJyk7CisKK3ZhciBhcmFiaWNJbmRpY0RpZ2l0T25lID0g
U3RyaW5nLmZyb21DaGFyQ29kZSgweDY2MSk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVmZmVj
dChhcmFiaWNJbmRpY0RpZ2l0T25lKScsICcwJyk7CitzaG91bGRCZSgnc2l6ZUF0dHJpYnV0ZUVm
ZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0T25lKScsICcyJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxl
bWVudC9jZWxscGFkZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyNCBAQAorSFRNTFRhYmxlRWxlbWVudCBjZWxscGFkZGluZyBhdHRyaWJ1
dGUgdGVzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjZWxsUGFkZGlu
Z0F0dHJpYnV0ZUVmZmVjdCgiIikgaXMgIjFweCIKK1BBU1MgY2VsbFBhZGRpbmdBdHRyaWJ1dGVF
ZmZlY3QoIjEiKSBpcyAiMXB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMiIp
IGlzICIycHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIxMCIpIGlzICIxMHB4
IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMCIpIGlzICIwcHgiCitQQVNTIGNl
bGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCItMSIpIGlzICIwcHgiCitQQVNTIGNlbGxQYWRkaW5n
QXR0cmlidXRlRWZmZWN0KCIxeCIpIGlzICIxcHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRl
RWZmZWN0KCIxLiIpIGlzICIxcHgiCitQQVNTIGNlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIx
LjkiKSBpcyAiMXB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMngiKSBpcyAi
MnB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi4iKSBpcyAiMnB4IgorUEFT
UyBjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi45IikgaXMgIjJweCIKK1BBU1MgY2VsbFBh
ZGRpbmdBdHRyaWJ1dGVFZmZlY3QoImEiKSBpcyAiMHB4IgorUEFTUyBjZWxsUGFkZGluZ0F0dHJp
YnV0ZUVmZmVjdChhcmFiaWNJbmRpY0RpZ2l0T25lKSBpcyAiMHB4IgorUEFTUyBjZWxsUGFkZGlu
Z0F0dHJpYnV0ZUVmZmVjdCgiMiIgKyBhcmFiaWNJbmRpY0RpZ2l0T25lKSBpcyAiMnB4IgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBh
ZGRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjplb2wtc3R5
bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVt
ZW50L2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvY2VsbHBhZGRpbmctYXR0cmlidXRlLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2Nl
bGxwYWRkaW5nLWF0dHJpYnV0ZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIHRleHQvaHRtbApOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yZXNvdXJjZXMvY2VsbHBhZGRpbmct
YXR0cmlidXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJs
ZUVsZW1lbnQvcmVzb3VyY2VzL2NlbGxwYWRkaW5nLWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvcmVzb3VyY2VzL2NlbGxw
YWRkaW5nLWF0dHJpYnV0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorZGVzY3Jp
cHRpb24oIkhUTUxUYWJsZUVsZW1lbnQgY2VsbHBhZGRpbmcgYXR0cmlidXRlIHRlc3QiKTsKKwor
ZnVuY3Rpb24gY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QodmFsdWUpCit7CisgICAgdmFyIHRh
YmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKKyAgICB0YWJsZS5zZXRBdHRy
aWJ1dGUoImNlbGxwYWRkaW5nIiwgdmFsdWUpOworICAgIHZhciBjZWxsID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGQiKTsKKyAgICB0YWJsZS5hcHBlbmRDaGlsZChjZWxsKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhYmxlKTsKKyAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdl
dENvbXB1dGVkU3R5bGUoY2VsbCwgIiIpOworICAgIHZhciByZXN1bHQgPSBjb21wdXRlZFN0eWxl
LnBhZGRpbmdUb3A7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YWJsZSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0
KCIiKScsICciMXB4IicpOworCitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3Qo
IjEiKScsICciMXB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIy
IiknLCAnIjJweCInKTsKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMTAi
KScsICciMTBweCInKTsKKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIw
IiknLCAnIjBweCInKTsKKworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIt
MSIpJywgJyIwcHgiJyk7CisKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgi
MXgiKScsICciMXB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIx
LiIpJywgJyIxcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoIjEu
OSIpJywgJyIxcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoIjJ4
IiknLCAnIjJweCInKTsKK3Nob3VsZEJlKCdjZWxsUGFkZGluZ0F0dHJpYnV0ZUVmZmVjdCgiMi4i
KScsICciMnB4IicpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KCIyLjki
KScsICciMnB4IicpOworCitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1dGVFZmZlY3QoImEi
KScsICciMHB4IicpOworCit2YXIgYXJhYmljSW5kaWNEaWdpdE9uZSA9IFN0cmluZy5mcm9tQ2hh
ckNvZGUoMHg2NjEpOworc2hvdWxkQmUoJ2NlbGxQYWRkaW5nQXR0cmlidXRlRWZmZWN0KGFyYWJp
Y0luZGljRGlnaXRPbmUpJywgJyIwcHgiJyk7CitzaG91bGRCZSgnY2VsbFBhZGRpbmdBdHRyaWJ1
dGVFZmZlY3QoIjIiICsgYXJhYmljSW5kaWNEaWdpdE9uZSknLCAnIjJweCInKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="11073"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>