<?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>103832</bug_id>
          
          <creation_ts>2012-12-01 23:15:32 -0800</creation_ts>
          <short_desc>CodeBlock should be able to dump bytecode to something other than WTF::dataFile()</short_desc>
          <delta_ts>2012-12-02 00:01:43 -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>JavaScriptCore</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>102999</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>780850</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-01 23:15:32 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780851</commentid>
    <comment_count>1</comment_count>
      <attachid>177129</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-01 23:18:08 -0800</bug_when>
    <thetext>Created attachment 177129
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780862</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-02 00:01:43 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/136318</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177129</attachid>
            <date>2012-12-01 23:18:08 -0800</date>
            <delta_ts>2012-12-01 23:51:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>codeblock.patch</filename>
            <type>text/plain</type>
            <size>86687</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM2MzE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDEyLTEyLTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZUJsb2NrIHNob3VsZCBiZSBhYmxlIHRvIGR1bXAgYnl0ZWNvZGUgdG8gc29tZXRoaW5nIG90
aGVyIHRoYW4gV1RGOjpkYXRhRmlsZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBQcmludFN0cmVhbSYgYXJndW1lbnQgdG8gYWxsIG9mIHRo
ZSBDb2RlQmxvY2sgYnl0ZWNvZGUgZHVtcGluZyBtZXRob2RzLgorCisgICAgICAgICogYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRVbmFyeU9w
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludEJpbmFyeU9wKToKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpwcmludENvbmRpdGlvbmFsSnVtcCk6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cHJpbnRHZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpkdW1wU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6ZHVtcENoYWluKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludEdl
dEJ5SWRDYWNoZVN0YXR1cyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRDYWxsT3Ap
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50UHV0QnlJZE9wKToKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpwcmludFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
cHJpbnRTdHJ1Y3R1cmVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoQ29kZUJsb2NrKToK
KyAgICAgICAgKiBqaXQvSklURGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SklURGlz
YXNzZW1ibGVyOjpkdW1wRm9ySW5zdHJ1Y3Rpb25zKToKKwogMjAxMi0xMS0zMCAgUGllcnJlIFJv
c3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQg
c3BlY3VsYXRpdmUgTWFjIGJ1aWxkIGZpeCBhZnRlciByMTM2MjMyCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM2MzEzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMiwxNiArMTEyLDE2IEBAIHN0YXRpYyBDU3RyaW5nIGlkTmFtZShpbnQgaWQw
LCBjb25zdCBJZGUKICAgICByZXR1cm4gbWFrZVN0cmluZyhpZGVudC5zdHJpbmcoKSwgIihAaWQi
LCBTdHJpbmc6Om51bWJlcihpZDApLCAiKSIpLnV0ZjgoKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6
OmR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGludCBsb2NhdGlvbikKK3ZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShQcmludFN0cmVhbSYgb3V0LCBpbnQg
bG9jYXRpb24pCiB7CiAjaWYgRU5BQkxFKEJZVEVDT0RFX0NPTU1FTlRTKQogICAgIGNvbnN0IGNo
YXIqIGNvbW1lbnQgPSBjb21tZW50Rm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pOwogICAgIGlm
IChjb21tZW50KQotICAgICAgICBkYXRhTG9nRigiXHRcdCA7ICVzIiwgY29tbWVudCk7CisgICAg
ICAgIG91dC5wcmludGYoIlx0XHQgOyAlcyIsIGNvbW1lbnQpOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0obG9jYXRpb24pOwogI2VuZGlmCi0gICAgZGF0YUxvZ0YoIlxuIik7CisgICAgb3V0LnBy
aW50KCJcbiIpOwogfQogCiBDU3RyaW5nIENvZGVCbG9jazo6cmVnaXN0ZXJOYW1lKEV4ZWNTdGF0
ZSogZXhlYywgaW50IHIpIGNvbnN0CkBAIC0xODIsMzMgKzE4MiwzMyBAQCBORVZFUl9JTkxJTkUg
c3RhdGljIGNvbnN0IGNoYXIqIGRlYnVnSG9vCiAgICAgcmV0dXJuICIiOwogfQogCi12b2lkIENv
ZGVCbG9jazo6cHJpbnRVbmFyeU9wKEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLCBjb25z
dCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKK3ZvaWQgQ29kZUJsb2NrOjpwcmlu
dFVuYXJ5T3AoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBpbnQgbG9jYXRpb24s
IGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGNvbnN0IGNoYXIqIG9wKQogewogICAgIGludCByMCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogCi0g
ICAgZGF0YUxvZ0YoIlslNGRdICVzXHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7Ci0g
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgIG91dC5wcmlu
dGYoIlslNGRdICVzXHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7CisgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKLXZvaWQgQ29kZUJs
b2NrOjpwcmludEJpbmFyeU9wKEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLCBjb25zdCBJ
bnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKK3ZvaWQgQ29kZUJsb2NrOjpwcmludEJp
bmFyeU9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLCBj
b25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKIHsKICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBp
bnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICBkYXRhTG9nRigiWyU0ZF0gJXNcdFx0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRh
KCkpOwotICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICBv
dXQucHJpbnRmKCJbJTRkXSAlc1x0XHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCBvcCwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7CisgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpwcmludENvbmRp
dGlvbmFsSnVtcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgSW5z
dHJ1Y3Rpb24qJiBpdCwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyKiBvcCkKK3ZvaWQgQ29kZUJs
b2NrOjpwcmludENvbmRpdGlvbmFsSnVtcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCwgaW50IGxvY2F0
aW9uLCBjb25zdCBjaGFyKiBvcCkKIHsKICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgZGF0YUxvZ0YoIlslNGRd
ICVzXHRcdCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICBkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdFx0
ICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBvcCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOworICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogfQogCi12b2lkIENvZGVCbG9jazo6cHJpbnRHZXRC
eUlkT3AoRXhlY1N0YXRlKiBleGVjLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYg
aXQpCit2b2lkIENvZGVCbG9jazo6cHJpbnRHZXRCeUlkT3AoUHJpbnRTdHJlYW0mIG91dCwgRXhl
Y1N0YXRlKiBleGVjLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCiB7CiAg
ICAgY29uc3QgY2hhciogb3A7CiAgICAgc3dpdGNoIChleGVjLT5pbnRlcnByZXRlcigpLT5nZXRP
cGNvZGVJRChpdC0+dS5vcGNvZGUpKSB7CkBAIC0yNjEsMjggKzI2MSwyOCBAQCB2b2lkIENvZGVC
bG9jazo6cHJpbnRHZXRCeUlkT3AoRXhlY1N0YXRlCiAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IGlkMCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwotICAgIGRhdGFMb2dGKCJbJTRkXSAlc1x0ICVzLCAlcywgJXMiLCBs
b2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjEpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCkp
OworICAgIG91dC5wcmludGYoIlslNGRdICVzXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCBvcCwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0
YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSk7CiAgICAgaXQgKz0g
NTsKIH0KIAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkgLy8gdW51c2VkIGluIHNv
bWUgY29uZmlndXJhdGlvbnMKLXN0YXRpYyB2b2lkIGR1bXBTdHJ1Y3R1cmUoY29uc3QgY2hhciog
bmFtZSwgRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSWRlbnRpZmllciYg
aWRlbnQpCitzdGF0aWMgdm9pZCBkdW1wU3RydWN0dXJlKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0
IGNoYXIqIG5hbWUsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIElkZW50
aWZpZXImIGlkZW50KQogewogICAgIGlmICghc3RydWN0dXJlKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgZGF0YUxvZ0YoIiVzID0gJXAiLCBuYW1lLCBzdHJ1Y3R1cmUpOworICAgIG91dC5w
cmludGYoIiVzID0gJXAiLCBuYW1lLCBzdHJ1Y3R1cmUpOwogICAgIAogICAgIFByb3BlcnR5T2Zm
c2V0IG9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgaWRlbnQpOwog
ICAgIGlmIChvZmZzZXQgIT0gaW52YWxpZE9mZnNldCkKLSAgICAgICAgZGF0YUxvZ0YoIiAob2Zm
c2V0ID0gJWQpIiwgb2Zmc2V0KTsKKyAgICAgICAgb3V0LnByaW50ZigiIChvZmZzZXQgPSAlZCki
LCBvZmZzZXQpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSklUKSAvLyB1bnVzZWQgd2hlbiBu
b3QgRU5BQkxFKEpJVCksIGxlYWRpbmcgdG8gc2lsbHkgd2FybmluZ3MKLXN0YXRpYyB2b2lkIGR1
bXBDaGFpbihFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZUNoYWluKiBjaGFpbiwgSWRlbnRpZmll
ciYgaWRlbnQpCitzdGF0aWMgdm9pZCBkdW1wQ2hhaW4oUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4sIElkZW50aWZpZXImIGlkZW50KQogewot
ICAgIGRhdGFMb2dGKCJjaGFpbiA9ICVwOiBbIiwgY2hhaW4pOworICAgIG91dC5wcmludGYoImNo
YWluID0gJXA6IFsiLCBjaGFpbik7CiAgICAgYm9vbCBmaXJzdCA9IHRydWU7CiAgICAgZm9yIChX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiogY3VycmVudFN0cnVjdHVyZSA9IGNoYWluLT5oZWFkKCk7
CiAgICAgICAgICAqY3VycmVudFN0cnVjdHVyZTsKQEAgLTI5MSwxMyArMjkxLDEzIEBAIHN0YXRp
YyB2b2lkIGR1bXBDaGFpbihFeGVjU3RhdGUqIGV4ZWMsIFMKICAgICAgICAgICAgIGZpcnN0ID0g
ZmFsc2U7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRhdGFMb2dGKCIsICIpOwotICAgICAg
ICBkdW1wU3RydWN0dXJlKCJzdHJ1Y3QiLCBleGVjLCBjdXJyZW50U3RydWN0dXJlLT5nZXQoKSwg
aWRlbnQpOworICAgICAgICBkdW1wU3RydWN0dXJlKG91dCwgInN0cnVjdCIsIGV4ZWMsIGN1cnJl
bnRTdHJ1Y3R1cmUtPmdldCgpLCBpZGVudCk7CiAgICAgfQotICAgIGRhdGFMb2dGKCJdIik7Cisg
ICAgb3V0LnByaW50ZigiXSIpOwogfQogI2VuZGlmCiAKLXZvaWQgQ29kZUJsb2NrOjpwcmludEdl
dEJ5SWRDYWNoZVN0YXR1cyhFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlvbikKK3ZvaWQgQ29k
ZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0YXR1cyhQcmludFN0cmVhbSYgb3V0LCBFeGVjU3Rh
dGUqIGV4ZWMsIGludCBsb2NhdGlvbikKIHsKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24g
PSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgbG9jYXRpb247CiAKQEAgLTMwNywyMSArMzA3LDIx
IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0YXR1cygKICAgICAKICNpZiBF
TkFCTEUoTExJTlQpCiAgICAgaWYgKGV4ZWMtPmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGlu
c3RydWN0aW9uWzBdLnUub3Bjb2RlKSA9PSBvcF9nZXRfYXJyYXlfbGVuZ3RoKQotICAgICAgICBk
YXRhTG9nRigiIGxsaW50KGFycmF5X2xlbmd0aCkiKTsKKyAgICAgICAgb3V0LnByaW50ZigiIGxs
aW50KGFycmF5X2xlbmd0aCkiKTsKICAgICBlbHNlIHsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBpbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZS5nZXQoKTsKLSAgICAgICAgZGF0YUxv
Z0YoIiBsbGludCgiKTsKLSAgICAgICAgZHVtcFN0cnVjdHVyZSgic3RydWN0IiwgZXhlYywgc3Ry
dWN0dXJlLCBpZGVudCk7Ci0gICAgICAgIGRhdGFMb2dGKCIpIik7CisgICAgICAgIG91dC5wcmlu
dGYoIiBsbGludCgiKTsKKyAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJzdHJ1Y3QiLCBleGVj
LCBzdHJ1Y3R1cmUsIGlkZW50KTsKKyAgICAgICAgb3V0LnByaW50ZigiKSIpOwogICAgIH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAobnVtYmVyT2ZTdHJ1Y3R1cmVTdHViSW5m
b3MoKSkgewotICAgICAgICBkYXRhTG9nRigiIGppdCgiKTsKKyAgICAgICAgb3V0LnByaW50Zigi
IGppdCgiKTsKICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gZ2V0U3R1Yklu
Zm8obG9jYXRpb24pOwogICAgICAgICBpZiAoIXN0dWJJbmZvLnNlZW4pCi0gICAgICAgICAgICBk
YXRhTG9nRigibm90IHNlZW4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIm5vdCBzZWVuIik7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlID0g
MDsKICAgICAgICAgICAgIFN0cnVjdHVyZSogcHJvdG90eXBlU3RydWN0dXJlID0gMDsKQEAgLTMz
MSw0MCArMzMxLDQwIEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0YXR1cygK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgc3dpdGNoIChzdHViSW5mby5hY2Nlc3NUeXBlKSB7
CiAgICAgICAgICAgICBjYXNlIGFjY2Vzc19nZXRfYnlfaWRfc2VsZjoKLSAgICAgICAgICAgICAg
ICBkYXRhTG9nRigic2VsZiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoInNlbGYiKTsK
ICAgICAgICAgICAgICAgICBiYXNlU3RydWN0dXJlID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZi5i
YXNlT2JqZWN0U3RydWN0dXJlLmdldCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3Byb3RvOgotICAgICAgICAgICAgICAgIGRhdGFM
b2dGKCJwcm90byIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoInByb3RvIik7CiAgICAg
ICAgICAgICAgICAgYmFzZVN0cnVjdHVyZSA9IHN0dWJJbmZvLnUuZ2V0QnlJZFByb3RvLmJhc2VP
YmplY3RTdHJ1Y3R1cmUuZ2V0KCk7CiAgICAgICAgICAgICAgICAgcHJvdG90eXBlU3RydWN0dXJl
ID0gc3R1YkluZm8udS5nZXRCeUlkUHJvdG8ucHJvdG90eXBlU3RydWN0dXJlLmdldCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX2No
YWluOgotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJjaGFpbiIpOworICAgICAgICAgICAgICAg
IG91dC5wcmludGYoImNoYWluIik7CiAgICAgICAgICAgICAgICAgYmFzZVN0cnVjdHVyZSA9IHN0
dWJJbmZvLnUuZ2V0QnlJZENoYWluLmJhc2VPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7CiAgICAgICAg
ICAgICAgICAgY2hhaW4gPSBzdHViSW5mby51LmdldEJ5SWRDaGFpbi5jaGFpbi5nZXQoKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9z
ZWxmX2xpc3Q6Ci0gICAgICAgICAgICAgICAgZGF0YUxvZ0YoInNlbGZfbGlzdCIpOworICAgICAg
ICAgICAgICAgIG91dC5wcmludGYoInNlbGZfbGlzdCIpOwogICAgICAgICAgICAgICAgIHN0cnVj
dHVyZUxpc3QgPSBzdHViSW5mby51LmdldEJ5SWRTZWxmTGlzdC5zdHJ1Y3R1cmVMaXN0OwogICAg
ICAgICAgICAgICAgIGxpc3RTaXplID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxpc3QubGlzdFNp
emU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGFjY2Vzc19nZXRf
YnlfaWRfcHJvdG9fbGlzdDoKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigicHJvdG9fbGlzdCIp
OworICAgICAgICAgICAgICAgIG91dC5wcmludGYoInByb3RvX2xpc3QiKTsKICAgICAgICAgICAg
ICAgICBzdHJ1Y3R1cmVMaXN0ID0gc3R1YkluZm8udS5nZXRCeUlkUHJvdG9MaXN0LnN0cnVjdHVy
ZUxpc3Q7CiAgICAgICAgICAgICAgICAgbGlzdFNpemUgPSBzdHViSW5mby51LmdldEJ5SWRQcm90
b0xpc3QubGlzdFNpemU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IGFjY2Vzc191bnNldDoKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigidW5zZXQiKTsKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJ1bnNldCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX2dlbmVyaWM6Ci0gICAgICAgICAgICAg
ICAgZGF0YUxvZ0YoImdlbmVyaWMiKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCJnZW5l
cmljIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGFjY2Vzc19n
ZXRfYXJyYXlfbGVuZ3RoOgotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJhcnJheV9sZW5ndGgi
KTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCJhcnJheV9sZW5ndGgiKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgYWNjZXNzX2dldF9zdHJpbmdfbGVuZ3Ro
OgotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJzdHJpbmdfbGVuZ3RoIik7CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50Zigic3RyaW5nX2xlbmd0aCIpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTM3MiwxMjUgKzM3MiwxMjYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50R2V0QnlJ
ZENhY2hlU3RhdHVzKAogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoYmFzZVN0cnVjdHVyZSkgewotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIsICIpOwotICAg
ICAgICAgICAgICAgIGR1bXBTdHJ1Y3R1cmUoInN0cnVjdCIsIGV4ZWMsIGJhc2VTdHJ1Y3R1cmUs
IGlkZW50KTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIsICIpOworICAgICAgICAgICAg
ICAgIGR1bXBTdHJ1Y3R1cmUob3V0LCAic3RydWN0IiwgZXhlYywgYmFzZVN0cnVjdHVyZSwgaWRl
bnQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAocHJvdG90
eXBlU3RydWN0dXJlKSB7Ci0gICAgICAgICAgICAgICAgZGF0YUxvZ0YoIiwgIik7Ci0gICAgICAg
ICAgICAgICAgZHVtcFN0cnVjdHVyZSgicHJvdG90eXBlU3RydWN0IiwgZXhlYywgYmFzZVN0cnVj
dHVyZSwgaWRlbnQpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiwgIik7CisgICAgICAg
ICAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJwcm90b3R5cGVTdHJ1Y3QiLCBleGVjLCBiYXNl
U3RydWN0dXJlLCBpZGVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmIChjaGFpbikgewotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIsICIpOwotICAgICAg
ICAgICAgICAgIGR1bXBDaGFpbihleGVjLCBjaGFpbiwgaWRlbnQpOworICAgICAgICAgICAgICAg
IG91dC5wcmludGYoIiwgIik7CisgICAgICAgICAgICAgICAgZHVtcENoYWluKG91dCwgZXhlYywg
Y2hhaW4sIGlkZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKHN0cnVjdHVyZUxpc3QpIHsKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiLCBsaXN0ID0g
JXA6IFsiLCBzdHJ1Y3R1cmVMaXN0KTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIsIGxp
c3QgPSAlcDogWyIsIHN0cnVjdHVyZUxpc3QpOwogICAgICAgICAgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoaSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIsICIpOwotICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nRigiKCIpOwotICAgICAgICAgICAgICAgICAgICBkdW1wU3RydWN0dXJlKCJiYXNl
IiwgZXhlYywgc3RydWN0dXJlTGlzdC0+bGlzdFtpXS5iYXNlLmdldCgpLCBpZGVudCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIsICIpOworICAgICAgICAgICAgICAgICAg
ICBvdXQucHJpbnRmKCIoIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXBTdHJ1Y3R1cmUob3V0
LCAiYmFzZSIsIGV4ZWMsIHN0cnVjdHVyZUxpc3QtPmxpc3RbaV0uYmFzZS5nZXQoKSwgaWRlbnQp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoc3RydWN0dXJlTGlzdC0+bGlzdFtpXS5pc0NoYWlu
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RydWN0dXJlTGlzdC0+bGlzdFtpXS51
LmNoYWluLmdldCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIiwg
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcENoYWluKGV4ZWMsIHN0cnVjdHVy
ZUxpc3QtPmxpc3RbaV0udS5jaGFpbi5nZXQoKSwgaWRlbnQpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGYoIiwgIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHVtcENoYWluKG91dCwgZXhlYywgc3RydWN0dXJlTGlzdC0+bGlzdFtpXS51LmNoYWluLmdldCgp
LCBpZGVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RydWN0dXJlTGlzdC0+bGlz
dFtpXS51LnByb3RvLmdldCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxv
Z0YoIiwgIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcFN0cnVjdHVyZSgicHJv
dG8iLCBleGVjLCBzdHJ1Y3R1cmVMaXN0LT5saXN0W2ldLnUucHJvdG8uZ2V0KCksIGlkZW50KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIsICIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGR1bXBTdHJ1Y3R1cmUob3V0LCAicHJvdG8iLCBleGVjLCBzdHJ1
Y3R1cmVMaXN0LT5saXN0W2ldLnUucHJvdG8uZ2V0KCksIGlkZW50KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nRigiKSIpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIpIik7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJdIik7CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50ZigiXSIpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAg
IGRhdGFMb2dGKCIpIik7CisgICAgICAgIG91dC5wcmludGYoIikiKTsKICAgICB9CiAjZW5kaWYK
IH0KIAotdm9pZCBDb2RlQmxvY2s6OnByaW50Q2FsbE9wKEV4ZWNTdGF0ZSogZXhlYywgaW50IGxv
Y2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCwgQ2FjaGVEdW1w
TW9kZSBjYWNoZUR1bXBNb2RlKQordm9pZCBDb2RlQmxvY2s6OnByaW50Q2FsbE9wKFByaW50U3Ry
ZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLCBjb25zdCBJbnN0cnVjdGlv
biomIGl0LCBjb25zdCBjaGFyKiBvcCwgQ2FjaGVEdW1wTW9kZSBjYWNoZUR1bXBNb2RlKQogewog
ICAgIGludCBmdW5jID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IGFyZ0NvdW50ID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJh
bmQ7Ci0gICAgZGF0YUxvZ0YoIlslNGRdICVzXHQgJXMsICVkLCAlZCIsIGxvY2F0aW9uLCBvcCwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIGZ1bmMpLmRhdGEoKSwgYXJnQ291bnQsIHJlZ2lzdGVyT2Zmc2V0
KTsKKyAgICBvdXQucHJpbnRmKCJbJTRkXSAlc1x0ICVzLCAlZCwgJWQiLCBsb2NhdGlvbiwgb3As
IHJlZ2lzdGVyTmFtZShleGVjLCBmdW5jKS5kYXRhKCksIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNl
dCk7CiAgICAgaWYgKGNhY2hlRHVtcE1vZGUgPT0gRHVtcENhY2hlcykgewogI2lmIEVOQUJMRShM
TElOVCkKICAgICAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGl0WzFdLnUu
Y2FsbExpbmtJbmZvOwogICAgICAgICBpZiAoY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZSkg
ewotICAgICAgICAgICAgZGF0YUxvZ0YoIiBsbGludCglcCwgZXhlYyAlcCkiLAotICAgICAgICAg
ICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpLAotICAgICAgICAg
ICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLT5leGVjdXRhYmxlKCkpOwor
ICAgICAgICAgICAgb3V0LnByaW50ZigKKyAgICAgICAgICAgICAgICAiIGxsaW50KCVwLCBleGVj
ICVwKSIsCisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQo
KSwKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLT5leGVjdXRh
YmxlKCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRhdGFMb2dGKCIgbGxpbnQobm90
IHNldCkiKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiBsbGludChub3Qgc2V0KSIpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgaWYgKG51bWJlck9mQ2FsbExpbmtJbmZvcygp
KSB7CiAgICAgICAgICAgICBKU0Z1bmN0aW9uKiB0YXJnZXQgPSBnZXRDYWxsTGlua0luZm8obG9j
YXRpb24pLmxhc3RTZWVuQ2FsbGVlLmdldCgpOwogICAgICAgICAgICAgaWYgKHRhcmdldCkKLSAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiIGppdCglcCwgZXhlYyAlcCkiLCB0YXJnZXQsIHRhcmdl
dC0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBl
eGVjICVwKSIsIHRhcmdldCwgdGFyZ2V0LT5leGVjdXRhYmxlKCkpOwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCIgaml0KG5vdCBzZXQpIik7CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50ZigiIGppdChub3Qgc2V0KSIpOwogICAgICAgICB9CiAjZW5kaWYKICAg
ICB9Ci0gICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgIGl0ICs9IDI7
CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpwcmludFB1dEJ5SWRPcChFeGVjU3RhdGUqIGV4ZWMsIGlu
dCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCwgY29uc3QgY2hhciogb3ApCit2b2lk
IENvZGVCbG9jazo6cHJpbnRQdXRCeUlkT3AoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBl
eGVjLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGNvbnN0IGNoYXIqIG9w
KQogewogICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgIGludCBpZDAgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICBkYXRh
TG9nRigiWyU0ZF0gJXNcdCAlcywgJXMsICVzIiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjApLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdCAlcywgJXMs
ICVzIiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgaWROYW1l
KGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSku
ZGF0YSgpKTsKKyAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9u
KTsKICAgICBpdCArPSA1OwogfQogCi12b2lkIENvZGVCbG9jazo6cHJpbnRTdHJ1Y3R1cmUoY29u
c3QgY2hhciogbmFtZSwgY29uc3QgSW5zdHJ1Y3Rpb24qIHZQQywgaW50IG9wZXJhbmQpCit2b2lk
IENvZGVCbG9jazo6cHJpbnRTdHJ1Y3R1cmUoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgY2hhciog
bmFtZSwgY29uc3QgSW5zdHJ1Y3Rpb24qIHZQQywgaW50IG9wZXJhbmQpCiB7CiAgICAgdW5zaWdu
ZWQgaW5zdHJ1Y3Rpb25PZmZzZXQgPSB2UEMgLSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpOwotICAg
IGRhdGFMb2dGKCIgIFslNGRdICVzOiAlc1xuIiwgaW5zdHJ1Y3Rpb25PZmZzZXQsIG5hbWUsIHBv
aW50ZXJUb1NvdXJjZVN0cmluZyh2UENbb3BlcmFuZF0udS5zdHJ1Y3R1cmUpLnV0ZjgoKS5kYXRh
KCkpOworICAgIG91dC5wcmludGYoIiAgWyU0ZF0gJXM6ICVzXG4iLCBpbnN0cnVjdGlvbk9mZnNl
dCwgbmFtZSwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1tvcGVyYW5kXS51LnN0cnVjdHVyZSku
dXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpwcmludFN0cnVjdHVyZXMoY29u
c3QgSW5zdHJ1Y3Rpb24qIHZQQykKK3ZvaWQgQ29kZUJsb2NrOjpwcmludFN0cnVjdHVyZXMoUHJp
bnRTdHJlYW0mIG91dCwgY29uc3QgSW5zdHJ1Y3Rpb24qIHZQQykKIHsKICAgICBJbnRlcnByZXRl
ciogaW50ZXJwcmV0ZXIgPSBtX2dsb2JhbERhdGEtPmludGVycHJldGVyOwogICAgIHVuc2lnbmVk
IGluc3RydWN0aW9uT2Zmc2V0ID0gdlBDIC0gaW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKIAogICAg
IGlmICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlf
aWQpKSB7Ci0gICAgICAgIHByaW50U3RydWN0dXJlKCJnZXRfYnlfaWQiLCB2UEMsIDQpOworICAg
ICAgICBwcmludFN0cnVjdHVyZShvdXQsICJnZXRfYnlfaWQiLCB2UEMsIDQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICh2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdl
dE9wY29kZShvcF9nZXRfYnlfaWRfc2VsZikpIHsKLSAgICAgICAgcHJpbnRTdHJ1Y3R1cmUoImdl
dF9ieV9pZF9zZWxmIiwgdlBDLCA0KTsKKyAgICAgICAgcHJpbnRTdHJ1Y3R1cmUob3V0LCAiZ2V0
X2J5X2lkX3NlbGYiLCB2UEMsIDQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh2
UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9nZXRfYnlfaWRfcHJv
dG8pKSB7Ci0gICAgICAgIGRhdGFMb2dGKCIgIFslNGRdICVzOiAlcywgJXNcbiIsIGluc3RydWN0
aW9uT2Zmc2V0LCAiZ2V0X2J5X2lkX3Byb3RvIiwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1s0
XS51LnN0cnVjdHVyZSkudXRmOCgpLmRhdGEoKSwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1s1
XS51LnN0cnVjdHVyZSkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIG91dC5wcmludGYoIiAgWyU0
ZF0gJXM6ICVzLCAlc1xuIiwgaW5zdHJ1Y3Rpb25PZmZzZXQsICJnZXRfYnlfaWRfcHJvdG8iLCBw
b2ludGVyVG9Tb3VyY2VTdHJpbmcodlBDWzRdLnUuc3RydWN0dXJlKS51dGY4KCkuZGF0YSgpLCBw
b2ludGVyVG9Tb3VyY2VTdHJpbmcodlBDWzVdLnUuc3RydWN0dXJlKS51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodlBDWzBdLnUub3Bjb2RlID09IGludGVy
cHJldGVyLT5nZXRPcGNvZGUob3BfcHV0X2J5X2lkX3RyYW5zaXRpb24pKSB7Ci0gICAgICAgIGRh
dGFMb2dGKCIgIFslNGRdICVzOiAlcywgJXMsICVzXG4iLCBpbnN0cnVjdGlvbk9mZnNldCwgInB1
dF9ieV9pZF90cmFuc2l0aW9uIiwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1s0XS51LnN0cnVj
dHVyZSkudXRmOCgpLmRhdGEoKSwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1s1XS51LnN0cnVj
dHVyZSkudXRmOCgpLmRhdGEoKSwgcG9pbnRlclRvU291cmNlU3RyaW5nKHZQQ1s2XS51LnN0cnVj
dHVyZUNoYWluKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgb3V0LnByaW50ZigiICBbJTRkXSAl
czogJXMsICVzLCAlc1xuIiwgaW5zdHJ1Y3Rpb25PZmZzZXQsICJwdXRfYnlfaWRfdHJhbnNpdGlv
biIsIHBvaW50ZXJUb1NvdXJjZVN0cmluZyh2UENbNF0udS5zdHJ1Y3R1cmUpLnV0ZjgoKS5kYXRh
KCksIHBvaW50ZXJUb1NvdXJjZVN0cmluZyh2UENbNV0udS5zdHJ1Y3R1cmUpLnV0ZjgoKS5kYXRh
KCksIHBvaW50ZXJUb1NvdXJjZVN0cmluZyh2UENbNl0udS5zdHJ1Y3R1cmVDaGFpbikudXRmOCgp
LmRhdGEoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHZQQ1swXS51Lm9wY29k
ZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9jaGFpbikpIHsKLSAgICAg
ICAgZGF0YUxvZ0YoIiAgWyU0ZF0gJXM6ICVzLCAlc1xuIiwgaW5zdHJ1Y3Rpb25PZmZzZXQsICJn
ZXRfYnlfaWRfY2hhaW4iLCBwb2ludGVyVG9Tb3VyY2VTdHJpbmcodlBDWzRdLnUuc3RydWN0dXJl
KS51dGY4KCkuZGF0YSgpLCBwb2ludGVyVG9Tb3VyY2VTdHJpbmcodlBDWzVdLnUuc3RydWN0dXJl
Q2hhaW4pLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBvdXQucHJpbnRmKCIgIFslNGRdICVzOiAl
cywgJXNcbiIsIGluc3RydWN0aW9uT2Zmc2V0LCAiZ2V0X2J5X2lkX2NoYWluIiwgcG9pbnRlclRv
U291cmNlU3RyaW5nKHZQQ1s0XS51LnN0cnVjdHVyZSkudXRmOCgpLmRhdGEoKSwgcG9pbnRlclRv
U291cmNlU3RyaW5nKHZQQ1s1XS51LnN0cnVjdHVyZUNoYWluKS51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodlBDWzBdLnUub3Bjb2RlID09IGludGVycHJl
dGVyLT5nZXRPcGNvZGUob3BfcHV0X2J5X2lkKSkgewotICAgICAgICBwcmludFN0cnVjdHVyZSgi
cHV0X2J5X2lkIiwgdlBDLCA0KTsKKyAgICAgICAgcHJpbnRTdHJ1Y3R1cmUob3V0LCAicHV0X2J5
X2lkIiwgdlBDLCA0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodlBDWzBdLnUu
b3Bjb2RlID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3BfcHV0X2J5X2lkX3JlcGxhY2UpKSB7
Ci0gICAgICAgIHByaW50U3RydWN0dXJlKCJwdXRfYnlfaWRfcmVwbGFjZSIsIHZQQywgNCk7Cisg
ICAgICAgIHByaW50U3RydWN0dXJlKG91dCwgInB1dF9ieV9pZF9yZXBsYWNlIiwgdlBDLCA0KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDk4LDcgKzQ5OSw3IEBAIHZvaWQgQ29kZUJs
b2NrOjpwcmludFN0cnVjdHVyZXMoY29uc3QgSW4KICAgICBBU1NFUlQodlBDWzBdLnUub3Bjb2Rl
ID09IGludGVycHJldGVyLT5nZXRPcGNvZGUob3BfZ2V0X2J5X2lkX2dlbmVyaWMpIHx8IHZQQ1sw
XS51Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX3B1dF9ieV9pZF9nZW5lcmlj
KSB8fCB2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9jYWxsKSB8
fCB2UENbMF0udS5vcGNvZGUgPT0gaW50ZXJwcmV0ZXItPmdldE9wY29kZShvcF9jYWxsX2V2YWwp
IHx8IHZQQ1swXS51Lm9wY29kZSA9PSBpbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX2NvbnN0cnVj
dCkpOwogfQogCi12b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKCkKK3ZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCkKIHsKICAgICAvLyBXZSBvbmx5IHVzZSB0
aGUgRXhlY1N0YXRlKiBmb3IgdGhpbmdzIHRoYXQgZG9uJ3QgYWN0dWFsbHkgbGVhZCB0byBKUyBl
eGVjdXRpb24sCiAgICAgLy8gbGlrZSBjb252ZXJ0aW5nIGEgSlNTdHJpbmcgdG8gYSBTdHJpbmcu
IEhlbmNlIHRoZSBnbG9iYWxFeGVjIGlzIGFwcHJvcHJpYXRlLgpAQCAtNTA5LDkyICs1MTAsOTIg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBpbnN0cnVjdGlvbnMoKS5zaXplKCk7IGkgKz0gb3Bjb2RlTGVuZ3Roc1tleGVjLT5pbnRl
cnByZXRlcigpLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKVtpXS51Lm9wY29kZSldKQogICAg
ICAgICArK2luc3RydWN0aW9uQ291bnQ7CiAKLSAgICBkYXRhTG9nKCp0aGlzKTsKLSAgICBkYXRh
TG9nRigKKyAgICBvdXQucHJpbnQoKnRoaXMpOworICAgIG91dC5wcmludGYoCiAgICAgICAgICI6
ICVsdSBtX2luc3RydWN0aW9uczsgJWx1IGJ5dGVzOyAlZCBwYXJhbWV0ZXIocyk7ICVkIGNhbGxl
ZSByZWdpc3RlcihzKTsgJWQgdmFyaWFibGUocykiLAogICAgICAgICBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBsb25nPihpbnN0cnVjdGlvbnMoKS5zaXplKCkpLAogICAgICAgICBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBsb25nPihpbnN0cnVjdGlvbnMoKS5zaXplKCkgKiBzaXplb2YoSW5zdHJ1Y3Rpb24p
KSwKICAgICAgICAgbV9udW1QYXJhbWV0ZXJzLCBtX251bUNhbGxlZVJlZ2lzdGVycywgbV9udW1W
YXJzKTsKICAgICBpZiAoc3ltYm9sVGFibGUoKSAmJiBzeW1ib2xUYWJsZSgpLT5jYXB0dXJlQ291
bnQoKSkKLSAgICAgICAgZGF0YUxvZ0YoIjsgJWQgY2FwdHVyZWQgdmFyKHMpIiwgc3ltYm9sVGFi
bGUoKS0+Y2FwdHVyZUNvdW50KCkpOworICAgICAgICBvdXQucHJpbnRmKCI7ICVkIGNhcHR1cmVk
IHZhcihzKSIsIHN5bWJvbFRhYmxlKCktPmNhcHR1cmVDb3VudCgpKTsKICAgICBpZiAodXNlc0Fy
Z3VtZW50cygpKSB7Ci0gICAgICAgIGRhdGFMb2dGKAorICAgICAgICBvdXQucHJpbnRmKAogICAg
ICAgICAgICAgIjsgdXNlcyBhcmd1bWVudHMsIGluIHIlZCwgciVkIiwKICAgICAgICAgICAgIGFy
Z3VtZW50c1JlZ2lzdGVyKCksCiAgICAgICAgICAgICB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0
ZXIoYXJndW1lbnRzUmVnaXN0ZXIoKSkpOwogICAgIH0KICAgICBpZiAobmVlZHNGdWxsU2NvcGVD
aGFpbigpICYmIGNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQotICAgICAgICBkYXRhTG9nRigi
OyBhY3RpdmF0aW9uIGluIHIlZCIsIGFjdGl2YXRpb25SZWdpc3RlcigpKTsKLSAgICBkYXRhTG9n
RigiXG5cbiIpOworICAgICAgICBvdXQucHJpbnRmKCI7IGFjdGl2YXRpb24gaW4gciVkIiwgYWN0
aXZhdGlvblJlZ2lzdGVyKCkpOworICAgIG91dC5wcmludGYoIlxuXG4iKTsKIAogICAgIGNvbnN0
IEluc3RydWN0aW9uKiBiZWdpbiA9IGluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGVuZCA9IGluc3RydWN0aW9ucygpLmVuZCgpOwogICAgIGZvciAoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGl0ID0gYmVnaW47IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgZHVtcEJ5
dGVjb2RlKGV4ZWMsIGJlZ2luLCBpdCk7CisgICAgICAgIGR1bXBCeXRlY29kZShvdXQsIGV4ZWMs
IGJlZ2luLCBpdCk7CiAKICAgICBpZiAoIW1faWRlbnRpZmllcnMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGRhdGFMb2dGKCJcbklkZW50aWZpZXJzOlxuIik7CisgICAgICAgIG91dC5wcmludGYoIlxu
SWRlbnRpZmllcnM6XG4iKTsKICAgICAgICAgc2l6ZV90IGkgPSAwOwogICAgICAgICBkbyB7Ci0g
ICAgICAgICAgICBkYXRhTG9nRigiICBpZCV1ID0gJXNcbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihpKSwgbV9pZGVudGlmaWVyc1tpXS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgIG91dC5wcmludGYoIiAgaWQldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSks
IG1faWRlbnRpZmllcnNbaV0uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAr
K2k7CiAgICAgICAgIH0gd2hpbGUgKGkgIT0gbV9pZGVudGlmaWVycy5zaXplKCkpOwogICAgIH0K
IAogICAgIGlmICghbV9jb25zdGFudFJlZ2lzdGVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZGF0
YUxvZ0YoIlxuQ29uc3RhbnRzOlxuIik7CisgICAgICAgIG91dC5wcmludGYoIlxuQ29uc3RhbnRz
OlxuIik7CiAgICAgICAgIHNpemVfdCBpID0gMDsKICAgICAgICAgZG8gewotICAgICAgICAgICAg
ZGF0YUxvZ0YoIiAgIGsldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSksIHZhbHVl
VG9Tb3VyY2VTdHJpbmcoZXhlYywgbV9jb25zdGFudFJlZ2lzdGVyc1tpXS5nZXQoKSkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIgICBrJXUgPSAlc1xuIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGkpLCB2YWx1ZVRvU291cmNlU3RyaW5nKGV4ZWMsIG1fY29uc3RhbnRS
ZWdpc3RlcnNbaV0uZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgKytpOwogICAg
ICAgICB9IHdoaWxlIChpIDwgbV9jb25zdGFudFJlZ2lzdGVycy5zaXplKCkpOwogICAgIH0KIAog
ICAgIGlmIChzaXplX3QgY291bnQgPSBtX3VubGlua2VkQ29kZS0+bnVtYmVyT2ZSZWdFeHBzKCkp
IHsKLSAgICAgICAgZGF0YUxvZ0YoIlxubV9yZWdleHBzOlxuIik7CisgICAgICAgIG91dC5wcmlu
dGYoIlxubV9yZWdleHBzOlxuIik7CiAgICAgICAgIHNpemVfdCBpID0gMDsKICAgICAgICAgZG8g
ewotICAgICAgICAgICAgZGF0YUxvZ0YoIiAgcmUldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oaSksIHJlZ2V4cFRvU291cmNlU3RyaW5nKG1fdW5saW5rZWRDb2RlLT5yZWdleHAoaSkp
LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgb3V0LnByaW50ZigiICByZSV1ID0gJXNcbiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpKSwgcmVnZXhwVG9Tb3VyY2VTdHJpbmcobV91bmxpbmtl
ZENvZGUtPnJlZ2V4cChpKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICArK2k7CiAgICAg
ICAgIH0gd2hpbGUgKGkgPCBjb3VudCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKICAgICBp
ZiAoIW1fc3RydWN0dXJlU3R1YkluZm9zLmlzRW1wdHkoKSkKLSAgICAgICAgZGF0YUxvZ0YoIlxu
U3RydWN0dXJlczpcbiIpOworICAgICAgICBvdXQucHJpbnRmKCJcblN0cnVjdHVyZXM6XG4iKTsK
ICNlbmRpZgogCiAgICAgaWYgKG1fcmFyZURhdGEgJiYgIW1fcmFyZURhdGEtPm1fZXhjZXB0aW9u
SGFuZGxlcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGRhdGFMb2dGKCJcbkV4Y2VwdGlvbiBIYW5k
bGVyczpcbiIpOworICAgICAgICBvdXQucHJpbnRmKCJcbkV4Y2VwdGlvbiBIYW5kbGVyczpcbiIp
OwogICAgICAgICB1bnNpZ25lZCBpID0gMDsKICAgICAgICAgZG8gewotICAgICAgICAgICAgZGF0
YUxvZ0YoIlx0ICVkOiB7IHN0YXJ0OiBbJTRkXSBlbmQ6IFslNGRdIHRhcmdldDogWyU0ZF0gfVxu
IiwgaSArIDEsIG1fcmFyZURhdGEtPm1fZXhjZXB0aW9uSGFuZGxlcnNbaV0uc3RhcnQsIG1fcmFy
ZURhdGEtPm1fZXhjZXB0aW9uSGFuZGxlcnNbaV0uZW5kLCBtX3JhcmVEYXRhLT5tX2V4Y2VwdGlv
bkhhbmRsZXJzW2ldLnRhcmdldCk7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJcdCAlZDogeyBz
dGFydDogWyU0ZF0gZW5kOiBbJTRkXSB0YXJnZXQ6IFslNGRdIH1cbiIsIGkgKyAxLCBtX3JhcmVE
YXRhLT5tX2V4Y2VwdGlvbkhhbmRsZXJzW2ldLnN0YXJ0LCBtX3JhcmVEYXRhLT5tX2V4Y2VwdGlv
bkhhbmRsZXJzW2ldLmVuZCwgbV9yYXJlRGF0YS0+bV9leGNlcHRpb25IYW5kbGVyc1tpXS50YXJn
ZXQpOwogICAgICAgICAgICAgKytpOwogICAgICAgICB9IHdoaWxlIChpIDwgbV9yYXJlRGF0YS0+
bV9leGNlcHRpb25IYW5kbGVycy5zaXplKCkpOwogICAgIH0KICAgICAKICAgICBpZiAobV9yYXJl
RGF0YSAmJiAhbV9yYXJlRGF0YS0+bV9pbW1lZGlhdGVTd2l0Y2hKdW1wVGFibGVzLmlzRW1wdHko
KSkgewotICAgICAgICBkYXRhTG9nRigiSW1tZWRpYXRlIFN3aXRjaCBKdW1wIFRhYmxlczpcbiIp
OworICAgICAgICBvdXQucHJpbnRmKCJJbW1lZGlhdGUgU3dpdGNoIEp1bXAgVGFibGVzOlxuIik7
CiAgICAgICAgIHVuc2lnbmVkIGkgPSAwOwogICAgICAgICBkbyB7Ci0gICAgICAgICAgICBkYXRh
TG9nRigiICAlMWQgPSB7XG4iLCBpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiAgJTFkID0g
e1xuIiwgaSk7CiAgICAgICAgICAgICBpbnQgZW50cnkgPSAwOwogICAgICAgICAgICAgVmVjdG9y
PGludDMyX3Q+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3JhcmVEYXRhLT5tX2ltbWVkaWF0ZVN3
aXRjaEp1bXBUYWJsZXNbaV0uYnJhbmNoT2Zmc2V0cy5lbmQoKTsKICAgICAgICAgICAgIGZvciAo
VmVjdG9yPGludDMyX3Q+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yYXJlRGF0YS0+bV9pbW1l
ZGlhdGVTd2l0Y2hKdW1wVGFibGVzW2ldLmJyYW5jaE9mZnNldHMuYmVnaW4oKTsgaXRlciAhPSBl
bmQ7ICsraXRlciwgKytlbnRyeSkgewogICAgICAgICAgICAgICAgIGlmICghKml0ZXIpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJcdFx0
JTRkID0+ICUwNGRcbiIsIGVudHJ5ICsgbV9yYXJlRGF0YS0+bV9pbW1lZGlhdGVTd2l0Y2hKdW1w
VGFibGVzW2ldLm1pbiwgKml0ZXIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoIlx0XHQl
NGQgPT4gJTA0ZFxuIiwgZW50cnkgKyBtX3JhcmVEYXRhLT5tX2ltbWVkaWF0ZVN3aXRjaEp1bXBU
YWJsZXNbaV0ubWluLCAqaXRlcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkYXRhTG9n
RigiICAgICAgfVxuIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIgICAgICB9XG4iKTsKICAg
ICAgICAgICAgICsraTsKICAgICAgICAgfSB3aGlsZSAoaSA8IG1fcmFyZURhdGEtPm1faW1tZWRp
YXRlU3dpdGNoSnVtcFRhYmxlcy5zaXplKCkpOwogICAgIH0KICAgICAKICAgICBpZiAobV9yYXJl
RGF0YSAmJiAhbV9yYXJlRGF0YS0+bV9jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGVzLmlzRW1wdHko
KSkgewotICAgICAgICBkYXRhTG9nRigiXG5DaGFyYWN0ZXIgU3dpdGNoIEp1bXAgVGFibGVzOlxu
Iik7CisgICAgICAgIG91dC5wcmludGYoIlxuQ2hhcmFjdGVyIFN3aXRjaCBKdW1wIFRhYmxlczpc
biIpOwogICAgICAgICB1bnNpZ25lZCBpID0gMDsKICAgICAgICAgZG8gewotICAgICAgICAgICAg
ZGF0YUxvZ0YoIiAgJTFkID0ge1xuIiwgaSk7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIgICUx
ZCA9IHtcbiIsIGkpOwogICAgICAgICAgICAgaW50IGVudHJ5ID0gMDsKICAgICAgICAgICAgIFZl
Y3RvcjxpbnQzMl90Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9yYXJlRGF0YS0+bV9jaGFyYWN0
ZXJTd2l0Y2hKdW1wVGFibGVzW2ldLmJyYW5jaE9mZnNldHMuZW5kKCk7CiAgICAgICAgICAgICBm
b3IgKFZlY3RvcjxpbnQzMl90Pjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmFyZURhdGEtPm1f
Y2hhcmFjdGVyU3dpdGNoSnVtcFRhYmxlc1tpXS5icmFuY2hPZmZzZXRzLmJlZ2luKCk7IGl0ZXIg
IT0gZW5kOyArK2l0ZXIsICsrZW50cnkpIHsKQEAgLTYwMiw5NiArNjAzLDk2IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICBBU1NFUlQoISgoaSArIG1fcmFyZURhdGEtPm1fY2hhcmFjdGVyU3dpdGNo
SnVtcFRhYmxlc1tpXS5taW4pICYgfjB4RkZGRikpOwogICAgICAgICAgICAgICAgIFVDaGFyIGNo
ID0gc3RhdGljX2Nhc3Q8VUNoYXI+KGVudHJ5ICsgbV9yYXJlRGF0YS0+bV9jaGFyYWN0ZXJTd2l0
Y2hKdW1wVGFibGVzW2ldLm1pbik7Ci0gICAgICAgICAgICAgICAgZGF0YUxvZ0YoIlx0XHRcIiVz
XCIgPT4gJTA0ZFxuIiwgU3RyaW5nKCZjaCwgMSkudXRmOCgpLmRhdGEoKSwgKml0ZXIpOwotICAg
ICAgICB9Ci0gICAgICAgICAgICBkYXRhTG9nRigiICAgICAgfVxuIik7CisgICAgICAgICAgICAg
ICAgb3V0LnByaW50ZigiXHRcdFwiJXNcIiA9PiAlMDRkXG4iLCBTdHJpbmcoJmNoLCAxKS51dGY4
KCkuZGF0YSgpLCAqaXRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRm
KCIgICAgICB9XG4iKTsKICAgICAgICAgICAgICsraTsKICAgICAgICAgfSB3aGlsZSAoaSA8IG1f
cmFyZURhdGEtPm1fY2hhcmFjdGVyU3dpdGNoSnVtcFRhYmxlcy5zaXplKCkpOwogICAgIH0KICAg
ICAKICAgICBpZiAobV9yYXJlRGF0YSAmJiAhbV9yYXJlRGF0YS0+bV9zdHJpbmdTd2l0Y2hKdW1w
VGFibGVzLmlzRW1wdHkoKSkgewotICAgICAgICBkYXRhTG9nRigiXG5TdHJpbmcgU3dpdGNoIEp1
bXAgVGFibGVzOlxuIik7CisgICAgICAgIG91dC5wcmludGYoIlxuU3RyaW5nIFN3aXRjaCBKdW1w
IFRhYmxlczpcbiIpOwogICAgICAgICB1bnNpZ25lZCBpID0gMDsKICAgICAgICAgZG8gewotICAg
ICAgICAgICAgZGF0YUxvZ0YoIiAgJTFkID0ge1xuIiwgaSk7CisgICAgICAgICAgICBvdXQucHJp
bnRmKCIgICUxZCA9IHtcbiIsIGkpOwogICAgICAgICAgICAgU3RyaW5nSnVtcFRhYmxlOjpTdHJp
bmdPZmZzZXRUYWJsZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9yYXJlRGF0YS0+bV9zdHJpbmdT
d2l0Y2hKdW1wVGFibGVzW2ldLm9mZnNldFRhYmxlLmVuZCgpOwogICAgICAgICAgICAgZm9yIChT
dHJpbmdKdW1wVGFibGU6OlN0cmluZ09mZnNldFRhYmxlOjpjb25zdF9pdGVyYXRvciBpdGVyID0g
bV9yYXJlRGF0YS0+bV9zdHJpbmdTd2l0Y2hKdW1wVGFibGVzW2ldLm9mZnNldFRhYmxlLmJlZ2lu
KCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgICAgICAgICAgZGF0YUxvZ0YoIlx0XHRc
IiVzXCIgPT4gJTA0ZFxuIiwgU3RyaW5nKGl0ZXItPmtleSkudXRmOCgpLmRhdGEoKSwgaXRlci0+
dmFsdWUuYnJhbmNoT2Zmc2V0KTsKLSAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgICB9XG4iKTsK
KyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCJcdFx0XCIlc1wiID0+ICUwNGRcbiIsIFN0cmlu
ZyhpdGVyLT5rZXkpLnV0ZjgoKS5kYXRhKCksIGl0ZXItPnZhbHVlLmJyYW5jaE9mZnNldCk7Cisg
ICAgICAgICAgICBvdXQucHJpbnRmKCIgICAgICB9XG4iKTsKICAgICAgICAgICAgICsraTsKICAg
ICAgICAgfSB3aGlsZSAoaSA8IG1fcmFyZURhdGEtPm1fc3RyaW5nU3dpdGNoSnVtcFRhYmxlcy5z
aXplKCkpOwogICAgIH0KIAotICAgIGRhdGFMb2dGKCJcbiIpOworICAgIG91dC5wcmludGYoIlxu
Iik7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJbnN0cnVjdGlvbiogYmVnaW4sIGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCit2b2lkIENv
ZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSW5zdHJ1Y3Rpb24qIGJlZ2luLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0KQogewogICAg
IGludCBsb2NhdGlvbiA9IGl0IC0gYmVnaW47CiAgICAgc3dpdGNoIChleGVjLT5pbnRlcnByZXRl
cigpLT5nZXRPcGNvZGVJRChpdC0+dS5vcGNvZGUpKSB7CiAgICAgICAgIGNhc2Ugb3BfZW50ZXI6
IHsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBlbnRlciIsIGxvY2F0aW9uKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAg
ICAgIG91dC5wcmludGYoIlslNGRdIGVudGVyIiwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVt
cEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hY3RpdmF0aW9uOiB7CiAg
ICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFM
b2dGKCJbJTRkXSBjcmVhdGVfYWN0aXZhdGlvbiAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjcmVhdGVfYWN0
aXZhdGlvbiAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Cisg
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2Fy
Z3VtZW50czogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBkYXRhTG9nRigiWyU0ZF0gY3JlYXRlX2FyZ3VtZW50c1x0ICVzIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlsl
NGRdIGNyZWF0ZV9hcmd1bWVudHNcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywg
cjApLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfaW5pdF9sYXp5X3JlZzogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gaW5pdF9sYXp5X3JlZ1x0ICVzIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIGluaXRfbGF6eV9yZWdcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjApLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfZ2V0X2NhbGxlZTogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51
Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gb3BfZ2V0X2NhbGxlZSAlc1xu
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IG91dC5wcmludGYoIlslNGRdIG9wX2dldF9jYWxsZWUgJXNcbiIsIGxvY2F0aW9uLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjApLmRhdGEoKSk7CiAgICAgICAgICAgICArK2l0OwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jcmVhdGVfdGhpczogewogICAgICAg
ICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAo
KytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBjcmVhdGVfdGhp
cyAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNy
ZWF0ZV90aGlzICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NvbnZlcnRfdGhpczogewogICAgICAgICAgICAg
aW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0g
Y29udmVydF90aGlzXHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24p
OworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY29udmVydF90aGlzXHQgJXMiLCBsb2Nh
dGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICArK2l0
OyAvLyBTa2lwIHZhbHVlIHByb2ZpbGUuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX25ld19vYmplY3Q6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIG5ld19vYmplY3RcdCAl
cyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCJbJTRkXSBuZXdfb2JqZWN0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX25ld19hcnJheTogewogICAgICAgICAgICAgaW50IGRzdCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGFyZ3YgPSAoKytpdCktPnUub3BlcmFuZDsKICAg
ICAgICAgICAgIGludCBhcmdjID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRh
TG9nRigiWyU0ZF0gbmV3X2FycmF5XHQgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBhcmd2KS5kYXRhKCksIGFy
Z2MpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24p
OworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2FycmF5XHQgJXMsICVzLCAlZCIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCBhcmd2KS5kYXRhKCksIGFyZ2MpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICArK2l0OyAvLyBTa2lwIGFy
cmF5IGFsbG9jYXRpb24gcHJvZmlsZS4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfbmV3X2FycmF5X3dpdGhfc2l6ZTogewogICAgICAgICAgICAgaW50IGRz
dCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGxlbmd0aCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIG5ld19hcnJheV93aXRoX3Np
emVcdCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGRzdCkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgbGVuZ3RoKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gbmV3X2FycmF5X3dpdGhfc2l6ZVx0ICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBsZW5ndGgpLmRhdGEoKSk7
CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9u
KTsKICAgICAgICAgICAgICsraXQ7IC8vIFNraXAgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxlLgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTY5OSwxNDkgKzcwMCwxNDkgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShFeGVjU3RhdGUqIAogICAgICAgICAgICAgaW50IGRz
dCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGFyZ3YgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCBhcmdjID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBkYXRhTG9nRigiWyU0ZF0gbmV3X2FycmF5X2J1ZmZlclx0ICVzLCAlZCwgJWQiLCBs
b2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGRzdCkuZGF0YSgpLCBhcmd2LCBhcmdjKTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIG5ld19hcnJheV9idWZmZXJcdCAlcywgJWQsICVkIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBkc3QpLmRhdGEoKSwgYXJndiwgYXJnYyk7Cisg
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgICsraXQ7IC8vIFNraXAgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxlLgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfcmVnZXhwOiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCByZTAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBu
ZXdfcmVnZXhwXHQgJXMsICIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEo
KSk7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfcmVnZXhwXHQgJXMsICIsIGxv
Y2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7CiAgICAgICAgICAgICBpZiAo
cjAgPj0wICYmIHIwIDwgKGludCltX3VubGlua2VkQ29kZS0+bnVtYmVyT2ZSZWdFeHBzKCkpCi0g
ICAgICAgICAgICAgICAgZGF0YUxvZ0YoIiVzIiwgcmVnZXhwTmFtZShyZTAsIHJlZ2V4cChyZTAp
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiVzIiwgcmVnZXhwTmFtZShy
ZTAsIHJlZ2V4cChyZTApKS5kYXRhKCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGRhdGFMb2dGKCJiYWRfcmVnZXhwKCVkKSIsIHJlMCk7Ci0gICAgICAgICAgICBkdW1wQnl0
ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICAgICAgb3V0LnBy
aW50ZigiYmFkX3JlZ2V4cCglZCkiLCByZTApOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX21vdjogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBtb3ZcdFx0ICVzLCAlcyIsIGxvY2F0aW9uLCByZWdp
c3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkp
OwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOwor
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbW92XHRcdCAlcywgJXMiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0
YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9u
b3Q6IHsKLSAgICAgICAgICAgIHByaW50VW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJub3Qi
KTsKKyAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm5v
dCIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lcTog
ewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJlcSIpOwor
ICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImVxIik7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2VxX251bGw6
IHsKLSAgICAgICAgICAgIHByaW50VW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJlcV9udWxs
Iik7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJl
cV9udWxsIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X25lcTogewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJu
ZXEiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQs
ICJuZXEiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
bmVxX251bGw6IHsKLSAgICAgICAgICAgIHByaW50VW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQs
ICJuZXFfbnVsbCIpOworICAgICAgICAgICAgcHJpbnRVbmFyeU9wKG91dCwgZXhlYywgbG9jYXRp
b24sIGl0LCAibmVxX251bGwiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3Bfc3RyaWN0ZXE6IHsKLSAgICAgICAgICAgIHByaW50QmluYXJ5T3AoZXhlYywg
bG9jYXRpb24sIGl0LCAic3RyaWN0ZXEiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0
LCBleGVjLCBsb2NhdGlvbiwgaXQsICJzdHJpY3RlcSIpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uc3RyaWN0ZXE6IHsKLSAgICAgICAgICAgIHByaW50
QmluYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAibnN0cmljdGVxIik7CisgICAgICAgICAgICBw
cmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAibnN0cmljdGVxIik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xlc3M6IHsKLSAgICAg
ICAgICAgIHByaW50QmluYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAibGVzcyIpOworICAgICAg
ICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImxlc3MiKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbGVzc2VxOiB7Ci0g
ICAgICAgICAgICBwcmludEJpbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImxlc3NlcSIpOwor
ICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImxlc3Nl
cSIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9ncmVh
dGVyOiB7Ci0gICAgICAgICAgICBwcmludEJpbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImdy
ZWF0ZXIiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwg
aXQsICJncmVhdGVyIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2dyZWF0ZXJlcTogewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVjLCBsb2Nh
dGlvbiwgaXQsICJncmVhdGVyZXEiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBl
eGVjLCBsb2NhdGlvbiwgaXQsICJncmVhdGVyZXEiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJlX2luYzogewogICAgICAgICAgICAgaW50IHIwID0g
KCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gcHJlX2luY1x0
XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAg
ICAgb3V0LnByaW50ZigiWyU0ZF0gcHJlX2luY1x0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX3ByZV9kZWM6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIHByZV9kZWNcdFx0ICVzIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIHByZV9kZWNcdFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9wb3N0X2luYzogewotICAgICAgICAgICAgcHJpbnRVbmFyeU9wKGV4ZWMsIGxvY2F0
aW9uLCBpdCwgInBvc3RfaW5jIik7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVj
LCBsb2NhdGlvbiwgaXQsICJwb3N0X2luYyIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9wb3N0X2RlYzogewotICAgICAgICAgICAgcHJpbnRVbmFyeU9w
KGV4ZWMsIGxvY2F0aW9uLCBpdCwgInBvc3RfZGVjIik7CisgICAgICAgICAgICBwcmludFVuYXJ5
T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwb3N0X2RlYyIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90b19qc251bWJlcjogewotICAgICAgICAg
ICAgcHJpbnRVbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgInRvX2pzbnVtYmVyIik7CisgICAg
ICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19qc251bWJl
ciIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZWdh
dGU6IHsKLSAgICAgICAgICAgIHByaW50VW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJuZWdh
dGUiKTsKKyAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwg
Im5lZ2F0ZSIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9hZGQ6IHsKLSAgICAgICAgICAgIHByaW50QmluYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAi
YWRkIik7CisgICAgICAgICAgICBwcmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0
LCAiYWRkIik7CiAgICAgICAgICAgICArK2l0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9tdWw6IHsKLSAgICAgICAgICAgIHByaW50QmluYXJ5T3AoZXhl
YywgbG9jYXRpb24sIGl0LCAibXVsIik7CisgICAgICAgICAgICBwcmludEJpbmFyeU9wKG91dCwg
ZXhlYywgbG9jYXRpb24sIGl0LCAibXVsIik7CiAgICAgICAgICAgICArK2l0OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kaXY6IHsKLSAgICAgICAgICAg
IHByaW50QmluYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAiZGl2Iik7CisgICAgICAgICAgICBw
cmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAiZGl2Iik7CiAgICAgICAgICAg
ICArK2l0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9t
b2Q6IHsKLSAgICAgICAgICAgIHByaW50QmluYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAibW9k
Iik7CisgICAgICAgICAgICBwcmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAi
bW9kIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N1
YjogewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJzdWIi
KTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJz
dWIiKTsKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2xzaGlmdDogewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVj
LCBsb2NhdGlvbiwgaXQsICJsc2hpZnQiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0
LCBleGVjLCBsb2NhdGlvbiwgaXQsICJsc2hpZnQiKTsKICAgICAgICAgICAgIGJyZWFrOyAgICAg
ICAgICAgIAogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcnNoaWZ0OiB7Ci0gICAgICAgICAg
ICBwcmludEJpbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgInJzaGlmdCIpOworICAgICAgICAg
ICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInJzaGlmdCIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF91cnNoaWZ0OiB7Ci0g
ICAgICAgICAgICBwcmludEJpbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVyc2hpZnQiKTsK
KyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ1cnNo
aWZ0Iik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2Jp
dGFuZDogewotICAgICAgICAgICAgcHJpbnRCaW5hcnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJi
aXRhbmQiKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwg
aXQsICJiaXRhbmQiKTsKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX2JpdHhvcjogewotICAgICAgICAgICAgcHJpbnRCaW5h
cnlPcChleGVjLCBsb2NhdGlvbiwgaXQsICJiaXR4b3IiKTsKKyAgICAgICAgICAgIHByaW50Qmlu
YXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJiaXR4b3IiKTsKICAgICAgICAgICAgICsr
aXQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2JpdG9y
OiB7Ci0gICAgICAgICAgICBwcmludEJpbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImJpdG9y
Iik7CisgICAgICAgICAgICBwcmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAi
Yml0b3IiKTsKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQpAQCAtODUwLDQ4ICs4NTEsNDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShFeGVj
U3RhdGUqIAogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQg
PSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBjaGVja19o
YXNfaW5zdGFuY2VcdFx0ICVzLCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY2hlY2tfaGFzX2luc3RhbmNlXHRcdCAlcywgJXMs
ICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0
YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mOiB7CiAgICAgICAgICAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAg
ICAgICBkYXRhTG9nRigiWyU0ZF0gaW5zdGFuY2VvZlx0XHQgJXMsICVzLCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIGluc3RhbmNlb2ZcdFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdp
c3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21t
ZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfdHlwZW9mOiB7Ci0gICAgICAgICAgICBwcmludFVuYXJ5T3Ao
ZXhlYywgbG9jYXRpb24sIGl0LCAidHlwZW9mIik7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Ao
b3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0eXBlb2YiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOiB7Ci0gICAgICAgICAgICBw
cmludFVuYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAiaXNfdW5kZWZpbmVkIik7CisgICAgICAg
ICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpc191bmRlZmluZWQi
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaXNfYm9v
bGVhbjogewotICAgICAgICAgICAgcHJpbnRVbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImlz
X2Jvb2xlYW4iKTsKKyAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9u
LCBpdCwgImlzX2Jvb2xlYW4iKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfaXNfbnVtYmVyOiB7Ci0gICAgICAgICAgICBwcmludFVuYXJ5T3AoZXhlYywg
bG9jYXRpb24sIGl0LCAiaXNfbnVtYmVyIik7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0
LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpc19udW1iZXIiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaXNfc3RyaW5nOiB7Ci0gICAgICAgICAgICBwcmlu
dFVuYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAiaXNfc3RyaW5nIik7CisgICAgICAgICAgICBw
cmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpc19zdHJpbmciKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaXNfb2JqZWN0OiB7Ci0g
ICAgICAgICAgICBwcmludFVuYXJ5T3AoZXhlYywgbG9jYXRpb24sIGl0LCAiaXNfb2JqZWN0Iik7
CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpc19v
YmplY3QiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
aXNfZnVuY3Rpb246IHsKLSAgICAgICAgICAgIHByaW50VW5hcnlPcChleGVjLCBsb2NhdGlvbiwg
aXQsICJpc19mdW5jdGlvbiIpOworICAgICAgICAgICAgcHJpbnRVbmFyeU9wKG91dCwgZXhlYywg
bG9jYXRpb24sIGl0LCAiaXNfZnVuY3Rpb24iKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfaW46IHsKLSAgICAgICAgICAgIHByaW50QmluYXJ5T3AoZXhl
YywgbG9jYXRpb24sIGl0LCAiaW4iKTsKKyAgICAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBl
eGVjLCBsb2NhdGlvbiwgaXQsICJpbiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9wdXRfdG9fYmFzZV92YXJpYWJsZToKQEAgLTkwMCw4ICs5MDEsOCBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKEV4ZWNTdGF0ZSogCiAgICAgICAgICAgICBp
bnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgdmFsdWUgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5v
cGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIHB1dF90b19iYXNlXHQgJXMsICVz
LCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGJhc2UpLmRhdGEoKSwgaWRO
YW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCB2
YWx1ZSkuZGF0YSgpLCByZXNvbHZlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21t
ZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBw
dXRfdG9fYmFzZVx0ICVzLCAlcywgJXMsICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCBiYXNlKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgdmFsdWUpLmRhdGEoKSwgcmVzb2x2ZUluZm8pOworICAgICAgICAg
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Jlc29sdmU6CkBAIC05MTMs
MTQgKzkxNCwxNCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKEV4ZWNTdGF0ZSogCiAg
ICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBp
ZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgr
K2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIHJlc29sdmVcdFx0
ICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlk
TmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZlSW5mbyk7Ci0gICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAg
ICAgICBvdXQucHJpbnRmKCJbJTRkXSByZXNvbHZlXHRcdCAlcywgJXMsICVkIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJz
W2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbml0X2dsb2JhbF9jb25z
dF9ub3A6IHsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBpbml0X2dsb2JhbF9jb25zdF9u
b3BcdCIsIGxvY2F0aW9uKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluaXRfZ2xvYmFs
X2NvbnN0X25vcFx0IiwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAg
ICAgaXQrKzsKICAgICAgICAgICAgIGl0Kys7CkBAIC05MzAsOCArOTMxLDggQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShFeGVjU3RhdGUqIAogICAgICAgICBjYXNlIG9wX2luaXRfZ2xv
YmFsX2NvbnN0OiB7CiAgICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVy
UG9pbnRlciA9ICgrK2l0KS0+dS5yZWdpc3RlclBvaW50ZXI7CiAgICAgICAgICAgICBpbnQgcjAg
PSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBpbml0X2ds
b2JhbF9jb25zdFx0IGclZCglcCksICVzIiwgbG9jYXRpb24sIG1fZ2xvYmFsT2JqZWN0LT5maW5k
UmVnaXN0ZXJJbmRleChyZWdpc3RlclBvaW50ZXIpLCByZWdpc3RlclBvaW50ZXIsIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluaXRf
Z2xvYmFsX2NvbnN0XHQgZyVkKCVwKSwgJXMiLCBsb2NhdGlvbiwgbV9nbG9iYWxPYmplY3QtPmZp
bmRSZWdpc3RlckluZGV4KHJlZ2lzdGVyUG9pbnRlciksIHJlZ2lzdGVyUG9pbnRlciwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAg
ICAgaXQrKzsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTM5LDggKzk0MCw4IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAgICAgICAgY2FzZSBvcF9pbml0X2ds
b2JhbF9jb25zdF9jaGVjazogewogICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBy
ZWdpc3RlclBvaW50ZXIgPSAoKytpdCktPnUucmVnaXN0ZXJQb2ludGVyOwogICAgICAgICAgICAg
aW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0g
aW5pdF9nbG9iYWxfY29uc3RfY2hlY2tcdCBnJWQoJXApLCAlcyIsIGxvY2F0aW9uLCBtX2dsb2Jh
bE9iamVjdC0+ZmluZFJlZ2lzdGVySW5kZXgocmVnaXN0ZXJQb2ludGVyKSwgcmVnaXN0ZXJQb2lu
dGVyLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0
ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRm
KCJbJTRkXSBpbml0X2dsb2JhbF9jb25zdF9jaGVja1x0IGclZCglcCksICVzIiwgbG9jYXRpb24s
IG1fZ2xvYmFsT2JqZWN0LT5maW5kUmVnaXN0ZXJJbmRleChyZWdpc3RlclBvaW50ZXIpLCByZWdp
c3RlclBvaW50ZXIsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgaXQrKzsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk1NSwx
NiArOTU2LDE2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAg
ICAgICAgICAgIGludCBpc1N0cmljdCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
aW50IHJlc29sdmVJbmZvID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcHV0
VG9CYXNlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlsl
NGRdIHJlc29sdmVfYmFzZSVzXHQgJXMsICVzLCAlZCwgJWQiLCBsb2NhdGlvbiwgaXNTdHJpY3Qg
PyAiX3N0cmljdCIgOiAiIiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlkTmFtZShp
ZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZlSW5mbywgcHV0VG9CYXNlSW5m
byk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7
CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSByZXNvbHZlX2Jhc2Ulc1x0ICVzLCAlcywg
JWQsICVkIiwgbG9jYXRpb24sIGlzU3RyaWN0ID8gIl9zdHJpY3QiIDogIiIsIHJlZ2lzdGVyTmFt
ZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEo
KSwgcmVzb2x2ZUluZm8sIHB1dFRvQmFzZUluZm8pOworICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbnN1cmVfcHJvcGVy
dHlfZXhpc3RzOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAg
ICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFM
b2dGKCJbJTRkXSBlbnN1cmVfcHJvcGVydHlfZXhpc3RzXHQgJXMsICVzIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lk
MF0pLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShs
b2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBlbnN1cmVfcHJvcGVydHlf
ZXhpc3RzXHQgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgp
LCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSk7CisgICAgICAgICAgICBk
dW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6IHsK
QEAgLTk3Myw4ICs5NzQsOCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKEV4ZWNTdGF0
ZSogCiAgICAgICAgICAgICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBpbnQgcmVzb2x2ZUluZm8gPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBw
dXRUb0Jhc2VJbmZvID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigi
WyU0ZF0gcmVzb2x2ZV93aXRoX2Jhc2UgJXMsICVzLCAlcywgJWQsICVkIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEo
KSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlc29sdmVJbmZvLCBw
dXRUb0Jhc2VJbmZvKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHJlc29sdmVfd2l0aF9i
YXNlICVzLCAlcywgJXMsICVkLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRl
bnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZlSW5mbywgcHV0VG9CYXNlSW5mbyk7CisgICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtOTgzLDgg
Kzk4NCw4IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAgICAg
ICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGlkMCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHJlc29sdmVJbmZvID0gKCsraXQp
LT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gcmVzb2x2ZV93aXRoX3Ro
aXMgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZp
ZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0
ZF0gcmVzb2x2ZV93aXRoX3RoaXMgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBpZE5h
bWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOworICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBpdCsrOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTEwMDIsNTAg
KzEwMDMsNTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShFeGVjU3RhdGUqIAogICAg
ICAgICBjYXNlIG9wX2dldF9ieV9pZF9nZW5lcmljOgogICAgICAgICBjYXNlIG9wX2dldF9hcnJh
eV9sZW5ndGg6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X3N0cmluZ19sZW5ndGg6IHsKLSAgICAgICAg
ICAgIHByaW50R2V0QnlJZE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCk7Ci0gICAgICAgICAgICBwcmlu
dEdldEJ5SWRDYWNoZVN0YXR1cyhleGVjLCBsb2NhdGlvbik7Ci0gICAgICAgICAgICBkdW1wQnl0
ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBwcmludEdldEJ5
SWRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCk7CisgICAgICAgICAgICBwcmludEdldEJ5SWRD
YWNoZVN0YXR1cyhvdXQsIGV4ZWMsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYXJndW1lbnRzX2xlbmd0aDogewotICAgICAg
ICAgICAgcHJpbnRVbmFyeU9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImdldF9hcmd1bWVudHNfbGVu
Z3RoIik7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQs
ICJnZXRfYXJndW1lbnRzX2xlbmd0aCIpOwogICAgICAgICAgICAgaXQrKzsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7Ci0gICAgICAg
ICAgICBwcmludFB1dEJ5SWRPcChleGVjLCBsb2NhdGlvbiwgaXQsICJwdXRfYnlfaWQiKTsKKyAg
ICAgICAgICAgIHByaW50UHV0QnlJZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2J5
X2lkIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1
dF9ieV9pZF9vdXRfb2ZfbGluZTogewotICAgICAgICAgICAgcHJpbnRQdXRCeUlkT3AoZXhlYywg
bG9jYXRpb24sIGl0LCAicHV0X2J5X2lkX291dF9vZl9saW5lIik7CisgICAgICAgICAgICBwcmlu
dFB1dEJ5SWRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9ieV9pZF9vdXRfb2ZfbGlu
ZSIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRf
YnlfaWRfcmVwbGFjZTogewotICAgICAgICAgICAgcHJpbnRQdXRCeUlkT3AoZXhlYywgbG9jYXRp
b24sIGl0LCAicHV0X2J5X2lkX3JlcGxhY2UiKTsKKyAgICAgICAgICAgIHByaW50UHV0QnlJZE9w
KG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2J5X2lkX3JlcGxhY2UiKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRp
b246IHsKLSAgICAgICAgICAgIHByaW50UHV0QnlJZE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1
dF9ieV9pZF90cmFuc2l0aW9uIik7CisgICAgICAgICAgICBwcmludFB1dEJ5SWRPcChvdXQsIGV4
ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9ieV9pZF90cmFuc2l0aW9uIik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2Rp
cmVjdDogewotICAgICAgICAgICAgcHJpbnRQdXRCeUlkT3AoZXhlYywgbG9jYXRpb24sIGl0LCAi
cHV0X2J5X2lkX3RyYW5zaXRpb25fZGlyZWN0Iik7CisgICAgICAgICAgICBwcmludFB1dEJ5SWRP
cChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdCIp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlf
aWRfdHJhbnNpdGlvbl9kaXJlY3Rfb3V0X29mX2xpbmU6IHsKLSAgICAgICAgICAgIHByaW50UHV0
QnlJZE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdF9v
dXRfb2ZfbGluZSIpOworICAgICAgICAgICAgcHJpbnRQdXRCeUlkT3Aob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQsICJwdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3Rfb3V0X29mX2xpbmUiKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3Ry
YW5zaXRpb25fbm9ybWFsOiB7Ci0gICAgICAgICAgICBwcmludFB1dEJ5SWRPcChleGVjLCBsb2Nh
dGlvbiwgaXQsICJwdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWwiKTsKKyAgICAgICAgICAgIHBy
aW50UHV0QnlJZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2J5X2lkX3RyYW5zaXRp
b25fbm9ybWFsIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbF9vdXRfb2ZfbGluZTogewotICAgICAgICAg
ICAgcHJpbnRQdXRCeUlkT3AoZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2J5X2lkX3RyYW5zaXRp
b25fbm9ybWFsX291dF9vZl9saW5lIik7CisgICAgICAgICAgICBwcmludFB1dEJ5SWRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbF9vdXRfb2Zf
bGluZSIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9w
dXRfYnlfaWRfZ2VuZXJpYzogewotICAgICAgICAgICAgcHJpbnRQdXRCeUlkT3AoZXhlYywgbG9j
YXRpb24sIGl0LCAicHV0X2J5X2lkX2dlbmVyaWMiKTsKKyAgICAgICAgICAgIHByaW50UHV0QnlJ
ZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2J5X2lkX2dlbmVyaWMiKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0
ZXI6IHsKQEAgLTEwNTMsMjQgKzEwNTQsMjQgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29k
ZShFeGVjU3RhdGUqIAogICAgICAgICAgICAgaW50IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQg
cjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBwdXRf
Z2V0dGVyX3NldHRlclx0ICVzLCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShl
eGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0
YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9u
KTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1dF9nZXR0ZXJfc2V0dGVyXHQgJXMs
ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlk
TmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywg
cjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOworICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2RlbF9ieV9pZDogewogICAgICAg
ICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFu
ZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBkZWxfYnlfaWRcdCAlcywgJXMsICVzIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhl
YywgcjEpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCkpOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZGVsX2J5X2lkXHQgJXMsICVzLCAlcyIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51
Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gZ2V0X2J5X3ZhbFx0ICVzLCAl
cywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBnZXRfYnlfdmFsXHQgJXMsICVzLCAlcyIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAg
aXQrKzsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwNzksOCAr
MTA4MCw4IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAgICAg
ICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFu
ZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBnZXRfYXJndW1lbnRfYnlfdmFsXHQgJXMs
ICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAg
ICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGdldF9hcmd1bWVudF9ieV92YWxcdCAlcywgJXMs
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5h
bWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOworICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICArK2l0OwogICAgICAgICAgICAgKytpdDsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMTA5MiwxNiArMTA5MywxNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKEV4ZWNT
dGF0ZSogCiAgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIGludCByNCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHI1ID0gKCsr
aXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gZ2V0X2J5X3BuYW1l
XHQgJXMsICVzLCAlcywgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywg
cjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMikuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjMpLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHI0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByNSkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIGdldF9ieV9wbmFtZVx0ICVzLCAlcywgJXMsICVzLCAl
cywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIzKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByNCkuZGF0YSgp
LCByZWdpc3Rlck5hbWUoZXhlYywgcjUpLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbDogewogICAgICAgICAgICAgaW50
IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAg
ICAgICAgZGF0YUxvZ0YoIlslNGRdIHB1dF9ieV92YWxcdCAlcywgJXMsICVzIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRh
dGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gcHV0X2J5X3ZhbFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtMTEwOSwyMDggKzExMTAsMjA4IEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFM
b2dGKCJbJTRkXSBkZWxfYnlfdmFsXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGRl
bF9ieV92YWxcdCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCku
ZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIyKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUo
b3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX3B1dF9ieV9pbmRleDogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICB1bnNpZ25lZCBuMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9n
RigiWyU0ZF0gcHV0X2J5X2luZGV4XHQgJXMsICV1LCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgbjAsIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAg
ICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1dF9ieV9pbmRleFx0ICVzLCAldSwgJXMiLCBs
b2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjEpLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3Bfam1wOiB7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gam1wXHRcdCAlZCgtPiVkKSIsIGxv
Y2F0aW9uLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYo
IlslNGRdIGptcFx0XHQgJWQoLT4lZCkiLCBsb2NhdGlvbiwgb2Zmc2V0LCBsb2NhdGlvbiArIG9m
ZnNldCk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxv
Y2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
bG9vcDogewogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAg
ICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGxvb3BcdFx0ICVkKC0+JWQpIiwgbG9jYXRpb24sIG9m
ZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbG9v
cFx0XHQgJWQoLT4lZCkiLCBsb2NhdGlvbiwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Cisg
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfanRydWU6IHsK
LSAgICAgICAgICAgIHByaW50Q29uZGl0aW9uYWxKdW1wKGV4ZWMsIGJlZ2luLCBpdCwgbG9jYXRp
b24sICJqdHJ1ZSIpOworICAgICAgICAgICAgcHJpbnRDb25kaXRpb25hbEp1bXAob3V0LCBleGVj
LCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAianRydWUiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9pZl90cnVlOiB7Ci0gICAgICAgICAgICBwcmlu
dENvbmRpdGlvbmFsSnVtcChleGVjLCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAibG9vcF9pZl90cnVl
Iik7CisgICAgICAgICAgICBwcmludENvbmRpdGlvbmFsSnVtcChvdXQsIGV4ZWMsIGJlZ2luLCBp
dCwgbG9jYXRpb24sICJsb29wX2lmX3RydWUiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9pZl9mYWxzZTogewotICAgICAgICAgICAgcHJpbnRD
b25kaXRpb25hbEp1bXAoZXhlYywgYmVnaW4sIGl0LCBsb2NhdGlvbiwgImxvb3BfaWZfZmFsc2Ui
KTsKKyAgICAgICAgICAgIHByaW50Q29uZGl0aW9uYWxKdW1wKG91dCwgZXhlYywgYmVnaW4sIGl0
LCBsb2NhdGlvbiwgImxvb3BfaWZfZmFsc2UiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfamZhbHNlOiB7Ci0gICAgICAgICAgICBwcmludENvbmRpdGlv
bmFsSnVtcChleGVjLCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAiamZhbHNlIik7CisgICAgICAgICAg
ICBwcmludENvbmRpdGlvbmFsSnVtcChvdXQsIGV4ZWMsIGJlZ2luLCBpdCwgbG9jYXRpb24sICJq
ZmFsc2UiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
amVxX251bGw6IHsKLSAgICAgICAgICAgIHByaW50Q29uZGl0aW9uYWxKdW1wKGV4ZWMsIGJlZ2lu
LCBpdCwgbG9jYXRpb24sICJqZXFfbnVsbCIpOworICAgICAgICAgICAgcHJpbnRDb25kaXRpb25h
bEp1bXAob3V0LCBleGVjLCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAiamVxX251bGwiKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5lcV9udWxsOiB7Ci0g
ICAgICAgICAgICBwcmludENvbmRpdGlvbmFsSnVtcChleGVjLCBiZWdpbiwgaXQsIGxvY2F0aW9u
LCAiam5lcV9udWxsIik7CisgICAgICAgICAgICBwcmludENvbmRpdGlvbmFsSnVtcChvdXQsIGV4
ZWMsIGJlZ2luLCBpdCwgbG9jYXRpb24sICJqbmVxX251bGwiKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5lcV9wdHI6IHsKICAgICAgICAgICAgIGlu
dCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgU3BlY2lhbDo6UG9pbnRlciBw
b2ludGVyID0gKCsraXQpLT51LnNwZWNpYWxQb2ludGVyOwogICAgICAgICAgICAgaW50IG9mZnNl
dCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGpuZXFf
cHRyXHRcdCAlcywgJWQgKCVwKSwgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIwKS5kYXRhKCksIHBvaW50ZXIsIG1fZ2xvYmFsT2JqZWN0LT5hY3R1YWxQb2ludGVyRm9y
KHBvaW50ZXIpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIGpuZXFfcHRyXHRcdCAlcywgJWQgKCVwKSwgJWQoLT4lZCkiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHBvaW50ZXIsIG1fZ2xvYmFsT2JqZWN0LT5h
Y3R1YWxQb2ludGVyRm9yKHBvaW50ZXIpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbGVzczogewog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQg
cjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCkt
PnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBqbGVzc1x0XHQgJXMsICVz
LCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gamxlc3NcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBs
b2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVj
LCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbGVzc2VxOiB7CiAgICAgICAgICAg
ICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5k
OwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGpsZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4l
ZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAg
IG91dC5wcmludGYoIlslNGRdIGpsZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlv
biwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSku
ZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qZ3JlYXRlcjogewogICAgICAgICAgICAgaW50
IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBqZ3JlYXRlclx0XHQgJXMsICVzLCAlZCgtPiVkKSIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gamdyZWF0ZXJcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0
YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qZ3JlYXRlcmVxOiB7CiAgICAgICAgICAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAg
ICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGpncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCki
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91
dC5wcmludGYoIlslNGRdIGpncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlv
biwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSku
ZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbmxlc3M6IHsKICAgICAgICAgICAgIGludCBy
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBkYXRhTG9nRigiWyU0ZF0gam5sZXNzXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9j
YXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywg
cjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJp
bnRmKCJbJTRkXSBqbmxlc3NcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBv
ZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9qbmxlc3NlcTogewogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAg
IGRhdGFMb2dGKCJbJTRkXSBqbmxlc3NlcVx0XHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5k
YXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gam5sZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZz
ZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9qbmdyZWF0ZXI6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBk
YXRhTG9nRigiWyU0ZF0gam5ncmVhdGVyXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRh
dGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJb
JTRkXSBqbmdyZWF0ZXJcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZz
ZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcTogewogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAg
IGRhdGFMb2dGKCJbJTRkXSBqbmdyZWF0ZXJlcVx0XHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gam5ncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgp
LCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNv
bW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3M6IHsKICAgICAgICAgICAgIGludCBy
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBkYXRhTG9nRigiWyU0ZF0gbG9vcF9pZl9sZXNzXHQgJXMsICVzLCAlZCgtPiVkKSIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gbG9vcF9pZl9sZXNzXHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5k
YXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOworICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzc2VxOiB7CiAgICAgICAgICAg
ICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5k
OwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGxvb3BfaWZfbGVzc2VxXHQgJXMsICVzLCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbG9vcF9pZl9sZXNzZXFcdCAlcywgJXMsICVkKC0+JWQp
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7CisgICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9pZl9ncmVhdGVyOiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGxvb3BfaWZfZ3JlYXRl
clx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0
aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaWZfZ3JlYXRlclx0ICVz
LCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0
KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29w
X2lmX2dyZWF0ZXJlcTogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRk
XSBsb29wX2lmX2dyZWF0ZXJlcVx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBv
ZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxv
b3BfaWZfZ3JlYXRlcmVxXHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNl
dCwgbG9jYXRpb24gKyBvZmZzZXQpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2xvb3BfaGludDogewotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRd
IGxvb3BfaGludCIsIGxvY2F0aW9uKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3Bf
aGludCIsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9zd2l0Y2hfaW1tOiB7CiAgICAgICAgICAgICBpbnQgdGFibGVJbmRleCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGRlZmF1bHRUYXJnZXQgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBzY3J1dGluZWVSZWdpc3RlciA9ICgrK2l0KS0+
dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIHN3aXRjaF9pbW1cdCAlZCwg
JWQoLT4lZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0
aW9uICsgZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVy
KS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9j
YXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gc3dpdGNoX2ltbVx0ICVkLCAl
ZCgtPiVkKSwgJXMiLCBsb2NhdGlvbiwgdGFibGVJbmRleCwgZGVmYXVsdFRhcmdldCwgbG9jYXRp
b24gKyBkZWZhdWx0VGFyZ2V0LCByZWdpc3Rlck5hbWUoZXhlYywgc2NydXRpbmVlUmVnaXN0ZXIp
LmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3Bfc3dpdGNoX2NoYXI6IHsKICAgICAgICAgICAgIGludCB0YWJsZUluZGV4ID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgZGVmYXVsdFRhcmdldCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgaW50IHNjcnV0aW5lZVJlZ2lzdGVyID0gKCsraXQpLT51Lm9wZXJh
bmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gc3dpdGNoX2NoYXJcdCAlZCwgJWQoLT4l
ZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0aW9uICsg
ZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVyKS5kYXRh
KCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24p
OworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gc3dpdGNoX2NoYXJcdCAlZCwgJWQoLT4l
ZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0aW9uICsg
ZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVyKS5kYXRh
KCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2Nh
dGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3
aXRjaF9zdHJpbmc6IHsKICAgICAgICAgICAgIGludCB0YWJsZUluZGV4ID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgZGVmYXVsdFRhcmdldCA9ICgrK2l0KS0+dS5vcGVyYW5k
OwogICAgICAgICAgICAgaW50IHNjcnV0aW5lZVJlZ2lzdGVyID0gKCsraXQpLT51Lm9wZXJhbmQ7
Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gc3dpdGNoX3N0cmluZ1x0ICVkLCAlZCgtPiVk
KSwgJXMiLCBsb2NhdGlvbiwgdGFibGVJbmRleCwgZGVmYXVsdFRhcmdldCwgbG9jYXRpb24gKyBk
ZWZhdWx0VGFyZ2V0LCByZWdpc3Rlck5hbWUoZXhlYywgc2NydXRpbmVlUmVnaXN0ZXIpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7
CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBzd2l0Y2hfc3RyaW5nXHQgJWQsICVkKC0+
JWQpLCAlcyIsIGxvY2F0aW9uLCB0YWJsZUluZGV4LCBkZWZhdWx0VGFyZ2V0LCBsb2NhdGlvbiAr
IGRlZmF1bHRUYXJnZXQsIHJlZ2lzdGVyTmFtZShleGVjLCBzY3J1dGluZWVSZWdpc3RlcikuZGF0
YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9u
ZXdfZnVuYzogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBpbnQgZjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBzaG91
bGRDaGVjayA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRd
IG5ld19mdW5jXHRcdCAlcywgZiVkLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywg
cjApLmRhdGEoKSwgZjAsIHNob3VsZENoZWNrID8gIjxDaGVja2VkPiIgOiAiPFVuY2hlY2tlZD4i
KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsK
KyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIG5ld19mdW5jXHRcdCAlcywgZiVkLCAlcyIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgZjAsIHNob3VsZENoZWNr
ID8gIjxDaGVja2VkPiIgOiAiPFVuY2hlY2tlZD4iKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfZnVuY19leHA6IHsKICAgICAgICAgICAgIGlu
dCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGYwID0gKCsraXQpLT51
Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gbmV3X2Z1bmNfZXhwXHQgJXMs
IGYlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgZjApOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2Z1bmNfZXhwXHQgJXMsIGYlZCIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgZjApOworICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NhbGw6IHsKLSAgICAgICAgICAgIHByaW50
Q2FsbE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNhbGwiLCBEdW1wQ2FjaGVzKTsKKyAgICAgICAg
ICAgIHByaW50Q2FsbE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAiY2FsbCIsIER1bXBDYWNo
ZXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYWxs
X2V2YWw6IHsKLSAgICAgICAgICAgIHByaW50Q2FsbE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNh
bGxfZXZhbCIsIERvbnREdW1wQ2FjaGVzKTsKKyAgICAgICAgICAgIHByaW50Q2FsbE9wKG91dCwg
ZXhlYywgbG9jYXRpb24sIGl0LCAiY2FsbF9ldmFsIiwgRG9udER1bXBDYWNoZXMpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6IHsK
QEAgLTEzMTgsNjAgKzEzMTksNjAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShFeGVj
U3RhdGUqIAogICAgICAgICAgICAgaW50IHRoaXNWYWx1ZSA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgaW50IGFyZ3VtZW50cyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgaW50IGZpcnN0RnJlZVJlZ2lzdGVyID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAg
ICBkYXRhTG9nRigiWyU0ZF0gY2FsbF92YXJhcmdzXHQgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlv
biwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGNhbGxlZSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywg
dGhpc1ZhbHVlKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBhcmd1bWVudHMpLmRhdGEoKSwg
Zmlyc3RGcmVlUmVnaXN0ZXIpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY2FsbF92YXJh
cmdzXHQgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGNhbGxl
ZSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgdGhpc1ZhbHVlKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShleGVjLCBhcmd1bWVudHMpLmRhdGEoKSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJfb2ZmX2FjdGl2
YXRpb246IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAg
ICAgICAgZGF0YUxvZ0YoIlslNGRdIHRlYXJfb2ZmX2FjdGl2YXRpb25cdCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJb
JTRkXSB0ZWFyX29mZl9hY3RpdmF0aW9uXHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xp
bmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3RlYXJfb2ZmX2FyZ3VtZW50czogewogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
LSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSB0ZWFyX29mZl9hcmd1bWVudHMgJXMsICVzIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhl
YywgcjEpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSB0ZWFyX29mZl9hcmd1
bWVudHMgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmV0OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytp
dCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSByZXRcdFx0ICVzIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIHJldFx0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIw
KS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX2NhbGxfcHV0X3Jlc3VsdDogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gY2FsbF9wdXRfcmVzdWx0XHRcdCAl
cyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCJbJTRkXSBjYWxsX3B1dF9yZXN1bHRcdFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lz
dGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgaXQrKzsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmV0X29iamVjdF9vcl90aGlz
OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRd
IGNvbnN0cnVjdG9yX3JldFx0XHQgJXMgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91
dC5wcmludGYoIlslNGRdIGNvbnN0cnVjdG9yX3JldFx0XHQgJXMgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgp
KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jb25z
dHJ1Y3Q6IHsKLSAgICAgICAgICAgIHByaW50Q2FsbE9wKGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNv
bnN0cnVjdCIsIER1bXBDYWNoZXMpOworICAgICAgICAgICAgcHJpbnRDYWxsT3Aob3V0LCBleGVj
LCBsb2NhdGlvbiwgaXQsICJjb25zdHJ1Y3QiLCBEdW1wQ2FjaGVzKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfc3RyY2F0OiB7CiAgICAgICAgICAgICBp
bnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGNvdW50ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0g
ICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gc3RyY2F0XHRcdCAlcywgJXMsICVkIiwgbG9jYXRp
b24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEp
LmRhdGEoKSwgY291bnQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xp
bmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gc3RyY2F0XHRcdCAl
cywgJXMsICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdp
c3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgY291bnQpOworICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RvX3ByaW1pdGl2ZTogewogICAgICAgICAgICAg
aW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCkt
PnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSB0b19wcmltaXRpdmVcdCAl
cywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHRvX3By
aW1pdGl2ZVx0ICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkpOworICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9wbmFtZXM6IHsKQEAgLTEzODAsOCArMTM4
MSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoRXhlY1N0YXRlKiAKICAgICAgICAg
ICAgIGludCByMiA9IGl0WzNdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMyA9IGl0WzRd
LnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSBpdFs1XS51Lm9wZXJhbmQ7Ci0g
ICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gZ2V0X3BuYW1lc1x0ICVzLCAlcywgJXMsICVzLCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjMpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7
Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7Cisg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBnZXRfcG5hbWVzXHQgJXMsICVzLCAlcywgJXMs
ICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdp
c3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShleGVjLCByMykuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0
KTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogICAgICAgICAgICAgaXQgKz0gT1BDT0RFX0xFTkdUSChvcF9nZXRfcG5hbWVzKSAtIDE7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTM5Miw1NCArMTM5Myw1NCBAQCB2
b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKEV4ZWNTdGF0ZSogCiAgICAgICAgICAgICBpbnQg
c2l6ZSA9IGl0WzRdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBpdGVyID0gaXRbNV0udS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9IGl0WzZdLnUub3BlcmFuZDsKLSAgICAg
ICAgICAgIGRhdGFMb2dGKCJbJTRkXSBuZXh0X3BuYW1lXHQgJXMsICVzLCAlcywgJXMsICVzLCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgZGVzdCkuZGF0YSgpLCByZWdp
c3Rlck5hbWUoZXhlYywgYmFzZSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgaSkuZGF0YSgp
LCByZWdpc3Rlck5hbWUoZXhlYywgc2l6ZSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgaXRl
cikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIG5leHRfcG5hbWVcdCAlcywgJXMsICVzLCAlcywgJXMsICVkKC0+JWQpIiwgbG9j
YXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBkZXN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVj
LCBiYXNlKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBpKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShleGVjLCBzaXplKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBpdGVyKS5kYXRhKCksIG9m
ZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCArPSBPUENPREVfTEVO
R1RIKG9wX25leHRfcG5hbWUpIC0gMTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfcHVzaF93aXRoX3Njb3BlOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRkXSBwdXNoX3dpdGhf
c2NvcGVcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXNoX3dpdGhfc2NvcGVcdCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7CisgICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcG9wX3Njb3BlOiB7Ci0gICAgICAgICAgICBkYXRh
TG9nRigiWyU0ZF0gcG9wX3Njb3BlIiwgbG9jYXRpb24pOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gcG9wX3Njb3BlIiwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX3B1c2hfbmFtZV9zY29wZTogewogICAgICAgICAgICAgaW50
IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gcHVzaF9uYW1lX3Njb3BlIFx0JXMs
ICVzLCAldSIsIGxvY2F0aW9uLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGF0dHJpYnV0ZXMpOwotICAgICAgICAg
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAg
b3V0LnByaW50ZigiWyU0ZF0gcHVzaF9uYW1lX3Njb3BlIFx0JXMsICVzLCAldSIsIGxvY2F0aW9u
LCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2ptcF9zY29wZXM6IHsKICAgICAgICAgICAgIGludCBzY29w
ZURlbHRhID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsr
aXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gam1wX3Njb3Blc1x0
XiVkLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBzY29wZURlbHRhLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0
aW9uKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGptcF9zY29wZXNcdF4lZCwgJWQo
LT4lZCkiLCBsb2NhdGlvbiwgc2NvcGVEZWx0YSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7
CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9u
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY2F0Y2g6
IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAg
ZGF0YUxvZ0YoIlslNGRdIGNhdGNoXHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhl
YywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjYXRjaFx0XHQgJXMi
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOworICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Rocm93OiB7CiAgICAgICAgICAg
ICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJbJTRk
XSB0aHJvd1x0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkp
OwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUobG9jYXRpb24pOwor
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gdGhyb3dcdFx0ICVzIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNv
bW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6IHsKICAgICAgICAgICAg
IGludCBrMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGsxID0gKCsraXQp
LT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nRigiWyU0ZF0gdGhyb3dfc3RhdGljX2Vy
cm9yXHQgJXMsICVzIiwgbG9jYXRpb24sIGNvbnN0YW50TmFtZShleGVjLCBrMCwgZ2V0Q29uc3Rh
bnQoazApKS5kYXRhKCksIGsxID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAgICAgICAgICBvdXQucHJp
bnRmKCJbJTRkXSB0aHJvd19zdGF0aWNfZXJyb3JcdCAlcywgJXMiLCBsb2NhdGlvbiwgY29uc3Rh
bnROYW1lKGV4ZWMsIGswLCBnZXRDb25zdGFudChrMCkpLmRhdGEoKSwgazEgPyAidHJ1ZSIgOiAi
ZmFsc2UiKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9kZWJ1ZzogewpAQCAtMTQ0NywyNiArMTQ0OCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKEV4ZWNTdGF0ZSogCiAgICAgICAgICAgICBpbnQgZmlyc3RMaW5lID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgbGFzdExpbmUgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCBjb2x1bW4gPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAg
IGRhdGFMb2dGKCJbJTRkXSBkZWJ1Z1x0XHQgJXMsICVkLCAlZCwgJWQiLCBsb2NhdGlvbiwgZGVi
dWdIb29rTmFtZShkZWJ1Z0hvb2tJRCksIGZpcnN0TGluZSwgbGFzdExpbmUsIGNvbHVtbik7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShsb2NhdGlvbik7CisgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBkZWJ1Z1x0XHQgJXMsICVkLCAlZCwgJWQiLCBsb2Nh
dGlvbiwgZGVidWdIb29rTmFtZShkZWJ1Z0hvb2tJRCksIGZpcnN0TGluZSwgbGFzdExpbmUsIGNv
bHVtbik7CisgICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxv
Y2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
cHJvZmlsZV93aWxsX2NhbGw6IHsKICAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+
dS5vcGVyYW5kOwotICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIHByb2ZpbGVfd2lsbF9jYWxs
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBmdW5jdGlvbikuZGF0YSgpKTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIHByb2ZpbGVfd2lsbF9jYWxsICVzIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCBmdW5jdGlvbikuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7CiAgICAg
ICAgICAgICBpbnQgZnVuY3Rpb24gPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGRh
dGFMb2dGKCJbJTRkXSBwcm9maWxlX2RpZF9jYWxsXHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIGZ1bmN0aW9uKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
cHJvZmlsZV9kaWRfY2FsbFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBmdW5j
dGlvbikuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9lbmQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwot
ICAgICAgICAgICAgZGF0YUxvZ0YoIlslNGRdIGVuZFx0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUobG9jYXRpb24pOworICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZW5k
XHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7CisgICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKQEAg
LTE0NzYsMTEgKzE0NzcsMTEgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShFeGVjU3Rh
dGUqIAogICAgIH0KIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSh1bnNpZ25lZCBi
eXRlY29kZU9mZnNldCkKK3ZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0m
IG91dCwgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0g
bV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBjb25zdCBJbnN0cnVjdGlvbiogaXQg
PSBpbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVPZmZzZXQ7Ci0gICAgZHVtcEJ5dGVj
b2RlKGV4ZWMsIGluc3RydWN0aW9ucygpLmJlZ2luKCksIGl0KTsKKyAgICBkdW1wQnl0ZWNvZGUo
b3V0LCBleGVjLCBpbnN0cnVjdGlvbnMoKS5iZWdpbigpLCBpdCk7CiB9CiAKICNpZiBEVU1QX0NP
REVfQkxPQ0tfU1RBVElTVElDUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTM2MzEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBACiAK
IC8vIFNldCBFTkFCTEVfQllURUNPREVfQ09NTUVOVFMgdG8gMSB0byBlbmFibGUgcmVjb3JkaW5n
IGJ5dGVjb2RlIGdlbmVyYXRvcgogLy8gY29tbWVudHMgZm9yIHRoZSBieXRlY29kZXMgdGhhdCBp
dCBnZW5lcmF0ZXMuIFRoaXMgd2lsbCBhbGxvdwotLy8gQ29kZUJsb2NrOjpkdW1wKCkgdG8gcHJv
dmlkZSBzb21lIGNvbnRleHR1YWwgaW5mbyBhYm91dCB0aGUgYnl0ZWNvZGVzLgorLy8gQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoKSB0byBwcm92aWRlIHNvbWUgY29udGV4dHVhbCBpbmZvIGFib3V0
IHRoZSBieXRlY29kZXMuCiAvLwogLy8gVGhlIHdheSB0aGlzIGNvbW1lbnQgc3lzdGVtIHdvcmtz
IGlzIGFzIGZvbGxvd3M6CiAvLyAxLiBUaGUgQnl0ZWNvZGVHZW5lcmF0b3IgY2FsbHMgcHJlcGVu
ZENvbW1lbnQoKSB3aXRoIGEgY29uc3RhbnQgY29tbWVudApAQCAtODksNyArODksNyBAQAogLy8g
ICAgcHJlcGVuZGVkIGNvbW1lbnQgd2lsbCBiZSByZWNvcmRlZCB3aXRoIHRoZSBQQyBvZiB0aGUg
b3Bjb2RlIGJlaW5nCiAvLyAgICBlbWl0dGVkLiBUaGlzIGNvbW1lbnQgaXMgYmVpbmcgcmVjb3Jk
ZWQgaW4gdGhlIENvZGVCbG9jaydzCiAvLyAgICBtX2J5dGVjb2RlQ29tbWVudHMuCi0vLyAzLiBX
aGVuIENvZGVCbG9jazo6ZHVtcCgpIGlzIGNhbGxlZCwgaXQgd2lsbCBwYWlyIHVwIHRoZSBjb21t
ZW50cyB3aXRoCisvLyAzLiBXaGVuIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKCkgaXMgY2FsbGVk
LCBpdCB3aWxsIHBhaXIgdXAgdGhlIGNvbW1lbnRzIHdpdGgKIC8vICAgIHRoZWlyIGNvcnJlc3Bv
bmRpbmcgYnl0ZWNvZGVzIGJhc2VkIG9uIHRoZSBieXRlY29kZSBhbmQgY29tbWVudCdzCiAvLyAg
ICBQQy4gSWYgYSBtYXRjaGluZyBwYWlyIGlzIGZvdW5kLCB0aGUgY29tbWVudCB3aWxsIGJlIHBy
aW50ZWQgYWZ0ZXIKIC8vICAgIHRoZSBieXRlY29kZS4gSWYgbm90LCBubyBjb21tZW50IGlzIHBy
aW50ZWQuCkBAIC0xNjYsMTAgKzE2NiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgdm9pZCBkdW1wU3RhdGlzdGljcygpOwogCi0gICAgICAgIHZvaWQgZHVtcEJ5dGVjb2Rl
KCk7Ci0gICAgICAgIHZvaWQgZHVtcEJ5dGVjb2RlKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsK
LSAgICAgICAgdm9pZCBwcmludFN0cnVjdHVyZXMoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKLSAgICAg
ICAgdm9pZCBwcmludFN0cnVjdHVyZShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBJbnN0cnVjdGlv
biosIGludCBvcGVyYW5kKTsKKyAgICAgICAgdm9pZCBkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0m
ID0gV1RGOjpkYXRhRmlsZSgpKTsKKyAgICAgICAgdm9pZCBkdW1wQnl0ZWNvZGUoUHJpbnRTdHJl
YW0mLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCk7CisgICAgICAgIHZvaWQgcHJpbnRTdHJ1Y3R1
cmVzKFByaW50U3RyZWFtJiwgY29uc3QgSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBwcmlu
dFN0cnVjdHVyZShQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IEluc3RydWN0
aW9uKiwgaW50IG9wZXJhbmQpOwogCiAgICAgICAgIGJvb2wgaXNTdHJpY3RNb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1N0cmljdE1vZGU7IH0KIApAQCAtMTg5LDEwICsxODksMTAgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gbV9udW1WYXJzOwogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShpbnQgbG9j
YXRpb24pOworICAgICAgICB2b2lkIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKFByaW50
U3RyZWFtJiwgaW50IGxvY2F0aW9uKTsKICNpZiBFTkFCTEUoQllURUNPREVfQ09NTUVOVFMpCi0g
ICAgICAgIGNvbnN0IGNoYXIqIGNvbW1lbnRGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRl
Y29kZU9mZnNldCk7Ci0gICAgICAgIHZvaWQgZHVtcEJ5dGVjb2RlQ29tbWVudHMoKTsKKyAgICAg
ICAgY29uc3QgY2hhciogY29tbWVudEZvckJ5dGVjb2RlT2Zmc2V0KFByaW50U3RyZWFtJiwgdW5z
aWduZWQgYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICB2b2lkIGR1bXBCeXRlY29kZUNvbW1lbnRz
KFByaW50U3RyZWFtJik7CiAjZW5kaWYKIAogICAgICAgICBIYW5kbGVySW5mbyogaGFuZGxlckZv
ckJ5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsKQEAgLTEyMTUsMTcgKzEy
MTUsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAgICAgbV9jb25zdGFudFJlZ2lz
dGVyc1tpXS5zZXQoKm1fZ2xvYmFsRGF0YSwgb3duZXJFeGVjdXRhYmxlKCksIGNvbnN0YW50c1tp
XS5nZXQoKSk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGR1bXBCeXRlY29kZShFeGVjU3Rh
dGUqLCBjb25zdCBJbnN0cnVjdGlvbiogYmVnaW4sIGNvbnN0IEluc3RydWN0aW9uKiYpOworICAg
ICAgICB2b2lkIGR1bXBCeXRlY29kZShQcmludFN0cmVhbSYsIEV4ZWNTdGF0ZSosIGNvbnN0IElu
c3RydWN0aW9uKiBiZWdpbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJik7CiAKICAgICAgICAgQ1N0cmlu
ZyByZWdpc3Rlck5hbWUoRXhlY1N0YXRlKiwgaW50IHIpIGNvbnN0OwotICAgICAgICB2b2lkIHBy
aW50VW5hcnlPcChFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYs
IGNvbnN0IGNoYXIqIG9wKTsKLSAgICAgICAgdm9pZCBwcmludEJpbmFyeU9wKEV4ZWNTdGF0ZSos
IGludCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgY29uc3QgY2hhciogb3ApOwotICAg
ICAgICB2b2lkIHByaW50Q29uZGl0aW9uYWxKdW1wKEV4ZWNTdGF0ZSosIGNvbnN0IEluc3RydWN0
aW9uKiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyKiBvcCk7
Ci0gICAgICAgIHZvaWQgcHJpbnRHZXRCeUlkT3AoRXhlY1N0YXRlKiwgaW50IGxvY2F0aW9uLCBj
b25zdCBJbnN0cnVjdGlvbiomKTsKLSAgICAgICAgdm9pZCBwcmludEdldEJ5SWRDYWNoZVN0YXR1
cyhFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24pOworICAgICAgICB2b2lkIHByaW50VW5hcnlPcChQ
cmludFN0cmVhbSYsIEV4ZWNTdGF0ZSosIGludCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24q
JiwgY29uc3QgY2hhciogb3ApOworICAgICAgICB2b2lkIHByaW50QmluYXJ5T3AoUHJpbnRTdHJl
YW0mLCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYsIGNvbnN0
IGNoYXIqIG9wKTsKKyAgICAgICAgdm9pZCBwcmludENvbmRpdGlvbmFsSnVtcChQcmludFN0cmVh
bSYsIEV4ZWNTdGF0ZSosIGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwg
aW50IGxvY2F0aW9uLCBjb25zdCBjaGFyKiBvcCk7CisgICAgICAgIHZvaWQgcHJpbnRHZXRCeUlk
T3AoUHJpbnRTdHJlYW0mLCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0
aW9uKiYpOworICAgICAgICB2b2lkIHByaW50R2V0QnlJZENhY2hlU3RhdHVzKFByaW50U3RyZWFt
JiwgRXhlY1N0YXRlKiwgaW50IGxvY2F0aW9uKTsKICAgICAgICAgZW51bSBDYWNoZUR1bXBNb2Rl
IHsgRHVtcENhY2hlcywgRG9udER1bXBDYWNoZXMgfTsKLSAgICAgICAgdm9pZCBwcmludENhbGxP
cChFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYsIGNvbnN0IGNo
YXIqIG9wLCBDYWNoZUR1bXBNb2RlKTsKLSAgICAgICAgdm9pZCBwcmludFB1dEJ5SWRPcChFeGVj
U3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0aW9uKiYsIGNvbnN0IGNoYXIqIG9w
KTsKKyAgICAgICAgdm9pZCBwcmludENhbGxPcChQcmludFN0cmVhbSYsIEV4ZWNTdGF0ZSosIGlu
dCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgY29uc3QgY2hhciogb3AsIENhY2hlRHVt
cE1vZGUpOworICAgICAgICB2b2lkIHByaW50UHV0QnlJZE9wKFByaW50U3RyZWFtJiwgRXhlY1N0
YXRlKiwgaW50IGxvY2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomLCBjb25zdCBjaGFyKiBvcCk7
CiAgICAgICAgIHZvaWQgdmlzaXRTdHJ1Y3R1cmVzKFNsb3RWaXNpdG9yJiwgSW5zdHJ1Y3Rpb24q
IHZQQyk7CiAgICAgICAgIAogI2lmIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVREaXNhc3NlbWJsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklURGlzYXNzZW1ibGVyLmNwcAkocmV2aXNpb24gMTM2MzEzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXNhc3NlbWJsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSklURGlzYXNzZW1ibGVyOjpkdW1wRm9ySW5z
dHJ1Y3Rpb24KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIG91dC5w
cmludChwcmVmaXgpOwotICAgICAgICBtX2NvZGVCbG9jay0+ZHVtcEJ5dGVjb2RlKGkpOworICAg
ICAgICBtX2NvZGVCbG9jay0+ZHVtcEJ5dGVjb2RlKG91dCwgaSk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgbmV4dEluZGV4ID0gaSArIDE7IDsgbmV4dEluZGV4KyspIHsKICAgICAgICAgICAgIGlm
IChuZXh0SW5kZXggPj0gbGFiZWxzLnNpemUoKSkgewogICAgICAgICAgICAgICAgIGR1bXBEaXNh
c3NlbWJseShvdXQsIGxpbmtCdWZmZXIsIGxhYmVsc1tpXSwgZW5kTGFiZWwpOwo=
</data>
<flag name="review"
          id="193130"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>