<?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>75942</bug_id>
          
          <creation_ts>2012-01-10 00:05:57 -0800</creation_ts>
          <short_desc>[Refactoring] Rename attributes in TestSupplemental.idl to clarify that they are supplemental attributes</short_desc>
          <delta_ts>2012-01-10 15:36:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>532852</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 00:05:57 -0800</bug_when>
    <thetext>To make the test result of TestSupplemental.idl readable (i.e. to make it easy to find in {JS,V8,ObjC,GObject,CPP}TestInterface.cpp which attributes originate from TestSupplemental.idl), we should rename the attributes in TestSupplemental.idl, like this:

Before:
    interface [
        Supplemental=TestInterface
    ] TestSupplemental {
        readonly attribute DOMString str1;
        attribute DOMString str2;
        attribute [CustomGetter, CustomSetter] str3;
    };

After:
    interface [
        Supplemental=TestInterface
    ] TestSupplemental {
        readonly attribute DOMString supplementalStr1;
        attribute DOMString supplementalStr2;
        attribute [CustomGetter, CustomSetter] supplementalStr3;
    };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532853</commentid>
    <comment_count>1</comment_count>
      <attachid>121803</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 00:10:13 -0800</bug_when>
    <thetext>Created attachment 121803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532855</commentid>
    <comment_count>2</comment_count>
      <attachid>121804</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-01-10 00:12:08 -0800</bug_when>
    <thetext>Created attachment 121804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532856</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 00:12:57 -0800</bug_when>
    <thetext>Attachment 121803 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h:60:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533421</commentid>
    <comment_count>4</comment_count>
      <attachid>121804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 15:35:56 -0800</bug_when>
    <thetext>Comment on attachment 121804
Patch

Clearing flags on attachment: 121804

Committed r104639: &lt;http://trac.webkit.org/changeset/104639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533422</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 15:36:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121803</attachid>
            <date>2012-01-10 00:10:13 -0800</date>
            <delta_ts>2012-01-10 00:12:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75942-20120110171011.patch</filename>
            <type>text/plain</type>
            <size>29033</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE3NzVlNTc4NTc0OWYy
NWNiMzljMTU1ZmY3NjE5ZGNhN2I1M2M4Ni4uZmU5M2U1NjhkMjk3OTdiNTYwZDM1NjlhY2U2MDM0
N2U1ZDQ2OWRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAxLTEwICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVmYWN0b3Jpbmdd
IFJlbmFtZSBhdHRyaWJ1dGVzIGluIFRlc3RTdXBwbGVtZW50YWwuaWRsIHRvIGNsYXJpZnkKKyAg
ICAgICAgdGhhdCB0aGV5IGFyZSBzdXBwbGVtZW50YWwgYXR0cmlidXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGp1c3QgcmVuYW1l
cyBhdHRyaWJ1dGVzIGluIFRlc3RTdXBwbGVtZW50YWwuaWRsCisgICAgICAgIHRvIG1ha2UgaXQg
ZWFzeSB0byBmaW5kIGluIHtKUyxWOCxXZWJLaXRET00sRE9NLFdlYkRPTX1UZXN0SW50ZXJmYWNl
LmNwcAorICAgICAgICB3aGljaCBhdHRyaWJ1dGVzIG9yaWdpbmF0ZSBmcm9tIFRlc3RTdXBwbGVt
ZW50YWwuaWRsLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVt
ZW50YWwuaWRsOiBKdXN0IHJlbmFtZWQgdGhyZWUgYXR0cmlidXRlcy4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5jcHA6IFVwZGF0ZWQg
dGhlIHRlc3QgcmVzdWx0LgorICAgICAgICAoV2ViRE9NVGVzdEludGVyZmFjZTo6c3VwcGxlbWVu
dGFsU3RyMSk6CisgICAgICAgIChXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIy
KToKKyAgICAgICAgKFdlYkRPTVRlc3RJbnRlcmZhY2U6OnNldFN1cHBsZW1lbnRhbFN0cjIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5o
OiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmNwcDogRGl0dG8uCisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfaW50
ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3RyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3RyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxfc3RyMik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3RfaW50ZXJmYWNlX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfaW50ZXJm
YWNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmg6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRl
cmZhY2UubW06IERpdHRvLgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRh
bFN0cjFdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxTdHIyXSk6
CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc2V0U3VwcGxlbWVudGFsU3RyMjpdKToKKyAg
ICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFj
ZSBzZXQ6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVy
ZmFjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZUludGVybmFs
OjpzdXBwbGVtZW50YWxTdHIxQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0SW50
ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0cjJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJTZXR0ZXIp
OgorCiAyMDEyLTAxLTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA0NTA3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdEludGVyZmFjZS5jcHAKaW5kZXggZDYxMjEyMTA5N2U0YzNiNThhNzhlMjA0YTI0ODc3
NGVjYTcxNWVkYy4uNWIxNmVkOTMwMjZhMTAyNzk2YWZmODc4MzBjNDU4YzkyYjk5MzdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCkBAIC03OSwzMCArNzksMzAgQEAgV2ViRE9N
VGVzdEludGVyZmFjZTo6fldlYkRPTVRlc3RJbnRlcmZhY2UoKQogfQogCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1XZWJET01TdHJpbmcgV2ViRE9NVGVz
dEludGVyZmFjZTo6c3RyMSgpIGNvbnN0CitXZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFj
ZTo6c3VwcGxlbWVudGFsU3RyMSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAg
IHJldHVybiBXZWJET01TdHJpbmcoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBX
VEY6OlN0cmluZyY+KFRlc3RTdXBwbGVtZW50YWw6OnN0cjEoaW1wbCgpKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxl
bWVudGFsU3RyMShpbXBsKCkpKTsKIH0KIAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1XZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFj
ZTo6c3RyMigpIGNvbnN0CitXZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFjZTo6c3VwcGxl
bWVudGFsU3RyMigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiBX
ZWJET01TdHJpbmcoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXVEY6OlN0cmlu
ZyY+KFRlc3RTdXBwbGVtZW50YWw6OnN0cjIoaW1wbCgpKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MihpbXBsKCkpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzZXRTdHIyKGNvbnN0
IFdlYkRPTVN0cmluZyYgbmV3U3RyMikKK3ZvaWQgV2ViRE9NVGVzdEludGVyZmFjZTo6c2V0U3Vw
cGxlbWVudGFsU3RyMihjb25zdCBXZWJET01TdHJpbmcmIG5ld1N1cHBsZW1lbnRhbFN0cjIpCiB7
CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN0cjIoaW1wbCgpLCBuZXdTdHIyKTsKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRT
dXBwbGVtZW50YWxTdHIyKGltcGwoKSwgbmV3U3VwcGxlbWVudGFsU3RyMik7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaAppbmRleCA1YWEwM2M3OTUwOThjMjc0YWY2NzBj
MzQ3MDUxODc4MmJiMTZlMTZjLi5jYmY1Yzg2MGZhZTU5NDE1MjMxYzhmODljYWY3YmRhMDNjMTAy
MDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaApAQCAtNDIsMTEgKzQyLDExIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJET01UZXN0SW50ZXJmYWNlKCk7CiAKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBXZWJET01TdHJpbmcgc3Ry
MSgpIGNvbnN0OworICAgIFdlYkRPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIxKCkgY29uc3Q7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAg
ICBXZWJET01TdHJpbmcgc3RyMigpIGNvbnN0OwotICAgIHZvaWQgc2V0U3RyMihjb25zdCBXZWJE
T01TdHJpbmcmKTsKKyAgICBXZWJET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMigpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U3VwcGxlbWVudGFsU3RyMihjb25zdCBXZWJET01TdHJpbmcmKTsKICNlbmRp
ZgogCiAgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSogaW1wbCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAppbmRleCA1ZjhmYWZlZDMxNjI1YmQy
YWMwZGE2ZDFhNDZmZmQ2Mjg5ZjQ3MWMyLi4wYjA4MTVmMWY1ZWMzMDJlODRiYTQxMTMwY2RjYmQ3
OGJmOGY0NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNw
cApAQCAtNTMsMTMgKzUzLDEzIEBAIFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIGtpdChXZWJDb3Jl
OjpUZXN0SW50ZXJmYWNlKiBvYmopCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQgLy8KIAogZ2NoYXIq
Ci13ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdHIxKFdlYktpdERPTVRlc3RJbnRlcmZh
Y2UqIHNlbGYpCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3Ry
MShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmKQogewogI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYs
IDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJD
b3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hh
ciogcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFsOjpzdHIxKGl0ZW0p
KTsKKyAgICBnY2hhciogcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxTdHIxKGl0ZW0pKTsKICAgICByZXR1cm4gcmVzOwogI2Vsc2UKICAgICBy
ZXR1cm4gTlVMTDsKQEAgLTY3LDEzICs2NywxMyBAQCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNl
X2dldF9zdHIxKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpCiB9CiAKIGdjaGFyKgotd2Vi
a2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBz
ZWxmKQord2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjIoV2Vi
S2l0RE9NVGVzdEludGVyZmFjZSogc2VsZikKIHsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6
VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJl
cyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3RyMihpdGVtKSk7Cisg
ICAgZ2NoYXIqIHJlcyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsU3RyMihpdGVtKSk7CiAgICAgcmV0dXJuIHJlczsKICNlbHNlCiAgICAgcmV0dXJu
IE5VTEw7CkBAIC04MSw3ICs4MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N0
cjIoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZikKIH0KIAogdm9pZAotd2Via2l0X2RvbV90
ZXN0X2ludGVyZmFjZV9zZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50
YWxfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
CiB7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKQEAgLTg5LDcgKzg5LDcgQEAgd2Via2l0X2RvbV90ZXN0
X2ludGVyZmFjZV9zZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBn
Y2hhciogdmEKICAgICBXZWJDb3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKICAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWRfdmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFRlc3RT
dXBwbGVtZW50YWw6OnNldFN0cjIoaXRlbSwgY29udmVydGVkX3ZhbHVlKTsKKyAgICBUZXN0U3Vw
cGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKGl0ZW0sIGNvbnZlcnRlZF92YWx1ZSk7CiAj
ZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiB9
CiAKQEAgLTExMiwxMCArMTEyLDEwIEBAIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmUoV2Vi
S2l0RE9NVGVzdEludGVyZmFjZSogcmVxdWVzdCkKIGVudW0gewogICAgIFBST1BfMCwKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBQUk9QX1NUUjEs
CisgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RSMSwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBQUk9QX1NUUjIsCisgICAgUFJPUF9TVVBQTEVNRU5U
QUxfU1RSMiwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikgKi8KIH07CiAKQEAgLTE0Myw5ICsxNDMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X3Rlc3RfaW50ZXJmYWNlX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3Bf
aQogICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmVTZWxmID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwogICAgIHN3aXRjaCAocHJvcF9pZCkgewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotICAgIGNhc2UgUFJPUF9TVFIyOgorICAgIGNhc2UgUFJPUF9T
VVBQTEVNRU5UQUxfU1RSMjoKICAgICB7Ci0gICAgICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN0
cjIoY29yZVNlbGYsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFs
dWUpKSk7CisgICAgICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjIoY29y
ZVNlbGYsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikgKi8KQEAgLTE2MywxNiArMTYzLDE2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pCiAgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZVNlbGYgPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CiAgICAgc3dpdGNoIChwcm9wX2lkKSB7CiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgY2FzZSBQUk9QX1NUUjE6CisgICAg
Y2FzZSBQUk9QX1NVUFBMRU1FTlRBTF9TVFIxOgogICAgIHsKLSAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFsOjpzdHIx
KGNvcmVTZWxmKSkpOworICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0
VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoY29yZVNlbGYp
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLSAgICBjYXNlIFBST1BfU1RSMjoKKyAgICBjYXNlIFBST1BfU1VQ
UExFTUVOVEFMX1NUUjI6CiAgICAgewotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVl
LCBjb252ZXJ0VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN0cjIoY29yZVNlbGYpKSk7
CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJpbmco
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihjb3JlU2VsZikpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKSAqLwpAQCAtMjAwLDE5ICsyMDAsMTkgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV90ZXN0X2ludGVyZmFjZV9jbGFzc19pbml0KFdlYktpdERPTVRlc3RJbnRlcmZhY2VDbGFzcyog
cmUKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVFIxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3RyMSIsIC8qIG5hbWUgKi8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRlc3RfaW50ZXJmYWNlX3N0cjEiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVh
ZC1vbmx5ICBnY2hhciogVGVzdEludGVyZmFjZS5zdHIxIiwgLyogbG9uZ2VyIC0gY291bGQgZG8g
d2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX1NVUFBMRU1FTlRBTF9TVFIxLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3VwcGxlbWVudGFsLXN0cjEi
LCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWwtc3RyMSIsIC8qIHNo
b3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJyZWFkLW9ubHkgIGdjaGFyKiBUZXN0SW50ZXJmYWNlLnN1
cHBsZW1lbnRhbC1zdHIxIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRv
YyBzdHVmZiBoZXJlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKSAqLwogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQog
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVFIyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3RyMiIsIC8qIG5hbWUg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3RfaW50ZXJmYWNlX3N0cjIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVhZC13cml0ZSAgZ2NoYXIqIFRlc3RJbnRlcmZhY2Uuc3RyMiIsIC8qIGxvbmdlciAtIGNvdWxk
IGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RSMiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInN1cHBsZW1lbnRhbC1z
dHIyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2Vfc3VwcGxlbWVudGFsLXN0cjIiLCAv
KiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2NoYXIqIFRlc3RJbnRlcmZh
Y2Uuc3VwcGxlbWVudGFsLXN0cjIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0
cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oCmlu
ZGV4IDdjMzY1MDU4YjliODQ0MTJiZWI3YmRiYzc1OGQ3MDU1YzQwZWFjZjEuLmIzNmJmYmE1YTc1
NGYxNDRmMWRjMTNkZmE3NjQwNjMzNjlhNDg5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmgKQEAgLTQ3LDI3ICs0NywyNyBAQCBXRUJLSVRfQVBJIEdUeXBlCiB3
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF90eXBlICh2b2lkKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdHIxOgorICogd2Via2l0X2RvbV90ZXN0X2ludGVy
ZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjE6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdElu
dGVyZmFjZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIGdjaGFyKgotd2Vi
a2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBz
ZWxmKTsKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIxKFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9p
bnRlcmZhY2VfZ2V0X3N0cjI6CisgKiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBw
bGVtZW50YWxfc3RyMjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0SW50ZXJmYWNlCiAgKgog
ICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgZ2NoYXIqCi13ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9zdHIyKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOword2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjIoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZSogc2VsZik7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRf
c3RyMjoKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N1cHBsZW1lbnRhbF9zdHIy
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRlcmZhY2UKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCkBAIC03NSw3ICs3NSw3IEBAIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N0
cjIoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZik7CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N0cjIoV2ViS2l0RE9NVGVzdEludGVy
ZmFjZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZh
Y2Vfc2V0X3N1cHBsZW1lbnRhbF9zdHIyKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
aW5kZXggMDcwN2M4YjEwMzM4N2MwNDA2ZTBmYTc1Yjk1NTliZTExOWYzOGQwYy4uZTY3OWVhODE2
Mzc3YTJiNmRlNzZhMGJhYzRjOGFjNzQ1MDNjOWRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
QEAgLTQ5LDE5ICs0OSwxOSBAQCBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU1Rlc3RJ
bnRlcmZhY2UpOwogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZVRh
YmxlVmFsdWVzW10gPQogewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotICAgIHsgInN0cjEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3Ry
MSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsgInN1cHBsZW1lbnRhbFN0cjEi
LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSksIChpbnRw
dHJfdCkwLCBOb0ludHJpbnNpYyB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3RyMiIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNl
U3RyMiksIChpbnRwdHJfdClzZXRKU1Rlc3RJbnRlcmZhY2VTdHIyLCBOb0ludHJpbnNpYyB9LAor
ICAgIHsgInN1cHBsZW1lbnRhbFN0cjIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiwgTm9J
bnRyaW5zaWMgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQotICAgIHsgInN0cjMiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN0cjMpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3RyMywgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICIiLCBE
b250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEludGVyZmFjZSksIChpbnRwdHJfdClzZXRKU1Rlc3RJbnRlcmZhY2UsIE5vSW50
cmluc2ljIH0sCiAjZW5kaWYKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9u
bHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAg
ICB7IDAsIDAsIDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFi
bGUgSlNUZXN0SW50ZXJmYWNlVGFibGUgPSB7IDgsIDcsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFs
dWVzLCAwIH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVRhYmxlID0g
eyA5LCA3LCBKU1Rlc3RJbnRlcmZhY2VUYWJsZVZhbHVlcywgMCB9OwogLyogSGFzaCB0YWJsZSBm
b3IgY29uc3RydWN0b3IgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CkBAIC0xODAsMzUgKzE4MCwzNSBAQCBi
b29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYwogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCi1KU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN0cjEoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK0pTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xv
dEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIFRlc3RTdXBwbGVtZW50YWw6OnN0cjEoaW1wbCkpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsU3RyMShpbXBsKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQorSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7
CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50
ZXJmYWNlKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAg
ICAgVGVzdEludGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgVGVz
dFN1cHBsZW1lbnRhbDo6c3RyMihpbXBsKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmlu
ZyhleGVjLCBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKGltcGwpKTsKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdHIzKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCitKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElk
ZW50aWZpZXImKQogewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgVGVzdEludGVy
ZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5pbXBs
KCkpOwotICAgIHJldHVybiBjYXN0ZWRUaGlzLT5zdHIzKGltcGwsIGV4ZWMpOworICAgIHJldHVy
biBjYXN0ZWRUaGlzLT4oaW1wbCwgZXhlYyk7CiB9CiAKICNlbmRpZgpAQCAtMjI5LDIxICsyMjks
MjEgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2U6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKIH0KIAogI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdHIyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit2b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBKU1Rlc3RJbnRlcmZhY2Uq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzT2JqZWN0KTsK
ICAgICBUZXN0SW50ZXJmYWNlKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdEludGVyZmFjZSo+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3RyMihpbXBsLCB1
c3RyaW5nVG9TdHJpbmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9TdHJp
bmcoZXhlYykpKTsKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKGlt
cGwsIHVzdHJpbmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50
b1N0cmluZyhleGVjKSkpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdHIzKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit2b2lkIHNl
dEpTVGVzdEludGVyZmFjZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTVGVzdEludGVyZmFjZSo+KHRoaXNPYmplY3QpOwogICAgIFRlc3RJbnRlcmZhY2Uq
IGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
LSAgICBjYXN0ZWRUaGlzLT5zZXRTdHIzKGltcGwsIGV4ZWMsIHZhbHVlKTsKKyAgICBjYXN0ZWRU
aGlzLT5zZXQoaW1wbCwgZXhlYywgdmFsdWUpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAppbmRleCA5OGI1NmQ4MDU1Yzk3ODdkODAwM2Y1NjQxY2M5NWQ4MmE4NDAyOTYzLi4yZmU5YzE3
MTI2OTI5YjEyNjdlYWE5MGI1ZTI1YjZjMjNmYzZkODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogCiAgICAgLy8g
Q3VzdG9tIGF0dHJpYnV0ZXMKLSAgICBKU0M6OkpTVmFsdWUgc3RyMyhUZXN0SW50ZXJmYWNlKiwg
SlNDOjpFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBKU0M6OkpTVmFsdWUgKFRlc3RJbnRlcmZhY2Uq
LCBKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwoKSBjb25z
dCB7IHJldHVybiBtX2ltcGw7IH0KICAgICB2b2lkIHJlbGVhc2VJbXBsKCkgeyBtX2ltcGwtPmRl
cmVmKCk7IG1faW1wbCA9IDA7IH0KIApAQCAtMTQyLDExICsxNDIsMTEgQEAgcHJvdGVjdGVkOgog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdHIxKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKLUpTQzo6
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3RyMihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwotSlNDOjpKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdHIzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CitKU0M6OkpTVmFsdWUganNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2UoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RJbnRlcmZhY2UuaAppbmRleCAyMzQyNTliNDU0MDljYTMzZTZhNzIyZDkyNzMxMGE4NmI1NTU0
MzJjLi45ZDMwYzI1OWIyOGI1MTE0OTQzNTRjODMyY2YxMjE0YjA3YmU2YzhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdEludGVyZmFjZS5oCkBAIC0yOCwxOSArMjgsMjAgQEAKIAogI2lmIFdFQktJVF9WRVJTSU9O
X01BWF9BTExPV0VEID49IFdFQktJVF9WRVJTSU9OX0xBVEVTVAogCitAY2xhc3MgRE9Nc3VwcGxl
bWVudGFsU3RyMzsKIEBjbGFzcyBOU1N0cmluZzsKIAogQGludGVyZmFjZSBET01UZXN0SW50ZXJm
YWNlIDogRE9NT2JqZWN0CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi0tIChOU1N0cmluZyAqKXN0cjE7CistIChOU1N0cmluZyAqKXN1cHBsZW1lbnRhbFN0
cjE7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLS0gKE5TU3RyaW5nICopc3RyMjsKLS0gKHZvaWQpc2V0U3RyMjooTlNTdHJpbmcgKiluZXdT
dHIyOworLSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIyOworLSAodm9pZClzZXRTdXBwbGVt
ZW50YWxTdHIyOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjI7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLS0gKE5TU3RyaW5nICop
c3RyMzsKLS0gKHZvaWQpc2V0U3RyMzooTlNTdHJpbmcgKiluZXdTdHIzOworLSAoRE9Nc3VwcGxl
bWVudGFsU3RyMyAqKTsKKy0gKHZvaWQpc2V0OihET01zdXBwbGVtZW50YWxTdHIzICopbmV3Owog
I2VuZGlmCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCmluZGV4IGY0NjljZjEwYWY4
NGY1YjliMWEyYzY5OGIxMzIxMWM3OTc5MGUxNTIuLmU5MmY3MjY1NjRjZjhkMDRlNDc4MTRlOTE1
ZWU2YTc2ZjkzM2Y3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbQpAQCAtMzksNiArMzks
NyBAQAogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01TdHlsZVNoZWV0
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVRlc3RJbnRlcmZhY2VJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9Nc3VwcGxlbWVudGFsU3RyM0ludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgogI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW1wb3J0ICJLVVJM
LmgiCkBAIC00Nyw2ICs0OCw3IEBACiAjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgogI2ltcG9ydCAi
V2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgInN1cHBsZW1lbnRhbFN0cjMuaCIKICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KIAog
I2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6VGVzdEludGVyZmFjZSo+KF9p
bnRlcm5hbCkKQEAgLTcxLDM4ICs3Myw0MCBAQAogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tIChOU1N0cmluZyAqKXN0cjEKKy0gKE5TU3RyaW5n
ICopc3VwcGxlbWVudGFsU3RyMQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBsZW1lbnRhbDo6c3RyMShJTVBMKTsKKyAgICBy
ZXR1cm4gVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMShJTVBMKTsKIH0KICNlbmRp
ZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tIChO
U1N0cmluZyAqKXN0cjIKKy0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMgogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gVGVzdFN1cHBs
ZW1lbnRhbDo6c3RyMihJTVBMKTsKKyAgICByZXR1cm4gVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxl
bWVudGFsU3RyMihJTVBMKTsKIH0KIAotLSAodm9pZClzZXRTdHIyOihOU1N0cmluZyAqKW5ld1N0
cjIKKy0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMjooTlNTdHJpbmcgKiluZXdTdXBwbGVtZW50
YWxTdHIyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IFRlc3RTdXBwbGVtZW50YWw6OnNldFN0cjIoSU1QTCwgbmV3U3RyMik7CisgICAgVGVzdFN1cHBs
ZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMihJTVBMLCBuZXdTdXBwbGVtZW50YWxTdHIyKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi0tIChOU1N0cmluZyAqKXN0cjMKKy0gKERPTXN1cHBsZW1lbnRhbFN0cjMgKikKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIFRlc3RT
dXBwbGVtZW50YWw6OnN0cjMoSU1QTCk7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihUZXN0
U3VwcGxlbWVudGFsOjooSU1QTCkpKTsKIH0KIAotLSAodm9pZClzZXRTdHIzOihOU1N0cmluZyAq
KW5ld1N0cjMKKy0gKHZvaWQpc2V0OihET01zdXBwbGVtZW50YWxTdHIzICopbmV3CiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN0cjMoSU1QTCwgbmV3U3RyMyk7CisgICAgQVNTRVJUKG5ldyk7CisKKyAgICBUZXN0
U3VwcGxlbWVudGFsOjpzZXQoSU1QTCwgY29yZShuZXcpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRh
bC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1l
bnRhbC5pZGwKaW5kZXggNDY2ZmRkNTFhOGQ2ZTc4Y2YzMzIwZWFlZWYxODZiOWNmYjI2ZmYzMi4u
NzUyMjc5ODkwN2NkMmI3OWI2YWY2YzRhOTBkNzFmZDgwNTNiOWNkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFs
LmlkbApAQCAtMzMsOCArMzMsOCBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIENvbmRpdGlvbmFs
PUNvbmRpdGlvbjExfENvbmRpdGlvbjEyLAogICAgICAgICBTdXBwbGVtZW50YWw9VGVzdEludGVy
ZmFjZQogICAgIF0gVGVzdFN1cHBsZW1lbnRhbCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc3RyMTsKLSAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBzdHIyOwotICAg
ICAgICBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgc3Ry
MzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIx
OworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjI7CisgICAgICAg
IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXJdIHN1cHBsZW1lbnRhbFN0cjM7
CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNTM1OGI1ZWNiNDkzMWI1Y2I4
MzAzYjc5MzE5NzM0YWZhYzc1ODRjNS4uYWQyZTY1ODhmNGNlZTIzNTdjOGFlNjE2YzZmNmVlYjQ4
YWY1N2RhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTQ1LDM0ICs0NSwzNCBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9CiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBzdHIxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxl
bWVudGFsU3RyMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFj
ZS5zdHIxLl9nZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1l
bnRhbFN0cjEuX2dldCIpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFj
ZTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKFRlc3RTdXBw
bGVtZW50YWw6OnN0cjEoaW1wKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKFRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbFN0cjEoaW1wKSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0
cjJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxT
dHIyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vz
c29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN0cjIu
X2dldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVudGFsU3Ry
Mi5fZ2V0Iik7CiAgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRh
bDo6c3RyMihpbXApKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsU3RyMihpbXApKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCiAKLXN0YXRpYyB2b2lkIHN0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFj
Y2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
SW50ZXJmYWNlLnN0cjIuX3NldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uu
c3VwcGxlbWVudGFsU3RyMi5fc2V0Iik7CiAgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0
SW50ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwotICAg
IFRlc3RTdXBwbGVtZW50YWw6OnNldFN0cjIoaW1wLCB2KTsKKyAgICBUZXN0U3VwcGxlbWVudGFs
OjpzZXRTdXBwbGVtZW50YWxTdHIyKGltcCwgdik7CiAgICAgcmV0dXJuOwogfQogCkBAIC04Miwx
NiArODIsMTYgQEAgc3RhdGljIHZvaWQgc3RyMkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHUKIAogc3RhdGljIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUgVGVzdEludGVyZmFjZUF0dHJzW10gPSB7CiAjaWYgRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgLy8gQXR0cmlidXRlICdzdHIxJyAoVHlw
ZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVk
QnknKQotICAgIHsic3RyMSIsIFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3RyMUF0dHJHZXR0ZXIs
IDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpE
RUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAg
Lyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMScg
KFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1l
bnRlZEJ5JykKKyAgICB7InN1cHBsZW1lbnRhbFN0cjEiLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6
OnN1cHBsZW1lbnRhbFN0cjFBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19j
YXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9w
ZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICNlbmRpZiAv
LyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICAvLyBBdHRyaWJ1dGUgJ3N0
cjInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ29uZGl0aW9uYWwgSW1wbGVtZW50ZWRC
eScpCi0gICAgeyJzdHIyIiwgVGVzdEludGVyZmFjZUludGVybmFsOjpzdHIyQXR0ckdldHRlciwg
VGVzdEludGVyZmFjZUludGVybmFsOjpzdHIyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisg
ICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxTdHIyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQorICAgIHsic3VwcGxlbWVudGFsU3Ry
MiIsIFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJHZXR0ZXIsIFRl
c3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJTZXR0ZXIsIDAgLyogbm8g
ZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3Rh
dGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFu
Y2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAg
IC8vIEF0dHJpYnV0ZSAnc3RyMycgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDdXN0b21T
ZXR0ZXIgQ3VzdG9tR2V0dGVyIENvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3Ry
MyIsIFY4VGVzdFN1cHBsZW1lbnRhbDo6c3RyM0FjY2Vzc29yR2V0dGVyLCBWOFRlc3RTdXBwbGVt
ZW50YWw6OnN0cjNBY2Nlc3NvclNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmli
dXRlICcnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ3VzdG9tU2V0dGVyIEN1c3RvbUdl
dHRlciBDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKKyAgICB7IiIsIFY4VGVzdFN1cHBsZW1l
bnRhbDo6QWNjZXNzb3JHZXR0ZXIsIFY4VGVzdFN1cHBsZW1lbnRhbDo6QWNjZXNzb3JTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121804</attachid>
            <date>2012-01-10 00:12:08 -0800</date>
            <delta_ts>2012-01-10 15:35:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75942-20120110171207.patch</filename>
            <type>text/plain</type>
            <size>28737</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE3NzVlNTc4NTc0OWYy
NWNiMzljMTU1ZmY3NjE5ZGNhN2I1M2M4Ni4uZmU5M2U1NjhkMjk3OTdiNTYwZDM1NjlhY2U2MDM0
N2U1ZDQ2OWRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAxLTEwICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVmYWN0b3Jpbmdd
IFJlbmFtZSBhdHRyaWJ1dGVzIGluIFRlc3RTdXBwbGVtZW50YWwuaWRsIHRvIGNsYXJpZnkKKyAg
ICAgICAgdGhhdCB0aGV5IGFyZSBzdXBwbGVtZW50YWwgYXR0cmlidXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGp1c3QgcmVuYW1l
cyBhdHRyaWJ1dGVzIGluIFRlc3RTdXBwbGVtZW50YWwuaWRsCisgICAgICAgIHRvIG1ha2UgaXQg
ZWFzeSB0byBmaW5kIGluIHtKUyxWOCxXZWJLaXRET00sRE9NLFdlYkRPTX1UZXN0SW50ZXJmYWNl
LmNwcAorICAgICAgICB3aGljaCBhdHRyaWJ1dGVzIG9yaWdpbmF0ZSBmcm9tIFRlc3RTdXBwbGVt
ZW50YWwuaWRsLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVt
ZW50YWwuaWRsOiBKdXN0IHJlbmFtZWQgdGhyZWUgYXR0cmlidXRlcy4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5jcHA6IFVwZGF0ZWQg
dGhlIHRlc3QgcmVzdWx0LgorICAgICAgICAoV2ViRE9NVGVzdEludGVyZmFjZTo6c3VwcGxlbWVu
dGFsU3RyMSk6CisgICAgICAgIChXZWJET01UZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIy
KToKKyAgICAgICAgKFdlYkRPTVRlc3RJbnRlcmZhY2U6OnNldFN1cHBsZW1lbnRhbFN0cjIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdEludGVyZmFjZS5o
OiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmNwcDogRGl0dG8uCisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfaW50
ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3RyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3RyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50YWxfc3RyMik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3RfaW50ZXJmYWNlX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfaW50ZXJm
YWNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmg6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRl
cmZhY2UubW06IERpdHRvLgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRh
bFN0cjFdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxTdHIyXSk6
CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc2V0U3VwcGxlbWVudGFsU3RyMjpdKToKKyAg
ICAgICAgKC1bRE9NVGVzdEludGVyZmFjZSBdKToKKyAgICAgICAgKC1bRE9NVGVzdEludGVyZmFj
ZSBzZXQ6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVy
ZmFjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZUludGVybmFs
OjpzdXBwbGVtZW50YWxTdHIxQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0SW50
ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0cjJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJTZXR0ZXIp
OgorCiAyMDEyLTAxLTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA0NTA3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0SW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdEludGVyZmFjZS5jcHAKaW5kZXggZDYxMjEyMTA5N2U0YzNiNThhNzhlMjA0YTI0ODc3
NGVjYTcxNWVkYy4uNWIxNmVkOTMwMjZhMTAyNzk2YWZmODc4MzBjNDU4YzkyYjk5MzdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuY3BwCkBAIC03OSwzMCArNzksMzAgQEAgV2ViRE9N
VGVzdEludGVyZmFjZTo6fldlYkRPTVRlc3RJbnRlcmZhY2UoKQogfQogCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1XZWJET01TdHJpbmcgV2ViRE9NVGVz
dEludGVyZmFjZTo6c3RyMSgpIGNvbnN0CitXZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFj
ZTo6c3VwcGxlbWVudGFsU3RyMSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAg
IHJldHVybiBXZWJET01TdHJpbmcoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBX
VEY6OlN0cmluZyY+KFRlc3RTdXBwbGVtZW50YWw6OnN0cjEoaW1wbCgpKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxl
bWVudGFsU3RyMShpbXBsKCkpKTsKIH0KIAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1XZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFj
ZTo6c3RyMigpIGNvbnN0CitXZWJET01TdHJpbmcgV2ViRE9NVGVzdEludGVyZmFjZTo6c3VwcGxl
bWVudGFsU3RyMigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiBX
ZWJET01TdHJpbmcoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXVEY6OlN0cmlu
ZyY+KFRlc3RTdXBwbGVtZW50YWw6OnN0cjIoaW1wbCgpKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3Ry
MihpbXBsKCkpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0SW50ZXJmYWNlOjpzZXRTdHIyKGNvbnN0
IFdlYkRPTVN0cmluZyYgbmV3U3RyMikKK3ZvaWQgV2ViRE9NVGVzdEludGVyZmFjZTo6c2V0U3Vw
cGxlbWVudGFsU3RyMihjb25zdCBXZWJET01TdHJpbmcmIG5ld1N1cHBsZW1lbnRhbFN0cjIpCiB7
CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlc3RTdXBwbGVtZW50
YWw6OnNldFN0cjIoaW1wbCgpLCBuZXdTdHIyKTsKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRT
dXBwbGVtZW50YWxTdHIyKGltcGwoKSwgbmV3U3VwcGxlbWVudGFsU3RyMik7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaAppbmRleCA1YWEwM2M3OTUwOThjMjc0YWY2NzBj
MzQ3MDUxODc4MmJiMTZlMTZjLi5jYmY1Yzg2MGZhZTU5NDE1MjMxYzhmODljYWY3YmRhMDNjMTAy
MDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RJbnRlcmZhY2UuaApAQCAtNDIsMTEgKzQyLDExIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJET01UZXN0SW50ZXJmYWNlKCk7CiAKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBXZWJET01TdHJpbmcgc3Ry
MSgpIGNvbnN0OworICAgIFdlYkRPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIxKCkgY29uc3Q7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAg
ICBXZWJET01TdHJpbmcgc3RyMigpIGNvbnN0OwotICAgIHZvaWQgc2V0U3RyMihjb25zdCBXZWJE
T01TdHJpbmcmKTsKKyAgICBXZWJET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMigpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U3VwcGxlbWVudGFsU3RyMihjb25zdCBXZWJET01TdHJpbmcmKTsKICNlbmRp
ZgogCiAgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSogaW1wbCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAppbmRleCA1ZjhmYWZlZDMxNjI1YmQy
YWMwZGE2ZDFhNDZmZmQ2Mjg5ZjQ3MWMyLi4wYjA4MTVmMWY1ZWMzMDJlODRiYTQxMTMwY2RjYmQ3
OGJmOGY0NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNw
cApAQCAtNTMsMTMgKzUzLDEzIEBAIFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIGtpdChXZWJDb3Jl
OjpUZXN0SW50ZXJmYWNlKiBvYmopCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQgLy8KIAogZ2NoYXIq
Ci13ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdHIxKFdlYktpdERPTVRlc3RJbnRlcmZh
Y2UqIHNlbGYpCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBwbGVtZW50YWxfc3Ry
MShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmKQogewogI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYs
IDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJD
b3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hh
ciogcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFsOjpzdHIxKGl0ZW0p
KTsKKyAgICBnY2hhciogcmVzID0gY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxTdHIxKGl0ZW0pKTsKICAgICByZXR1cm4gcmVzOwogI2Vsc2UKICAgICBy
ZXR1cm4gTlVMTDsKQEAgLTY3LDEzICs2NywxMyBAQCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNl
X2dldF9zdHIxKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpCiB9CiAKIGdjaGFyKgotd2Vi
a2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBz
ZWxmKQord2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjIoV2Vi
S2l0RE9NVGVzdEludGVyZmFjZSogc2VsZikKIHsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6
VGVzdEludGVyZmFjZSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJl
cyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3RyMihpdGVtKSk7Cisg
ICAgZ2NoYXIqIHJlcyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsU3RyMihpdGVtKSk7CiAgICAgcmV0dXJuIHJlczsKICNlbHNlCiAgICAgcmV0dXJu
IE5VTEw7CkBAIC04MSw3ICs4MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N0
cjIoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZikKIH0KIAogdm9pZAotd2Via2l0X2RvbV90
ZXN0X2ludGVyZmFjZV9zZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpCit3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX3NldF9zdXBwbGVtZW50
YWxfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
CiB7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKQEAgLTg5LDcgKzg5LDcgQEAgd2Via2l0X2RvbV90ZXN0
X2ludGVyZmFjZV9zZXRfc3RyMihXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBzZWxmLCBjb25zdCBn
Y2hhciogdmEKICAgICBXZWJDb3JlOjpUZXN0SW50ZXJmYWNlICogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKICAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWRfdmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFRlc3RT
dXBwbGVtZW50YWw6OnNldFN0cjIoaXRlbSwgY29udmVydGVkX3ZhbHVlKTsKKyAgICBUZXN0U3Vw
cGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKGl0ZW0sIGNvbnZlcnRlZF92YWx1ZSk7CiAj
ZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpICovCiB9
CiAKQEAgLTExMiwxMCArMTEyLDEwIEBAIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmUoV2Vi
S2l0RE9NVGVzdEludGVyZmFjZSogcmVxdWVzdCkKIGVudW0gewogICAgIFBST1BfMCwKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBQUk9QX1NUUjEs
CisgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RSMSwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKLSAgICBQUk9QX1NUUjIsCisgICAgUFJPUF9TVVBQTEVNRU5U
QUxfU1RSMiwKICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikgKi8KIH07CiAKQEAgLTE0Myw5ICsxNDMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X3Rlc3RfaW50ZXJmYWNlX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3Bf
aQogICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmVTZWxmID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwogICAgIHN3aXRjaCAocHJvcF9pZCkgewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQotICAgIGNhc2UgUFJPUF9TVFIyOgorICAgIGNhc2UgUFJPUF9T
VVBQTEVNRU5UQUxfU1RSMjoKICAgICB7Ci0gICAgICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN0
cjIoY29yZVNlbGYsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFs
dWUpKSk7CisgICAgICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjIoY29y
ZVNlbGYsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikgKi8KQEAgLTE2MywxNiArMTYzLDE2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pCiAgICAgV2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZVNlbGYgPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CiAgICAgc3dpdGNoIChwcm9wX2lkKSB7CiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgY2FzZSBQUk9QX1NUUjE6CisgICAg
Y2FzZSBQUk9QX1NVUFBMRU1FTlRBTF9TVFIxOgogICAgIHsKLSAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhUZXN0U3VwcGxlbWVudGFsOjpzdHIx
KGNvcmVTZWxmKSkpOworICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0
VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoY29yZVNlbGYp
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikgKi8KICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLSAgICBjYXNlIFBST1BfU1RSMjoKKyAgICBjYXNlIFBST1BfU1VQ
UExFTUVOVEFMX1NUUjI6CiAgICAgewotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVl
LCBjb252ZXJ0VG9VVEY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN0cjIoY29yZVNlbGYpKSk7
CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJpbmco
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihjb3JlU2VsZikpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKSAqLwpAQCAtMjAwLDE5ICsyMDAsMTkgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV90ZXN0X2ludGVyZmFjZV9jbGFzc19pbml0KFdlYktpdERPTVRlc3RJbnRlcmZhY2VDbGFzcyog
cmUKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVFIxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3RyMSIsIC8qIG5hbWUgKi8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRlc3RfaW50ZXJmYWNlX3N0cjEiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVh
ZC1vbmx5ICBnY2hhciogVGVzdEludGVyZmFjZS5zdHIxIiwgLyogbG9uZ2VyIC0gY291bGQgZG8g
d2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX1NVUFBMRU1FTlRBTF9TVFIxLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3VwcGxlbWVudGFsLXN0cjEi
LCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0X2ludGVyZmFjZV9zdXBwbGVtZW50YWwtc3RyMSIsIC8qIHNo
b3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJyZWFkLW9ubHkgIGdjaGFyKiBUZXN0SW50ZXJmYWNlLnN1
cHBsZW1lbnRhbC1zdHIxIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRv
YyBzdHVmZiBoZXJlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKSAqLwogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQog
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TVFIyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic3RyMiIsIC8qIG5hbWUg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3RfaW50ZXJmYWNlX3N0cjIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVhZC13cml0ZSAgZ2NoYXIqIFRlc3RJbnRlcmZhY2Uuc3RyMiIsIC8qIGxvbmdlciAtIGNvdWxk
IGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJPUF9TVVBQTEVNRU5UQUxfU1RSMiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInN1cHBsZW1lbnRhbC1z
dHIyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdF9pbnRlcmZhY2Vfc3VwcGxlbWVudGFsLXN0cjIiLCAv
KiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2NoYXIqIFRlc3RJbnRlcmZh
Y2Uuc3VwcGxlbWVudGFsLXN0cjIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0
cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOwogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oCmlu
ZGV4IDdjMzY1MDU4YjliODQ0MTJiZWI3YmRiYzc1OGQ3MDU1YzQwZWFjZjEuLmIzNmJmYmE1YTc1
NGYxNDRmMWRjMTNkZmE3NjQwNjMzNjlhNDg5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmgKQEAgLTQ3LDI3ICs0NywyNyBAQCBXRUJLSVRfQVBJIEdUeXBlCiB3
ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF90eXBlICh2b2lkKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdHIxOgorICogd2Via2l0X2RvbV90ZXN0X2ludGVy
ZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjE6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdElu
dGVyZmFjZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIGdjaGFyKgotd2Vi
a2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3RyMShXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBz
ZWxmKTsKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N1cHBsZW1lbnRhbF9zdHIxKFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9p
bnRlcmZhY2VfZ2V0X3N0cjI6CisgKiB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9zdXBw
bGVtZW50YWxfc3RyMjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0SW50ZXJmYWNlCiAgKgog
ICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgZ2NoYXIqCi13ZWJraXRfZG9tX3Rlc3Rf
aW50ZXJmYWNlX2dldF9zdHIyKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYpOword2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfc3VwcGxlbWVudGFsX3N0cjIoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZSogc2VsZik7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRf
c3RyMjoKKyAqIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N1cHBsZW1lbnRhbF9zdHIy
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RJbnRlcmZhY2UKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCkBAIC03NSw3ICs3NSw3IEBAIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZ2V0X3N0
cjIoV2ViS2l0RE9NVGVzdEludGVyZmFjZSogc2VsZik7CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2Vfc2V0X3N0cjIoV2ViS2l0RE9NVGVzdEludGVy
ZmFjZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9pbnRlcmZh
Y2Vfc2V0X3N1cHBsZW1lbnRhbF9zdHIyKFdlYktpdERPTVRlc3RJbnRlcmZhY2UqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
aW5kZXggMDcwN2M4YjEwMzM4N2MwNDA2ZTBmYTc1Yjk1NTliZTExOWYzOGQwYy4uYzc3N2RhOGU0
ZmYyNWQ3ZWNmN2U0ODBlMTc0ZmJhZjhiZjNlNmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
QEAgLTQ5LDE5ICs0OSwxOSBAQCBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU1Rlc3RJ
bnRlcmZhY2UpOwogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZVRh
YmxlVmFsdWVzW10gPQogewogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotICAgIHsgInN0cjEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3Ry
MSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsgInN1cHBsZW1lbnRhbFN0cjEi
LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSksIChpbnRw
dHJfdCkwLCBOb0ludHJpbnNpYyB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3RyMiIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNl
U3RyMiksIChpbnRwdHJfdClzZXRKU1Rlc3RJbnRlcmZhY2VTdHIyLCBOb0ludHJpbnNpYyB9LAor
ICAgIHsgInN1cHBsZW1lbnRhbFN0cjIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiwgTm9J
bnRyaW5zaWMgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQotICAgIHsgInN0cjMiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN0cjMpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0SW50ZXJmYWNlU3RyMywgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdXBw
bGVtZW50YWxTdHIzIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKSwgKGlu
dHB0cl90KXNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMsIE5vSW50cmluc2ljIH0s
CiAjZW5kaWYKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7IDAsIDAs
IDAsIDAsIE5vSW50cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0
SW50ZXJmYWNlVGFibGUgPSB7IDgsIDcsIEpTVGVzdEludGVyZmFjZVRhYmxlVmFsdWVzLCAwIH07
CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEludGVyZmFjZVRhYmxlID0geyA5LCA3LCBK
U1Rlc3RJbnRlcmZhY2VUYWJsZVZhbHVlcywgMCB9OwogLyogSGFzaCB0YWJsZSBmb3IgY29uc3Ry
dWN0b3IgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CkBAIC0xODAsMzUgKzE4MCwzNSBAQCBib29sIEpTVGVz
dEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYwogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi1KU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN0cjEoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK0pTVmFsdWUganNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzU3RyaW5nKGV4ZWMsIFRlc3RTdXBwbGVtZW50YWw6OnN0cjEoaW1wbCkpOworICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFs
U3RyMShpbXBsKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTVmFsdWUganNUZXN0SW50
ZXJmYWNlU3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQorSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgSlNU
ZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
YXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdElu
dGVyZmFjZSogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RJbnRlcmZhY2UqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgVGVzdFN1cHBsZW1l
bnRhbDo6c3RyMihpbXBsKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZyhleGVjLCBU
ZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKGltcGwpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQotSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdHIzKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCitKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBj
b25zdCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIFRl
c3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICByZXR1cm4gY2FzdGVkVGhpcy0+c3RyMyhpbXBsLCBleGVjKTsKKyAg
ICByZXR1cm4gY2FzdGVkVGhpcy0+c3VwcGxlbWVudGFsU3RyMyhpbXBsLCBleGVjKTsKIH0KIAog
I2VuZGlmCkBAIC0yMjksMjEgKzIyOSwyMSBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZQogfQog
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNl
dEpTVGVzdEludGVyZmFjZVN0cjIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdElu
dGVyZmFjZSo+KHRoaXNPYmplY3QpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBUZXN0U3VwcGxl
bWVudGFsOjpzZXRTdHIyKGltcGwsIHVzdHJpbmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBV
U3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKSkpOworICAgIFRlc3RTdXBwbGVtZW50YWw6
OnNldFN1cHBsZW1lbnRhbFN0cjIoaW1wbCwgdXN0cmluZ1RvU3RyaW5nKHZhbHVlLmlzRW1wdHko
KSA/IFVTdHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpT
VGVzdEludGVyZmFjZVN0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVy
ZmFjZSo+KHRoaXNPYmplY3QpOwogICAgIFRlc3RJbnRlcmZhY2UqIGltcGwgPSBzdGF0aWNfY2Fz
dDxUZXN0SW50ZXJmYWNlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBjYXN0ZWRUaGlzLT5z
ZXRTdHIzKGltcGwsIGV4ZWMsIHZhbHVlKTsKKyAgICBjYXN0ZWRUaGlzLT5zZXRTdXBwbGVtZW50
YWxTdHIzKGltcGwsIGV4ZWMsIHZhbHVlKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgK
aW5kZXggOThiNTZkODA1NWM5Nzg3ZDgwMDNmNTY0MWNjOTVkODJhODQwMjk2My4uNjllNTRjZWY1
OTAyODUwYTNlNTA1Y2U5NjA1MDg0OTcyOGYxZDk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAt
NTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAgIC8vIEN1
c3RvbSBhdHRyaWJ1dGVzCi0gICAgSlNDOjpKU1ZhbHVlIHN0cjMoVGVzdEludGVyZmFjZSosIEpT
Qzo6RXhlY1N0YXRlKikgY29uc3Q7CisgICAgSlNDOjpKU1ZhbHVlIHN1cHBsZW1lbnRhbFN0cjMo
VGVzdEludGVyZmFjZSosIEpTQzo6RXhlY1N0YXRlKikgY29uc3Q7CiAgICAgVGVzdEludGVyZmFj
ZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbDsgfQogICAgIHZvaWQgcmVsZWFzZUltcGwo
KSB7IG1faW1wbC0+ZGVyZWYoKTsgbV9pbXBsID0gMDsgfQogCkBAIC0xNDIsMTEgKzE0MiwxMSBA
QCBwcm90ZWN0ZWQ6CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwotSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN0cjIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwotdm9pZCBzZXRKU1Rlc3RJ
bnRlcmZhY2VTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7Ci1KU0M6OkpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Ci12b2lkIHNldEpTVGVzdEludGVy
ZmFjZVN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsK
K0pTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK0pTQzo6SlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpT
VmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9p
ZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNl
LmgKaW5kZXggMjM0MjU5YjQ1NDA5Y2EzM2U2YTcyMmQ5MjczMTBhODZiNTU1NDMyYy4uYTM2NTVj
MjA3YjM4NWFiMTRjNjhjYzJlODk2NmIxODZjMDEyYjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZh
Y2UuaApAQCAtMzIsMTUgKzMyLDE1IEBACiAKIEBpbnRlcmZhY2UgRE9NVGVzdEludGVyZmFjZSA6
IERPTU9iamVjdAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQotLSAoTlNTdHJpbmcgKilzdHIxOworLSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIxOwog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0t
IChOU1N0cmluZyAqKXN0cjI7Ci0tICh2b2lkKXNldFN0cjI6KE5TU3RyaW5nICopbmV3U3RyMjsK
Ky0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3RyMjsKKy0gKHZvaWQpc2V0U3VwcGxlbWVudGFs
U3RyMjooTlNTdHJpbmcgKiluZXdTdXBwbGVtZW50YWxTdHIyOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0tIChOU1N0cmluZyAqKXN0cjM7
Ci0tICh2b2lkKXNldFN0cjM6KE5TU3RyaW5nICopbmV3U3RyMzsKKy0gKE5TU3RyaW5nICopc3Vw
cGxlbWVudGFsU3RyMzsKKy0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKilu
ZXdTdXBwbGVtZW50YWxTdHIzOwogI2VuZGlmCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNl
Lm1tCmluZGV4IGY0NjljZjEwYWY4NGY1YjliMWEyYzY5OGIxMzIxMWM3OTc5MGUxNTIuLmZhZjVh
OTM3MDZjMjAxZDQ1NTNiNzcxMjBiMmFkZDhkM2UzZDMxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVy
ZmFjZS5tbQpAQCAtNzEsMzggKzcxLDM4IEBACiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLS0gKE5TU3RyaW5nICopc3RyMQorLSAoTlNTdHJpbmcg
KilzdXBwbGVtZW50YWxTdHIxCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIHJldHVybiBUZXN0U3VwcGxlbWVudGFsOjpzdHIxKElNUEwpOworICAgIHJl
dHVybiBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIxKElNUEwpOwogfQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLS0gKE5T
U3RyaW5nICopc3RyMgorLSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIyCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBUZXN0U3VwcGxl
bWVudGFsOjpzdHIyKElNUEwpOworICAgIHJldHVybiBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVt
ZW50YWxTdHIyKElNUEwpOwogfQogCi0tICh2b2lkKXNldFN0cjI6KE5TU3RyaW5nICopbmV3U3Ry
MgorLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIyOihOU1N0cmluZyAqKW5ld1N1cHBsZW1lbnRh
bFN0cjIKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3RyMihJTVBMLCBuZXdTdHIyKTsKKyAgICBUZXN0U3VwcGxl
bWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIyKElNUEwsIG5ld1N1cHBsZW1lbnRhbFN0cjIpOwog
fQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLS0gKE5TU3RyaW5nICopc3RyMworLSAoTlNTdHJpbmcgKilzdXBwbGVtZW50YWxTdHIzCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBU
ZXN0U3VwcGxlbWVudGFsOjpzdHIzKElNUEwpOworICAgIHJldHVybiBUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxTdHIzKElNUEwpOwogfQogCi0tICh2b2lkKXNldFN0cjM6KE5TU3RyaW5n
ICopbmV3U3RyMworLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIzOihOU1N0cmluZyAqKW5ld1N1
cHBsZW1lbnRhbFN0cjMKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3RyMyhJTVBMLCBuZXdTdHIzKTsKKyAgICBU
ZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxTdHIzKElNUEwsIG5ld1N1cHBsZW1lbnRh
bFN0cjMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbAppbmRleCA0NjZmZGQ1MWE4ZDZl
NzhjZjMzMjBlYWVlZjE4NmI5Y2ZiMjZmZjMyLi5jNDQ0NDg0ZTcyZjRjNjVmNjUyZDZjY2UyNjBi
YTExNDc0YjM4MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCkBAIC0zMyw4ICszMyw4IEBAIG1vZHVs
ZSB0ZXN0IHsKICAgICAgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMTF8Q29uZGl0aW9uMTIsCiAg
ICAgICAgIFN1cHBsZW1lbnRhbD1UZXN0SW50ZXJmYWNlCiAgICAgXSBUZXN0U3VwcGxlbWVudGFs
IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdHIxOwotICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHN0cjI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVy
LCBDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBzdHIzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjE7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgc3VwcGxlbWVudGFsU3RyMjsKKyAgICAgICAgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXIsIEN1
c3RvbVNldHRlcl0gRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjM7CiAgICAgfTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRl
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHAKaW5kZXggNTM1OGI1ZWNiNDkzMWI1Y2I4MzAzYjc5MzE5NzM0YWZhYzc1
ODRjNS4uZWQ3YTFhMzllNWE1NTI5N2ZjZTk3Y2U2YTEwNGUyNDUzMjIxNWE4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHAKQEAgLTQ1LDM0ICs0NSwzNCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
dm9pZCBWOF9VU0UoVCkgeyB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHIxQXR0ckdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3VwcGxlbWVudGFsU3RyMUF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5zdHIxLl9nZXQiKTsKKyAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbFN0cjEuX2dldCIpOwog
ICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN0cjEoaW1w
KSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0
cjEoaW1wKSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cjJBdHRyR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxTdHIyQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
LSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN0cjIuX2dldCIpOworICAgIElOQ19T
VEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVudGFsU3RyMi5fZ2V0Iik7CiAgICAgVGVz
dEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKLSAgICByZXR1cm4gdjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3RyMihpbXApKTsKKyAg
ICByZXR1cm4gdjhTdHJpbmcoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihpbXAp
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAK
LXN0YXRpYyB2b2lkIHN0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3N0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN0cjIuX3Nl
dCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVudGFsU3RyMi5f
c2V0Iik7CiAgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JM
T0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwotICAgIFRlc3RTdXBwbGVtZW50YWw6
OnNldFN0cjIoaW1wLCB2KTsKKyAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxT
dHIyKGltcCwgdik7CiAgICAgcmV0dXJuOwogfQogCkBAIC04MiwxNiArODIsMTYgQEAgc3RhdGlj
IHZvaWQgc3RyMkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHUKIAogc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdElu
dGVyZmFjZUF0dHJzW10gPSB7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi0gICAgLy8gQXR0cmlidXRlICdzdHIxJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJp
YnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3RyMSIs
IFRlc3RJbnRlcmZhY2VJbnRlcm5hbDo6c3RyMUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAorICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMScgKFR5cGU6ICdyZWFkb25seSBh
dHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKKyAgICB7InN1
cHBsZW1lbnRhbFN0cjEiLCBUZXN0SW50ZXJmYWNlSW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0cjFB
dHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLSAgICAvLyBBdHRyaWJ1dGUgJ3N0cjInIChUeXBlOiAnYXR0cmli
dXRlJyBFeHRBdHRyOiAnQ29uZGl0aW9uYWwgSW1wbGVtZW50ZWRCeScpCi0gICAgeyJzdHIyIiwg
VGVzdEludGVyZmFjZUludGVybmFsOjpzdHIyQXR0ckdldHRlciwgVGVzdEludGVyZmFjZUludGVy
bmFsOjpzdHIyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdz
dXBwbGVtZW50YWxTdHIyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFs
IEltcGxlbWVudGVkQnknKQorICAgIHsic3VwcGxlbWVudGFsU3RyMiIsIFRlc3RJbnRlcmZhY2VJ
bnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJHZXR0ZXIsIFRlc3RJbnRlcmZhY2VJbnRlcm5h
bDo6c3VwcGxlbWVudGFsU3RyMkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8v
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogI2lmIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIC8vIEF0dHJpYnV0ZSAnc3Ry
MycgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDdXN0b21TZXR0ZXIgQ3VzdG9tR2V0dGVy
IENvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3RyMyIsIFY4VGVzdFN1cHBsZW1l
bnRhbDo6c3RyM0FjY2Vzc29yR2V0dGVyLCBWOFRlc3RTdXBwbGVtZW50YWw6OnN0cjNBY2Nlc3Nv
clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4o
djg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25l
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxT
dHIzJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0N1c3RvbVNldHRlciBDdXN0b21HZXR0
ZXIgQ29uZGl0aW9uYWwgSW1wbGVtZW50ZWRCeScpCisgICAgeyJzdXBwbGVtZW50YWxTdHIzIiwg
VjhUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIzQWNjZXNzb3JHZXR0ZXIsIFY4VGVz
dFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyM0FjY2Vzc29yU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>