<?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>42040</bug_id>
          
          <creation_ts>2010-07-10 23:01:07 -0700</creation_ts>
          <short_desc>Enhance content attribute reflection for URL attributes, including adding a non-empty option</short_desc>
          <delta_ts>2011-01-24 07:41:23 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41077</blocked>
    
    <blocked>42001</blocked>
    
    <blocked>42087</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>ademar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>249597</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-10 23:01:07 -0700</bug_when>
    <thetext>Enhance content attribute reflection for URL attributes, including adding a non-empty option</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249599</commentid>
    <comment_count>1</comment_count>
      <attachid>61174</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-10 23:18:33 -0700</bug_when>
    <thetext>Created attachment 61174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249603</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-10 23:55:10 -0700</bug_when>
    <thetext>Committed r63057: &lt;http://trac.webkit.org/changeset/63057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339004</commentid>
    <comment_count>3</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-24 07:41:23 -0800</bug_when>
    <thetext>Revision r63057 cherry-picked into qtwebkit-2.2 with commit 8e7daed &lt;http://gitorious.org/webkit/qtwebkit/commit/8e7daed&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61174</attachid>
            <date>2010-07-10 23:18:33 -0700</date>
            <delta_ts>2010-07-10 23:30:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42040-20100710231831.patch</filename>
            <type>text/plain</type>
            <size>60700</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzA1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTggQEAKKzIwMTAtMDctMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFu
Y2UgY29udGVudCBhdHRyaWJ1dGUgcmVmbGVjdGlvbiBmb3IgVVJMIGF0dHJpYnV0ZXMsIGluY2x1
ZGluZyBhZGRpbmcgYSBub24tZW1wdHkgb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjA0MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL1VS
TC1hdHRyaWJ1dGUtcmVmbGVjdGlvbi5odG1sCisKKyAgICAgICAgQ2hhbmdlZCBzeW50YXggZnJv
bSBbUmVmbGVjdFVSTF0gdG8gW1JlZmxlY3QsVVJMXSBhbmQgYWxzbyBhZGRlZCBzdXBwb3J0IGZv
cgorICAgICAgICBhIG5ldyBvcHRpb24sIE5vbkVtcHR5LCB3aGljaCBpbXBsZW1lbnRzIHRoZSBu
b24tZW1wdHkgVVJMIGNvbmNlcHQgZnJvbSB0aGUKKyAgICAgICAgSFRNTDUgc3BlY2lmaWNhdGlv
bi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbTogQ2hhbmdl
ZCBjb2RlIHRvIGV4cGVjdCB0aGUgUmVmbGVjdCBhbmQgVVJMCisgICAgICAgIGV4dGVuZGVkIGF0
dHJpYnV0ZXMgdG8gY29tZSBpbiBzZXBhcmF0ZWx5LiBUaGUgVVJMIG9uZSBzaW1wbHkgbWVhbnMg
InRoZSBzdHJpbmcKKyAgICAgICAgb2YgdGhpcyBhdHRyaWJ1dGUgaXMgYSBVUkwiLCBzaW5jZSB3
ZSBkb24ndCBoYXZlIGEgZGlzdGluY3QgdHlwZSBmb3IgVVJMLiBBbHNvCisgICAgICAgIGFkZGVk
IGEgbmV3IE5vbkVtcHR5IGV4dGVuZGVkIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBSZW1vdmVkIG5vdy11bm5lZWRlZCBjb2RlIHRv
IGhhbmRsZSBSZWZsZWN0VVJMLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtOiBEaXR0by4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5jcHA6IFVwZGF0ZWQgZm9yIG5ldyBhZGRlZCB0ZXN0IGNhc2VzCisgICAg
ICAgIGFuZCB0aGUgZml4IEkgbWFkZSB0byB0aGUgcmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciB0ZXN0
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBE
aXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOiBEaXR0by4gQWxzbywgZm9yIHNvbWUgcmVhc29u
IHRoZSBWOAorICAgICAgICBiaW5kaWcgd3JpdGVzIG91dCB0aGUga2V5d29yZHMgaW50byB0aGUg
Z2VuZXJhdGVkIGZpbGUgYXMgY29tbWVudHMsIHNvIHRoZSBrZXl3b3JkCisgICAgICAgIGNoYW5n
ZSBoYWQgYSBkaXJlY3QgZWZmZmVjdCBvbiB0aGUgb3V0cHV0IGZpbGUuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IENoYW5nZWQgdGhlIHRlc3QgY2FzZXMg
Zm9yIFJlZmxlY3RVUkwgdG8gdXNlCisgICAgICAgIHRoZSBuZXcgc3ludGF4LiBBZGRlZCB0ZXN0
IGNhc2VzIGZvciBOb25FbXB0eS4gRml4ZWQgdGhlIG5hbWUgb2YKKyAgICAgICAgcmVmbGVjdGVk
Tm9uRW1wdHlVUkxBdHRyLCB3aGljaCBhY2NpZGVudGFsbHkgd2FzIHJlcGVhdGluZyByZWZsZWN0
ZWRVUkxBdHRyCisgICAgICAgIGluc3RlYWQ7IG5ldmVyIG5vdGljZWQgYmVjYXVzZSB3ZSBuZXZl
ciBjb21waWxlIHRoZSB0ZXN0IG91dHB1dC4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKTogQWRk
ZWQuIEZvciB1c2UgYnkgTm9uRW1wdHkgYW5kIGFsc28KKyAgICAgICAgYnkgYW55IGNvZGUgdGhh
dCB3YW50cyB0byBpbXBsZW1lbnQgdGhlIG5vbi1lbXB0eSBVUkwgY29udGVudCBhdHRyaWJ1dGUg
c2VtYW50aWMuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDogRGl0dG8uCisKKyAgICAgICAgKiBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDogVXNlIFJlZmxlY3QsVVJMIGluc3RlYWQgb2YgUmVm
bGVjdFVSTC4KKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5pZGw6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwv
SFRNTEltYWdlRWxlbWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmlkbDogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbDogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1l
bnQuaWRsOiBEaXR0by4KKwogMjAxMC0wNy0xMCAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDYzMDU2KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTMsNyArMyw3IEBACiAjCiAjIENvcHlyaWdodCAoQykgMjAwNSBOaWtvbGFzIFppbW1l
cm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWlu
aWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgotIyBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIw
MDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBtY2MuaWQuYXU+CiAjCiAjIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQwMiw4
ICs0MDIsNyBAQCBzdWIgQ29udGVudEF0dHJpYnV0ZU5hbWUKIHsKICAgICBteSAoJGdlbmVyYXRv
ciwgJGltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpID0gQF87CiAKLSAg
ICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0KLSAgICAgICAgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVSTCJ9OworICAgIG15ICRjb250ZW50
QXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3QifTsKICAgICByZXR1cm4gdW5kZWYgaWYgISRjb250ZW50QXR0cmlidXRlTmFt
ZTsKIAogICAgICRjb250ZW50QXR0cmlidXRlTmFtZSA9IGxjICRnZW5lcmF0b3ItPkF0dHJpYnV0
ZU5hbWVGb3JHZXR0ZXJBbmRTZXR0ZXIoJGF0dHJpYnV0ZSkgaWYgJGNvbnRlbnRBdHRyaWJ1dGVO
YW1lIGVxICIxIjsKQEAgLTQyNSw4ICs0MjQsMTIgQEAgc3ViIEdldHRlckV4cHJlc3Npb25QcmVm
aXgKICAgICB9CiAKICAgICBteSAkZnVuY3Rpb25OYW1lOwotICAgIGlmICgkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn0pIHsKLSAgICAgICAg
JGZ1bmN0aW9uTmFtZSA9ICJnZXRVUkxBdHRyaWJ1dGUiOworICAgIGlmICgkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVUkwifSkgeworICAgICAgICBpZiAoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9uRW1wdHkifSkgewor
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZXROb25FbXB0eVVSTEF0dHJpYnV0ZSI7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdldFVSTEF0dHJp
YnV0ZSI7CisgICAgICAgIH0KICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGUgZXEgImJvb2xlYW4iKSB7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiaGFzQXR0cmlidXRl
IjsKICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgImxvbmciKSB7
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJl
dmlzaW9uIDYzMDU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQkod29ya2luZyBjb3B5KQpAQCAtMjMyMiw3ICsyMzIyLDcgQEAgc3ViIEpTVmFsdWVUb05h
dGl2ZQogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJHZh
bHVlLnRvSW50MzIoZXhlYykpIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKIAogICAgIGlm
ICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsICR2YWx1ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyJ9IHx8ICRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJSZWZsZWN0In0gfHwgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3RVUkwifTsKKyAgICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aE51bGxD
aGVjayhleGVjLCAkdmFsdWUpIiBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q29udmVydE51bGxUb051bGxTdHJpbmcifSB8fCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVmbGVjdCJ9OwogICAgICAgICByZXR1cm4gInZhbHVlVG9TdHJpbmdXaXRoVW5kZWZp
bmVkT3JOdWxsQ2hlY2soZXhlYywgJHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmcifTsKICAgICAgICAg
cmV0dXJuICJ1c3RyaW5nVG9TdHJpbmcoJHZhbHVlLnRvU3RyaW5nKGV4ZWMpKSI7CiAgICAgfQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZp
c2lvbiA2MzA1NikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTg2MywxMCArODYzLDkgQEAgRU5ECiAgICAgfSBlbHNlIHsK
ICAgICAgICAgbXkgJGF0dHJUeXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlKTsKICAgICAgICAgbXkgJHJlZmxlY3QgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07Ci0gICAgICAgIG15ICRyZWZsZWN0VVJM
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdFVS
TCJ9OwotICAgICAgICBpZiAoKCRyZWZsZWN0IHx8ICRyZWZsZWN0VVJMKSAmJiBJc05vZGVTdWJU
eXBlKCRkYXRhTm9kZSkgJiYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXR0clR5cGUp
KSB7CisgICAgICAgIGlmICgkcmVmbGVjdCAmJiBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgJiYg
JGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXR0clR5cGUpKSB7CiAgICAgICAgICAgICAj
IEdlbmVyYXRlIHN1cGVyLWNvbXBhY3QgY2FsbCBmb3IgcmVndWxhciBhdHRyaWJ1dGUgc2V0dGVy
OgotICAgICAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gKCRyZWZsZWN0IHx8ICRy
ZWZsZWN0VVJMKSBlcSAiMSIgPyBsYyAkYXR0ck5hbWUgOiAoJHJlZmxlY3QgfHwgJHJlZmxlY3RV
UkwpOworICAgICAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gJHJlZmxlY3QgZXEg
IjEiID8gbGMgJGF0dHJOYW1lIDogJHJlZmxlY3Q7CiAgICAgICAgICAgICBteSAkbmFtZXNwYWNl
ID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0ZU5hbWUoJGludGVyZmFjZU5h
bWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e25hbWVzcGFjZX0uaCJ9ID0gMTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgc2V0RWxlbWVudFN0cmluZ0F0dHIoaW5mbywgJHtuYW1lc3BhY2V9Ojoke2NvbnRlbnRB
dHRyaWJ1dGVOYW1lfUF0dHIsIHZhbHVlKTtcbiIpOwpAQCAtMjY3OCw3ICsyNjc3LDcgQEAgc3Vi
IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiAgICAgICAgIG15ICRtb2RlID0gIiI7CiAgICAg
ICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZyJ9KSB7CiAgICAgICAgICAgICAkbW9kZSA9ICJXaXRoVW5kZWZp
bmVkT3JOdWxsQ2hlY2siOwotICAgICAgICB9IGVsc2lmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ29udmVydE51bGxUb051bGxTdHJpbmcifSB8fCAkc2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9IHx8ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJSZWZsZWN0VVJMIn0pIHsKKyAgICAgICAgfSBlbHNpZiAoJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxsVG9OdWxsU3RyaW5nIn0gfHwgJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSkgewogICAgICAgICAgICAgJG1vZGUg
PSAiV2l0aE51bGxDaGVjayI7CiAgICAgICAgIH0KICAgICAgICAgJHR5cGUgLj0gIjwkbW9kZT4i
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlz
aW9uIDYzMDU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXN0ckFyZywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ0LDExICs0NSwxMyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHI7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyByZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZWZsZWN0ZWRCb29sZWFuQXR0cjsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsKKyAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHI7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCxOb25FbXB0eSxVUkxdIERPTVN0cmluZyByZWZs
ZWN0ZWROb25FbXB0eVVSTEF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21D
b250ZW50U3RyaW5nQXR0cl0gRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHI7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50SW50ZWdyYWxBdHRyXSBsb25nIHJlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1c3Rv
bUNvbnRlbnRCb29sZWFuQXR0cl0gYm9vbGVhbiByZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMPWN1c3RvbUNvbnRlbnRVUkxBdHRyXSBET01T
dHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1c3Rv
bUNvbnRlbnRVUkxBdHRyLFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHI7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50Tm9uRW1wdHlVUkxBdHRyLE5v
bkVtcHR5LFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cjsKIAog
ICAgICAgICAvLyBNZXRob2RzCiAgICAgICAgIHZvaWQgICAgdm9pZE1ldGhvZCgpOwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmNwcAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9D
UFAvV2ViRE9NVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsMjIgQEAg
dm9pZCBXZWJET01UZXN0T2JqOjpzZXRSZWZsZWN0ZWRVUkxBdHRyKAogICAgIGltcGwoKS0+c2V0
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIG5ld1Jl
ZmxlY3RlZFVSTEF0dHIpOwogfQogCitXZWJET01TdHJpbmcgV2ViRE9NVGVzdE9iajo6cmVmbGVj
dGVkTm9uRW1wdHlVUkxBdHRyKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAg
cmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdl
YkNvcmU6OlN0cmluZyY+KGltcGwoKS0+Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRyKSk7Cit9CisKK3ZvaWQgV2Vi
RE9NVGVzdE9iajo6c2V0UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKGNvbnN0IFdlYkRPTVN0cmlu
ZyYgbmV3UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKQoreworICAgIGlmICghaW1wbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZG5vbmVtcHR5dXJsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZE5vbkVtcHR5VVJM
QXR0cik7Cit9CisKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWRTdHJpbmdB
dHRyKCkgY29uc3QKIHsKICAgICBpZiAoIWltcGwoKSkKQEAgLTI4OCw3ICszMDQsNyBAQCB2b2lk
IFdlYkRPTVRlc3RPYmo6OnNldFJlZmxlY3RlZEN1c3RvbUJvCiAgICAgaW1wbCgpLT5zZXRCb29s
ZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRy
QXR0ciwgbmV3UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOwogfQogCi1XZWJET01TdHJpbmcg
V2ViRE9NVGVzdE9iajo6cmVmbGVjdGVkVVJMQXR0cigpIGNvbnN0CitXZWJET01TdHJpbmcgV2Vi
RE9NVGVzdE9iajo6cmVmbGVjdGVkQ3VzdG9tVVJMQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFp
bXBsKCkpCiAgICAgICAgIHJldHVybiBXZWJET01TdHJpbmcoKTsKQEAgLTI5NiwxMiArMzEyLDI4
IEBAIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWRVUkwKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6U3RyaW5nJj4oaW1wbCgpLT5nZXRVUkxBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKTsKIH0KIAot
dm9pZCBXZWJET01UZXN0T2JqOjpzZXRSZWZsZWN0ZWRVUkxBdHRyKGNvbnN0IFdlYkRPTVN0cmlu
ZyYgbmV3UmVmbGVjdGVkVVJMQXR0cikKK3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0UmVmbGVjdGVk
Q3VzdG9tVVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcmIG5ld1JlZmxlY3RlZEN1c3RvbVVSTEF0
dHIpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+
c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRy
LCBuZXdSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKTsKK30KKworV2ViRE9NU3RyaW5nIFdlYkRPTVRl
c3RPYmo6OnJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cigpIGNvbnN0Cit7CisgICAgaWYg
KCFpbXBsKCkpCisgICAgICAgIHJldHVybiBXZWJET01TdHJpbmcoKTsKKworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpTdHJpbmcmPihpbXBsKCktPmdldE5vbkVtcHR5VVJM
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudE5vbkVtcHR5VVJMQXR0
ckF0dHIpKTsKK30KKwordm9pZCBXZWJET01UZXN0T2JqOjpzZXRSZWZsZWN0ZWRDdXN0b21Ob25F
bXB0eVVSTEF0dHIoY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdSZWZsZWN0ZWRDdXN0b21Ob25FbXB0
eVVSTEF0dHIpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlt
cGwoKS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0
dHJBdHRyLCBuZXdSZWZsZWN0ZWRVUkxBdHRyKTsKKyAgICBpbXBsKCktPnNldEF0dHJpYnV0ZShX
ZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyLCBuZXdS
ZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHIpOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKSBjb25zdApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCShyZXZpc2lvbiA2MzA1NikK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgJKHdv
cmtpbmcgY29weSkKQEAgLTYzLDE0ICs2MywxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWZs
ZWN0ZWRCb29sZWFuQXR0cihib29sKTsKICAgICBXZWJET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0
cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVjdGVkVVJMQXR0cihjb25zdCBXZWJET01TdHJp
bmcmKTsKKyAgICBXZWJET01TdHJpbmcgcmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRSZWZsZWN0ZWROb25FbXB0eVVSTEF0dHIoY29uc3QgV2ViRE9NU3RyaW5n
Jik7CiAgICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHIoKSBjb25zdDsKICAgICB2
b2lkIHNldFJlZmxlY3RlZFN0cmluZ0F0dHIoY29uc3QgV2ViRE9NU3RyaW5nJik7CiAgICAgaW50
IHJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyKGludCk7CiAgICAgYm9vbCByZWZsZWN0ZWRDdXN0b21Cb29s
ZWFuQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIo
Ym9vbCk7Ci0gICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHIoKSBjb25zdDsKLSAgICB2
b2lkIHNldFJlZmxlY3RlZFVSTEF0dHIoY29uc3QgV2ViRE9NU3RyaW5nJik7CisgICAgV2ViRE9N
U3RyaW5nIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlZmxl
Y3RlZEN1c3RvbVVSTEF0dHIoY29uc3QgV2ViRE9NU3RyaW5nJik7CisgICAgV2ViRE9NU3RyaW5n
IHJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0UmVm
bGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwogICAgIGlu
dCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24oaW50KTsKICAgICBpbnQgYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBj
b25zdDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXJp
YWxpemVkX3ZhbHVlKFdlYgogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9pZGJfa2V5KFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTUlEQktleSogIGtleSkKIHsKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxm
KTsKICAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAg
ICBnX3JldHVybl9pZl9mYWlsKGtleSk7CkBAIC01NTUsNiArNTU2LDI3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3JlZmxlY3RlZF91cmxfYXQKIH0KIAogZ2NoYXIqIAord2Via2l0X2RvbV90
ZXN0X29ial9nZXRfcmVmbGVjdGVkX25vbl9lbXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnY2hhciogIHJlcyA9IGNvbnZlcnRUb1VU
RjhTdHJpbmcoaXRlbS0+Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlczsKK30KKwor
dm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX25vbl9lbXB0eV91cmxfYXR0
cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnY2hhciogIHZhbHVlKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0ZWRf
dmFsdWUgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5zZXRB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRy
LCBjb252ZXJ0ZWRfdmFsdWUpOworfQorCitnY2hhciogCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9yZWZsZWN0ZWRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC02MTQsNyArNjM2LDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2N1c3RvbQogfQogCiBnY2hhciogCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZikKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0b21fdXJsX2F0
dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CkBAIC02
MjQsNyArNjQ2LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX3VybF9hdAog
fQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfdXJsX2F0dHIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSkKK3dlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3JlZmxlY3RlZF9jdXN0b21fdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2No
YXIqICB2YWx1ZSkKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKQEAgLTYzNCw2ICs2NTYsMjcgQEAgd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3VybF9hdAogICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgY29udmVydGVk
X3ZhbHVlKTsKIH0KIAorZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVk
X2N1c3RvbV9ub25fZW1wdHlfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0t
PmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dE5vbkVtcHR5VVJMQXR0ckF0dHIpKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lkCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfY3VzdG9tX25vbl9lbXB0eV91cmxfYXR0cihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnY2hhciogIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwor
ICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OlN0cmluZyBjb252ZXJ0ZWRfdmFs
dWUgPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5zZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Tm9uRW1wdHlVUkxBdHRyQXR0
ciwgY29udmVydGVkX3ZhbHVlKTsKK30KKwogZ2xvbmcKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJv
ciAqKmVycm9yKQogewpAQCAtODkzLDEwICs5MzYsMTIgQEAgZW51bSB7CiAgICAgUFJPUF9SRUZM
RUNURURfSU5URUdSQUxfQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCiAg
ICAgUFJPUF9SRUZMRUNURURfVVJMX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfTk9OX0VNUFRZ
X1VSTF9BVFRSLAogICAgIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSLAogICAgIFBST1BfUkVG
TEVDVEVEX0NVU1RPTV9JTlRFR1JBTF9BVFRSLAogICAgIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9C
T09MRUFOX0FUVFIsCi0gICAgUFJPUF9SRUZMRUNURURfVVJMX0FUVFIsCisgICAgUFJPUF9SRUZM
RUNURURfQ1VTVE9NX1VSTF9BVFRSLAorICAgIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9OT05fRU1Q
VFlfVVJMX0FUVFIsCiAgICAgUFJPUF9BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTiwKICAgICBQ
Uk9QX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OLAogICAgIFBST1BfU1RSSU5HX0FUVFJfV0lU
SF9HRVRURVJfRVhDRVBUSU9OLApAQCAtOTc1LDYgKzEwMjAsMTEgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcAogICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIFdlYkNvcmU6OlN0cmlu
Zzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsK
ICAgICB9CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9OT05fRU1QVFlfVVJMX0FUVFI6CisgICAg
eworICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0ciwgV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOChnX3Zh
bHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNl
IFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSOgogICAgIHsKICAgICAgICAgY29yZVNlbGYtPnNl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0
ciwgV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7
CkBAIC05OTAsMTEgKzEwNDAsMTYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfcHJvcAogICAgICAgICBjb3JlU2VsZi0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIsIChnX3ZhbHVlX2dldF9ib29s
ZWFuKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQUk9QX1JFRkxF
Q1RFRF9VUkxfQVRUUjoKKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9VUkxfQVRUUjoK
ICAgICB7CiAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIsIFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2Fz
ZSBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fTk9OX0VNUFRZX1VSTF9BVFRSOgorICAgIHsKKyAgICAg
ICAgY29yZVNlbGYtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRl
bnROb25FbXB0eVVSTEF0dHJBdHRyLCBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVf
Z2V0X3N0cmluZyh2YWx1ZSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJP
UF9BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjoKICAgICB7CiAgICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTEyMCw2ICsxMTc1LDExIEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3AKICAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2
YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0VVJMQXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIpKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KKyAgICBjYXNlIFBST1BfUkVGTEVDVEVEX05PTl9FTVBUWV9VUkxfQVRUUjoKKyAgICB7
CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJpbmco
Y29yZVNlbGYtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0cikpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAg
IGNhc2UgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFI6CiAgICAgewogICAgICAgICBnX3ZhbHVl
X3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5nZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIpKSk7
CkBAIC0xMTM1LDExICsxMTk1LDE2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X3Byb3AKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgY29yZVNlbGYtPmhh
c0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0
dHIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgUFJPUF9SRUZMRUNURURfVVJM
X0FUVFI6CisgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fVVJMX0FUVFI6CiAgICAgewog
ICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNv
cmVTZWxmLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50
VVJMQXR0ckF0dHIpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfUkVG
TEVDVEVEX0NVU1RPTV9OT05fRU1QVFlfVVJMX0FUVFI6CisgICAgeworICAgICAgICBnX3ZhbHVl
X3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5nZXROb25F
bXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0
eVVSTEF0dHJBdHRyKSkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX0FU
VFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OOgogICAgIHsKICAgICAgICAgV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZSBlYyA9IDA7CkBAIC0xMzIwLDYgKzEzODUsMTMgQEAgR19NQVhMT05HLCAvKiBtYXgg
Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfTk9OX0VNUFRZX1VSTF9B
VFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygicmVmbGVjdGVkLW5vbi1lbXB0eS11cmwtYXR0ciIsIC8qIG5hbWUgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rf
b2JqX3JlZmxlY3RlZC1ub24tZW1wdHktdXJsLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVhZC13cml0ZSAgZ2NoYXIqICBUZXN0T2JqLnJlZmxlY3RlZC1ub24tZW1wdHktdXJs
LWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhl
cmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5n
KCJyZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0
ZWQtc3RyaW5nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwpAQCAtMTM0MywxMCArMTQx
NSwxNyBAQCBHX01BWExPTkcsIC8qIG1heCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eShnb2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX1JFRkxFQ1RFRF9VUkxfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInJlZmxlY3RlZC11cmwtYXR0ciIsIC8qIG5hbWUgKi8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRlc3Rfb2JqX3JlZmxlY3RlZC11cmwtYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWFkLXdyaXRlICBnY2hhciogIFRlc3RPYmoucmVmbGVjdGVkLXVybC1hdHRyIiwgLyog
bG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fVVJM
X0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
c3RyaW5nKCJyZWZsZWN0ZWQtY3VzdG9tLXVybC1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9v
YmpfcmVmbGVjdGVkLWN1c3RvbS11cmwtYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWFkLXdyaXRlICBnY2hhciogIFRlc3RPYmoucmVmbGVjdGVkLWN1c3RvbS11cmwtYXR0ciIs
IC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiIiwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fTk9OX0VNUFRZX1VS
TF9BVFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygicmVmbGVjdGVkLWN1c3RvbS1ub24tZW1wdHktdXJsLWF0dHIiLCAvKiBuYW1lICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtY3VzdG9tLW5vbi1lbXB0eS11cmwtYXR0ciIsIC8qIHNo
b3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnY2hhciogIFRlc3RPYmoucmVmbGVj
dGVkLWN1c3RvbS1ub24tZW1wdHktdXJsLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRo
IHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoZ29iamVjdENsYXNzLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgJKHJldmlzaW9uIDYzMDU2KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw2ICsxODgsMTIgQEAgV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2NoYXIqICB2YWx1ZSk7CiAKIFdFQktJVF9BUEkgZ2NoYXIqIAord2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX25vbl9lbXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0
T2JqKiBzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9y
ZWZsZWN0ZWRfbm9uX2VtcHR5X3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdjaGFy
KiAgdmFsdWUpOworCitXRUJLSVRfQVBJIGdjaGFyKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X3JlZmxlY3RlZF9zdHJpbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAogV0VCS0lU
X0FQSSB2b2lkCkBAIC0yMDYsMTAgKzIxMiwxNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF9jdXN0b21fYm9vbGVhbl9hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogV0VCS0lUX0FQSSBnY2hhciogCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfY3VzdG9tX3VybF9hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3JlZmxlY3RlZF91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
Y2hhciogIHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF9jdXN0b21f
dXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSk7CisKK1dFQktJ
VF9BUEkgZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX2N1c3RvbV9u
b25fZW1wdHlfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2N1c3RvbV9ub25fZW1wdHlf
dXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICB2YWx1ZSk7CiAKIFdFQktJ
VF9BUEkgZ2xvbmcKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhj
ZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvciAqKmVycm9yKTsKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNp
b24gNjMwNTYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lO
X0NFTEwoSlNUZXN0T2JqKTsKICNkZWZpbmUgVEhVTktfR0VORVJBVE9SKGdlbmVyYXRvcikKICNl
bmRpZgogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNb
MzBdID0KK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1sz
Ml0gPQogewogICAgIHsgInJlYWRPbmx5SW50QXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpSZWFkT25seUludEF0dHIpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAg
ICB7ICJyZWFkT25seVN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVhZE9u
bHlTdHJpbmdBdHRyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCkBAIC02Mywx
MCArNjMsMTIgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYgogICAg
IHsgInJlZmxlY3RlZEludGVncmFsQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdy
YWxBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0ciBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIERvbnREZWxl
dGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVj
dGVkQm9vbGVhbkF0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVmbGVjdGVkVVJM
QXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciksIChpbnRwdHJfdClzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxl
Y3RlZE5vbkVtcHR5VVJMQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxB
dHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ciBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIp
LCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAogICAgIHsgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdClzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKLSAg
ICB7ICJyZWZsZWN0ZWRVUkxBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKSwg
KGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIgVEhVTktfR0VORVJBVE9SKDAp
IH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tVVJMQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21V
UkxBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbU5vbkVt
cHR5VVJMQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRy
KSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ciBU
SFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIERv
bnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24gVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAi
YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKSwgKGludHB0cl90KXNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIFRI
VU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
IiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiBUSFVOS19HRU5FUkFU
T1IoMCkgfSwKQEAgLTkwLDcgKzkyLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE9ialRhYgogfTsKIAogI3VuZGVmIFRIVU5LX0dFTkVSQVRPUgotc3RhdGljIEpTQ19DT05T
VF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyA2OSwgNjMsIEpTVGVzdE9i
alRhYmxlVmFsdWVzLCAwIH07CitzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUg
SlNUZXN0T2JqVGFibGUgPSB7IDY4LCA2MywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsKIC8q
IEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCiAjaWYgRU5BQkxFKEpJVCkKICNkZWZpbmUg
VEhVTktfR0VORVJBVE9SKGdlbmVyYXRvcikgLCBnZW5lcmF0b3IKQEAgLTMzNiw2ICszMzgsMTUg
QEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK0pTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7Cisg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmpl
Y3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVzdE9iaiogaW1w
ID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1
ZSByZXN1bHQgPSBqc1N0cmluZyhleGVjLCBpbXAtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0cikpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CkBAIC0zNjMsNyArMzc0LDcgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKQorSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4o
YXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CkBAIC0zNzIsNiAr
MzgzLDE1IEBAIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3QKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVt
cHR5VVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50
aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVz
dE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmcoZXhlYywgaW1wLT5nZXROb25FbXB0eVVS
TEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0
dHJBdHRyKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNWYWx1ZSBqc1Rlc3RPYmpBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19j
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC01NTgsNiArNTc4LDEzIEBA
IHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3QKICAgICBpbXAtPnNldEF0
dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyLCB2YWx1ZVRv
U3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwogfQogCit2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0ciwg
dmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKK30KKwogdm9pZCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
c3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CkBAIC01NzksMTMgKzYwNiwyMCBA
QCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BCiAgICAgaW1wLT5zZXRC
b29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5B
dHRyQXR0ciwgdmFsdWUudG9Cb29sZWFuKGV4ZWMpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2Jq
ZWN0KTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1
c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgdmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywg
dmFsdWUpKTsKIH0KIAordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVS
TEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoq
Pih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyLCB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOworfQorCiB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8
SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDE0
ICsxMzksMTggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdAogdm9p
ZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkTm9uRW1w
dHlVUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7
CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1
ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Ci12
b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1
ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkocmV2aXNpb24gNjMwNTYpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsMTQgKzU2LDE4IEBACiAtICh2b2lkKXNldFJlZmxlY3RlZEJvb2xlYW5B
dHRyOihCT09MKW5ld1JlZmxlY3RlZEJvb2xlYW5BdHRyOwogLSAoTlNTdHJpbmcgKilyZWZsZWN0
ZWRVUkxBdHRyOwogLSAodm9pZClzZXRSZWZsZWN0ZWRVUkxBdHRyOihOU1N0cmluZyAqKW5ld1Jl
ZmxlY3RlZFVSTEF0dHI7CistIChOU1N0cmluZyAqKXJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cjsK
Ky0gKHZvaWQpc2V0UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyOihOU1N0cmluZyAqKW5ld1JlZmxl
Y3RlZE5vbkVtcHR5VVJMQXR0cjsKIC0gKE5TU3RyaW5nICopcmVmbGVjdGVkU3RyaW5nQXR0cjsK
IC0gKHZvaWQpc2V0UmVmbGVjdGVkU3RyaW5nQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRT
dHJpbmdBdHRyOwogLSAoaW50KXJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cjsKIC0gKHZvaWQp
c2V0UmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyOihpbnQpbmV3UmVmbGVjdGVkQ3VzdG9tSW50
ZWdyYWxBdHRyOwogLSAoQk9PTClyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjsKIC0gKHZvaWQp
c2V0UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHI6KEJPT0wpbmV3UmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHI7Ci0tIChOU1N0cmluZyAqKXJlZmxlY3RlZFVSTEF0dHI7Ci0tICh2b2lkKXNldFJl
ZmxlY3RlZFVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkVVJMQXR0cjsKKy0gKE5TU3Ry
aW5nICopcmVmbGVjdGVkQ3VzdG9tVVJMQXR0cjsKKy0gKHZvaWQpc2V0UmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRDdXN0b21VUkxBdHRyOworLSAoTlNTdHJp
bmcgKilyZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHI7CistICh2b2lkKXNldFJlZmxlY3Rl
ZEN1c3RvbU5vbkVtcHR5VVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRDdXN0b21Ob25F
bXB0eVVSTEF0dHI7CiAtIChpbnQpYXR0cldpdGhHZXR0ZXJFeGNlcHRpb247CiAtICh2b2lkKXNl
dEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOihpbnQpbmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb247
CiAtIChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb247CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCShyZXZpc2lvbiA2MzA1NikK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiwxOCBAQCAtICh2b2lkKXNldFJlZmxlY3RlZFVSTEF0
dHI6KE5TU3RyaW5nICopCiAgICAgSU1QTC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6cmVmbGVjdGVkdXJsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZFVSTEF0dHIpOwogfQogCistIChO
U1N0cmluZyAqKXJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cgoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0Tm9uRW1wdHlVUkxB
dHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRy
KTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWROb25FbXB0eVVSTEF0dHI6KE5TU3RyaW5nICop
bmV3UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZG5vbmVtcHR5dXJsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZE5vbkVtcHR5VVJM
QXR0cik7Cit9CisKIC0gKE5TU3RyaW5nICopcmVmbGVjdGVkU3RyaW5nQXR0cgogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIzOCwxNiArMjUwLDI4IEBA
IC0gKHZvaWQpc2V0UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHI6KEIKICAgICBJTVBMLT5zZXRC
b29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5B
dHRyQXR0ciwgbmV3UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOwogfQogCi0tIChOU1N0cmlu
ZyAqKXJlZmxlY3RlZFVSTEF0dHIKKy0gKE5TU3RyaW5nICopcmVmbGVjdGVkQ3VzdG9tVVJMQXR0
cgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICByZXR1
cm4gSU1QTC0+Z2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dFVSTEF0dHJBdHRyKTsKIH0KIAotLSAodm9pZClzZXRSZWZsZWN0ZWRVUkxBdHRyOihOU1N0cmlu
ZyAqKW5ld1JlZmxlY3RlZFVSTEF0dHIKKy0gKHZvaWQpc2V0UmVmbGVjdGVkQ3VzdG9tVVJMQXR0
cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRDdXN0b21VUkxBdHRyCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmV3UmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cik7Cit9CisKKy0gKE5TU3RyaW5nICopcmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlV
UkxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZs
ZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkQ3VzdG9t
Tm9uRW1wdHlVUkxBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNv
bnRlbnRVUkxBdHRyQXR0ciwgbmV3UmVmbGVjdGVkVVJMQXR0cik7CisgICAgSU1QTC0+c2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudE5vbkVtcHR5VVJMQXR0ckF0
dHIsIG5ld1JlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cik7CiB9CiAKIC0gKGludClhdHRy
V2l0aEdldHRlckV4Y2VwdGlvbgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiA2MzA1NikKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw2
ICsyMTgsMjIgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodgogICAg
IHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWROb25F
bXB0eVVSTEF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVm
bGVjdGVkTm9uRW1wdHlVUkxBdHRyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2OFN0cmluZyhpbXAtPmdl
dE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkbm9uZW1w
dHl1cmxhdHRyQXR0cikpOworfQorCitzdGF0aWMgdm9pZCByZWZsZWN0ZWROb25FbXB0eVVSTEF0
dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ci5fc2V0Iik7CisgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBWOFBh
cmFtZXRlcjxXaXRoTnVsbENoZWNrPiB2ID0gdmFsdWU7CisgICAgaW1wLT5zZXRBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRyLCB2KTsKKyAg
ICByZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVjdGVkU3Ry
aW5nQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0
ZWRTdHJpbmdBdHRyLl9nZXQiKTsKQEAgLTI2NiwyMiArMjgyLDM4IEBAIHN0YXRpYyB2b2lkIHJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXQKICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVjdGVkVVJMQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRyR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewot
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkVVJMQXR0ci5fZ2V0Iik7CisgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWRDdXN0b21VUkxBdHRyLl9nZXQiKTsKICAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAg
IHJldHVybiB2OFN0cmluZyhpbXAtPmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0cikpOwogfQogCi1zdGF0aWMgdm9pZCByZWZsZWN0ZWRV
UkxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMgdm9p
ZCByZWZsZWN0ZWRDdXN0b21VUkxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWRVUkxBdHRyLl9z
ZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbVVSTEF0dHIu
X3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7CiAgICAgVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVjaz4gdiA9IHZhbHVlOwogICAgIGlt
cC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0dHJB
dHRyLCB2KTsKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
cmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ci5fZ2V0Iik7Cisg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAg
ICByZXR1cm4gdjhTdHJpbmcoaW1wLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyKSk7Cit9CisKK3N0YXRp
YyB2b2lkIHJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVj
dGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFY4UGFyYW1ldGVyPFdpdGhOdWxs
Q2hlY2s+IHYgPSB2YWx1ZTsKKyAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyLCB2KTsKKyAgICByZXR1cm47Cit9
CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25B
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24uX2dldCIpOwpAQCAtOTEyLDE2ICs5NDQsMjAgQEAgc3RhdGljIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUgVGVzdE9iakF0dAogICAgIHsicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgVGVz
dE9iakludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50
ZXJuYWw6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAog
ICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkQm9vbGVhbkF0dHInIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnUmVmbGVjdCcpCiAgICAgeyJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIFRlc3RP
YmpJbnRlcm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJu
YWw6OnJlZmxlY3RlZEJvb2xlYW5BdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0
aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6
UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCi0gICAg
Ly8gQXR0cmlidXRlICdyZWZsZWN0ZWRVUkxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0
cjogJ1JlZmxlY3RVUkwnKQorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVVJMQXR0cicgKFR5
cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdVUkwgUmVmbGVjdCcpCiAgICAgeyJyZWZsZWN0ZWRV
UkxBdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRVUkxBdHRyQXR0ckdldHRlciwgVGVz
dE9iakludGVybmFsOjpyZWZsZWN0ZWRVUkxBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICov
LCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2Fz
dDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30s
CisgICAgLy8gQXR0cmlidXRlICdyZWZsZWN0ZWROb25FbXB0eVVSTEF0dHInIChUeXBlOiAnYXR0
cmlidXRlJyBFeHRBdHRyOiAnVVJMIE5vbkVtcHR5IFJlZmxlY3QnKQorICAgIHsicmVmbGVjdGVk
Tm9uRW1wdHlVUkxBdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWROb25FbXB0eVVSTEF0
dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ckF0
dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkU3Ry
aW5nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKICAgICB7InJl
ZmxlY3RlZFN0cmluZ0F0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJB
dHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEN1c3RvbUludGVn
cmFsQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKICAgICB7InJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3Vz
dG9tSW50ZWdyYWxBdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0
b21JbnRlZ3JhbEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4
OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1
dGUgJ3JlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0
cjogJ1JlZmxlY3QnKQogICAgIHsicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCBUZXN0T2Jq
SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlciwgVGVzdE9iaklu
dGVybmFsOjpyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAotICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVVJMQXR0cicgKFR5cGU6ICdhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdSZWZsZWN0VVJMJykKLSAgICB7InJlZmxlY3RlZFVSTEF0dHIiLCBUZXN0
T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFVSTEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6
OnJlZmxlY3RlZFVSTEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRy
aWJ1dGUgJ3JlZmxlY3RlZEN1c3RvbVVSTEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnVVJMIFJlZmxlY3QnKQorICAgIHsicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsIFRlc3RPYmpJ
bnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5h
bDo6cmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAg
IC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyJyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJ1VSTCBOb25FbXB0eSBSZWZsZWN0JykKKyAgICB7InJlZmxlY3Rl
ZEN1c3RvbU5vbkVtcHR5VVJMQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9t
Tm9uRW1wdHlVUkxBdHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0
b21Ob25FbXB0eVVSTEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ2F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0
cjogJycpCiAgICAgeyJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OmF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0
cmlidXRlICdhdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0
dHI6ICcnKQpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDYzMDU2KQorKysgV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQsNiArMTUzNCwyMCBAQCBLVVJMIEVsZW1l
bnQ6OmdldFVSTEF0dHJpYnV0ZShjb25zdCBRdWFsCiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKGRlcHJlY2F0ZWRQYXJzZVVSTChnZXRBdHRyaWJ1dGUobmFtZSkpKTsKIH0KIAor
S1VSTCBFbGVtZW50OjpnZXROb25FbXB0eVVSTEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lKSBjb25zdAoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBpZiAobV9hdHRyaWJ1
dGVNYXApIHsKKyAgICAgICAgaWYgKEF0dHJpYnV0ZSogYXR0cmlidXRlID0gbV9hdHRyaWJ1dGVN
YXAtPmdldEF0dHJpYnV0ZUl0ZW0obmFtZSkpCisgICAgICAgICAgICBBU1NFUlQoaXNVUkxBdHRy
aWJ1dGUoYXR0cmlidXRlKSk7CisgICAgfQorI2VuZGlmCisgICAgU3RyaW5nIHZhbHVlID0gZGVw
cmVjYXRlZFBhcnNlVVJMKGdldEF0dHJpYnV0ZShuYW1lKSk7CisgICAgaWYgKHZhbHVlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodmFsdWUpOworfQorCiBpbnQgRWxlbWVudDo6Z2V0SW50ZWdyYWxBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29uc3QKIHsKICAgICByZXR1cm4g
Z2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpLnN0cmluZygpLnRvSW50KCk7CkluZGV4OiBXZWJD
b3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5oCShy
ZXZpc2lvbiA2MzA1NikKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjIxLDcgKzIyMSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFj
dGlvbihib29sIC8qc2VuZFRvQW55RXZlbnQqLykgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNV
UkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisKICAgICBLVVJMIGdldFVSTEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CisgICAgS1VSTCBnZXROb25FbXB0eVVSTEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CisKICAgICB2aXJ0dWFsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgU3RyaW5nIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
YWNjZXNzS2V5OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0
OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb29yZHM7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIGhyZWY7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBocmVmOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBocmVmbGFuZzsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgbmFtZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmVsOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwJKHJldmlzaW9uIDYzMDU2KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBh
Y2Nlc3NLZXk7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKICAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29vcmRzOwotICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0cmluZyBocmVmOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsVVJMXSBET01TdHJpbmcgaHJlZjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBi
b29sZWFuIG5vSHJlZjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2hh
cGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwJKHJldmlzaW9uIDYzMDU2KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFt
ZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIG5vUmVzaXplOwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzY3JvbGxpbmc7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0LFVSTF0gRE9NU3RyaW5nIHNyYzsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBM
ZXZlbCAyOgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrRnJhbWVTZWN1cml0eV0g
RG9jdW1lbnQgY29udGVudERvY3VtZW50OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmlk
bAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICszMCwxNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25n
IGhzcGFjZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGlzTWFwOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RVUkw9bG9uZ2Rlc2NdIERPTVN0cmluZyBsb25nRGVzYzsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgc3JjOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3QsVVJMXSBET01TdHJpbmcgbG9uZ0Rlc2M7CisgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25n
IHZzcGFjZTsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgd2lkdGg7CiAgICAgICAgIAogICAgICAg
ICAvLyBFeHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBs
ZXRlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0cmluZyBsb3dzcmM7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBsb3dzcmM7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG5hdHVyYWxIZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIG5hdHVyYWxXaWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgeDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDYzMDU2
KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw3ICs1MSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVj
IHNheXMgdGhpcyBzaG91bGQgYmUgYSBsb25nLCBub3QgYW4gdW5zaWduZWQgbG9uZy4KICAgICAg
ICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgc2l6ZTsgLy8gQ2hhbmdlZCBzdHJpbmcgLT4gbG9u
ZyBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAjZW5kaWYKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0VVJMXSBET01TdHJpbmcgc3JjOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsVVJMXSBE
T01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzdGVw
OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBKU0NDdXN0b21H
ZXR0ZXJdIERPTVN0cmluZyB0eXBlOyAvLyByZWFkb25seSBkcm9wcGVkIGFzIHBhcnQgb2YgRE9N
IGxldmVsIDIKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdXNlTWFwOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwJKHJldmlzaW9uIDYzMDU2KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcg
QEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBIVE1MTGlua0VsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKICAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgaHJlZjsKKyAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0LFVSTF0gRE9NU3RyaW5nIGhyZWY7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGhyZWZsYW5nOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBtZWRpYTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmVsOwpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAkocmV2aXNpb24gNjMwNTYpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcg
QEAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1WSURFT10gSFRNTE1lZGlhRQogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBNZWRpYUVycm9yIGVycm9yOwogCiAgICAgLy8gbmV0d29yayBzdGF0ZQotICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIHNyYzsKKyAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsVVJMXSBET01TdHJpbmcgc3JjOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgY3VycmVudFNyYzsKICAgICAKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVRXT1JLX0VN
UFRZID0gMDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAkocmV2aXNpb24gNjMw
NTYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgYm9yZGVyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBjb2RlQmFzZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29k
ZVR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdFVSTF0gRE9NU3RyaW5nIGRhdGE7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBkYXRhOwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVjbGFyZTsKICAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxv
bmcgaHNwYWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCShyZXZpc2lvbiA2
MzA1NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJv
b2xlYW4gYXN5bmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkZWZlcjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0VVJMXSBET01TdHJpbmcgc3JjOworICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3QsVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwogICAgIH07CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaWRsCShyZXZpc2lvbiA2MzA1NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHZpZGVvV2lkdGg7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHZpZGVvSGVpZ2h0OwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RVUkxdIERPTVN0cmluZyBwb3N0ZXI7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBwb3N0ZXI7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gd2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbjsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDYzMDU2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVu
aGFuY2UgY29udGVudCBhdHRyaWJ1dGUgcmVmbGVjdGlvbiBmb3IgVVJMIGF0dHJpYnV0ZXMsIGlu
Y2x1ZGluZyBhZGRpbmcgYSBub24tZW1wdHkgb3B0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjA0MAorCisgICAgICAgIFRoZSBjdXJyZW50IHRl
c3QgcmVzdWx0cyBzaG93IG1hbnkgZmFpbHVyZXMsIGFuZCB3ZSBzaG91bGQgZm9sbG93IHVwIHdp
dGggZml4ZXMKKyAgICAgICAgZWl0aGVyIHRvIHRoZSBET00gaW1wbGVtZW50YXRpb24sIG9yIHRv
IHRoZSB0ZXN0IHJlc3VsdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9VUkwt
YXR0cmlidXRlLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vc2NyaXB0LXRlc3RzL1VSTC1hdHRyaWJ1dGUtcmVmbGVjdGlvbi5qczogQWRkZWQuCisK
IDIwMTAtMDctMTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9VUkwt
YXR0cmlidXRlLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL1VSTC1hdHRyaWJ1dGUtcmVmbGVjdGlvbi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACitUZXN0IHJlZmxlY3Rp
bmcgVVJMIGF0dHJpYnV0ZXMgd2l0aCBlbXB0eSBzdHJpbmcgdmFsdWVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0VVJMUmVmbGVjdGlvbignYXR0cmlidXRlJywg
J2VsZW1lbnQnKSBpcyAnbm9uZScKK1BBU1MgdGVzdFVSTFJlZmxlY3Rpb24oJ2lkJywgJ2VsZW1l
bnQnKSBpcyAnbm9uLVVSTCcKK0ZBSUwgdGVzdFVSTFJlZmxlY3Rpb24oJ2FjdGlvbicsICdmb3Jt
Jykgc2hvdWxkIGJlIFVSTC4gV2FzIG5vbi1VUkwuCitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdj
aXRlJywgJ2Jsb2NrcXVvdGUnKSBzaG91bGQgYmUgVVJMLiBXYXMgbm9uLVVSTC4KK0ZBSUwgdGVz
dFVSTFJlZmxlY3Rpb24oJ2NpdGUnLCAnZGVsJykgc2hvdWxkIGJlIFVSTC4gV2FzIG5vbi1VUkwu
CitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdjaXRlJywgJ2lucycpIHNob3VsZCBiZSBVUkwuIFdh
cyBub24tVVJMLgorRkFJTCB0ZXN0VVJMUmVmbGVjdGlvbignY2l0ZScsICdxJykgc2hvdWxkIGJl
IFVSTC4gV2FzIG5vbi1VUkwuCitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdkYXRhJywgJ29iamVj
dCcpIHNob3VsZCBiZSBub24tZW1wdHkgVVJMLiBXYXMgVVJMLgorRkFJTCB0ZXN0VVJMUmVmbGVj
dGlvbignZm9ybWFjdGlvbicsICdidXR0b24nKSBzaG91bGQgYmUgVVJMLiBXYXMgbm9uZS4KK0ZB
SUwgdGVzdFVSTFJlZmxlY3Rpb24oJ2Zvcm1hY3Rpb24nLCAnaW5wdXQnKSBzaG91bGQgYmUgVVJM
LiBXYXMgbm9uZS4KK1BBU1MgdGVzdFVSTFJlZmxlY3Rpb24oJ2hyZWYnLCAnYScpIGlzICdVUkwn
CitQQVNTIHRlc3RVUkxSZWZsZWN0aW9uKCdocmVmJywgJ2FyZWEnKSBpcyAnVVJMJworRkFJTCB0
ZXN0VVJMUmVmbGVjdGlvbignaHJlZicsICdsaW5rJykgc2hvdWxkIGJlIG5vbi1lbXB0eSBVUkwu
IFdhcyBVUkwuCitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdocmVmJywgJ2Jhc2UnKSBzaG91bGQg
YmUgVVJMLiBXYXMgbm9uLVVSTC4KK0ZBSUwgdGVzdFVSTFJlZmxlY3Rpb24oJ2ljb24nLCAnY29t
bWFuZCcpIHNob3VsZCBiZSBub24tZW1wdHkgVVJMLiBXYXMgbm9uZS4KK0ZBSUwgdGVzdFVSTFJl
ZmxlY3Rpb24oJ21hbmlmZXN0JywgJ2h0bWwnKSBzaG91bGQgYmUgbm9uLWVtcHR5IFVSTC4gV2Fz
IG5vbmUuCitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdwb3N0ZXInLCAndmlkZW8nKSBzaG91bGQg
YmUgbm9uLWVtcHR5IFVSTC4gV2FzIFVSTC4KK0ZBSUwgdGVzdFVSTFJlZmxlY3Rpb24oJ3NyYycs
ICdhdWRpbycpIHNob3VsZCBiZSBub24tZW1wdHkgVVJMLiBXYXMgVVJMLgorRkFJTCB0ZXN0VVJM
UmVmbGVjdGlvbignc3JjJywgJ2VtYmVkJykgc2hvdWxkIGJlIG5vbi1lbXB0eSBVUkwuIFdhcyBu
b24tVVJMLgorRkFJTCB0ZXN0VVJMUmVmbGVjdGlvbignc3JjJywgJ2lmcmFtZScpIHNob3VsZCBi
ZSBub24tZW1wdHkgVVJMLiBXYXMgbm9uLVVSTC4KK0ZBSUwgdGVzdFVSTFJlZmxlY3Rpb24oJ3Ny
YycsICdpbWcnKSBzaG91bGQgYmUgbm9uLWVtcHR5IFVSTC4gV2FzIFVSTC4KK0ZBSUwgdGVzdFVS
TFJlZmxlY3Rpb24oJ3NyYycsICdpbnB1dCcpIHNob3VsZCBiZSBub24tZW1wdHkgVVJMLiBXYXMg
VVJMLgorRkFJTCB0ZXN0VVJMUmVmbGVjdGlvbignc3JjJywgJ3NjcmlwdCcpIHNob3VsZCBiZSBu
b24tZW1wdHkgVVJMLiBXYXMgVVJMLgorRkFJTCB0ZXN0VVJMUmVmbGVjdGlvbignc3JjJywgJ3Nv
dXJjZScpIHNob3VsZCBiZSBub24tZW1wdHkgVVJMLiBXYXMgVVJMLgorRkFJTCB0ZXN0VVJMUmVm
bGVjdGlvbignc3JjJywgJ3ZpZGVvJykgc2hvdWxkIGJlIG5vbi1lbXB0eSBVUkwuIFdhcyBVUkwu
CitGQUlMIHRlc3RVUkxSZWZsZWN0aW9uKCdsb25nRGVzYycsICdpbWcnKSBzaG91bGQgYmUgbm9u
LWVtcHR5IFVSTC4gV2FzIFVSTC4KK0ZBSUwgdGVzdFVSTFJlZmxlY3Rpb24oJ2xvd3NyYycsICdp
bWcnKSBzaG91bGQgYmUgbm9uLWVtcHR5IFVSTC4gV2FzIFVSTC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24tZXhwZWN0ZWQudHh0
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24uaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1VSTC1hdHRyaWJ1dGUtcmVmbGVj
dGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1VSTC1hdHRyaWJ1dGUtcmVmbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9VUkwtYXR0cmlidXRlLXJlZmxlY3Rpb24uaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRl
c3RzL1VSTC1hdHRyaWJ1dGUtcmVmbGVjdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvVVJMLWF0dHJpYnV0ZS1yZWZsZWN0aW9uLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL1VSTC1hdHRyaWJ1
dGUtcmVmbGVjdGlvbi5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorZGVzY3JpcHRp
b24oIlRlc3QgcmVmbGVjdGluZyBVUkwgYXR0cmlidXRlcyB3aXRoIGVtcHR5IHN0cmluZyB2YWx1
ZXMuIik7CisKK2Z1bmN0aW9uIHRlc3RVUkxSZWZsZWN0aW9uKGF0dHJpYnV0ZU5hbWUsIHRhZywg
c2NyaXB0QXR0cmlidXRlTmFtZSkKK3sKKyAgICBpZiAoIXNjcmlwdEF0dHJpYnV0ZU5hbWUpCisg
ICAgICAgIHNjcmlwdEF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCk7
CisKKyAgICB2YXIgZWxlbWVudDsKKyAgICBpZiAodGFnID09PSAiaHRtbCIpCisgICAgICAgIGVs
ZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CisgICAgZWxzZSB7CisgICAgICAgIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorICAgIGVsZW1lbnQuc2V0QXR0cmlidXRl
KHNjcmlwdEF0dHJpYnV0ZU5hbWUsICJ4Iik7CisgICAgdmFyIHhWYWx1ZSA9IGVsZW1lbnRbYXR0
cmlidXRlTmFtZV07CisgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoc2NyaXB0QXR0cmlidXRlTmFt
ZSwgIiIpOworICAgIHZhciBlbXB0eVZhbHVlID0gZWxlbWVudFthdHRyaWJ1dGVOYW1lXTsKKyAg
ICBpZiAodGFnICE9PSAiaHRtbCIpCisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZWxlbWVudCk7CisKKyAgICBpZiAoeFZhbHVlID09PSB1bmRlZmluZWQpCisgICAgICAgIHJldHVy
biAibm9uZSI7CisgICAgaWYgKHhWYWx1ZSA9PT0gIngiKQorICAgICAgICByZXR1cm4gIm5vbi1V
UkwiOworICAgIGlmICh4VmFsdWUgIT09IGRvY3VtZW50LmJhc2VVUkkucmVwbGFjZSgvW15cL10r
JC8sICJ4IikpCisgICAgICAgIHJldHVybiAiZXJyb3I6ICIgKyB4VmFsdWU7CisgICAgaWYgKGVt
cHR5VmFsdWUgPT09ICIiKQorICAgICAgICByZXR1cm4gIm5vbi1lbXB0eSBVUkwiOworICAgIGlm
IChlbXB0eVZhbHVlID09PSBkb2N1bWVudC5iYXNlVVJJKQorICAgICAgICByZXR1cm4gIlVSTCI7
CisgICAgcmV0dXJuICJlcnJvcjogIiArIHZhbHVlOworfQorCitzaG91bGRCZSgidGVzdFVSTFJl
ZmxlY3Rpb24oJ2F0dHJpYnV0ZScsICdlbGVtZW50JykiLCAiJ25vbmUnIik7CitzaG91bGRCZSgi
dGVzdFVSTFJlZmxlY3Rpb24oJ2lkJywgJ2VsZW1lbnQnKSIsICInbm9uLVVSTCciKTsKKworLy8g
VGhlIGZvbGxvd2luZyBsaXN0IGNvbWVzIGZyb20gdGhlIEhUTUw1IGRvY3VtZW504oCZcyBhdHRy
aWJ1dGVzIGluZGV4LgorLy8gVGhlIGV4cGVjdGVkIHJlc3VsdHMgYXJlIGJhc2VkIG9uIHdoYXQg
dGhlIHRhYmxlIHRoZXJlIHNheXMuCisKK3Nob3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignYWN0
aW9uJywgJ2Zvcm0nKSIsICInVVJMJyIpOworc2hvdWxkQmUoInRlc3RVUkxSZWZsZWN0aW9uKCdj
aXRlJywgJ2Jsb2NrcXVvdGUnKSIsICInVVJMJyIpOworc2hvdWxkQmUoInRlc3RVUkxSZWZsZWN0
aW9uKCdjaXRlJywgJ2RlbCcpIiwgIidVUkwnIik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rp
b24oJ2NpdGUnLCAnaW5zJykiLCAiJ1VSTCciKTsKK3Nob3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlv
bignY2l0ZScsICdxJykiLCAiJ1VSTCciKTsKK3Nob3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbign
ZGF0YScsICdvYmplY3QnKSIsICInbm9uLWVtcHR5IFVSTCciKTsKK3Nob3VsZEJlKCJ0ZXN0VVJM
UmVmbGVjdGlvbignZm9ybWFjdGlvbicsICdidXR0b24nKSIsICInVVJMJyIpOworc2hvdWxkQmUo
InRlc3RVUkxSZWZsZWN0aW9uKCdmb3JtYWN0aW9uJywgJ2lucHV0JykiLCAiJ1VSTCciKTsKK3No
b3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignaHJlZicsICdhJykiLCAiJ1VSTCciKTsKK3Nob3Vs
ZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignaHJlZicsICdhcmVhJykiLCAiJ1VSTCciKTsKK3Nob3Vs
ZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignaHJlZicsICdsaW5rJykiLCAiJ25vbi1lbXB0eSBVUkwn
Iik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rpb24oJ2hyZWYnLCAnYmFzZScpIiwgIidVUkwn
Iik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rpb24oJ2ljb24nLCAnY29tbWFuZCcpIiwgIidu
b24tZW1wdHkgVVJMJyIpOworc2hvdWxkQmUoInRlc3RVUkxSZWZsZWN0aW9uKCdtYW5pZmVzdCcs
ICdodG1sJykiLCAiJ25vbi1lbXB0eSBVUkwnIik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rp
b24oJ3Bvc3RlcicsICd2aWRlbycpIiwgIidub24tZW1wdHkgVVJMJyIpOworc2hvdWxkQmUoInRl
c3RVUkxSZWZsZWN0aW9uKCdzcmMnLCAnYXVkaW8nKSIsICInbm9uLWVtcHR5IFVSTCciKTsKK3No
b3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignc3JjJywgJ2VtYmVkJykiLCAiJ25vbi1lbXB0eSBV
UkwnIik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rpb24oJ3NyYycsICdpZnJhbWUnKSIsICIn
bm9uLWVtcHR5IFVSTCciKTsKK3Nob3VsZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignc3JjJywgJ2lt
ZycpIiwgIidub24tZW1wdHkgVVJMJyIpOworc2hvdWxkQmUoInRlc3RVUkxSZWZsZWN0aW9uKCdz
cmMnLCAnaW5wdXQnKSIsICInbm9uLWVtcHR5IFVSTCciKTsKK3Nob3VsZEJlKCJ0ZXN0VVJMUmVm
bGVjdGlvbignc3JjJywgJ3NjcmlwdCcpIiwgIidub24tZW1wdHkgVVJMJyIpOworc2hvdWxkQmUo
InRlc3RVUkxSZWZsZWN0aW9uKCdzcmMnLCAnc291cmNlJykiLCAiJ25vbi1lbXB0eSBVUkwnIik7
CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rpb24oJ3NyYycsICd2aWRlbycpIiwgIidub24tZW1w
dHkgVVJMJyIpOworCisvLyBPdGhlciByZWZsZWN0ZWQgVVJMIGF0dHJpYnV0ZXMuCisKK3Nob3Vs
ZEJlKCJ0ZXN0VVJMUmVmbGVjdGlvbignbG9uZ0Rlc2MnLCAnaW1nJykiLCAiJ25vbi1lbXB0eSBV
UkwnIik7CitzaG91bGRCZSgidGVzdFVSTFJlZmxlY3Rpb24oJ2xvd3NyYycsICdpbWcnKSIsICIn
bm9uLWVtcHR5IFVSTCciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="49160"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>