<?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>200596</bug_id>
          
          <creation_ts>2019-08-09 15:47:00 -0700</creation_ts>
          <short_desc>[WHLSL] Make lexing faster</short_desc>
          <delta_ts>2019-08-13 20:02:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rmorisset</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1560089</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-09 15:47:00 -0700</bug_when>
    <thetext>We spend like 4ms total in consumeTokenFromStream in compute_boids</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560158</commentid>
    <comment_count>1</comment_count>
      <attachid>375993</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-09 19:33:59 -0700</bug_when>
    <thetext>Created attachment 375993
WIP

it begins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560609</commentid>
    <comment_count>2</comment_count>
      <attachid>376108</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-12 16:59:32 -0700</bug_when>
    <thetext>Created attachment 376108
WIP

I think it&apos;s done. Gonna read over it once and then prepare the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560668</commentid>
    <comment_count>3</comment_count>
      <attachid>376131</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-12 20:13:07 -0700</bug_when>
    <thetext>Created attachment 376131
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560669</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-12 20:14:38 -0700</bug_when>
    <thetext>Attachment 376131 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:15:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560896</commentid>
    <comment_count>5</comment_count>
      <attachid>376194</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-13 12:23:04 -0700</bug_when>
    <thetext>Created attachment 376194
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561048</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-13 20:01:05 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/248658/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561049</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-13 20:02:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/54286019&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375993</attachid>
            <date>2019-08-09 19:33:59 -0700</date>
            <delta_ts>2019-08-12 16:59:32 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>70558</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDg0NjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gRGV2aXJ0dWFsaXplIHRoZSBBU1QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDUyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFJvYmluIE1vcmlzc2V0LgorCisgICAgICAgIE1ha2UgUmVmQ291
bnRlZCB1c2Ugc3RkOjpkZWZhdWx0X2RlbGV0ZSBpbnN0ZWFkIG9mIGV4cGxpY2l0bHkgY2FsbGlu
ZyBkZWxldGUuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzZXMgb2YgUmVmQ291bnRlZCB0byBkZWZp
bmUgdGhlaXIgb3duIGN1c3RvbSBkZWxldGVyLgorCisgICAgICAgICogd3RmL1JlZkNvdW50ZWQu
aDoKKyAgICAgICAgKFdURjo6UmVmQ291bnRlZDo6ZGVyZWYgY29uc3QpOgorICAgICAgICAqIHd0
Zi9VbmlxdWVSZWYuaDoKKyAgICAgICAgKFdURjo6VW5pcXVlUmVmOjpVbmlxdWVSZWYpOgorCiAy
MDE5LTA4LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRocmVhZCBzYWZldHkgaXNzdWUgaW4gQXVkaW9TYW1wbGVEYXRhU291cmNlKCkgY29uc3RydWN0
b3IKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9SZWZDb3VudGVkLmgJKHJldmlzaW9uIDI0ODQwNCkKKysrIFNvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDEzICsxMzYsMTMgQEAgaW5s
aW5lIHZvaWQgYWRvcHRlZChSZWZDb3VudGVkQmFzZSogb2JqZQogfQogI2VuZGlmCiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZkNvdW50ZWQgOiBwdWJsaWMgUmVmQ291bnRlZEJhc2Ug
ewordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRGVsZXRlciA9IHN0ZDo6ZGVmYXVsdF9k
ZWxldGU8VD4+IGNsYXNzIFJlZkNvdW50ZWQgOiBwdWJsaWMgUmVmQ291bnRlZEJhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlZkNvdW50ZWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICB2b2lkIGRlcmVmKCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChk
ZXJlZkJhc2UoKSkKLSAgICAgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxjb25zdCBUKj4odGhp
cyk7CisgICAgICAgICAgICBEZWxldGVyKCkoY29uc3RfY2FzdDxUKj4oc3RhdGljX2Nhc3Q8Y29u
c3QgVCo+KHRoaXMpKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9VbmlxdWVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9VbmlxdWVSZWYuaAko
cmV2aXNpb24gMjQ4NDA0KQorKysgU291cmNlL1dURi93dGYvVW5pcXVlUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgVW5pcXVlUmVmIHsKIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBVbmlxdWVSZWYoVW5pcXVlUmVmPFU+JiYgb3RoZXIp
Ci0gICAgICAgIDogbV9yZWYoV1RGTW92ZShvdGhlci5tX3JlZikpCisgICAgICAgIDogbV9yZWYo
b3RoZXIubV9yZWYucmVsZWFzZSgpKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVmKTsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDg0MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MDcgQEAKKzIwMTktMDgtMDkgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBEZXZpcnR1
YWxpemUgdGhlIEFTVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAwNTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9iaW4gTW9yaXNzZXQuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBkZXZpcnR1YWxpemVzIHRoZSBBU1QgZm9yIFR5cGUsIEV4cHJlc3Np
b24sIGFuZCBTdGF0ZW1lbnQuCisgICAgICAgIFdlIG5vdyBoYXZlIGFuIGVudW0gd2hpY2ggcmVw
cmVzZW50cyBhbGwgdGhlIGNvbmNyZXRlIHR5cGVzIGluIHRoZQorICAgICAgICB0aHJlZSBoaWVy
YXJjaGllcy4gRG9pbmcgZHluYW1pYyBkaXNwYXRjaCBpcyBpbXBsZW1lbnRlZCBhcyBhIHN3aXRj
aAorICAgICAgICBvbiB0aGF0IHR5cGUgZW51bS4KKyAgICAgICAgCisgICAgICAgIFRoZSBpbnRl
cmVzdGluZyBwYXJ0IG9mIHRoaXMgcGF0Y2ggaXMgaG93IHRvIGhhbmRsZSBkZXN0cnVjdGlvbi4g
V2UgZG8KKyAgICAgICAgdGhpcyBieSBkZWZpbmluZyBhIGN1c3RvbSBkZWxldGVyIGZvciBhbGwg
bm9kZXMgaW4gdGhlIEFTVC4gVGhpcyBlbnN1cmVzCisgICAgICAgIHRoYXQgd2hlbiB0aGV5J3Jl
IHVzZWQgaW5zaWRlIFVuaXF1ZVJlZiwgdW5pcXVlX3B0ciwgUmVmLCBhbmQgUmVmUHRyLAorICAg
ICAgICB3ZSBkbyBkeW5hbWljIGRpc3BhdGNoIHdoZW4gd2UgZGVsZXRlIHRoZSBvYmplY3QuIFRo
aXMgYWxsb3dzIGVhY2ggYmFzZQorICAgICAgICBjbGFzcyB0byBkZWZpbmUgYSAiZGVzdHJveSIg
bWV0aG9kIHdoaWNoIGRvZXMgZHluYW1pYyBkaXNwYXRjaCBvbiB0eXBlCisgICAgICAgIGFuZCBj
YWxscyB0aGUgYXBwcm9wcmlhdGUgZGVsZXRlLiBXZSBhbHNvIG1hcmsgYWxsIG5vbi1jb25jcmV0
ZSBub2RlcworICAgICAgICBpbiBhbGwgdHlwZSBoaWVyYXJjaGllcyB3aXRoIGEgcHJvdGVjdGVk
IGRlc3RydWN0b3IsIHdoaWNoIGVuc3VyZXMgaXQncworICAgICAgICBuZXZlciBjYWxsZWQgZXhj
ZXB0IGZyb20gd2l0aGluIHRoZSBjb25jcmV0ZSBjaGlsZCBjbGFzc2VzLiBXZSBhbGxvdworICAg
ICAgICBhbGwgY29uY3JldGUgY2xhc3NlcyB0byBoYXZlIHB1YmxpYyBkZXN0cnVjdG9ycywgYXMg
aXQncyB2YWxpZCBmb3IKKyAgICAgICAgdGhlaXIgZGVzdHJ1Y3RvcnMgdG8gYmUgY2FsbGVkIGV4
cGxpY2l0bHkgc2luY2UgdGhlcmUgaXMgbm8gbmVlZCBmb3IKKyAgICAgICAgZHluYW1pYyBkaXNw
YXRjaCBpbiBzdWNoIHNjZW5hcmlvcy4gQWxsIGNvbmNyZXRlIGNsYXNzZXMgYXJlIGFsc28gbWFy
a2VkCisgICAgICAgIGFzIGZpbmFsLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDNtcyBz
cGVlZHVwIG9uIGNvbXB1dGVfYm9pZHMsIHdoaWNoIGlzIGFib3V0IGEgMTAlIGltcHJvdmVtZW50
CisgICAgICAgIGluIHRoZSBXSExTTCBjb21waWxlci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpBc3NpZ25tZW50RXhwcmVzc2lvbjo6QXNzaWdubWVudEV4cHJl
c3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6QXNzaWdubWVu
dEV4cHJlc3Npb246OmxlZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6QXNzaWdubWVudEV4cHJlc3Npb246OnJpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OkFzc2lnbm1lbnRFeHByZXNzaW9uOjp0YWtlUmlnaHQpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEJsb2NrLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpCbG9jazo6QmxvY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6QmxvY2s6OnN0YXRlbWVudHMpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEJvb2xlYW5MaXRlcmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpCb29sZWFuTGl0ZXJhbDo6Qm9vbGVhbkxpdGVy
YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6Qm9vbGVhbkxpdGVy
YWw6OnZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkJvb2xlYW5MaXRlcmFsOjpjbG9uZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQnJlYWsuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkJyZWFrOjpCcmVhayk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMQ2FsbEV4cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpDYWxsRXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxsRXhwcmVzc2lvbjo6YXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpuYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpz
ZXRDYXN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxs
RXhwcmVzc2lvbjo6aXNDYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OkNhbGxFeHByZXNzaW9uOjpjYXN0UmV0dXJuVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxsRXhwcmVzc2lvbjo6ZnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6Q2FsbEV4cHJlc3Npb246OnNldEZ1bmN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xDb21t
YUV4cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNvbW1hRXhwcmVz
c2lvbjo6Q29tbWFFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNvbW1hRXhwcmVzc2lvbjo6bGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQ29uc3RhbnRFeHByZXNzaW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJlc3Npb246OkNvbnN0YW50RXhwcmVzc2lv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJl
c3Npb246OmludGVnZXJMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNvbnN0YW50RXhwcmVzc2lvbjo6dmlzaXQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6Q29uc3RhbnRFeHByZXNzaW9uOjp2aXNpdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJlc3Npb246OmNs
b25lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNvbnN0
YW50RXhwcmVzc2lvbjo6bWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQ29udGludWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6OkNvbnRpbnVlOjpDb250aW51ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRGVmYXVsdERlbGV0ZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xEZXJlZmVyZW5jZUV4cHJlc3Npb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkRlcmVmZXJlbmNlRXhwcmVzc2lvbjo6RGVy
ZWZlcmVuY2VFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OkRlcmVmZXJlbmNlRXhwcmVzc2lvbjo6cG9pbnRlcik6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRG9XaGlsZUxvb3AuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OkRvV2hpbGVMb29wOjpEb1doaWxlTG9vcCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpEb1doaWxlTG9vcDo6Ym9keSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpEb1doaWxlTG9vcDo6Y29uZGl0aW9uYWwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTERvdEV4
cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkRvdEV4cHJlc3Npb246
OkRvdEV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RG90RXhwcmVzc2lvbjo6ZmllbGROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xFZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50OjpF
ZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpBU1Q6OkVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQ6OmVmZmVjdGZ1bEV4cHJl
c3Npb24pOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RW51bWVyYXRpb25EZWZpbml0aW9uOjpFbnVtZXJhdGlvbkRlZmluaXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RW51bWVyYXRpb25EZWZpbml0aW9uOjp0eXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uRGVm
aW5pdGlvbjo6YWRkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVu
dW1lcmF0aW9uRGVmaW5pdGlvbjo6bWVtYmVyQnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uRGVmaW5pdGlvbjo6ZW51bWVyYXRpb25NZW1i
ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xF
bnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6RW51bWVyYXRpb25NZW1iZXJMaXRlcmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0
ZXJhbDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVt
ZXJhdGlvbk1lbWJlckxpdGVyYWw6OmxlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6RW51bWVyYXRpb25NZW1iZXJMaXRlcmFsOjpyaWdodCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVtZXJhdGlvbk1lbWJl
ckxpdGVyYWw6OmNsb25lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6ZW51bWVyYXRpb25EZWZpbml0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVy
TGl0ZXJhbDo6ZW51bWVyYXRpb25EZWZpbml0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6ZW51bWVyYXRp
b25NZW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RW51bWVy
YXRpb25NZW1iZXJMaXRlcmFsOjplbnVtZXJhdGlvbk1lbWJlciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWw6OnNl
dEVudW1lcmF0aW9uTWVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xFeHByZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjo6Z2V0dGVyRnVuY3Rpb25OYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lv
bjo6c2V0dGVyRnVuY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjo6YW5kZXJGdW5jdGlvbk5hbWUgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEV4cHJlc3Npb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246OkV4cHJlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6a2luZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0Fzc2lnbm1lbnRFeHByZXNz
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246Omlz
Qm9vbGVhbkxpdGVyYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhw
cmVzc2lvbjo6aXNDYWxsRXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpFeHByZXNzaW9uOjppc0NvbW1hRXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0RlcmVmZXJlbmNlRXhwcmVzc2lvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0RvdEV4
cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lv
bjo6aXNHbG9iYWxWYXJpYWJsZVJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0Zsb2F0TGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0luZGV4RXhwcmVzc2lvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0ludGVnZXJMaXRl
cmFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246Omlz
TG9naWNhbEV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RXhwcmVzc2lvbjo6aXNMb2dpY2FsTm90RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc01ha2VBcnJheVJlZmVyZW5jZUV4cHJlc3Np
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6aXNN
YWtlUG9pbnRlckV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6RXhwcmVzc2lvbjo6aXNOdWxsTGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1JlYWRNb2RpZnlX
cml0ZUV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhw
cmVzc2lvbjo6aXNUZXJuYXJ5RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1Vuc2lnbmVkSW50ZWdlckxpdGVyYWwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6aXNWYXJpYWJsZVJlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjpp
c0VudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpFeHByZXNzaW9uOjpjb2RlTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6dXBkYXRlQ29kZUxvY2F0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGYWxsdGhyb3VnaC5oOgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6RmFsbHRocm91Z2g6OkZhbGx0aHJvdWdoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZsb2F0TGl0ZXJhbDo6RmxvYXRMaXRlcmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZsb2F0TGl0ZXJhbDo6
dHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpGbG9hdExpdGVy
YWw6OnZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkZsb2F0TGl0ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEZsb2F0TGl0ZXJhbFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRlcmFsVHlwZTo6RmxvYXRMaXRlcmFsVHlwZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRmxvYXRMaXRlcmFsVHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRlcmFsVHlwZTo6dmFsdWUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRl
cmFsVHlwZTo6cHJlZmVycmVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMRm9yTG9vcC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6Rm9yTG9vcDo6Rm9yTG9vcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6
QVNUOjpGb3JMb29wOjp+Rm9yTG9vcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpGb3JMb29wOjppbml0aWFsaXphdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpGb3JMb29wOjpjb25kaXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6Rm9yTG9vcDo6aW5jcmVtZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZvckxvb3A6OmJvZHkpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEdsb2JhbFZhcmlhYmxlUmVmZXJlbmNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpHbG9iYWxWYXJpYWJsZVJlZmVyZW5j
ZTo6R2xvYmFsVmFyaWFibGVSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6R2xvYmFsVmFyaWFibGVSZWZlcmVuY2U6OnN0cnVjdEZpZWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Okdsb2JhbFZhcmlhYmxlUmVmZXJlbmNl
OjpiYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xJZlN0YXRlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SWZTdGF0ZW1l
bnQ6OklmU3RhdGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OklmU3RhdGVtZW50Ojpjb25kaXRpb25hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpJZlN0YXRlbWVudDo6Ym9keSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpJZlN0YXRlbWVudDo6ZWxzZUJvZHkpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEluZGV4RXhwcmVzc2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW5kZXhFeHByZXNzaW9uOjpJbmRleEV4cHJlc3Npb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW5kZXhFeHByZXNzaW9u
OjppbmRleEV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6SW5kZXhFeHByZXNzaW9uOjp0YWtlSW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEludGVnZXJMaXRlcmFsLmg6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpJbnRlZ2VyTGl0ZXJhbDo6SW50ZWdlckxpdGVyYWwpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50ZWdlckxpdGVyYWw6OnR5cGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50ZWdlckxpdGVyYWw6OnZh
bHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkludGVn
ZXJMaXRlcmFsOjpjbG9uZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OkludGVnZXJMaXRlcmFsVHlwZTo6SW50ZWdlckxpdGVyYWxUeXBlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkludGVnZXJMaXRlcmFsVHlwZTo6
dmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50
ZWdlckxpdGVyYWxUeXBlOjpwcmVmZXJyZWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xMb2dpY2FsRXhwcmVzc2lvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6TG9naWNhbEV4cHJlc3Npb246OkxvZ2ljYWxFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkxvZ2ljYWxFeHByZXNz
aW9uOjp0eXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkxvZ2ljYWxFeHByZXNzaW9uOjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6OkxvZ2ljYWxFeHByZXNzaW9uOjpyaWdodCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTG9naWNhbE5vdEV4cHJlc3Npb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkxvZ2ljYWxOb3RFeHByZXNzaW9uOjpMb2dpY2Fs
Tm90RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpM
b2dpY2FsTm90RXhwcmVzc2lvbjo6b3BlcmFuZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lv
bjo6TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpNYWtlQXJyYXlSZWZlcmVuY2VFeHByZXNzaW9uOjpsZWZ0VmFsdWUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZUFycmF5UmVmZXJl
bmNlRXhwcmVzc2lvbjo6bWlnaHRFc2NhcGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZVBvaW50ZXJFeHByZXNzaW9uOjpNYWtlUG9p
bnRlckV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TWFrZVBvaW50ZXJFeHByZXNzaW9uOjpsZWZ0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6TWFrZVBvaW50ZXJFeHByZXNzaW9uOjptaWdodEVzY2FwZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTmFt
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6Ok5hbWVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6OnVuaWZ5Tm9k
ZUltcGwpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6Ok5hbWVkVHlwZTo6aXNUeXBlRGVmaW5pdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6OmlzU3RydWN0dXJlRGVmaW5pdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6
OmlzRW51bWVyYXRpb25EZWZpbml0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6Ok5hbWVkVHlwZTo6aXNOYXRpdmVUeXBlRGVjbGFyYXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmFtZWRUeXBlOjp1bmlm
eU5vZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmFt
ZWRUeXBlOjp1bmlmeU5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xh
cmF0aW9uOjp0eXBlQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNJbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc051bWJl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRpdmVU
eXBlRGVjbGFyYXRpb246OmlzRmxvYXRpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc0F0b21pYyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRpdmVUeXBlRGVjbGFy
YXRpb246OmlzVmVjdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNNYXRyaXggY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc09w
YXF1ZVR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc1RleHR1cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc1RleHR1cmVB
cnJheSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb246OmlzRGVwdGhUZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNXcml0YWJs
ZVRleHR1cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TmF0aXZlVHlwZURlY2xhcmF0aW9uOjp0ZXh0dXJlRGltZW5zaW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNT
aWduZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0
aXZlVHlwZURlY2xhcmF0aW9uOjpzdGQ6OmZ1bmN0aW9uPGJvb2wgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzdGQ6
OmZ1bmN0aW9uPGludDY0X3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppdGVyYXRlQWxsVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6
c2V0SXNJbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZl
VHlwZURlY2xhcmF0aW9uOjpzZXRJc051bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb246OnNldElzRmxvYXRpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9u
OjpzZXRJc0F0b21pYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpO
YXRpdmVUeXBlRGVjbGFyYXRpb246OnNldElzVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNNYXRyaXgpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uOjpzZXRJc09wYXF1ZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRJc1RleHR1cmUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRJc1Rl
eHR1cmVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb246OnNldElzRGVwdGhUZXh0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNXcml0YWJs
ZVRleHR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZl
VHlwZURlY2xhcmF0aW9uOjpzZXRUZXh0dXJlRGltZW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNTaWduZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xh
cmF0aW9uOjpzZXRDYW5SZXByZXNlbnRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Q2FuUmVwcmVzZW50VW5z
aWduZWRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5h
dGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Q2FuUmVwcmVzZW50RmxvYXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRTdWNj
ZXNzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlw
ZURlY2xhcmF0aW9uOjpzZXRGb3JtYXRWYWx1ZUZyb21JbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Rm9ybWF0
VmFsdWVGcm9tVW5zaWduZWRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXRlcmF0ZUFsbFZhbHVlcyk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTnVsbExpdGVy
YWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok51bGxMaXRlcmFsOjpOdWxsTGl0
ZXJhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOdWxsTGl0ZXJh
bDo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOdWxsTGl0
ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTE51bGxMaXRlcmFsVHlwZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFBvaW50ZXJUeXBlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb246OlByb3BlcnR5QWNjZXNz
RXhwcmVzc2lvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVh
ZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246OnNldE5ld1ZhbHVl
RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFk
TW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpzZXRSZXN1bHRFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246Om9s
ZFZhcmlhYmxlUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246Om5ld1ZhcmlhYmxlUmVmZXJlbmNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJl
c3Npb246OmxlZnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpvbGRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpuZXdWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uOjpuZXdWYWx1ZUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6cmVzdWx0RXhwcmVz
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uOjp0YWtlTGVmdFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246OnRha2VPbGRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVF
eHByZXNzaW9uOjp0YWtlTmV3VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6dGFrZU5ld1ZhbHVlRXhwcmVzc2lv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uOjp0YWtlUmVzdWx0RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExT
TC9BU1QvV0hMU0xSZWZlcmVuY2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpSZWZlcmVuY2VUeXBlOjpSZWZlcmVuY2VUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XSExTTC9BU1QvV0hMU0xSZXNvbHZhYmxlVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6UmVzb2x2YWJsZVR5cGU6OlJlc29sdmFibGVUeXBlKToKKyAgICAgICAgKCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6aXNG
bG9hdExpdGVyYWxUeXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlJlc29sdmFibGVUeXBlOjppc0ludGVnZXJMaXRlcmFsVHlwZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6aXNOdWxs
TGl0ZXJhbFR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6UmVzb2x2YWJsZVR5cGU6OmlzVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJldHVybi5o
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6UmV0dXJuOjpSZXR1cm4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6UmV0dXJuOjp2YWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmRlc3Ryb3kp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50OjpTdGF0ZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50OjpraW5kIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNCbG9jayBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmlzQnJlYWsgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0NvbnRpbnVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNEb1doaWxlTG9vcCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmlzRWZmZWN0
ZnVsRXhwcmVzc2lvblN0YXRlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6
QVNUOjpTdGF0ZW1lbnQ6OmlzRmFsbHRocm91Z2ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0Zvckxvb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0lmU3RhdGVtZW50IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNSZXR1cm4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N0YXRlbWVudExpc3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N3aXRjaENhc2Ug
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N3aXRj
aFN0YXRlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1l
bnQ6OmlzVmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1doaWxlTG9vcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmNvZGVMb2NhdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OnVwZGF0ZUNvZGVMb2NhdGlv
bik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50TGlz
dC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50TGlzdDo6U3RhdGVt
ZW50TGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1l
bnRMaXN0OjpzdGF0ZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpTdHJ1Y3R1cmVEZWZpbml0aW9uOjpTdHJ1Y3R1cmVEZWZpbml0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0cnVjdHVyZURlZmluaXRpb246
OnN0cnVjdHVyZUVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlN0cnVjdHVyZURlZmluaXRpb246OmZpbmQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0cnVjdHVyZUVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OlN0cnVjdHVyZUVsZW1lbnQ6OlN0cnVjdHVyZUVsZW1lbnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RydWN0dXJlRWxlbWVudDo6
Y29kZUxvY2F0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlN0cnVjdHVyZUVsZW1lbnQ6OnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6U3RydWN0dXJlRWxlbWVudDo6bmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpTdHJ1Y3R1cmVFbGVtZW50OjpzZW1hbnRpYyk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3dpdGNoQ2FzZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3dpdGNoQ2FzZTo6U3dpdGNoQ2FzZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hDYXNlOjp2YWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hDYXNlOjpibG9j
ayk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3dp
dGNoU3RhdGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hTdGF0
ZW1lbnQ6OlN3aXRjaFN0YXRlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpTd2l0Y2hTdGF0ZW1lbnQ6OnZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OlN3aXRjaFN0YXRlbWVudDo6c3dpdGNoQ2FzZXMpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFRlcm5hcnlFeHByZXNzaW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUZXJuYXJ5RXhwcmVzc2lvbjo6VGVy
bmFyeUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VGVybmFyeUV4cHJlc3Npb246OnByZWRpY2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpUZXJuYXJ5RXhwcmVzc2lvbjo6Ym9keUV4cHJlc3Npb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VGVybmFyeUV4cHJlc3Npb246OmVsc2VF
eHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xUeXBlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBl
OjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OnVuaWZ5Tm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6Y2FuUmVz
b2x2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlw
ZTo6Y29udmVyc2lvbkNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VW5uYW1lZFR5cGU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBl
OjpUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmtpbmQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZTo6aXNVbm5hbWVkVHlwZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc05hbWVkVHlwZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc1Jlc29sdmFibGVUeXBl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmlzVHlwZVJlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc1BvaW50
ZXJUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmlzQXJy
YXlSZWZlcmVuY2VUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5
cGU6OmlzQXJyYXlUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5
cGU6OmlzUmVmZXJlbmNlVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpUeXBlOjppc1R5cGVEZWZpbml0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlR5cGU6OmlzU3RydWN0dXJlRGVmaW5pdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc0VudW1lcmF0aW9uRGVmaW5pdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc05hdGl2ZVR5cGVEZWNsYXJhdGlv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc0Zsb2F0TGl0
ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZTo6aXNJ
bnRlZ2VyTGl0ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VHlwZTo6aXNOdWxsTGl0ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkFTVDo6VHlwZTo6aXNVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjp1bmlmeU5vZGUgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVEZWZpbml0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlRGVmaW5pdGlvbjo6VHlwZURlZmluaXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZURlZmluaXRpb246OnR5
cGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5
cGVSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xV
bm5hbWVkVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlw
ZTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlw
ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNU
L1dITFNMVW5uYW1lZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVubmFt
ZWRUeXBlOjpVbm5hbWVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5h
bWVkVHlwZTo6dW5pZnlOb2RlSW1wbCk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmtpbmQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmlzVHlwZVJlZmVyZW5j
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVk
VHlwZTo6aXNQb2ludGVyVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpVbm5hbWVkVHlwZTo6aXNBcnJheVJlZmVyZW5jZVR5cGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmlzQXJyYXlU
eXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVubmFt
ZWRUeXBlOjppc1JlZmVyZW5jZVR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OnVuaWZ5Tm9kZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlwZTo6dW5pZnlOb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbnNpZ25lZElu
dGVnZXJMaXRlcmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbnNpZ25lZElu
dGVnZXJMaXRlcmFsOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWw6OnR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5zaWduZWRJbnRlZ2VyTGl0ZXJh
bDo6dmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VW5zaWduZWRJbnRlZ2VyTGl0ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVy
YWxUeXBlOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlOjp2YWx1
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbnNpZ25l
ZEludGVnZXJMaXRlcmFsVHlwZTo6cHJlZmVycmVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb25z
U3RhdGVtZW50OjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudDo6
dmFyaWFibGVEZWNsYXJhdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFZhcmlhYmxlUmVmZXJlbmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpWYXJpYWJsZVJlZmVyZW5jZTo6VmFyaWFibGVSZWZlcmVuY2UpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFibGVSZWZlcmVuY2U6OndyYXAp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFibGVSZWZlcmVu
Y2U6Om5hbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFi
bGVSZWZlcmVuY2U6OnZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlZhcmlhYmxlUmVmZXJlbmNlOjpzZXRWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMV2hpbGVMb29wLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpXaGlsZUxvb3A6OldoaWxlTG9vcCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpXaGlsZUxvb3A6OmNvbmRpdGlvbmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OldoaWxlTG9vcDo6Ym9keSk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xUeXBlTmFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpCYXNlVHlwZU5hbWVOb2RlOjpp
c1BvaW50ZXJUeXBlTmFtZU5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1l
dGFsOjpCYXNlVHlwZU5hbWVOb2RlOjppc0FycmF5UmVmZXJlbmNlVHlwZU5hbWVOb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpNZXRhbDo6QmFzZVR5cGVOYW1lTm9kZTo6aXNB
cnJheVR5cGVOYW1lTm9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0YWw6
OlR5cGVOYW1lcjo6Y3JlYXRlTmFtZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1l
dGFsOjpwYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpUeXBlTmFtZXI6
OmVtaXRVbm5hbWVkVHlwZURlZmluaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML1dITFNMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpQYXJzZXI6OnBh
cnNlU3VmZml4T3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OlBhcnNlcjo6Y29t
cGxldGVBc3NpZ25tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpQYXJzZXI6OnBhcnNl
UG9zc2libGVQcmVmaXgpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJl
c2VydmVWYXJpYWJsZUxpZmV0aW1lcy5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hM
U0wvV0hMU0xWaXNpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpWaXNpdG9yOjp2
aXNpdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
Lmg6CisKIDIwMTktMDgtMDcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dITFNMXSBQcnVuZSB1bnJlYWNoYWJsZSBzdGRsaWIgZnVuY3Rpb25zIGFmdGVyIHRo
ZSBDaGVja2VyIHJ1bnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNDg0MDQpCisrKyBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDYgKzM0Miw3
IEBAIE1vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlVHkKIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML01ldGFsL1dITFNMVmVydGV4QnVmZmVySW5kZXhDYWxjdWxhdG9yLmNwcAogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAKIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVBcmd1bWVudC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTEV4cHJlc3Npb24uY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xCdWlsdEluU2VtYW50aWMuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZXNv
dXJjZVNlbWFudGljLmNwcAogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3BlY2lhbGl6
YXRpb25Db25zdGFudFNlbWFudGljLmNwcApAQCAtMzUwLDkgKzM1MSwxMiBAQCBNb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xOdWxsTGl0ZXJhbFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbnNp
Z25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TFN0YXRlbWVudC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGUuY3BwCiBN
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmNwcAogTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMSW50ZWdlckxpdGVyYWwuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmNwcAorTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMVW5uYW1lZFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TFByZXBhcmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb3BlcnR5UmVzb2x2ZXIu
Y3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAkocmV2aXNpb24gMjQ4NDkx
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3NCw2ICszNzQsMjMgQEAgYXV0byBMZXhlcjo6cmVjb2duaXpl
S2V5d29yZCh1bnNpZ25lZCBlbgogCiBhdXRvIExleGVyOjpjb25zdW1lVG9rZW5Gcm9tU3RyZWFt
KCkgLT4gVG9rZW4KIHsKKyAgICBVQ2hhciBjdXJyZW50ID0gMDsKKyAgICB1bnNpZ25lZCBvZmZz
ZXQgPSBtX29mZnNldDsKKyAgICBhdXRvIHBlZWsgPSBbJl0gKCkgLT4gVUNoYXIgeworICAgICAg
ICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpKQorICAgICAgICAgICAgcmV0dXJu
IG1fc3RyaW5nVmlld1tvZmZzZXRdOworICAgICAgICByZXR1cm4gMDsKKyAgICB9OworICAgIGF1
dG8gc2hpZnQgPSBbJl0geworICAgICAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0
aCgpKSB7CisgICAgICAgICAgICBjdXJyZW50ID0gbV9zdHJpbmdWaWV3W29mZnNldF07CisgICAg
ICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50OworICAgICAgICB9
CisgICAgICAgIGN1cnJlbnQgPSAwOworICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICB9Owor
CiAgICAgYXV0byBwcmVwYXJlID0gWyZdKHVuc2lnbmVkIG5ld09mZnNldCwgVG9rZW46OlR5cGUg
dHlwZSkgLT4gVG9rZW4gewogICAgICAgICBhdXRvIG9sZE9mZnNldCA9IG1fb2Zmc2V0OwogICAg
ICAgICBtX29mZnNldCA9IG5ld09mZnNldDsKQEAgLTM4MSw2ICszOTgsNjM5IEBAIGF1dG8gTGV4
ZXI6OmNvbnN1bWVUb2tlbkZyb21TdHJlYW0oKSAtPiAKICAgICAgICAgcmV0dXJuIHsgeyBvbGRP
ZmZzZXQsIG5ld09mZnNldCB9LCB0eXBlIH07CiAgICAgfTsKIAorICAgIHNoaWZ0KCk7CisgICAg
c3dpdGNoIChjdXJyZW50KSB7CisgICAgY2FzZSAnQSc6CisgICAgY2FzZSAnQic6CisgICAgY2Fz
ZSAnQyc6CisgICAgY2FzZSAnRCc6CisgICAgY2FzZSAnRSc6CisgICAgY2FzZSAnRic6CisgICAg
Y2FzZSAnRyc6CisgICAgY2FzZSAnSCc6CisgICAgY2FzZSAnSSc6CisgICAgY2FzZSAnSic6Cisg
ICAgY2FzZSAnSyc6CisgICAgY2FzZSAnTCc6CisgICAgY2FzZSAnTSc6CisgICAgY2FzZSAnTic6
CisgICAgY2FzZSAnTyc6CisgICAgY2FzZSAnUCc6CisgICAgY2FzZSAnUSc6CisgICAgY2FzZSAn
Uic6CisgICAgY2FzZSAnVCc6CisgICAgY2FzZSAnVSc6CisgICAgY2FzZSAnVic6CisgICAgY2Fz
ZSAnVyc6CisgICAgY2FzZSAnWCc6CisgICAgY2FzZSAnWSc6CisgICAgY2FzZSAnWic6CisgICAg
Y2FzZSAnYSc6CisgICAgY2FzZSAnZic6CisgICAgY2FzZSAnZyc6CisgICAgY2FzZSAnaCc6Cisg
ICAgY2FzZSAnaic6CisgICAgY2FzZSAnayc6CisgICAgY2FzZSAnbCc6CisgICAgY2FzZSAnbSc6
CisgICAgY2FzZSAnbic6CisgICAgY2FzZSAncCc6CisgICAgY2FzZSAncSc6CisgICAgY2FzZSAn
cic6CisgICAgY2FzZSAndSc6CisgICAgY2FzZSAndic6CisgICAgY2FzZSAndyc6CisgICAgY2Fz
ZSAneCc6CisgICAgY2FzZSAneSc6CisgICAgY2FzZSAneic6CisgICAgY2FzZSAnXyc6CisgICAg
ICAgIHNoaWZ0KCk7CitwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OgorCisgICAgY2FzZSAncyc6
CisgICAgICAgIHN3aXRjaCAoc2hpZnQoKSkgeworICAgICAgICBjYXNlICdhJzoKKyAgICAgICAg
ICAgIGlmIChzaGlmdCgpICE9ICdtJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAncCcpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYg
KHNoaWZ0KCkgIT0gJ2wnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0
ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICByZXR1cm4ga2V5
d29yZChUb2tlbjo6VHlwZTo6UXVhbGlmaWVyKTsKKworICAgICAgICBjYXNlICd3JzoKKyAgICAg
ICAgICAgIGlmIChzaGlmdCgpICE9ICdpJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAndCcpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAg
aWYgKHNoaWZ0KCkgIT0gJ2MnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
QWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdoJykKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICByZXR1cm4g
a2V5d3JvcmQoVG9rZW46OlR5cGU6OlN3aXRjaCk7CisKKyAgICAgICAgY2FzZSAndCc6CisgICAg
ICAgICAgICBzd2l0Y2ggKHNoaWZ0KCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ3InOgorICAgICAg
ICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd1JykKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9
ICdjJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0
OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd0JykKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIHJldHVy
biBrZXl3b3JkKFRva2VuOjpUeXBlOjpTdHJ1Y3QpOworICAgICAgICAgICAgY2FzZSAnYSc6Cisg
ICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0
KCkgIT0gJ2knKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVy
U2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2MnKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OlN0YXRpYyk7CisgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgJ3AnOgorICAgICAg
ICAgICAgc3dpdGNoIChzaGlmdCgpKSB7CisgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAg
ICAgICAgICBpZiAoc2hpZnQoKSAhPSAnYycpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAn
ZScpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNwYWNlOworICAgICAgICAgICAg
Y2FzZSAnZSc6CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2MnKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ2knKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2EnKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2wnKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2knKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3onKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYg
KHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2QnKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OlNwZWNpYWxpemVkKTsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNo
aWZ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICBjYXNlICdTJzoKKyAgICAgICAg
aWYgKHNoaWZ0KCkgIT0gJ1YnKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRl
clNoaWZ0OworICAgICAgICBpZiAoc2hpZnQoKSAhPSAnXycpCisgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisKKyAgICAgICAgc3dpdGNoIChzaGlmdCgpKSB7Cisg
ICAgICAgIGNhc2UgJ0cnOgorICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3InKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlm
IChzaGlmdCgpICE9ICdvJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFm
dGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAndScpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0
KCkgIT0gJ3AnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlm
dDsKKworICAgICAgICAgICAgc3dpdGNoIChzaGlmdCgpKSB7CisgICAgICAgICAgICBjYXNlICdJ
JzoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHNoaWZ0KCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlICdEJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6
OlNWR3JvdXBJRCk7CisgICAgICAgICAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAg
ICAgIGlmIChzaGlmdCgpICE9ICdkJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2UnKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRl
clNoaWZ0OworICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAneCcpCisgICAgICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBrZXl3b3JkKFRva2VuOjpUeXBlOjpTVkdyb3VwSW5kZXgpOwor
CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Y2FzZSAnVCc6CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2gnKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ3InKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2EnKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ0knKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYg
KHNoaWZ0KCkgIT0gJ0QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6
OlNWR3JvdXBUaHJlYWRJRCk7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgfQorICAgICAg
ICBjYXNlICdEJzoKKyAgICAgICAgICAgIHN3aXRjaCAoc2hpZnQoKSkgeworICAgICAgICAgICAg
Y2FzZSAnZSc6CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3AnKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2gnKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OlNWRGVwdGgpOworICAgICAg
ICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3MnKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAg
ICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3AnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0g
J2EnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7
CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNo
aWZ0KCkgIT0gJ2MnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFm
dGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2gnKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ1QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2gnKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3InKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2UnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2EnKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYg
KHNoaWZ0KCkgIT0gJ2QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ0knKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAg
ICAgICAgaWYgKHNoaWZ0KCkgIT0gJ0QnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9r
ZW46OlR5cGU6OlNWRGlzcGF0Y2hUaHJlYWRJRCk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnbycpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ3YnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAo
c2hpZnQoKSAhPSAncicpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRl
clNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2EnKQorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgp
ICE9ICdnJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7
CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnZScpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9r
ZW46OlR5cGU6OlNWQ292ZXJhZ2UpOworICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICAgIGlm
IChzaGlmdCgpICE9ICdhJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFm
dGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAncicpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0
KCkgIT0gJ2cnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlm
dDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAn
dCcpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAg
ICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OlNWVGFyZ2V0KTsKKyAgICAgICAg
Y2FzZSAnUyc6CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnYScpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0
KCkgIT0gJ20nKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlm
dDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdwJykKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAn
bCcpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAg
ICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdJJykKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAg
ICBpZiAoc2hpZnQoKSAhPSAnbicpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2QnKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChz
aGlmdCgpICE9ICdlJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVy
U2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAneCcpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgcmV0dXJuIGtleXdv
cmQoVG9rZW46OlR5cGU6OlNWU2FtcGxlSW5kZXgpOworICAgICAgICBjYXNlICdQJzoKKyAgICAg
ICAgICAgIGlmIChzaGlmdCgpICE9ICdvJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAncycpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAg
aWYgKHNoaWZ0KCkgIT0gJ2knKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
QWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd0JykKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hp
ZnQoKSAhPSAnaScpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNo
aWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ28nKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9
ICduJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7Cisg
ICAgICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6U1ZQb3NpdGlvbik7CisgICAg
ICAgIGNhc2UgJ1YnOgorICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChz
aGlmdCgpICE9ICdyJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVy
U2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAndCcpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2UnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsK
KyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd4JykKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnSScp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAg
ICAgICAgaWYgKHNoaWZ0KCkgIT0gJ0QnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIHJldHVybiBrZXl3b3JkKFRva2VuOjpUeXBl
OjpTVlZlcnRleElEKTsKKyAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICBzd2l0Y2ggKHNo
aWZ0KCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgICAgIGlmIChzaGlm
dCgpICE9ICdGJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRl
clNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdyJykKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAg
IGlmIChzaGlmdCgpICE9ICdvJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICduJykKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAg
ICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd0JykKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9
ICdGJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0
OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdhJykKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChz
aGlmdCgpICE9ICdjJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJB
ZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAg
ICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U1ZJc0Zyb250RmFjZTsKKyAgICAgICAgICAgIGNhc2Ug
J24nOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoc2hpZnQoKSkgeworICAgICAgICAgICAgICAg
IGNhc2UgJ24nOgorICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnZScpCisgICAg
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdyJykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHNoaWZ0KCkgIT0gJ0MnKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAn
bycpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd2JykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgICAgICBpZiAoc2hp
ZnQoKSAhPSAncicpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdhJykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2cnKQorICAgICAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgICAg
ICBpZiAoc2hpZnQoKSAhPSAnZScpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXl3b3Jk
KFRva2VuOjpUeXBlOjpTVklubmVyQ292ZXJhZ2UpOworICAgICAgICAgICAgICAgIGNhc2UgJ3Mn
OgorICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAndCcpCisgICAgICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChzaGlmdCgpICE9ICdhJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0
KCkgIT0gJ24nKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJB
ZnRlclNoaWZ0OworICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnYycpCisgICAg
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHNoaWZ0KCkgIT0gJ0knKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAn
RCcpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXl3b3JkKFRva2VuOjpUeXBlOjpTVklu
c3RhbmNlSUQpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJB
ZnRlclNoaWZ0OworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICB9CisKKyAgICBjYXNlICd0
JzoKKyAgICAgICAgc3dpdGNoIChzaGlmdCgpKSB7CisgICAgICAgIGNhc2UgJ3InOgorICAgICAg
ICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3UnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBy
ZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6VHJ1ZSk7CisgICAgICAgIGNhc2UgJ3knOgorICAg
ICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3AnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAg
ICBpZiAoc2hpZnQoKSAhPSAnZCcpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChz
aGlmdCgpICE9ICdmJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVy
U2hpZnQ7CisgICAgICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6VHlwZWRlZik7
CisgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3InKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAg
IGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnYScpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNo
aWZ0KCkgIT0gJ2QnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJT
aGlmdDsKKworICAgICAgICAgICAgaWYgKHBlZWsoKSAhPSAnZycpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OlRocmVhZCk7CisKKyAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICdnJyk7CisgICAgICAg
ICAgICBpZiAoc2hpZnQoKSAhPSAncicpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ28nKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlm
IChzaGlmdCgpICE9ICd1JykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFm
dGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAncCcpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgcmV0dXJuIGtl
eXdvcmQoVG9rZW46OlR5cGU6OlRocmVhZGdyb3VwKTsKKworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICB9CisKKyAg
ICBjYXNlICdlJzoKKyAgICAgICAgc3dpdGNoIChzaGlmdCgpKSB7CisgICAgICAgIGNhc2UgJ24n
OgorICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3UnKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdt
JykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6RW51bSk7CisgICAgICAgIGNhc2Ug
J2wnOgorICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3MnKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9
ICdlJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7Cisg
ICAgICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6RWxzZSk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgIH0KKworICAgIGNhc2UgJ28nOgorICAgICAgICBpZiAoc2hpZnQoKSAhPSAncCcpCisgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgIGlmIChzaGlm
dCgpICE9ICdlJykKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsK
KyAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3InKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXJBZnRlclNoaWZ0OworICAgICAgICBpZiAoc2hpZnQoKSAhPSAnYScpCisgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgIGlmIChzaGlmdCgpICE9
ICd0JykKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ28nKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJB
ZnRlclNoaWZ0OworICAgICAgICBpZiAoc2hpZnQoKSAhPSAncicpCisgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgIHJldHVybiBrZXl3b3JkKFRva2Vu
OjpUeXBlOjpPcGVyYXRvcik7CisKKyAgICBjYXNlICdpJzoKKyAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2YnKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAg
ICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6SWYpOworCisgICAgY2FzZSAnYyc6CisK
KyAgICAgICAgc3dpdGNoIChzaGlmdCgpKSB7CisgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ3MnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdlJykKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICByZXR1
cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6Q2FzZSk7CisKKyAgICAgICAgY2FzZSAnZSc6CisgICAg
ICAgICAgICBpZiAoc2hpZnQoKSAhPSAnbicpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAg
IGlmIChzaGlmdCgpICE9ICdyJykKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICBpZiAoc2hpZnQoKSAhPSAnbycpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgaWYgKHNo
aWZ0KCkgIT0gJ2knKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJT
aGlmdDsKKyAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdkJykKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICByZXR1cm4ga2V5d29y
ZChUb2tlbjo6VHlwZTo6UXVhbGlmaWVyKTsKKyAgICAgICAgY2FzZSAnbyc6CisgICAgICAgICAg
ICBzd2l0Y2ggKHNoaWZ0KCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ20nOgorICAgICAgICAgICAg
ICAgIGlmIChzaGlmdCgpICE9ICdwJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd1JykK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAg
ICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICd0JykKKyAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIGlmIChzaGlmdCgp
ICE9ICdlJykKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNo
aWZ0OworICAgICAgICAgICAgICAgIHJldHVybiBrZXl3b3JkKFRva2VuOjpUeXBlOjpDb21wdXRl
KTsKKyAgICAgICAgICAgIGNhc2UgJ24nOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoc2hpZnQo
KSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgICAgICAgICBpZiAo
c2hpZnQoKSAhPSAnaScpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICduJykK
KyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3UnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAg
ICAgICBpZiAoc2hpZnQoKSAhPSAnZScpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXl3
b3JkKFRva2VuOjpUeXBlOjpDb250aW51ZSk7CisgICAgICAgICAgICAgICAgY2FzZSAncyc6Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChzaGlmdCgpICE9ICdzJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXJBZnRlclNoaWZ0OworCisgICAgICAgICAgICAgICAgICAgIGlmIChwZWVrKCkg
IT0gJ2EnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5
cGU6OkNvbnN0KTsKKworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICdhJyk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChzaGlmdCgpICE9ICduJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ3QnKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRl
clNoaWZ0OworICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6
Q29uc3RhbnQpOworCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
ckFmdGVyU2hpZnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgfQorCisgICAgY2Fz
ZSAnYic6CisgICAgICAgIGlmIChzaGlmdCgpICE9ICdyJykKKyAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICBpZiAoc2hp
ZnQoKSAhPSAnYScpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7
CisgICAgICAgIGlmIChzaGlmdCgpICE9ICdrJykKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyQWZ0ZXJTaGlmdDsKKyAgICAgICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OkJy
ZWFrKTsKKworICAgIGNhc2UgJ2QnOgorICAgICAgICBzd2l0Y2ggKHNoaWZ0KCkpIHsKKyAgICAg
ICAgY2FzZSAnbyc6CisgICAgICAgICAgICByZXR1cm4ga2V5d29yZChUb2tlbjo6VHlwZTo6RG8p
OworICAgICAgICBjYXNlICdlJzoKKyAgICAgICAgICAgIHN3aXRjaCAoc2hpZnQoKSkgeworICAg
ICAgICAgICAgY2FzZSAnZic6CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2EnKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAg
ICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3UnKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkg
IT0gJ2wnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hp
ZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ3QnKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OkRlZmF1bHQpOworICAgICAgICAgICAgY2FzZSAndic6
CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2knKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNo
aWZ0KCkgIT0gJ2MnKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFm
dGVyU2hpZnQ7CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0KCkgIT0gJ2UnKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllckFmdGVyU2hpZnQ7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGtleXdvcmQoVG9rZW46OlR5cGU6OkRldmljZSk7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyQWZ0ZXJTaGlmdDsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXJBZnRlclNoaWZ0OworICAgICAgICB9CisKKworICAgIGlmIChzdWJzdHJpbmcgPT0g
ImZhbGx0aHJvdWdoIikKKyAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpGYWxsdGhyb3VnaDsK
KyAgICBpZiAoc3Vic3RyaW5nID09ICJmb3IiKQorICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6
OkZvcjsKKyAgICBpZiAoc3Vic3RyaW5nID09ICJ3aGlsZSIpCisgICAgICAgIHJldHVybiBUb2tl
bjo6VHlwZTo6V2hpbGU7CisgICAgaWYgKHN1YnN0cmluZyA9PSAicmV0dXJuIikKKyAgICAgICAg
cmV0dXJuIFRva2VuOjpUeXBlOjpSZXR1cm47CisgICAgaWYgKHN1YnN0cmluZyA9PSAibnVsbCIp
CisgICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6TnVsbDsKKyAgICBpZiAoc3Vic3RyaW5nID09
ICJmYWxzZSIpCisgICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6RmFsc2U7CisgICAgaWYgKHN1
YnN0cmluZyA9PSAidmVydGV4IikKKyAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpWZXJ0ZXg7
CisgICAgaWYgKHN1YnN0cmluZyA9PSAiZnJhZ21lbnQiKQorICAgICAgICByZXR1cm4gVG9rZW46
OlR5cGU6OkZyYWdtZW50OworICAgIGlmIChzdWJzdHJpbmcgPT0gIm51bXRocmVhZHMiKQorICAg
ICAgICByZXR1cm4gVG9rZW46OlR5cGU6Ok51bVRocmVhZHM7CisgICAgaWYgKHN1YnN0cmluZyA9
PSAiUFNJWkUiKQorICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlBTaXplOworICAgIGlmIChz
dWJzdHJpbmcgPT0gImF0dHJpYnV0ZSIpCisgICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6QXR0
cmlidXRlOworICAgIGlmIChzdWJzdHJpbmcgPT0gInJlZ2lzdGVyIikKKyAgICAgICAgcmV0dXJu
IFRva2VuOjpUeXBlOjpSZWdpc3RlcjsKKyAgICBpZiAoc3Vic3RyaW5nID09ICJuYXRpdmUiKQor
ICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6Ok5hdGl2ZTsKKyAgICBpZiAoc3Vic3RyaW5nID09
ICJyZXN0cmljdGVkIikKKyAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpSZXN0cmljdGVkOwor
ICAgIGlmIChzdWJzdHJpbmcgPT0gIl8iKQorICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlVu
ZGVyc2NvcmU7CisgICAgaWYgKHN1YnN0cmluZyA9PSAiYXV0byIpCisgICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6QXV0bzsKKyAgICBpZiAoc3Vic3RyaW5nID09ICJwcm90b2NvbCIpCisgICAg
ICAgIHJldHVybiBUb2tlbjo6VHlwZTo6UHJvdG9jb2w7CisgICAgaWYgKHN1YnN0cmluZyA9PSAi
bm9pbnRlcnBvbGF0aW9uIikKKyAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpRdWFsaWZpZXI7
CisgICAgaWYgKHN1YnN0cmluZyA9PSAibm9wZXJzcGVjdGl2ZSIpCisgICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6UXVhbGlmaWVyOworICAgIGlmIChzdWJzdHJpbmcgPT0gInVuaWZvcm0iKQor
ICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlF1YWxpZmllcjsKKworICAgIH0KKwogICAgIGlm
IChhdXRvIG5ld09mZnNldCA9IGlkZW50aWZpZXIobV9vZmZzZXQpKSB7CiAgICAgICAgIGlmIChh
dXRvIHJlc3VsdCA9IHJlY29nbml6ZUtleXdvcmQoKm5ld09mZnNldCkpIHsKICAgICAgICAgICAg
IGlmICgqcmVzdWx0ID09IFRva2VuOjpUeXBlOjpPcGVyYXRvcikgewpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQXJyYXlSZWZlcmVuY2VUeXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dI
TFNMQXJyYXlSZWZlcmVuY2VUeXBlLmgJKHJldmlzaW9uIDI0ODQ5MSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw2IEBAIHB1YmxpYzoKIAogfQogCi1TUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShBcnJheVJlZmVyZW5jZVR5cGUsIGlzQXJy
YXlSZWZlcmVuY2VUeXBlKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoQXJy
YXlSZWZlcmVuY2VUeXBlLCBpc0FycmF5UmVmZXJlbmNlVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9X
SExTTEFycmF5VHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xBcnJheVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
OTIsNiArOTIsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoQXJyYXlUeXBl
KQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShBcnJheVR5cGUs
IGlzQXJyYXlUeXBlKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoQXJyYXlU
eXBlLCBpc0FycmF5VHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEVudW1l
cmF0aW9uRGVmaW5pdGlvbi5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xFbnVtZXJhdGlvbkRlZmluaXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtOTYsNiArOTYsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9E
RUxFVEUoRW51bWVyYXRpb25EZWZpbml0aW9uKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dI
TFNMX05BTUVEX1RZUEUoRW51bWVyYXRpb25EZWZpbml0aW9uLCBpc0VudW1lcmF0aW9uRGVmaW5p
dGlvbigpKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9UWVBFKEVudW1lcmF0aW9uRGVm
aW5pdGlvbiwgaXNFbnVtZXJhdGlvbkRlZmluaXRpb24oKSkKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWxUeXBl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNU
L1dITFNMRmxvYXRMaXRlcmFsVHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWxUeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDYgQEAgcHJpdmF0ZToKIAogREVGSU5FX0RFRkFVTFRf
REVMRVRFKEZsb2F0TGl0ZXJhbFR5cGUpCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xf
UkVTT0xWQUJMRV9UWVBFKEZsb2F0TGl0ZXJhbFR5cGUsIGlzRmxvYXRMaXRlcmFsVHlwZSgpKQor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9UWVBFKEZsb2F0TGl0ZXJhbFR5cGUsIGlzRmxv
YXRMaXRlcmFsVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEludGVnZXJMaXRlcmFsVHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEludGVnZXJMaXRl
cmFsVHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNzcsNiArNzcsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoSW50ZWdl
ckxpdGVyYWxUeXBlKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1JFU09MVkFCTEVf
VFlQRShJbnRlZ2VyTGl0ZXJhbFR5cGUsIGlzSW50ZWdlckxpdGVyYWxUeXBlKCkpCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoSW50ZWdlckxpdGVyYWxUeXBlLCBpc0ludGVnZXJM
aXRlcmFsVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTE5hbWVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE5hbWVkVHlwZS5oCShyZXZpc2lvbiAy
NDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xO
YW1lZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTEgKzc2LDYgQEAgcHJpdmF0ZToKIAog
REVGSU5FX0RFRkFVTFRfREVMRVRFKE5hbWVkVHlwZSkKIAotI2RlZmluZSBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX1dITFNMX05BTUVEX1RZUEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwK
LVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V0hMU0w6OkFTVDo6VG9WYWx1
ZVR5cGVOYW1lKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldITFNM
OjpBU1Q6Ok5hbWVkVHlwZSYgdHlwZSkgeyByZXR1cm4gdHlwZS5wcmVkaWNhdGU7IH0gXAotU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNM
X1RZUEUoTmFtZWRUeXBlLCBpc05hbWVkVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FT
VC9XSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xOYXRpdmVUeXBlRGVjbGFy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCw2IEBAIHByaXZhdGU6CiAKIH0K
IAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9OQU1FRF9UWVBFKE5hdGl2ZVR5cGVEZWNs
YXJhdGlvbiwgaXNOYXRpdmVUeXBlRGVjbGFyYXRpb24oKSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfV0hMU0xfVFlQRShOYXRpdmVUeXBlRGVjbGFyYXRpb24sIGlzTmF0aXZlVHlwZURlY2xhcmF0
aW9uKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hM
U0wvQVNUL1dITFNMTnVsbExpdGVyYWxUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTnVsbExpdGVyYWxUeXBlLmgJKHJldmlz
aW9uIDI0ODQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9X
SExTTE51bGxMaXRlcmFsVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw2IEBAIHBy
aXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RFTEVURShOdWxsTGl0ZXJhbFR5cGUpCiAKLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfUkVTT0xWQUJMRV9UWVBFKE51bGxMaXRlcmFsVHlwZSwg
aXNOdWxsTGl0ZXJhbFR5cGUoKSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfVFlQRShO
dWxsTGl0ZXJhbFR5cGUsIGlzTnVsbExpdGVyYWxUeXBlKCkpCiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUG9pbnRlclR5cGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xQb2ludGVyVHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xQb2ludGVyVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC04NCw2ICs4NCw2IEBAIHB1YmxpYzoKIAogREVGSU5FX0RFRkFVTFRfREVMRVRFKFBvaW50ZXJU
eXBlKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShQb2ludGVy
VHlwZSwgaXNQb2ludGVyVHlwZSgpKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9UWVBF
KFBvaW50ZXJUeXBlLCBpc1BvaW50ZXJUeXBlKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVmZXJlbmNlVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJl
ZmVyZW5jZVR5cGUuaAkocmV2aXNpb24gMjQ4NDkxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVmZXJlbmNlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw2ICs3OSw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RFTEVURShSZWZlcmVu
Y2VUeXBlKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShSZWZl
cmVuY2VUeXBlLCBpc1JlZmVyZW5jZVR5cGUoKSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hM
U0xfVFlQRShSZWZlcmVuY2VUeXBlLCBpc1JlZmVyZW5jZVR5cGUoKSkKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZXNvbHZhYmxl
VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNM
L0FTVC9XSExTTFJlc29sdmFibGVUeXBlLmgJKHJldmlzaW9uIDI0ODQ5MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlc29sdmFibGVUeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTkwLDExICs5MCw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxU
X0RFTEVURShSZXNvbHZhYmxlVHlwZSkKIAotI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X1dITFNMX1JFU09MVkFCTEVfVFlQRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAotU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXSExTTDo6QVNUOjpUb1ZhbHVlVHlw
ZU5hbWUpIFwKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V0hMU0w6OkFT
VDo6UmVzb2x2YWJsZVR5cGUmIHR5cGUpIHsgcmV0dXJuIHR5cGUucHJlZGljYXRlOyB9IFwKLVNQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExT
TF9UWVBFKFJlc29sdmFibGVUeXBlLCBpc1Jlc29sdmFibGVUeXBlKCkpCiAKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RydWN0dXJl
RGVmaW5pdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFN0cnVjdHVyZURlZmluaXRpb24uaAkocmV2aXNpb24gMjQ4NDkxKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RydWN0dXJl
RGVmaW5pdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw2IEBAIHByaXZhdGU6CiAK
IERFRklORV9ERUZBVUxUX0RFTEVURShTdHJ1Y3R1cmVEZWZpbml0aW9uKQogCi1TUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1dITFNMX05BTUVEX1RZUEUoU3RydWN0dXJlRGVmaW5pdGlvbiwgaXNTdHJ1
Y3R1cmVEZWZpbml0aW9uKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoU3Ry
dWN0dXJlRGVmaW5pdGlvbiwgaXNTdHJ1Y3R1cmVEZWZpbml0aW9uKCkpCiAKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZURlZmlu
aXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExT
TC9BU1QvV0hMU0xUeXBlRGVmaW5pdGlvbi5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlRGVmaW5pdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxU
X0RFTEVURShUeXBlRGVmaW5pdGlvbikKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9O
QU1FRF9UWVBFKFR5cGVEZWZpbml0aW9uLCBpc1R5cGVEZWZpbml0aW9uKCkpCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoVHlwZURlZmluaXRpb24sIGlzVHlwZURlZmluaXRpb24o
KSkKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9B
U1QvV0hMU0xUeXBlUmVmZXJlbmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZVJlZmVyZW5jZS5oCShyZXZpc2lvbiAyNDg0
OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBl
UmVmZXJlbmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsNiBAQCBwcml2YXRlOgog
CiBERUZJTkVfREVGQVVMVF9ERUxFVEUoVHlwZVJlZmVyZW5jZSkKIAotU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19XSExTTF9VTk5BTUVEX1RZUEUoVHlwZVJlZmVyZW5jZSwgaXNUeXBlUmVmZXJlbmNl
KCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoVHlwZVJlZmVyZW5jZSwgaXNU
eXBlUmVmZXJlbmNlKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5uYW1lZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbm5hbWVkVHlwZS5oCShyZXZp
c2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xVbm5hbWVkVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMSArNzIsNiBAQCBwcml2
YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoVW5uYW1lZFR5cGUpCiAKLSNkZWZpbmUgU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9VTk5BTUVEX1RZUEUoVG9WYWx1ZVR5cGVOYW1lLCBw
cmVkaWNhdGUpIFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V0hMU0w6
OkFTVDo6VG9WYWx1ZVR5cGVOYW1lKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdl
YkNvcmU6OldITFNMOjpBU1Q6OlVubmFtZWRUeXBlJiB0eXBlKSB7IHJldHVybiB0eXBlLnByZWRp
Y2F0ZTsgfSBcCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi0KIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfV0hMU0xfVFlQRShVbm5hbWVkVHlwZSwgaXNVbm5hbWVkVHlwZSgpKQogCiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUu
aAkocmV2aXNpb24gMjQ4NDkxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hM
U0wvQVNUL1dITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNzcsNiArNzcsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoVW5zaWdu
ZWRJbnRlZ2VyTGl0ZXJhbFR5cGUpCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfUkVT
T0xWQUJMRV9UWVBFKFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlLCBpc1Vuc2lnbmVkSW50ZWdl
ckxpdGVyYWxUeXBlKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoVW5zaWdu
ZWRJbnRlZ2VyTGl0ZXJhbFR5cGUsIGlzVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUoKSkKIAog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDg0MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyMzEsNyArMjIz
MSw2IEBACiAJCTdDODEzOUE4MUVENjI4NzQwMENFMjZFOCAvKiBKU0RPTU9wZXJhdGlvblJldHVy
bmluZ1Byb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDODEzOUE1MUVENjI4MUQwMENFMjZFOCAvKiBKU0RPTU9wZXJhdGlvblJldHVybmluZ1By
b21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzgxMzlBQTFFRDY2MDRCMDBDRTI2RTggLyogSlNET01DYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5
QTkxRUQ2MkRGMjAwQ0UyNkU4IC8qIEpTRE9NQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzgzREU4NjFE
MDRDQzVEMDBGRUJDRjMgLyogU3ByaW5nU29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzREU4NTFEMDRDQkQ0MDBGRUJDRjMgLyogU3ByaW5n
U29sdmVyLmggKi87IH07Ci0JCTdDODVCMjAyMjJGQjA0ODUwMDMwNjg0RiAvKiBXSExTTFVubmFt
ZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDODVCMjAxMjJGQjA0ODUwMDMwNjg0RiAvKiBXSExTTFVubmFtZWRUeXBlLmNwcCAqLzsgfTsK
IAkJN0M4RTM0QUQxRTRBMzNBRjAwNTRDRTIzIC8qIEpTRE9NQ29udmVydEFueS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RTM0OTIxRTRBMzM4RTAw
NTRDRTIzIC8qIEpTRE9NQ29udmVydEFueS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdDOEUzNEFFMUU0QTMzQUYwMDU0Q0UyMyAvKiBKU0RPTUNv
bnZlcnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzhFMzQ5MzFFNEEzMzhFMDA1NENFMjMgLyogSlNET01Db252ZXJ0QmFzZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDOEUzNEFGMUU0QTMz
QUYwMDU0Q0UyMyAvKiBKU0RPTUNvbnZlcnRCb29sZWFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhFMzQ5NDFFNEEzMzhFMDA1NENFMjMgLyogSlNE
T01Db252ZXJ0Qm9vbGVhbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04MzE1LDYgKzgzMTQsNyBAQAogCQk1MjEzMUU1QTFDNEYxNTYxMDAzM0Y4
MDIgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjE1ODYyQzIyOTM3N0I3MDA1OTI1RUYgLyogV0hM
U0xBU1QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xBU1QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTIyQkFCOTYyMkU2QTM2MjAwQzU0Q0U5IC8qIFdITFNMQ29kZUxvY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdITFNMQ29kZUxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUyMkQwN0EzMjJGQkFCNDMwMEI5MDVCRSAvKiBXSExTTEV4cHJlc3Npb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0hMU0xFeHByZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTIyREEzRDMyMjlFMUQzOTAwNDJEMTUxIC8qIFdITFNMR2xvYmFsVmFy
aWFibGVSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xHbG9iYWxWYXJpYWJsZVJlZmVy
ZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjJFMUExNzIyOTdENkQ0MDBF
NUQzNkEgLyogV0hMU0xQcmVzZXJ2ZVZhcmlhYmxlTGlmZXRpbWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdITFNMUHJlc2VydmVWYXJpYWJsZUxpZmV0aW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyMkUxQTE5MjI5N0Q2RDQwMEU1RDM2QSAvKiBXSExTTFByZXNlcnZl
VmFyaWFibGVMaWZldGltZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xQcmVzZXJ2ZVZhcmlhYmxl
TGlmZXRpbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI3LDYgKzgzMjcs
NyBAQAogCQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlldy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJDQjExREIyMkZEREIy
RTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERl
ZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExOEQxQzU0
NTkwMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTE4RTFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTcwODAsNiArMTcwODEsNyBAQAogCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBX
SExTTENvbW1hRXhwcmVzc2lvbi5oICovLAogCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAv
KiBXSExTTENvbnN0YW50RXhwcmVzc2lvbi5oICovLAogCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIy
Nzk3OSAvKiBXSExTTENvbnRpbnVlLmggKi8sCisJCQkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0
IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovLAogCQkJCUMyMUJGNzAxMjFDRDg5QzQwMDIyNzk3
OSAvKiBXSExTTERlcmVmZXJlbmNlRXhwcmVzc2lvbi5oICovLAogCQkJCUMyMUJGNzE4MjFDRDg5
RDcwMDIyNzk3OSAvKiBXSExTTERvdEV4cHJlc3Npb24uaCAqLywKIAkJCQlDMjFCRjZGQjIxQ0Q4
OUJFMDAyMjc5NzkgLyogV0hMU0xEb1doaWxlTG9vcC5oICovLApAQCAtMTcwODksNiArMTcwOTEs
NyBAQAogCQkJCUMyMUJGNzI2MjFDRDg5RTMwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVt
YmVyLmggKi8sCiAJCQkJQzIxQkY3MDIyMUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRp
b25NZW1iZXJMaXRlcmFsLmggKi8sCiAJCQkJQzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdI
TFNMRXhwcmVzc2lvbi5oICovLAorCQkJCTUyMkQwN0EzMjJGQkFCNDMwMEI5MDVCRSAvKiBXSExT
TEV4cHJlc3Npb24uY3BwICovLAogCQkJCUMyMUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExT
TEZhbGx0aHJvdWdoLmggKi8sCiAJCQkJQzIxQkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNM
RmxvYXRMaXRlcmFsLmggKi8sCiAJCQkJMUNCNjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNM
RmxvYXRMaXRlcmFsVHlwZS5jcHAgKi8sCkBAIC0zMzUyNCw3ICszMzUyNyw2IEBACiAJCQkJRjEy
MTcxRjUxNkE4Q0VEMjAwMDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUQyMUE4MDIxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMTBCNjk4MTE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdDODVCMjAyMjJGQjA0ODUwMDMwNjg0RiAvKiBXSExT
TFVubmFtZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERB
NjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M3Q0MwQTJDRjA3
NDAwRDU3NjY0IC8qIFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMw
QTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCShyZXZpc2lvbiAyNDg0
MDQpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgY2xhc3MgV1RGOjpSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj47CisgICAgZnJpZW5k
IHN0cnVjdCBzdGQ6OmRlZmF1bHRfZGVsZXRlPFdvcmtlclNjcmlwdExvYWRlcj47CiAKICAgICBX
b3JrZXJTY3JpcHRMb2FkZXIoKTsKICAgICB+V29ya2VyU2NyaXB0TG9hZGVyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376108</attachid>
            <date>2019-08-12 16:59:32 -0700</date>
            <delta_ts>2019-08-12 20:13:07 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>101947</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDg0NjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gRGV2aXJ0dWFsaXplIHRoZSBBU1QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDUyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFJvYmluIE1vcmlzc2V0LgorCisgICAgICAgIE1ha2UgUmVmQ291
bnRlZCB1c2Ugc3RkOjpkZWZhdWx0X2RlbGV0ZSBpbnN0ZWFkIG9mIGV4cGxpY2l0bHkgY2FsbGlu
ZyBkZWxldGUuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzZXMgb2YgUmVmQ291bnRlZCB0byBkZWZp
bmUgdGhlaXIgb3duIGN1c3RvbSBkZWxldGVyLgorCisgICAgICAgICogd3RmL1JlZkNvdW50ZWQu
aDoKKyAgICAgICAgKFdURjo6UmVmQ291bnRlZDo6ZGVyZWYgY29uc3QpOgorICAgICAgICAqIHd0
Zi9VbmlxdWVSZWYuaDoKKyAgICAgICAgKFdURjo6VW5pcXVlUmVmOjpVbmlxdWVSZWYpOgorCiAy
MDE5LTA4LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRocmVhZCBzYWZldHkgaXNzdWUgaW4gQXVkaW9TYW1wbGVEYXRhU291cmNlKCkgY29uc3RydWN0
b3IKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9SZWZDb3VudGVkLmgJKHJldmlzaW9uIDI0ODQwNCkKKysrIFNvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDEzICsxMzYsMTMgQEAgaW5s
aW5lIHZvaWQgYWRvcHRlZChSZWZDb3VudGVkQmFzZSogb2JqZQogfQogI2VuZGlmCiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZkNvdW50ZWQgOiBwdWJsaWMgUmVmQ291bnRlZEJhc2Ug
ewordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRGVsZXRlciA9IHN0ZDo6ZGVmYXVsdF9k
ZWxldGU8VD4+IGNsYXNzIFJlZkNvdW50ZWQgOiBwdWJsaWMgUmVmQ291bnRlZEJhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlZkNvdW50ZWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICB2b2lkIGRlcmVmKCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChk
ZXJlZkJhc2UoKSkKLSAgICAgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxjb25zdCBUKj4odGhp
cyk7CisgICAgICAgICAgICBEZWxldGVyKCkoY29uc3RfY2FzdDxUKj4oc3RhdGljX2Nhc3Q8Y29u
c3QgVCo+KHRoaXMpKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9VbmlxdWVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9VbmlxdWVSZWYuaAko
cmV2aXNpb24gMjQ4NDA0KQorKysgU291cmNlL1dURi93dGYvVW5pcXVlUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgVW5pcXVlUmVmIHsKIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KICAgICBVbmlxdWVSZWYoVW5pcXVlUmVmPFU+JiYgb3RoZXIp
Ci0gICAgICAgIDogbV9yZWYoV1RGTW92ZShvdGhlci5tX3JlZikpCisgICAgICAgIDogbV9yZWYo
b3RoZXIubV9yZWYucmVsZWFzZSgpKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcmVmKTsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDg0MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MDcgQEAKKzIwMTktMDgtMDkgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBEZXZpcnR1
YWxpemUgdGhlIEFTVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAwNTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9iaW4gTW9yaXNzZXQuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBkZXZpcnR1YWxpemVzIHRoZSBBU1QgZm9yIFR5cGUsIEV4cHJlc3Np
b24sIGFuZCBTdGF0ZW1lbnQuCisgICAgICAgIFdlIG5vdyBoYXZlIGFuIGVudW0gd2hpY2ggcmVw
cmVzZW50cyBhbGwgdGhlIGNvbmNyZXRlIHR5cGVzIGluIHRoZQorICAgICAgICB0aHJlZSBoaWVy
YXJjaGllcy4gRG9pbmcgZHluYW1pYyBkaXNwYXRjaCBpcyBpbXBsZW1lbnRlZCBhcyBhIHN3aXRj
aAorICAgICAgICBvbiB0aGF0IHR5cGUgZW51bS4KKyAgICAgICAgCisgICAgICAgIFRoZSBpbnRl
cmVzdGluZyBwYXJ0IG9mIHRoaXMgcGF0Y2ggaXMgaG93IHRvIGhhbmRsZSBkZXN0cnVjdGlvbi4g
V2UgZG8KKyAgICAgICAgdGhpcyBieSBkZWZpbmluZyBhIGN1c3RvbSBkZWxldGVyIGZvciBhbGwg
bm9kZXMgaW4gdGhlIEFTVC4gVGhpcyBlbnN1cmVzCisgICAgICAgIHRoYXQgd2hlbiB0aGV5J3Jl
IHVzZWQgaW5zaWRlIFVuaXF1ZVJlZiwgdW5pcXVlX3B0ciwgUmVmLCBhbmQgUmVmUHRyLAorICAg
ICAgICB3ZSBkbyBkeW5hbWljIGRpc3BhdGNoIHdoZW4gd2UgZGVsZXRlIHRoZSBvYmplY3QuIFRo
aXMgYWxsb3dzIGVhY2ggYmFzZQorICAgICAgICBjbGFzcyB0byBkZWZpbmUgYSAiZGVzdHJveSIg
bWV0aG9kIHdoaWNoIGRvZXMgZHluYW1pYyBkaXNwYXRjaCBvbiB0eXBlCisgICAgICAgIGFuZCBj
YWxscyB0aGUgYXBwcm9wcmlhdGUgZGVsZXRlLiBXZSBhbHNvIG1hcmsgYWxsIG5vbi1jb25jcmV0
ZSBub2RlcworICAgICAgICBpbiBhbGwgdHlwZSBoaWVyYXJjaGllcyB3aXRoIGEgcHJvdGVjdGVk
IGRlc3RydWN0b3IsIHdoaWNoIGVuc3VyZXMgaXQncworICAgICAgICBuZXZlciBjYWxsZWQgZXhj
ZXB0IGZyb20gd2l0aGluIHRoZSBjb25jcmV0ZSBjaGlsZCBjbGFzc2VzLiBXZSBhbGxvdworICAg
ICAgICBhbGwgY29uY3JldGUgY2xhc3NlcyB0byBoYXZlIHB1YmxpYyBkZXN0cnVjdG9ycywgYXMg
aXQncyB2YWxpZCBmb3IKKyAgICAgICAgdGhlaXIgZGVzdHJ1Y3RvcnMgdG8gYmUgY2FsbGVkIGV4
cGxpY2l0bHkgc2luY2UgdGhlcmUgaXMgbm8gbmVlZCBmb3IKKyAgICAgICAgZHluYW1pYyBkaXNw
YXRjaCBpbiBzdWNoIHNjZW5hcmlvcy4gQWxsIGNvbmNyZXRlIGNsYXNzZXMgYXJlIGFsc28gbWFy
a2VkCisgICAgICAgIGFzIGZpbmFsLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDNtcyBz
cGVlZHVwIG9uIGNvbXB1dGVfYm9pZHMsIHdoaWNoIGlzIGFib3V0IGEgMTAlIGltcHJvdmVtZW50
CisgICAgICAgIGluIHRoZSBXSExTTCBjb21waWxlci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpBc3NpZ25tZW50RXhwcmVzc2lvbjo6QXNzaWdubWVudEV4cHJl
c3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6QXNzaWdubWVu
dEV4cHJlc3Npb246OmxlZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6QXNzaWdubWVudEV4cHJlc3Npb246OnJpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OkFzc2lnbm1lbnRFeHByZXNzaW9uOjp0YWtlUmlnaHQpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEJsb2NrLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpCbG9jazo6QmxvY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6QmxvY2s6OnN0YXRlbWVudHMpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEJvb2xlYW5MaXRlcmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpCb29sZWFuTGl0ZXJhbDo6Qm9vbGVhbkxpdGVy
YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6Qm9vbGVhbkxpdGVy
YWw6OnZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkJvb2xlYW5MaXRlcmFsOjpjbG9uZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQnJlYWsuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkJyZWFrOjpCcmVhayk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMQ2FsbEV4cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpDYWxsRXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxsRXhwcmVzc2lvbjo6YXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpuYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNhbGxFeHByZXNzaW9uOjpz
ZXRDYXN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxs
RXhwcmVzc2lvbjo6aXNDYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OkNhbGxFeHByZXNzaW9uOjpjYXN0UmV0dXJuVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpDYWxsRXhwcmVzc2lvbjo6ZnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6Q2FsbEV4cHJlc3Npb246OnNldEZ1bmN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xDb21t
YUV4cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNvbW1hRXhwcmVz
c2lvbjo6Q29tbWFFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNvbW1hRXhwcmVzc2lvbjo6bGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQ29uc3RhbnRFeHByZXNzaW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJlc3Npb246OkNvbnN0YW50RXhwcmVzc2lv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJl
c3Npb246OmludGVnZXJMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkNvbnN0YW50RXhwcmVzc2lvbjo6dmlzaXQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6Q29uc3RhbnRFeHByZXNzaW9uOjp2aXNpdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpDb25zdGFudEV4cHJlc3Npb246OmNs
b25lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkNvbnN0
YW50RXhwcmVzc2lvbjo6bWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQ29udGludWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6OkNvbnRpbnVlOjpDb250aW51ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRGVmYXVsdERlbGV0ZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xEZXJlZmVyZW5jZUV4cHJlc3Npb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkRlcmVmZXJlbmNlRXhwcmVzc2lvbjo6RGVy
ZWZlcmVuY2VFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OkRlcmVmZXJlbmNlRXhwcmVzc2lvbjo6cG9pbnRlcik6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRG9XaGlsZUxvb3AuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OkRvV2hpbGVMb29wOjpEb1doaWxlTG9vcCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpEb1doaWxlTG9vcDo6Ym9keSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpEb1doaWxlTG9vcDo6Y29uZGl0aW9uYWwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTERvdEV4
cHJlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkRvdEV4cHJlc3Npb246
OkRvdEV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RG90RXhwcmVzc2lvbjo6ZmllbGROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xFZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50OjpF
ZmZlY3RmdWxFeHByZXNzaW9uU3RhdGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpBU1Q6OkVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQ6OmVmZmVjdGZ1bEV4cHJl
c3Npb24pOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RW51bWVyYXRpb25EZWZpbml0aW9uOjpFbnVtZXJhdGlvbkRlZmluaXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RW51bWVyYXRpb25EZWZpbml0aW9uOjp0eXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uRGVm
aW5pdGlvbjo6YWRkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVu
dW1lcmF0aW9uRGVmaW5pdGlvbjo6bWVtYmVyQnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uRGVmaW5pdGlvbjo6ZW51bWVyYXRpb25NZW1i
ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xF
bnVtZXJhdGlvbk1lbWJlckxpdGVyYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6RW51bWVyYXRpb25NZW1iZXJMaXRlcmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0
ZXJhbDo6d3JhcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVt
ZXJhdGlvbk1lbWJlckxpdGVyYWw6OmxlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6RW51bWVyYXRpb25NZW1iZXJMaXRlcmFsOjpyaWdodCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVtZXJhdGlvbk1lbWJl
ckxpdGVyYWw6OmNsb25lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6ZW51bWVyYXRpb25EZWZpbml0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVy
TGl0ZXJhbDo6ZW51bWVyYXRpb25EZWZpbml0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OkVudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbDo6ZW51bWVyYXRp
b25NZW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RW51bWVy
YXRpb25NZW1iZXJMaXRlcmFsOjplbnVtZXJhdGlvbk1lbWJlciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFbnVtZXJhdGlvbk1lbWJlckxpdGVyYWw6OnNl
dEVudW1lcmF0aW9uTWVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xFeHByZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjo6Z2V0dGVyRnVuY3Rpb25OYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lv
bjo6c2V0dGVyRnVuY3Rpb25OYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjo6YW5kZXJGdW5jdGlvbk5hbWUgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEV4cHJlc3Npb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246OkV4cHJlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6a2luZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0Fzc2lnbm1lbnRFeHByZXNz
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246Omlz
Qm9vbGVhbkxpdGVyYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhw
cmVzc2lvbjo6aXNDYWxsRXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpFeHByZXNzaW9uOjppc0NvbW1hRXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0RlcmVmZXJlbmNlRXhwcmVzc2lvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0RvdEV4
cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lv
bjo6aXNHbG9iYWxWYXJpYWJsZVJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0Zsb2F0TGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0luZGV4RXhwcmVzc2lvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc0ludGVnZXJMaXRl
cmFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkV4cHJlc3Npb246Omlz
TG9naWNhbEV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
RXhwcmVzc2lvbjo6aXNMb2dpY2FsTm90RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc01ha2VBcnJheVJlZmVyZW5jZUV4cHJlc3Np
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6aXNN
YWtlUG9pbnRlckV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6RXhwcmVzc2lvbjo6aXNOdWxsTGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1JlYWRNb2RpZnlX
cml0ZUV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhw
cmVzc2lvbjo6aXNUZXJuYXJ5RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpFeHByZXNzaW9uOjppc1Vuc2lnbmVkSW50ZWdlckxpdGVyYWwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6aXNWYXJpYWJsZVJlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpFeHByZXNzaW9uOjpp
c0VudW1lcmF0aW9uTWVtYmVyTGl0ZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpFeHByZXNzaW9uOjpjb2RlTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6RXhwcmVzc2lvbjo6dXBkYXRlQ29kZUxvY2F0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGYWxsdGhyb3VnaC5oOgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6RmFsbHRocm91Z2g6OkZhbGx0aHJvdWdoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZsb2F0TGl0ZXJhbDo6RmxvYXRMaXRlcmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZsb2F0TGl0ZXJhbDo6
dHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpGbG9hdExpdGVy
YWw6OnZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkZsb2F0TGl0ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEZsb2F0TGl0ZXJhbFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRlcmFsVHlwZTo6RmxvYXRMaXRlcmFsVHlwZSk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRmxvYXRMaXRlcmFsVHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRlcmFsVHlwZTo6dmFsdWUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6RmxvYXRMaXRl
cmFsVHlwZTo6cHJlZmVycmVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMRm9yTG9vcC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6Rm9yTG9vcDo6Rm9yTG9vcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6
QVNUOjpGb3JMb29wOjp+Rm9yTG9vcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpGb3JMb29wOjppbml0aWFsaXphdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpGb3JMb29wOjpjb25kaXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6Rm9yTG9vcDo6aW5jcmVtZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkZvckxvb3A6OmJvZHkpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEdsb2JhbFZhcmlhYmxlUmVmZXJlbmNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpHbG9iYWxWYXJpYWJsZVJlZmVyZW5j
ZTo6R2xvYmFsVmFyaWFibGVSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6R2xvYmFsVmFyaWFibGVSZWZlcmVuY2U6OnN0cnVjdEZpZWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Okdsb2JhbFZhcmlhYmxlUmVmZXJlbmNl
OjpiYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xJZlN0YXRlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SWZTdGF0ZW1l
bnQ6OklmU3RhdGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OklmU3RhdGVtZW50Ojpjb25kaXRpb25hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpJZlN0YXRlbWVudDo6Ym9keSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpJZlN0YXRlbWVudDo6ZWxzZUJvZHkpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEluZGV4RXhwcmVzc2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW5kZXhFeHByZXNzaW9uOjpJbmRleEV4cHJlc3Npb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW5kZXhFeHByZXNzaW9u
OjppbmRleEV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6SW5kZXhFeHByZXNzaW9uOjp0YWtlSW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEludGVnZXJMaXRlcmFsLmg6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpJbnRlZ2VyTGl0ZXJhbDo6SW50ZWdlckxpdGVyYWwpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50ZWdlckxpdGVyYWw6OnR5cGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50ZWdlckxpdGVyYWw6OnZh
bHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkludGVn
ZXJMaXRlcmFsOjpjbG9uZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMSW50ZWdlckxpdGVyYWxUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OkludGVnZXJMaXRlcmFsVHlwZTo6SW50ZWdlckxpdGVyYWxUeXBlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xJbnRlZ2VyTGl0ZXJhbFR5
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkludGVnZXJMaXRlcmFsVHlwZTo6
dmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6SW50
ZWdlckxpdGVyYWxUeXBlOjpwcmVmZXJyZWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xMb2dpY2FsRXhwcmVzc2lvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6TG9naWNhbEV4cHJlc3Npb246OkxvZ2ljYWxFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkxvZ2ljYWxFeHByZXNz
aW9uOjp0eXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6
OkxvZ2ljYWxFeHByZXNzaW9uOjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6OkxvZ2ljYWxFeHByZXNzaW9uOjpyaWdodCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTG9naWNhbE5vdEV4cHJlc3Npb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OkxvZ2ljYWxOb3RFeHByZXNzaW9uOjpMb2dpY2Fs
Tm90RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpM
b2dpY2FsTm90RXhwcmVzc2lvbjo6b3BlcmFuZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lv
bjo6TWFrZUFycmF5UmVmZXJlbmNlRXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpNYWtlQXJyYXlSZWZlcmVuY2VFeHByZXNzaW9uOjpsZWZ0VmFsdWUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZUFycmF5UmVmZXJl
bmNlRXhwcmVzc2lvbjo6bWlnaHRFc2NhcGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE1ha2VQb2ludGVyRXhwcmVzc2lvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TWFrZVBvaW50ZXJFeHByZXNzaW9uOjpNYWtlUG9p
bnRlckV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TWFrZVBvaW50ZXJFeHByZXNzaW9uOjpsZWZ0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6TWFrZVBvaW50ZXJFeHByZXNzaW9uOjptaWdodEVzY2FwZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTmFt
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6Ok5hbWVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6OnVuaWZ5Tm9k
ZUltcGwpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6Ok5hbWVkVHlwZTo6aXNUeXBlRGVmaW5pdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6OmlzU3RydWN0dXJlRGVmaW5pdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYW1lZFR5cGU6
OmlzRW51bWVyYXRpb25EZWZpbml0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6Ok5hbWVkVHlwZTo6aXNOYXRpdmVUeXBlRGVjbGFyYXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmFtZWRUeXBlOjp1bmlm
eU5vZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmFt
ZWRUeXBlOjp1bmlmeU5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xh
cmF0aW9uOjp0eXBlQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNJbnQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc051bWJl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRpdmVU
eXBlRGVjbGFyYXRpb246OmlzRmxvYXRpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc0F0b21pYyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRpdmVUeXBlRGVjbGFy
YXRpb246OmlzVmVjdG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNNYXRyaXggY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc09w
YXF1ZVR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc1RleHR1cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppc1RleHR1cmVB
cnJheSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb246OmlzRGVwdGhUZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNXcml0YWJs
ZVRleHR1cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
TmF0aXZlVHlwZURlY2xhcmF0aW9uOjp0ZXh0dXJlRGltZW5zaW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6aXNT
aWduZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0
aXZlVHlwZURlY2xhcmF0aW9uOjpzdGQ6OmZ1bmN0aW9uPGJvb2wgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzdGQ6
OmZ1bmN0aW9uPGludDY0X3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjppdGVyYXRlQWxsVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6
c2V0SXNJbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZl
VHlwZURlY2xhcmF0aW9uOjpzZXRJc051bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb246OnNldElzRmxvYXRpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9u
OjpzZXRJc0F0b21pYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpO
YXRpdmVUeXBlRGVjbGFyYXRpb246OnNldElzVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNNYXRyaXgpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uOjpzZXRJc09wYXF1ZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRJc1RleHR1cmUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRJc1Rl
eHR1cmVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb246OnNldElzRGVwdGhUZXh0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNXcml0YWJs
ZVRleHR1cmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZl
VHlwZURlY2xhcmF0aW9uOjpzZXRUZXh0dXJlRGltZW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXNTaWduZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xh
cmF0aW9uOjpzZXRDYW5SZXByZXNlbnRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Q2FuUmVwcmVzZW50VW5z
aWduZWRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5h
dGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Q2FuUmVwcmVzZW50RmxvYXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uOjpzZXRTdWNj
ZXNzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6TmF0aXZlVHlw
ZURlY2xhcmF0aW9uOjpzZXRGb3JtYXRWYWx1ZUZyb21JbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0Rm9ybWF0
VmFsdWVGcm9tVW5zaWduZWRJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjo6c2V0SXRlcmF0ZUFsbFZhbHVlcyk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTnVsbExpdGVy
YWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6Ok51bGxMaXRlcmFsOjpOdWxsTGl0
ZXJhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOdWxsTGl0ZXJh
bDo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpOdWxsTGl0
ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTE51bGxMaXRlcmFsVHlwZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFBvaW50ZXJUeXBlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb246OlByb3BlcnR5QWNjZXNz
RXhwcmVzc2lvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUmVh
ZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246OnNldE5ld1ZhbHVl
RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFk
TW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpzZXRSZXN1bHRFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246Om9s
ZFZhcmlhYmxlUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246Om5ld1ZhcmlhYmxlUmVmZXJlbmNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJl
c3Npb246OmxlZnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpvbGRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpuZXdWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uOjpuZXdWYWx1ZUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6cmVzdWx0RXhwcmVz
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uOjp0YWtlTGVmdFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb246OnRha2VPbGRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVF
eHByZXNzaW9uOjp0YWtlTmV3VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6UmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbjo6dGFrZU5ld1ZhbHVlRXhwcmVzc2lv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uOjp0YWtlUmVzdWx0RXhwcmVzc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uOjpSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExT
TC9BU1QvV0hMU0xSZWZlcmVuY2VUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpSZWZlcmVuY2VUeXBlOjpSZWZlcmVuY2VUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdw
dS9XSExTTC9BU1QvV0hMU0xSZXNvbHZhYmxlVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkFTVDo6UmVzb2x2YWJsZVR5cGU6OlJlc29sdmFibGVUeXBlKToKKyAgICAgICAgKCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6aXNG
bG9hdExpdGVyYWxUeXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlJlc29sdmFibGVUeXBlOjppc0ludGVnZXJMaXRlcmFsVHlwZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6aXNOdWxs
TGl0ZXJhbFR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFT
VDo6UmVzb2x2YWJsZVR5cGU6OmlzVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJldHVybi5o
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6UmV0dXJuOjpSZXR1cm4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6UmV0dXJuOjp2YWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmRlc3Ryb3kp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50OjpTdGF0ZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50OjpraW5kIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNCbG9jayBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmlzQnJlYWsgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0NvbnRpbnVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNEb1doaWxlTG9vcCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmlzRWZmZWN0
ZnVsRXhwcmVzc2lvblN0YXRlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6
QVNUOjpTdGF0ZW1lbnQ6OmlzRmFsbHRocm91Z2ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0Zvckxvb3AgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc0lmU3RhdGVtZW50IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0YXRlbWVudDo6aXNSZXR1cm4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N0YXRlbWVudExpc3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N3aXRjaENhc2Ug
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1N3aXRj
aFN0YXRlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1l
bnQ6OmlzVmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50Ojppc1doaWxlTG9vcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OmNvZGVMb2NhdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1lbnQ6OnVwZGF0ZUNvZGVMb2NhdGlv
bik6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50TGlz
dC5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RhdGVtZW50TGlzdDo6U3RhdGVt
ZW50TGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTdGF0ZW1l
bnRMaXN0OjpzdGF0ZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xTdHJ1Y3R1cmVEZWZpbml0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpTdHJ1Y3R1cmVEZWZpbml0aW9uOjpTdHJ1Y3R1cmVEZWZpbml0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlN0cnVjdHVyZURlZmluaXRpb246
OnN0cnVjdHVyZUVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlN0cnVjdHVyZURlZmluaXRpb246OmZpbmQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0cnVjdHVyZUVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpBU1Q6OlN0cnVjdHVyZUVsZW1lbnQ6OlN0cnVjdHVyZUVsZW1lbnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3RydWN0dXJlRWxlbWVudDo6
Y29kZUxvY2F0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpB
U1Q6OlN0cnVjdHVyZUVsZW1lbnQ6OnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkFTVDo6U3RydWN0dXJlRWxlbWVudDo6bmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpTdHJ1Y3R1cmVFbGVtZW50OjpzZW1hbnRpYyk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3dpdGNoQ2FzZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6U3dpdGNoQ2FzZTo6U3dpdGNoQ2FzZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hDYXNlOjp2YWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hDYXNlOjpibG9j
ayk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3dp
dGNoU3RhdGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpTd2l0Y2hTdGF0
ZW1lbnQ6OlN3aXRjaFN0YXRlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6QVNUOjpTd2l0Y2hTdGF0ZW1lbnQ6OnZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpBU1Q6OlN3aXRjaFN0YXRlbWVudDo6c3dpdGNoQ2FzZXMpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFRlcm5hcnlFeHByZXNzaW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUZXJuYXJ5RXhwcmVzc2lvbjo6VGVy
bmFyeUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VGVybmFyeUV4cHJlc3Npb246OnByZWRpY2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6QVNUOjpUZXJuYXJ5RXhwcmVzc2lvbjo6Ym9keUV4cHJlc3Npb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VGVybmFyeUV4cHJlc3Npb246OmVsc2VF
eHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xUeXBlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBl
OjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OnVuaWZ5Tm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlwZTo6Y2FuUmVz
b2x2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpSZXNvbHZhYmxlVHlw
ZTo6Y29udmVyc2lvbkNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VW5uYW1lZFR5cGU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBl
OjpUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmtpbmQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZTo6aXNVbm5hbWVkVHlwZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc05hbWVkVHlwZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc1Jlc29sdmFibGVUeXBl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmlzVHlwZVJlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc1BvaW50
ZXJUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5cGU6OmlzQXJy
YXlSZWZlcmVuY2VUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5
cGU6OmlzQXJyYXlUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlR5
cGU6OmlzUmVmZXJlbmNlVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNU
OjpUeXBlOjppc1R5cGVEZWZpbml0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlR5cGU6OmlzU3RydWN0dXJlRGVmaW5pdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc0VudW1lcmF0aW9uRGVmaW5pdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc05hdGl2ZVR5cGVEZWNsYXJhdGlv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjppc0Zsb2F0TGl0
ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZTo6aXNJ
bnRlZ2VyTGl0ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VHlwZTo6aXNOdWxsTGl0ZXJhbFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkFTVDo6VHlwZTo6aXNVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlOjp1bmlmeU5vZGUgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVEZWZpbml0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6QVNUOjpUeXBlRGVmaW5pdGlvbjo6VHlwZURlZmluaXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VHlwZURlZmluaXRpb246OnR5
cGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5
cGVSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xV
bm5hbWVkVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlw
ZTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlw
ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNU
L1dITFNMVW5uYW1lZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVubmFt
ZWRUeXBlOjpVbm5hbWVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5h
bWVkVHlwZTo6dW5pZnlOb2RlSW1wbCk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmtpbmQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmlzVHlwZVJlZmVyZW5j
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVk
VHlwZTo6aXNQb2ludGVyVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpVbm5hbWVkVHlwZTo6aXNBcnJheVJlZmVyZW5jZVR5cGUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OmlzQXJyYXlU
eXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVubmFt
ZWRUeXBlOjppc1JlZmVyZW5jZVR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkFTVDo6VW5uYW1lZFR5cGU6OnVuaWZ5Tm9kZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbm5hbWVkVHlwZTo6dW5pZnlOb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbnNpZ25lZElu
dGVnZXJMaXRlcmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbnNpZ25lZElu
dGVnZXJMaXRlcmFsOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWw6OnR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VW5zaWduZWRJbnRlZ2VyTGl0ZXJh
bDo6dmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6
VW5zaWduZWRJbnRlZ2VyTGl0ZXJhbDo6Y2xvbmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVy
YWxUeXBlOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlOjp2YWx1
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpVbnNpZ25l
ZEludGVnZXJMaXRlcmFsVHlwZTo6cHJlZmVycmVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OlZhcmlhYmxlRGVjbGFyYXRpb25z
U3RhdGVtZW50OjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpWYXJpYWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudDo6
dmFyaWFibGVEZWNsYXJhdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFZhcmlhYmxlUmVmZXJlbmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpX
SExTTDo6QVNUOjpWYXJpYWJsZVJlZmVyZW5jZTo6VmFyaWFibGVSZWZlcmVuY2UpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFibGVSZWZlcmVuY2U6OndyYXAp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFibGVSZWZlcmVu
Y2U6Om5hbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkFTVDo6VmFyaWFi
bGVSZWZlcmVuY2U6OnZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpBU1Q6OlZhcmlhYmxlUmVmZXJlbmNlOjpzZXRWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMV2hpbGVMb29wLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6QVNUOjpXaGlsZUxvb3A6OldoaWxlTG9vcCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpXaGlsZUxvb3A6OmNvbmRpdGlvbmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpBU1Q6OldoaWxlTG9vcDo6Ym9keSk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xUeXBlTmFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpCYXNlVHlwZU5hbWVOb2RlOjpp
c1BvaW50ZXJUeXBlTmFtZU5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1l
dGFsOjpCYXNlVHlwZU5hbWVOb2RlOjppc0FycmF5UmVmZXJlbmNlVHlwZU5hbWVOb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpNZXRhbDo6QmFzZVR5cGVOYW1lTm9kZTo6aXNB
cnJheVR5cGVOYW1lTm9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TWV0YWw6
OlR5cGVOYW1lcjo6Y3JlYXRlTmFtZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1l
dGFsOjpwYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpUeXBlTmFtZXI6
OmVtaXRVbm5hbWVkVHlwZURlZmluaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML1dITFNMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpQYXJzZXI6OnBh
cnNlU3VmZml4T3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OlBhcnNlcjo6Y29t
cGxldGVBc3NpZ25tZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpQYXJzZXI6OnBhcnNl
UG9zc2libGVQcmVmaXgpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJl
c2VydmVWYXJpYWJsZUxpZmV0aW1lcy5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hM
U0wvV0hMU0xWaXNpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpWaXNpdG9yOjp2
aXNpdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
Lmg6CisKIDIwMTktMDgtMDcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dITFNMXSBQcnVuZSB1bnJlYWNoYWJsZSBzdGRsaWIgZnVuY3Rpb25zIGFmdGVyIHRo
ZSBDaGVja2VyIHJ1bnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNDg0MDQpCisrKyBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDYgKzM0Miw3
IEBAIE1vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMTmF0aXZlVHkKIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML01ldGFsL1dITFNMVmVydGV4QnVmZmVySW5kZXhDYWxjdWxhdG9yLmNwcAogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAKIE1vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVBcmd1bWVudC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dI
TFNML0FTVC9XSExTTEV4cHJlc3Npb24uY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xCdWlsdEluU2VtYW50aWMuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZXNv
dXJjZVNlbWFudGljLmNwcAogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3BlY2lhbGl6
YXRpb25Db25zdGFudFNlbWFudGljLmNwcApAQCAtMzUwLDkgKzM1MSwxMiBAQCBNb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1Qv
V0hMU0xJbnRlZ2VyTGl0ZXJhbFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xOdWxsTGl0ZXJhbFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbnNp
Z25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TFN0YXRlbWVudC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGUuY3BwCiBN
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmNwcAogTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMSW50ZWdlckxpdGVyYWwuY3BwCiBNb2R1bGVzL3dlYmdwdS9X
SExTTC9BU1QvV0hMU0xVbnNpZ25lZEludGVnZXJMaXRlcmFsLmNwcAorTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMVW5uYW1lZFR5cGUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TFByZXBhcmUuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb3BlcnR5UmVzb2x2ZXIu
Y3BwCiBNb2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAkocmV2aXNpb24gMjQ4NDkx
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShXRUJHUFUpCiAK
Ky8vIE9PUFMKKyNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIG5hbWVzcGFjZSBXSExTTCB7CkBAIC0zNzQsMTI4ICszNzcsMTQ2OSBAQCBhdXRvIExleGVy
OjpyZWNvZ25pemVLZXl3b3JkKHVuc2lnbmVkIGVuCiAKIGF1dG8gTGV4ZXI6OmNvbnN1bWVUb2tl
bkZyb21TdHJlYW0oKSAtPiBUb2tlbgogewotICAgIGF1dG8gcHJlcGFyZSA9IFsmXSh1bnNpZ25l
ZCBuZXdPZmZzZXQsIFRva2VuOjpUeXBlIHR5cGUpIC0+IFRva2VuIHsKKyAgICBVQ2hhciBjdXJy
ZW50ID0gMDsKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX29mZnNldDsKKworICAgIGF1dG8gcGVl
ayA9IFsmXSAoKSAtPiBVQ2hhciB7CisgICAgICAgIGlmIChvZmZzZXQgPCBtX3N0cmluZ1ZpZXcu
bGVuZ3RoKCkpCisgICAgICAgICAgICByZXR1cm4gbV9zdHJpbmdWaWV3W29mZnNldF07CisgICAg
ICAgIHJldHVybiAwOworICAgIH07CisKKyAgICBhdXRvIHNoaWZ0ID0gWyZdIHsKKyAgICAgICAg
aWYgKG9mZnNldCA8IG1fc3RyaW5nVmlldy5sZW5ndGgoKSkgeworICAgICAgICAgICAgY3VycmVu
dCA9IG1fc3RyaW5nVmlld1tvZmZzZXRdOworICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAg
ICAgICByZXR1cm4gY3VycmVudDsKKyAgICAgICAgfQorICAgICAgICBjdXJyZW50ID0gMDsKKyAg
ICAgICAgcmV0dXJuIGN1cnJlbnQ7CisgICAgfTsKKworICAgIGF1dG8gY29uc3VtZSA9IFsmXSAo
VUNoYXIgdGhlQ2hhcikgeworICAgICAgICBpZiAocGVlaygpID09IHRoZUNoYXIpIHsKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIGF1dG8gaXNWYWxpZElkZW50aWZpZXJT
dGFydCA9IFtdIChVQ2hhciB0aGVDaGFyKSB7CisgICAgICAgIHJldHVybiAodGhlQ2hhciA+PSAn
YScgJiYgdGhlQ2hhciA8PSAneicpCisgICAgICAgICAgICB8fCAodGhlQ2hhciA+PSAnQScgJiYg
dGhlQ2hhciA8PSAnWicpCisgICAgICAgICAgICB8fCAodGhlQ2hhciA9PSAnXycpOworICAgIH07
CisKKyAgICBhdXRvIGlzVmFsaWROb25TdGFydGluZ0lkZW50aWZpZXJDaGFyID0gW10gKFVDaGFy
IHRoZUNoYXIpIHsKKyAgICAgICAgcmV0dXJuICh0aGVDaGFyID49ICdhJyAmJiB0aGVDaGFyIDw9
ICd6JykKKyAgICAgICAgICAgIHx8ICh0aGVDaGFyID49ICdBJyAmJiB0aGVDaGFyIDw9ICdaJykK
KyAgICAgICAgICAgIHx8ICh0aGVDaGFyID49ICcwJyAmJiB0aGVDaGFyIDw9ICc5JykKKyAgICAg
ICAgICAgIHx8ICh0aGVDaGFyID09ICdfJyk7CisgICAgfTsKKworICAgIGF1dG8gbmV4dElzSWRl
bnRpZmllciA9IFsmXSB7CisgICAgICAgIHJldHVybiBpc1ZhbGlkTm9uU3RhcnRpbmdJZGVudGlm
aWVyQ2hhcihwZWVrKCkpOworICAgIH07CisKKyAgICBhdXRvIGlzRGlnaXQgPSBbXSAoVUNoYXIg
dGhlQ2hhcikgeworICAgICAgICByZXR1cm4gdGhlQ2hhciA+PSAnMCcgJiYgdGhlQ2hhciA8PSAn
OSc7CisgICAgfTsKKworICAgIGF1dG8gcHJlcGFyZSA9IFsmXSAodW5zaWduZWQgbmV3T2Zmc2V0
LCBUb2tlbjo6VHlwZSB0eXBlKSAtPiBUb2tlbiB7CiAgICAgICAgIGF1dG8gb2xkT2Zmc2V0ID0g
bV9vZmZzZXQ7CiAgICAgICAgIG1fb2Zmc2V0ID0gbmV3T2Zmc2V0OwogICAgICAgICBza2lwV2hp
dGVzcGFjZUFuZENvbW1lbnRzKCk7CiAgICAgICAgIHJldHVybiB7IHsgb2xkT2Zmc2V0LCBuZXdP
ZmZzZXQgfSwgdHlwZSB9OwogICAgIH07CiAKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBpZGVu
dGlmaWVyKG1fb2Zmc2V0KSkgewotICAgICAgICBpZiAoYXV0byByZXN1bHQgPSByZWNvZ25pemVL
ZXl3b3JkKCpuZXdPZmZzZXQpKSB7Ci0gICAgICAgICAgICBpZiAoKnJlc3VsdCA9PSBUb2tlbjo6
VHlwZTo6T3BlcmF0b3IpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBuZXdlck9mZnNldCA9
IGNvbXBsZXRlT3BlcmF0b3JOYW1lKCpuZXdPZmZzZXQpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3ZXJPZmZzZXQsIFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgKnJl
c3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OklkZW50aWZpZXIpOwotICAgIH0KLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBm
bG9hdExpdGVyYWwobV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0
LCBUb2tlbjo6VHlwZTo6RmxvYXRMaXRlcmFsKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSB1
aW50TGl0ZXJhbChtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQs
IFRva2VuOjpUeXBlOjpVaW50TGl0ZXJhbCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gaW50
TGl0ZXJhbChtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRv
a2VuOjpUeXBlOjpJbnRMaXRlcmFsKTsKLSAgICAvLyBTb3J0ZWQgYnkgbGVuZ3RoLCBzbyBsb25n
ZXIgbWF0Y2hlcyBhcmUgcHJlZmVyYWJsZSB0byBzaG9ydGVyIG1hdGNoZXMuCi0gICAgaWYgKGF1
dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI+Pj0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBw
cmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpSaWdodFNoaWZ0RXF1YWxzKTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIjw8PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkxlZnRTaGlmdEVxdWFscyk7Ci0g
ICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCIrPSIsIG1fb2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlBsdXNFcXVhbHMpOwotICAg
IGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiLT0iLCBtX29mZnNldCkpCi0gICAgICAgIHJl
dHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpNaW51c0VxdWFscyk7Ci0gICAg
aWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCIqPSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlRpbWVzRXF1YWxzKTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIi89IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1
cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6RGl2aWRlRXF1YWxzKTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIiU9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1
cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TW9kRXF1YWxzKTsKLSAgICBpZiAo
YXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIl49IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4g
cHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6WG9yRXF1YWxzKTsKLSAgICBpZiAoYXV0
byBuZXdPZmZzZXQgPSBzdHJpbmcoIiY9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6QW5kRXF1YWxzKTsKLSAgICBpZiAoYXV0byBu
ZXdPZmZzZXQgPSBzdHJpbmcoInw9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFy
ZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6T3JFcXVhbHMpOwotICAgIGlmIChhdXRvIG5ld09m
ZnNldCA9IHN0cmluZygiKysiLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpu
ZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpQbHVzUGx1cyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0
ID0gc3RyaW5nKCItLSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09m
ZnNldCwgVG9rZW46OlR5cGU6Ok1pbnVzTWludXMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9
IHN0cmluZygiLT4iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpBcnJvdyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5n
KCJbXSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OlNxdWFyZUJyYWNrZXRQYWlyKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBz
dHJpbmcoInx8IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0
LCBUb2tlbjo6VHlwZTo6T3JPcik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCIm
JiIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46
OlR5cGU6OkFuZEFuZCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI8PSIsIG1f
b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6
Okxlc3NUaGFuT3JFcXVhbFRvKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIj49
IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6
VHlwZTo6R3JlYXRlclRoYW5PckVxdWFsVG8pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0
cmluZygiPT0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQs
IFRva2VuOjpUeXBlOjpFcXVhbENvbXBhcmlzb24pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9
IHN0cmluZygiIT0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpOb3RFcXVhbCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3Ry
aW5nKCI+PiIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwg
VG9rZW46OlR5cGU6OlJpZ2h0U2hpZnQpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmlu
ZygiPDwiLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRv
a2VuOjpUeXBlOjpMZWZ0U2hpZnQpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignPScsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OkVxdWFsc1NpZ24pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignOycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OlNlbWljb2xvbik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVy
KCd7JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tl
bjo6VHlwZTo6TGVmdEN1cmx5QnJhY2tldCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hh
cmFjdGVyKCd9JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0
LCBUb2tlbjo6VHlwZTo6UmlnaHRDdXJseUJyYWNrZXQpOwotICAgIGlmIChhdXRvIG5ld09mZnNl
dCA9IGNoYXJhY3RlcignOicsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5l
d09mZnNldCwgVG9rZW46OlR5cGU6OkNvbG9uKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBj
aGFyYWN0ZXIoJywnLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpDb21tYSk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFj
dGVyKCcoJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBU
b2tlbjo6VHlwZTo6TGVmdFBhcmVudGhlc2lzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBj
aGFyYWN0ZXIoJyknLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpSaWdodFBhcmVudGhlc2lzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZz
ZXQgPSBjaGFyYWN0ZXIoJ1snLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpu
ZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpMZWZ0U3F1YXJlQnJhY2tldCk7Ci0gICAgaWYgKGF1dG8g
bmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCddJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UmlnaHRTcXVhcmVCcmFja2V0KTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJyonLCBtX29mZnNldCkpCi0gICAgICAgIHJl
dHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpTdGFyKTsKLSAgICBpZiAoYXV0
byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJzwnLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBw
cmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpMZXNzVGhhblNpZ24pOwotICAgIGlmIChh
dXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignPicsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJu
IHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkdyZWF0ZXJUaGFuU2lnbik7Ci0gICAg
aWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCcuJywgbV9vZmZzZXQpKQotICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6RnVsbFN0b3ApOwotICAgIGlm
IChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignPycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyayk7Ci0gICAg
aWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCd8JywgbV9vZmZzZXQpKQotICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6T3IpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IGNoYXJhY3RlcignXicsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHBy
ZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6Olhvcik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zm
c2V0ID0gY2hhcmFjdGVyKCcmJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgq
bmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6QW5kKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBj
aGFyYWN0ZXIoJysnLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpQbHVzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0
ZXIoJy0nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRv
a2VuOjpUeXBlOjpNaW51cyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCcv
JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6
VHlwZTo6RGl2aWRlKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJyUnLCBt
X29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBl
OjpNb2QpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignficsIG1fb2Zmc2V0
KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlRpbGRl
KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJyEnLCBtX29mZnNldCkpCi0g
ICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpFeGNsYW1hdGlv
blBvaW50KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJ0AnLCBtX29mZnNl
dCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpBdCk7
CisgICAgYXV0byB0b2tlbiA9IFsmXSAoVG9rZW46OlR5cGUgdHlwZSkgeworICAgICAgICAvL2Rh
dGFMb2dMbigiUmV0dXJuaW5nIHRva2VuOiAnIiwgVG9rZW46OnR5cGVOYW1lKHR5cGUpLCAiJyBh
bmQgdXBkYXRpbmcgb2Zmc2V0IGZyb206ICIsIG1fb2Zmc2V0LCAiIHRvICIsIG9mZnNldCk7Cisg
ICAgICAgIHJldHVybiBwcmVwYXJlKG9mZnNldCwgdHlwZSk7CisgICAgfTsKKworICAgIHN3aXRj
aCAoc2hpZnQoKSkgeworICAgIGNhc2UgJ0EnOgorICAgIGNhc2UgJ0InOgorICAgIGNhc2UgJ0Mn
OgorICAgIGNhc2UgJ0QnOgorICAgIGNhc2UgJ0UnOgorICAgIGNhc2UgJ0YnOgorICAgIGNhc2Ug
J0cnOgorICAgIGNhc2UgJ0gnOgorICAgIGNhc2UgJ0knOgorICAgIGNhc2UgJ0onOgorICAgIGNh
c2UgJ0snOgorICAgIGNhc2UgJ0wnOgorICAgIGNhc2UgJ00nOgorICAgIGNhc2UgJ04nOgorICAg
IGNhc2UgJ08nOgorICAgIGNhc2UgJ1EnOgorICAgIGNhc2UgJ1InOgorICAgIGNhc2UgJ1QnOgor
ICAgIGNhc2UgJ1UnOgorICAgIGNhc2UgJ1YnOgorICAgIGNhc2UgJ1cnOgorICAgIGNhc2UgJ1gn
OgorICAgIGNhc2UgJ1knOgorICAgIGNhc2UgJ1onOgorICAgIGNhc2UgJ2cnOgorICAgIGNhc2Ug
J2gnOgorICAgIGNhc2UgJ2onOgorICAgIGNhc2UgJ2snOgorICAgIGNhc2UgJ2wnOgorICAgIGNh
c2UgJ20nOgorICAgIGNhc2UgJ3EnOgorICAgIGNhc2UgJ3gnOgorICAgIGNhc2UgJ3knOgorICAg
IGNhc2UgJ3onOgorcGFyc2VJZGVudGlmaWVyOgorICAgICAgICB3aGlsZSAoaXNWYWxpZE5vblN0
YXJ0aW5nSWRlbnRpZmllckNoYXIocGVlaygpKSkKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6SWRlbnRpZmllcik7CisKKyAgICBjYXNlICdz
JzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2FzZSAnYSc6CisgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdtJykpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3An
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworCisgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0Jykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnaCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6U3dpdGNoKTsKKworICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAn
cic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlN0cnVj
dCk7CisgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6U3RhdGljKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6U3BhY2UpOworICAgICAgICAgICAgY2FzZSAnZSc6CisgICAgICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J2wnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgneicpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3BlY2lhbGl6ZWQpOworICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNlICdTJzoKKyAgICAgICAgaWYgKCFjb25zdW1l
KCdWJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFj
b25zdW1lKCdfJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKworICAgICAg
ICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICdHJzoKKyAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCd1JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ0kn
OgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwZWVr
KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdEJzoKKyAgICAgICAgICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWR3JvdXBJRCk7CisgICAgICAgICAgICAg
ICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgneCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkdyb3VwSW5kZXgp
OworCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYXNlICdU
JzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnaCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdJ
JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnRCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWR3JvdXBUaHJlYWRJRCk7CisKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICB9CisgICAgICAgIGNhc2UgJ0QnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgICAgICBjYXNlICdlJzoKKyAgICAgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U1ZEZXB0aCk7CisgICAgICAgICAg
ICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlm
ICghY29uc3VtZSgncycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdh
JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnVCcpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnSScpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ0QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRv
a2VuKFRva2VuOjpUeXBlOjpTVkRpc3BhdGNoVGhyZWFkSUQpOworICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3YnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnZycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkNvdmVyYWdlKTsKKyAgICAgICAgY2FzZSAnVCc6
CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnZycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0
SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWVGFyZ2V0KTsKKyAgICAgICAg
Y2FzZSAnUyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdhJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ20nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnSScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
ZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCd4JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpTVlNhbXBsZUluZGV4KTsKKyAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3MnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
aScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdu
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVlBvc2l0aW9uKTsK
KyAgICAgICAgY2FzZSAnVic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3gnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnSScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdEJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVlZlcnRleElEKTsKKyAgICAgICAgY2FzZSAnSSc6
CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAg
ICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdGJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ0YnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnYycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVklzRnJvbnRGYWNlKTsKKyAgICAgICAgICAg
IGNhc2UgJ24nOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgc3dp
dGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICduJzoKKyAgICAgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisg
ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdDJykp
CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd2
JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdyJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdnJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5l
eHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNW
SW5uZXJDb3ZlcmFnZSk7CisgICAgICAgICAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnbicp
KQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAgICAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
ZScpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnSScpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnRCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkluc3RhbmNlSUQpOworICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNlICd0JzoK
KyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2FzZSAncic6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChu
ZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlRydWUpOworICAgICAgICBj
YXNlICd5JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J3AnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
ZicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6VHlwZWRlZik7Cisg
ICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworCisgICAgICAgICAgICBpZiAo
IW5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OlRocmVhZCk7CisKKyAgICAgICAgICAgIGlmIChwZWVrKCkgIT0gJ2cnKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworCisgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudCA9PSAnZycpOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdw
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpUaHJlYWRncm91cCk7
CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICB9CisKKyAgICBjYXNlICdlJzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAg
ICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ20nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OkVudW0pOworICAgICAgICBjYXNlICdsJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3MnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50
aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RWxzZSk7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgY2FzZSAn
byc6CisgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgndCcpKQor
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgn
bycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29u
c3VtZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlm
IChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KworICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICcmJzoKKyAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAg
Y2FzZSAnWyc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAo
Y29uc3VtZSgnXScpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5
cGU6Ok9wZXJhdG9yTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpJbnZhbGlkKTsKKyAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRv
ck5hbWUpOworICAgICAgICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRJZGVudGlmaWVyU3RhcnQocGVlaygpKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZhbGlkKTsKKyAg
ICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHdoaWxlIChpc1ZhbGlkTm9u
U3RhcnRpbmdJZGVudGlmaWVyQ2hhcihwZWVrKCkpKQorICAgICAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JO
YW1lKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgIGNh
c2UgJ1snOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
XScpKQorICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6SW52YWxpZCk7
CisgICAgICAgICAgICBjb25zdW1lKCc9Jyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnPic6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKGNvbnN1bWUoJz4nKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisgICAgICAgICAgICBp
ZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlw
ZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICc8JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPCcpKQorICAgICAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAgICAgIGlmIChjb25zdW1l
KCc9JykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRv
ck5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5h
bWUpOworCisgICAgICAgIGNhc2UgJysnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgIGNvbnN1bWUoJysnKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBjb25zdW1lKCctJyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnfCc6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgY29uc3VtZSgnfCcpOworICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJz0nOgor
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnPScpKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6SW52YWxpZCk7CisgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAg
Y2FzZSAnKic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJy8nOgorICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3Bl
cmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICclJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAg
ICAgICAgY2FzZSAnISc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJ34nOgor
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlw
ZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICdeJzoKKyAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7
CisKKyAgICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
aWYgKCFpc1ZhbGlkSWRlbnRpZmllclN0YXJ0KHBlZWsoKSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZhbGlkKTsKKyAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICB3aGlsZSAoaXNWYWxpZE5vblN0YXJ0aW5nSWRlbnRpZmllckNoYXIocGVlaygp
KSkKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgY29uc3VtZSgnPScpOwor
ICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yKTsKKworICAgIGNhc2UgJ2knOgorICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2YnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6SWYpOworCisg
ICAgY2FzZSAnYyc6CisgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJ2En
OgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDYXNl
KTsKKworICAgICAgICBjYXNlICdlJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J28nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRv
a2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworICAgICAgICBjYXNlICdvJzoKKyAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAg
Y2FzZSAnbSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcp
KQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDb21wdXRlKTsKKyAgICAgICAgICAgIGNhc2UgJ24nOgor
ICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkNvbnRpbnVlKTsKKyAgICAgICAgICAg
ICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHRJc0lkZW50
aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlw
ZTo6Q29uc3QpOworCisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpDb25zdGFudCk7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNlICdiJzoKKyAgICAgICAg
aWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdrJykpCisgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5
cGU6OkJyZWFrKTsKKworICAgIGNhc2UgJ2QnOgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgewor
ICAgICAgICBjYXNlICdvJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAo
bmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpEbyk7CisgICAgICAgIGNh
c2UgJ2UnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygp
KSB7CisgICAgICAgICAgICBjYXNlICdmJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRl
bnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkRlZmF1bHQpOworICAgICAg
ICAgICAgY2FzZSAndic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OkRldmljZSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisKKyAgICBjYXNl
ICdmJzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2FzZSAnbyc6CisgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRl
bnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGb3IpOworICAgICAgICBjYXNlICdyJzoK
KyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29u
c3VtZSgnZycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdtJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGcmFnbWVu
dCk7CisgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworCisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAnbCc6
CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZycp
KQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGYWxsdGhyb3VnaCk7CisKKyAgICAgICAgICAgIGNhc2Ug
J3MnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6RmFsc2UpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAnZSc6Cisg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgJ2YnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndScpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2wnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RGVmYXVsdCk7CisgICAgICAgICAgICBjYXNl
ICd2JzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29u
c3VtZSgnaScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
IGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RGV2
aWNlKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNlICd3JzoKKyAgICAg
ICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OldoaWxlKTsKKworICAgIGNhc2UgJ3InOgorICAgICAgICBpZiAoIWNvbnN1bWUoJ2Un
KSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBzd2l0Y2ggKHBl
ZWsoKSkgeworICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElz
SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpSZXR1cm4pOworICAgICAgICBjYXNl
ICdnJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2kn
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgncycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UmVnaXN0ZXIpOworICAg
ICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29u
c3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1
cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJlc3RyaWN0ZWQpOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ24n
OgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICdhJzoKKyAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCd2JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4o
VG9rZW46OlR5cGU6Ok5hdGl2ZSk7CisgICAgICAgIGNhc2UgJ3UnOgorICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgICAgICBjYXNlICds
JzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnbCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6Ok51bGwpOworICAgICAgICAgICAgY2FzZSAnbSc6CisgICAgICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3Mn
KSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpOdW1UaHJlYWRzKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgY2FzZSAnbyc6Cisg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
YScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZp
ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworICAgICAgICAg
ICAgY2FzZSAncCc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
cycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnYycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgndicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJ
c0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ3YnOgorICAgICAgICBpZiAo
IWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ3gnKSkKKyAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6
VHlwZTo6VmVydGV4KTsKKworICAgIGNhc2UgJ1AnOgorICAgICAgICBpZiAoIWNvbnN1bWUoJ1Mn
KSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1
bWUoJ0knKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAo
IWNvbnN1bWUoJ1onKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICBpZiAoIWNvbnN1bWUoJ0UnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UFNpemUpOworCisg
ICAgY2FzZSAndSc6CisgICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnZicpKQorICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbycp
KQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3Vt
ZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICgh
Y29uc3VtZSgnbScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
IGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworCisgICAg
Y2FzZSAncCc6CisgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbycpKQor
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgn
YycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29u
c3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlm
ICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpQcm90b2NvbCk7CisKKyAg
ICBjYXNlICdfJzoKKyAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6
OlVuZGVyc2NvcmUpOworCisgICAgY2FzZSAnYSc6CisgICAgICAgIHN3aXRjaCAocGVlaygpKSB7
CisgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnYicp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZp
ZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6QXR0cmlidXRlKTsKKyAgICAgICAgY2FzZSAndSc6
CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkF1dG8p
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIH0KKworICAgIGNhc2UgJz4nOgorICAgICAgICBpZiAocGVlaygpID09ICc+Jykgewor
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQg
PT0gJz4nKTsKKyAgICAgICAgICAgIGlmIChwZWVrKCkgPT0gJz0nKSB7CisgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJp
Z2h0U2hpZnRFcXVhbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpSaWdodFNoaWZ0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAocGVlaygp
ID09ICc9JykgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6R3JlYXRlclRoYW5PckVxdWFsVG8pOworICAgICAgICB9CisgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6R3JlYXRlclRoYW5TaWduKTsKKyAgICBjYXNlICc8
JzoKKyAgICAgICAgaWYgKHBlZWsoKSA9PSAnPCcpIHsKKyAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICc8Jyk7CisgICAgICAgICAgICBp
ZiAocGVlaygpID09ICc9JykgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0U2hpZnRFcXVhbHMpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0U2hpZnQp
OworICAgICAgICB9CisgICAgICAgIGlmIChwZWVrKCkgPT0gJz0nKSB7CisgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZXNzVGhhbk9y
RXF1YWxUbyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpM
ZXNzVGhhblNpZ24pOworICAgIGNhc2UgJysnOgorICAgICAgICBpZiAocGVlaygpID09ICc9Jykg
eworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJl
bnQgPT0gJz0nKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UGx1c0Vx
dWFscyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBlZWsoKSA9PSAnKycpIHsKKyAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICcrJyk7
CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlBsdXNQbHVzKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlBsdXMpOworICAgIGNhc2Ug
Jy0nOgorICAgICAgICBpZiAocGVlaygpID09ICc9JykgeworICAgICAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJz0nKTsKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TWludXNFcXVhbHMpOworICAgICAgICB9CisgICAg
ICAgIGlmIChwZWVrKCkgPT0gJy0nKSB7CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudCA9PSAnLScpOworICAgICAgICAgICAgcmV0dXJuIHRv
a2VuKFRva2VuOjpUeXBlOjpNaW51c01pbnVzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocGVl
aygpID09ICc+JykgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGN1cnJlbnQgPT0gJz4nKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6
VHlwZTo6QXJyb3cpOworICAgICAgICB9CisgICAgICAgIC8vIE9PUFM6IFNraXAgY29tbWVudHMv
d2hpdGVzcGFjZSBoZXJlPworICAgICAgICBpZiAoaXNEaWdpdChwZWVrKCkpKQorICAgICAgICAg
ICAgZ290byBwYXJzZU51bWJlcjsKKyAgICAgICAgaWYgKHBlZWsoKSA9PSAnLicpIHsKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICcu
Jyk7CisgICAgICAgICAgICBnb3RvIHBhcnNlRmxvYXRBZnRlckRvdDsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok1pbnVzKTsKKyAgICBjYXNlICcqJzoKKyAg
ICAgICAgaWYgKHBlZWsoKSA9PSAnPScpIHsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICc9Jyk7CisgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OlRpbWVzRXF1YWxzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gdG9rZW4oVG9rZW46OlR5cGU6OlN0YXIpOworICAgIGNhc2UgJy8nOgorICAgICAgICBpZiAo
cGVlaygpID09ICc9JykgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGN1cnJlbnQgPT0gJz0nKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6RGl2aWRlRXF1YWxzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdG9rZW4o
VG9rZW46OlR5cGU6OkRpdmlkZSk7CisgICAgY2FzZSAnJSc6CisgICAgICAgIGlmIChwZWVrKCkg
PT0gJz0nKSB7CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoY3VycmVudCA9PSAnPScpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpNb2RFcXVhbHMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlw
ZTo6TW9kKTsKKyAgICBjYXNlICdeJzoKKyAgICAgICAgaWYgKHBlZWsoKSA9PSAnPScpIHsKKyAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09
ICc9Jyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlhvckVxdWFscyk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpYb3IpOworICAg
IGNhc2UgJyYnOgorICAgICAgICBpZiAocGVlaygpID09ICc9JykgeworICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJz0nKTsKKyAgICAg
ICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6QW5kRXF1YWxzKTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAocGVlaygpID09ICcmJykgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJyYnKTsKKyAgICAgICAgICAgIHJldHVy
biB0b2tlbihUb2tlbjo6VHlwZTo6QW5kQW5kKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkFuZCk7CisgICAgY2FzZSAnfCc6CisgICAgICAgIGlmIChwZWVr
KCkgPT0gJz0nKSB7CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoY3VycmVudCA9PSAnPScpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpPckVxdWFscyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBlZWsoKSA9PSAnfCcpIHsK
KyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50
ID09ICd8Jyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9yT3IpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3IpOworICAgIGNh
c2UgJ1snOgorICAgICAgICBpZiAocGVlaygpID09ICddJykgeworICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJ10nKTsKKyAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3F1YXJlQnJhY2tldFBhaXIpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TGVmdFNxdWFyZUJyYWNrZXQp
OworICAgIGNhc2UgJz0nOgorICAgICAgICBpZiAocGVlaygpID09ICc9JykgeworICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJz0nKTsK
KyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RXF1YWxDb21wYXJpc29uKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkVxdWFsc1NpZ24p
OworICAgIGNhc2UgJyEnOgorICAgICAgICBpZiAocGVlaygpID09ICc9JykgeworICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJz0nKTsK
KyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6Tm90RXF1YWwpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RXhjbGFtYXRpb25Qb2ludCk7
CisgICAgY2FzZSAnOyc6CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U2VtaWNv
bG9uKTsKKyAgICBjYXNlICd7JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpM
ZWZ0Q3VybHlCcmFja2V0KTsKKyAgICBjYXNlICd9JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpSaWdodEN1cmx5QnJhY2tldCk7CisgICAgY2FzZSAnOic6CisgICAgICAgIHJl
dHVybiB0b2tlbihUb2tlbjo6VHlwZTo6Q29sb24pOworICAgIGNhc2UgJywnOgorICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkNvbW1hKTsKKyAgICBjYXNlICcoJzoKKyAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0UGFyZW50aGVzaXMpOworICAgIGNhc2UgJykn
OgorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJpZ2h0UGFyZW50aGVzaXMpOwor
ICAgIGNhc2UgJ10nOgorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJpZ2h0U3F1
YXJlQnJhY2tldCk7CisgICAgY2FzZSAnLic6CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6
VHlwZTo6RnVsbFN0b3ApOworICAgIGNhc2UgJz8nOgorICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OlF1ZXN0aW9uTWFyayk7CisgICAgY2FzZSAnfic6CisgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6VGlsZGUpOworICAgIGNhc2UgJ0AnOgorICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkF0KTsKKworICAgIGNhc2UgJzAnOgorICAgIGNhc2UgJzEnOgor
ICAgIGNhc2UgJzInOgorICAgIGNhc2UgJzMnOgorICAgIGNhc2UgJzQnOgorICAgIGNhc2UgJzUn
OgorICAgIGNhc2UgJzYnOgorICAgIGNhc2UgJzcnOgorICAgIGNhc2UgJzgnOgorICAgIGNhc2Ug
JzknOiB7CisgICAgICAgIC8vIE9PUFM6IEhhbmRsZSBvY3RhbC9oZXgKK3BhcnNlTnVtYmVyOgor
ICAgICAgICB3aGlsZSAoaXNEaWdpdChwZWVrKCkpKQorICAgICAgICAgICAgc2hpZnQoKTsKKwor
ICAgICAgICBpZiAocGVlaygpID09ICcuJykgeworcGFyc2VGbG9hdEFmdGVyRG90OgorICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gJy4n
KTsKKyAgICAgICAgICAgIHdoaWxlIChpc0RpZ2l0KHBlZWsoKSkpCisgICAgICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChwZWVrKCkgPT0gJ2YnKQorICAgICAgICAgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkZsb2F0TGl0
ZXJhbCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGVlaygpID09ICdmJykgeworICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6Rmxv
YXRMaXRlcmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwZWVrKCkgPT0gJ3UnKSB7Cisg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpVaW50TGl0ZXJhbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OkludExpdGVyYWwpOworICAgIH0KKworICAgIGRlZmF1bHQ6IAorICAgICAgICAvLyBP
T1BTID8KKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy9pZiAoYXV0byBuZXdPZmZzZXQg
PSBpZGVudGlmaWVyKG1fb2Zmc2V0KSkgeworICAgIC8vICAgIGlmIChhdXRvIHJlc3VsdCA9IHJl
Y29nbml6ZUtleXdvcmQoKm5ld09mZnNldCkpIHsKKyAgICAvLyAgICAgICAgaWYgKCpyZXN1bHQg
PT0gVG9rZW46OlR5cGU6Ok9wZXJhdG9yKSB7CisgICAgLy8gICAgICAgICAgICBpZiAoYXV0byBu
ZXdlck9mZnNldCA9IGNvbXBsZXRlT3BlcmF0b3JOYW1lKCpuZXdPZmZzZXQpKQorICAgIC8vICAg
ICAgICAgICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdlck9mZnNldCwgVG9rZW46OlR5cGU6Ok9w
ZXJhdG9yTmFtZSk7CisgICAgLy8gICAgICAgIH0KKyAgICAvLyAgICAgICAgcmV0dXJuIHByZXBh
cmUoKm5ld09mZnNldCwgKnJlc3VsdCk7CisgICAgLy8gICAgfQorICAgIC8vICAgIHJldHVybiBw
cmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpJZGVudGlmaWVyKTsKKyAgICAvL30KIAog
ICAgIGlmIChtX29mZnNldCA9PSBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkpCi0gICAgICAgIHJldHVy
biBwcmVwYXJlKG1fb2Zmc2V0LCBUb2tlbjo6VHlwZTo6RW5kT2ZGaWxlKTsKLSAgICByZXR1cm4g
cHJlcGFyZShtX29mZnNldCwgVG9rZW46OlR5cGU6OkludmFsaWQpOworICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkVuZE9mRmlsZSk7CisgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpJbnZhbGlkKTsKIH0KIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9XSExTTFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwCShyZXZpc2lvbiAyNDg0OTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDggKzQ1LDEwIEBAIG5hbWVzcGFjZSBXSExTTCB7CiAKICNkZWZpbmUg
Q09OU1VNRV9UWVBFKG5hbWUsIHR5cGUpIFwKICAgICBhdXRvIG5hbWUgPSBjb25zdW1lVHlwZShU
b2tlbjo6VHlwZTo6dHlwZSk7IFwKLSAgICBpZiAoIW5hbWUpIFwKLSAgICAgICAgcmV0dXJuIFVu
ZXhwZWN0ZWQ8RXJyb3I+KG5hbWUuZXJyb3IoKSk7CisgICAgaWYgKCFuYW1lKSB7IFwKKyAgICAg
ICAgV1RGUmVwb3J0QmFja3RyYWNlKCk7IFwKKyAgICAgICAgcmV0dXJuIFVuZXhwZWN0ZWQ8RXJy
b3I+KG5hbWUuZXJyb3IoKSk7IFwKKyAgICB9IFwKIAogI2RlZmluZSBQRUVLKG5hbWUpIFwKICAg
ICBhdXRvIG5hbWUgPSBwZWVrKCk7IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAkocmV2aXNpb24gMjQ4NDkxKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsOSBAQCBuYW1lc3BhY2UgV0hMU0wgewogc3RhdGlj
IGNvbnN0ZXhwciBib29sIGR1bXBBU1RCZWZvcmVFYWNoUGFzcyA9IGZhbHNlOwogc3RhdGljIGNv
bnN0ZXhwciBib29sIGR1bXBBU1RBZnRlclBhcnNpbmcgPSBmYWxzZTsKIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBkdW1wQVNUQXRFbmQgPSBmYWxzZTsKLXN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbHdh
eXNEdW1wUGFzc0ZhaWx1cmVzID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgYWx3YXlz
RHVtcFBhc3NGYWlsdXJlcyA9IHRydWU7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgZHVtcFBhc3NG
YWlsdXJlID0gZHVtcEFTVEJlZm9yZUVhY2hQYXNzIHx8IGR1bXBBU1RBZnRlclBhcnNpbmcgfHwg
ZHVtcEFTVEF0RW5kIHx8IGFsd2F5c0R1bXBQYXNzRmFpbHVyZXM7Ci1zdGF0aWMgY29uc3RleHBy
IGJvb2wgZHVtcFBoYXNlVGltZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCBkdW1w
UGhhc2VUaW1lcyA9IHRydWU7CiAKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwYXJzZUZ1bGxTdGFu
ZGFyZExpYnJhcnkgPSBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMQXJyYXlSZWZlcmVuY2VUeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQXJyYXlSZWZlcmVuY2VU
eXBlLmgJKHJldmlzaW9uIDI0ODQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTEFycmF5UmVmZXJlbmNlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04
MCw2ICs4MCw2IEBAIHB1YmxpYzoKIAogfQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNM
X1VOTkFNRURfVFlQRShBcnJheVJlZmVyZW5jZVR5cGUsIGlzQXJyYXlSZWZlcmVuY2VUeXBlKCkp
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoQXJyYXlSZWZlcmVuY2VUeXBlLCBp
c0FycmF5UmVmZXJlbmNlVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEFycmF5VHlwZS5oCShy
ZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9B
U1QvV0hMU0xBcnJheVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsNiBAQCBwcml2
YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoQXJyYXlUeXBlKQogCi1TUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShBcnJheVR5cGUsIGlzQXJyYXlUeXBlKCkpCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoQXJyYXlUeXBlLCBpc0FycmF5VHlwZSgp
KQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FT
VC9XSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEVudW1lcmF0aW9uRGVmaW5pdGlvbi5o
CShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExT
TC9BU1QvV0hMU0xFbnVtZXJhdGlvbkRlZmluaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtOTYs
NiArOTYsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoRW51bWVyYXRpb25E
ZWZpbml0aW9uKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX05BTUVEX1RZUEUoRW51
bWVyYXRpb25EZWZpbml0aW9uLCBpc0VudW1lcmF0aW9uRGVmaW5pdGlvbigpKQorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19XSExTTF9UWVBFKEVudW1lcmF0aW9uRGVmaW5pdGlvbiwgaXNFbnVtZXJh
dGlvbkRlZmluaXRpb24oKSkKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWxUeXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMRmxvYXRMaXRlcmFs
VHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9BU1QvV0hMU0xGbG9hdExpdGVyYWxUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3
LDYgKzc3LDYgQEAgcHJpdmF0ZToKIAogREVGSU5FX0RFRkFVTFRfREVMRVRFKEZsb2F0TGl0ZXJh
bFR5cGUpCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfUkVTT0xWQUJMRV9UWVBFKEZs
b2F0TGl0ZXJhbFR5cGUsIGlzRmxvYXRMaXRlcmFsVHlwZSgpKQorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19XSExTTF9UWVBFKEZsb2F0TGl0ZXJhbFR5cGUsIGlzRmxvYXRMaXRlcmFsVHlwZSgpKQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9X
SExTTEludGVnZXJMaXRlcmFsVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEludGVnZXJMaXRlcmFsVHlwZS5oCShyZXZpc2lv
biAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hM
U0xJbnRlZ2VyTGl0ZXJhbFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNiBAQCBw
cml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoSW50ZWdlckxpdGVyYWxUeXBlKQogCi1T
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1JFU09MVkFCTEVfVFlQRShJbnRlZ2VyTGl0ZXJh
bFR5cGUsIGlzSW50ZWdlckxpdGVyYWxUeXBlKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dI
TFNMX1RZUEUoSW50ZWdlckxpdGVyYWxUeXBlLCBpc0ludGVnZXJMaXRlcmFsVHlwZSgpKQogCiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExT
TE5hbWVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTE5hbWVkVHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xOYW1lZFR5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzYsMTEgKzc2LDYgQEAgcHJpdmF0ZToKIAogREVGSU5FX0RFRkFVTFRfREVM
RVRFKE5hbWVkVHlwZSkKIAotI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX05B
TUVEX1RZUEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKLVNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQkVHSU4oV2ViQ29yZTo6V0hMU0w6OkFTVDo6VG9WYWx1ZVR5cGVOYW1lKSBcCi0gICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldITFNMOjpBU1Q6Ok5hbWVkVHlwZSYg
dHlwZSkgeyByZXR1cm4gdHlwZS5wcmVkaWNhdGU7IH0gXAotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19FTkQoKQotCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoTmFtZWRUeXBlLCBp
c05hbWVkVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTE5hdGl2ZVR5cGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9BU1QvV0hMU0xOYXRpdmVUeXBlRGVjbGFyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMTI4LDYgKzEyOCw2IEBAIHByaXZhdGU6CiAKIH0KIAotU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19XSExTTF9OQU1FRF9UWVBFKE5hdGl2ZVR5cGVEZWNsYXJhdGlvbiwgaXNOYXRpdmVU
eXBlRGVjbGFyYXRpb24oKSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfVFlQRShOYXRp
dmVUeXBlRGVjbGFyYXRpb24sIGlzTmF0aXZlVHlwZURlY2xhcmF0aW9uKCkpCiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMTnVsbExp
dGVyYWxUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMTnVsbExpdGVyYWxUeXBlLmgJKHJldmlzaW9uIDI0ODQ5MSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTE51bGxMaXRlcmFsVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw2IEBAIHByaXZhdGU6CiAKIERFRklORV9E
RUZBVUxUX0RFTEVURShOdWxsTGl0ZXJhbFR5cGUpCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
V0hMU0xfUkVTT0xWQUJMRV9UWVBFKE51bGxMaXRlcmFsVHlwZSwgaXNOdWxsTGl0ZXJhbFR5cGUo
KSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfVFlQRShOdWxsTGl0ZXJhbFR5cGUsIGlz
TnVsbExpdGVyYWxUeXBlKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMUG9pbnRlclR5cGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xQb2ludGVyVHlwZS5oCShy
ZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9B
U1QvV0hMU0xQb2ludGVyVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw2IEBAIHB1
YmxpYzoKIAogREVGSU5FX0RFRkFVTFRfREVMRVRFKFBvaW50ZXJUeXBlKQogCi1TUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShQb2ludGVyVHlwZSwgaXNQb2ludGVyVHlw
ZSgpKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9UWVBFKFBvaW50ZXJUeXBlLCBpc1Bv
aW50ZXJUeXBlKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvQVNUL1dITFNMUmVmZXJlbmNlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlZmVyZW5jZVR5cGUuaAkocmV2
aXNpb24gMjQ4NDkxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNU
L1dITFNMUmVmZXJlbmNlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw2IEBAIHBy
aXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RFTEVURShSZWZlcmVuY2VUeXBlKQogCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX1dITFNMX1VOTkFNRURfVFlQRShSZWZlcmVuY2VUeXBlLCBpc1JlZmVy
ZW5jZVR5cGUoKSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfVFlQRShSZWZlcmVuY2VU
eXBlLCBpc1JlZmVyZW5jZVR5cGUoKSkKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZXNvbHZhYmxlVHlwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFJlc29sdmFi
bGVUeXBlLmgJKHJldmlzaW9uIDI0ODQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTFJlc29sdmFibGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDExICs5MCw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RFTEVURShSZXNvbHZhYmxl
VHlwZSkKIAotI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1JFU09MVkFCTEVf
VFlQRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpXSExTTDo6QVNUOjpUb1ZhbHVlVHlwZU5hbWUpIFwKLSAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V0hMU0w6OkFTVDo6UmVzb2x2YWJsZVR5cGUm
IHR5cGUpIHsgcmV0dXJuIHR5cGUucHJlZGljYXRlOyB9IFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRU5EKCkKLQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9UWVBFKFJlc29sdmFibGVU
eXBlLCBpc1Jlc29sdmFibGVUeXBlKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RydWN0dXJlRGVmaW5pdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0
cnVjdHVyZURlZmluaXRpb24uaAkocmV2aXNpb24gMjQ4NDkxKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RydWN0dXJlRGVmaW5pdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RF
TEVURShTdHJ1Y3R1cmVEZWZpbml0aW9uKQogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNM
X05BTUVEX1RZUEUoU3RydWN0dXJlRGVmaW5pdGlvbiwgaXNTdHJ1Y3R1cmVEZWZpbml0aW9uKCkp
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoU3RydWN0dXJlRGVmaW5pdGlvbiwg
aXNTdHJ1Y3R1cmVEZWZpbml0aW9uKCkpCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZURlZmluaXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlRGVm
aW5pdGlvbi5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlRGVmaW5pdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NCw2ICs3NCw2IEBAIHByaXZhdGU6CiAKIERFRklORV9ERUZBVUxUX0RFTEVURShUeXBlRGVmaW5p
dGlvbikKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9OQU1FRF9UWVBFKFR5cGVEZWZp
bml0aW9uLCBpc1R5cGVEZWZpbml0aW9uKCkpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNM
X1RZUEUoVHlwZURlZmluaXRpb24sIGlzVHlwZURlZmluaXRpb24oKSkKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJl
bmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wv
QVNUL1dITFNMVHlwZVJlZmVyZW5jZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlUmVmZXJlbmNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExOCw2ICsxMTgsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9E
RUxFVEUoVHlwZVJlZmVyZW5jZSkKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XSExTTF9VTk5B
TUVEX1RZUEUoVHlwZVJlZmVyZW5jZSwgaXNUeXBlUmVmZXJlbmNlKCkpCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX1dITFNMX1RZUEUoVHlwZVJlZmVyZW5jZSwgaXNUeXBlUmVmZXJlbmNlKCkpCiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dI
TFNMVW5uYW1lZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9BU1QvV0hMU0xVbm5hbWVkVHlwZS5oCShyZXZpc2lvbiAyNDg0OTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xVbm5hbWVkVHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMSArNzIsNiBAQCBwcml2YXRlOgogCiBERUZJTkVfREVG
QVVMVF9ERUxFVEUoVW5uYW1lZFR5cGUpCiAKLSNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19XSExTTF9VTk5BTUVEX1RZUEUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V0hMU0w6OkFTVDo6VG9WYWx1ZVR5cGVO
YW1lKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldITFNMOjpBU1Q6
OlVubmFtZWRUeXBlJiB0eXBlKSB7IHJldHVybiB0eXBlLnByZWRpY2F0ZTsgfSBcCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCi0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfVFlQ
RShVbm5hbWVkVHlwZSwgaXNVbm5hbWVkVHlwZSgpKQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVuc2lnbmVkSW50ZWdlckxpdGVy
YWxUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hM
U0wvQVNUL1dITFNMVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaAkocmV2aXNpb24gMjQ4NDkx
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVW5zaWdu
ZWRJbnRlZ2VyTGl0ZXJhbFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNiBAQCBw
cml2YXRlOgogCiBERUZJTkVfREVGQVVMVF9ERUxFVEUoVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5
cGUpCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xfUkVTT0xWQUJMRV9UWVBFKFVuc2ln
bmVkSW50ZWdlckxpdGVyYWxUeXBlLCBpc1Vuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlKCkpCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dITFNMX1RZUEUoVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5
cGUsIGlzVW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUoKSkKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyNDg0MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyMzEsNyArMjIzMSw2IEBACiAJCTdDODEzOUE4
MUVENjI4NzQwMENFMjZFOCAvKiBKU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODEzOUE1MUVENjI4
MUQwMENFMjZFOCAvKiBKU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzgxMzlBQTFFRDY2MDRC
MDBDRTI2RTggLyogSlNET01DYXN0ZWRUaGlzRXJyb3JCZWhhdmlvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4MTM5QTkxRUQ2MkRGMjAwQ0UyNkU4
IC8qIEpTRE9NQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzgzREU4NjFEMDRDQzVEMDBGRUJDRjMgLyog
U3ByaW5nU29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzgzREU4NTFEMDRDQkQ0MDBGRUJDRjMgLyogU3ByaW5nU29sdmVyLmggKi87IH07Ci0J
CTdDODVCMjAyMjJGQjA0ODUwMDMwNjg0RiAvKiBXSExTTFVubmFtZWRUeXBlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODVCMjAxMjJGQjA0ODUw
MDMwNjg0RiAvKiBXSExTTFVubmFtZWRUeXBlLmNwcCAqLzsgfTsKIAkJN0M4RTM0QUQxRTRBMzNB
RjAwNTRDRTIzIC8qIEpTRE9NQ29udmVydEFueS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RTM0OTIxRTRBMzM4RTAwNTRDRTIzIC8qIEpTRE9NQ29u
dmVydEFueS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDOEUzNEFFMUU0QTMzQUYwMDU0Q0UyMyAvKiBKU0RPTUNvbnZlcnRCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhFMzQ5MzFFNEEzMzhF
MDA1NENFMjMgLyogSlNET01Db252ZXJ0QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDOEUzNEFGMUU0QTMzQUYwMDU0Q0UyMyAvKiBKU0RP
TUNvbnZlcnRCb29sZWFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzhFMzQ5NDFFNEEzMzhFMDA1NENFMjMgLyogSlNET01Db252ZXJ0Qm9vbGVhbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MzE1
LDYgKzgzMTQsNyBAQAogCQk1MjEzMUU1QTFDNEYxNTYxMDAzM0Y4MDIgLyogVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MjE1ODYyQzIyOTM3N0I3MDA1OTI1RUYgLyogV0hMU0xBU1QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0hMU0xBU1QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIyQkFCOTYy
MkU2QTM2MjAwQzU0Q0U5IC8qIFdITFNMQ29kZUxvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMQ29kZUxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyMkQwN0Ez
MjJGQkFCNDMwMEI5MDVCRSAvKiBXSExTTEV4cHJlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0hMU0xFeHByZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIy
REEzRDMyMjlFMUQzOTAwNDJEMTUxIC8qIFdITFNMR2xvYmFsVmFyaWFibGVSZWZlcmVuY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0hMU0xHbG9iYWxWYXJpYWJsZVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MjJFMUExNzIyOTdENkQ0MDBFNUQzNkEgLyogV0hMU0xQcmVz
ZXJ2ZVZhcmlhYmxlTGlmZXRpbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNMUHJlc2Vy
dmVWYXJpYWJsZUxpZmV0aW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
MkUxQTE5MjI5N0Q2RDQwMEU1RDM2QSAvKiBXSExTTFByZXNlcnZlVmFyaWFibGVMaWZldGltZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xQcmVzZXJ2ZVZhcmlhYmxlTGlmZXRpbWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI3LDYgKzgzMjcsNyBAQAogCQk1MkIwRDRCRDFD
NTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNM
RGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwODAsNiArMTcwODEs
NyBAQAogCQkJCUMyMUJGNzA2MjFDRDg5QzcwMDIyNzk3OSAvKiBXSExTTENvbW1hRXhwcmVzc2lv
bi5oICovLAogCQkJCUMyMUJGNzMzMjFDRDg5RjAwMDIyNzk3OSAvKiBXSExTTENvbnN0YW50RXhw
cmVzc2lvbi5oICovLAogCQkJCUMyMUJGNkY1MjFDRDg5QjUwMDIyNzk3OSAvKiBXSExTTENvbnRp
bnVlLmggKi8sCisJCQkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERl
bGV0ZS5oICovLAogCQkJCUMyMUJGNzAxMjFDRDg5QzQwMDIyNzk3OSAvKiBXSExTTERlcmVmZXJl
bmNlRXhwcmVzc2lvbi5oICovLAogCQkJCUMyMUJGNzE4MjFDRDg5RDcwMDIyNzk3OSAvKiBXSExT
TERvdEV4cHJlc3Npb24uaCAqLywKIAkJCQlDMjFCRjZGQjIxQ0Q4OUJFMDAyMjc5NzkgLyogV0hM
U0xEb1doaWxlTG9vcC5oICovLApAQCAtMTcwODksNiArMTcwOTEsNyBAQAogCQkJCUMyMUJGNzI2
MjFDRDg5RTMwMDIyNzk3OSAvKiBXSExTTEVudW1lcmF0aW9uTWVtYmVyLmggKi8sCiAJCQkJQzIx
QkY3MDIyMUNEODlDNDAwMjI3OTc5IC8qIFdITFNMRW51bWVyYXRpb25NZW1iZXJMaXRlcmFsLmgg
Ki8sCiAJCQkJQzIxQkY3MEMyMUNEODlDQzAwMjI3OTc5IC8qIFdITFNMRXhwcmVzc2lvbi5oICov
LAorCQkJCTUyMkQwN0EzMjJGQkFCNDMwMEI5MDVCRSAvKiBXSExTTEV4cHJlc3Npb24uY3BwICov
LAogCQkJCUMyMUJGNzAwMjFDRDg5QzIwMDIyNzk3OSAvKiBXSExTTEZhbGx0aHJvdWdoLmggKi8s
CiAJCQkJQzIxQkY3MzUyMUNEODlGMjAwMjI3OTc5IC8qIFdITFNMRmxvYXRMaXRlcmFsLmggKi8s
CiAJCQkJMUNCNjlCMzgyMURGMDNFMTAwNkU4NDZBIC8qIFdITFNMRmxvYXRMaXRlcmFsVHlwZS5j
cHAgKi8sCkBAIC0zMzUyNCw3ICszMzUyNyw2IEBACiAJCQkJRjEyMTcxRjUxNkE4Q0VEMjAwMDA1
M0NBIC8qIFdlYlZUVEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQyMUE4MDIxM0VD
RTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMTBC
Njk4MTE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTdDODVCMjAyMjJGQjA0ODUwMDMwNjg0RiAvKiBXSExTTFVubmFtZWRUeXBlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGll
cy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8qIFhMaW5r
TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3NjY0IC8q
IFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCShyZXZpc2lvbiAyNDg0MDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2
ICs3OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV1RGOjpSZWZD
b3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj47CisgICAgZnJpZW5kIHN0cnVjdCBzdGQ6OmRlZmF1
bHRfZGVsZXRlPFdvcmtlclNjcmlwdExvYWRlcj47CiAKICAgICBXb3JrZXJTY3JpcHRMb2FkZXIo
KTsKICAgICB+V29ya2VyU2NyaXB0TG9hZGVyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376131</attachid>
            <date>2019-08-12 20:13:07 -0700</date>
            <delta_ts>2019-08-13 12:23:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>72132</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODU4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA4LTEyICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gTWFrZSBsZXhpbmcg
ZmFzdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
cmV2aW91c2x5LCBvdXIgbGV4ZXIgd291bGQganVzdCBicmFuY2ggb24gYSBzZXJpZXMgb2Ygc3Ry
aW5nIGNvbXBhcmVzLgorICAgICAgICBXZSdkIGhhdmUgY29kZSBsaWtlIHRoaXMgdG8gbWF0Y2gg
a2V5d29yZHM6CisgICAgICAgIGBgYAorICAgICAgICAuLi4KKyAgICAgICAgaWYgKG1hdGNoQ3Vy
cmVudCgiZmFsc2UiKSkKKyAgICAgICAgCXJldHVybiBGYWxzZVRva2VuOworICAgICAgICBpZiAo
bWF0Y2hDdXJyZW50KCJ0cnVlIikpCisgICAgICAgIAlyZXR1cm4gVHJ1ZVRva2VuOworICAgICAg
ICAuLi4KKyAgICAgICAgYGBgCisgICAgICAgIAorICAgICAgICBIb3dldmVyLCB0aGlzIGlzIGV4
dHJlbWVseSBpbmVmZmljaWVudC4gV2Ugbm93IGxleCB1c2luZyBhIHRyaWUsIHdoaWNoIG1lYW5z
CisgICAgICAgIHdlIG5ldmVyIGJhY2t0cmFjayBpbiB0aGUgbGV4ZXIuCisgICAgICAgIAorICAg
ICAgICBUaGlzIHBhdGNoIGlzIGEgM21zIHNwZWVkdXAgaW4gY29tcHV0ZV9ib2lkcy4KKworICAg
ICAgICBUZXN0OiB3ZWJncHUvd2hsc2wvbGl0ZXJhbHMuaHRtbAorCisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6
aXNWYWxpZElkZW50aWZpZXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6aXNWYWxp
ZE5vblN0YXJ0aW5nSWRlbnRpZmllckNoYXIpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Omlz
SGV4YWRlY2ltYWxDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OmlzRGlnaXQp
OgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVyOjpjb25zdW1lVG9rZW5Gcm9tU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpMZXhlcjo6cmVjb2duaXplS2V5d29yZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVEZWNpbWFsSW50TGl0
ZXJhbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmRl
Y2ltYWxJbnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpMZXhlcjo6ZGVjaW1hbFVpbnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldITFNMOjpMZXhlcjo6Y29yZUhleGFkZWNpbWFsSW50TGl0ZXJhbCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmhleGFkZWNpbWFsSW50TGl0
ZXJhbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6Omhl
eGFkZWNpbWFsVWludExpdGVyYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V0hMU0w6OkxleGVyOjppbnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpMZXhlcjo6dWludExpdGVyYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6V0hMU0w6OkxleGVyOjpkaWdpdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmRpZ2l0U3RhciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNoYXJhY3RlciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVGbG9hdExpdGVyYWxUeXBlMSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVGbG9hdExpdGVy
YWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVyOjpmbG9h
dExpdGVyYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVy
Ojp2YWxpZElkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OkxleGVyOjppZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpMZXhlcjo6Y29tcGxldGVPcGVyYXRvck5hbWUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMTGV4ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpMZXhlcjo6c3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKwogMjAxOS0wOC0xMiAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBtdWx0aXBh
cmFtZXRlciBvdmVybG9hZHMgb2YgYXBwZW5kKCkgaW4gU3RyaW5nQnVpbGRlciBhcyBhIGZpcnN0
IHN0ZXAgdG93YXJkIHN0YW5kYXJkaXppbmdpbmcgb24gdGhlIGZsZXhpYmxlQXBwZW5kKCkgaW1w
bGVtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMTGV4ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMTGV4ZXIuY3BwCShyZXZpc2lvbiAyNDg1ODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUyLDI1MCArMjUyLDE0MjcgQEAgY29uc3QgY2hhciogVG9rZW46OnR5cGVOYW1lKFR5cGUgdHlw
ZSkKICAgICB9CiB9CiAKLWF1dG8gTGV4ZXI6OnJlY29nbml6ZUtleXdvcmQodW5zaWduZWQgZW5k
KSAtPiBPcHRpb25hbDxUb2tlbjo6VHlwZT4KK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNW
YWxpZElkZW50aWZpZXJTdGFydChVQ2hhciB0aGVDaGFyKQogewotICAgIGF1dG8gc3Vic3RyaW5n
ID0gbV9zdHJpbmdWaWV3LnN1YnN0cmluZyhtX29mZnNldCwgZW5kIC0gbV9vZmZzZXQpOwotICAg
IGlmIChzdWJzdHJpbmcgPT0gInN0cnVjdCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6
U3RydWN0OwotICAgIGlmIChzdWJzdHJpbmcgPT0gInR5cGVkZWYiKQotICAgICAgICByZXR1cm4g
VG9rZW46OlR5cGU6OlR5cGVkZWY7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiZW51bSIpCi0gICAg
ICAgIHJldHVybiBUb2tlbjo6VHlwZTo6RW51bTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJvcGVy
YXRvciIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6T3BlcmF0b3I7Ci0gICAgaWYgKHN1
YnN0cmluZyA9PSAiaWYiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OklmOwotICAgIGlm
IChzdWJzdHJpbmcgPT0gImVsc2UiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkVsc2U7
Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiY29udGludWUiKQotICAgICAgICByZXR1cm4gVG9rZW46
OlR5cGU6OkNvbnRpbnVlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImJyZWFrIikKLSAgICAgICAg
cmV0dXJuIFRva2VuOjpUeXBlOjpCcmVhazsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJzd2l0Y2gi
KQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlN3aXRjaDsKLSAgICBpZiAoc3Vic3RyaW5n
ID09ICJjYXNlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpDYXNlOwotICAgIGlmIChz
dWJzdHJpbmcgPT0gImRlZmF1bHQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkRlZmF1
bHQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiZmFsbHRocm91Z2giKQotICAgICAgICByZXR1cm4g
VG9rZW46OlR5cGU6OkZhbGx0aHJvdWdoOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImZvciIpCi0g
ICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6Rm9yOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIndo
aWxlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpXaGlsZTsKLSAgICBpZiAoc3Vic3Ry
aW5nID09ICJkbyIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6RG87Ci0gICAgaWYgKHN1
YnN0cmluZyA9PSAicmV0dXJuIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpSZXR1cm47
Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAibnVsbCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlw
ZTo6TnVsbDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJ0cnVlIikKLSAgICAgICAgcmV0dXJuIFRv
a2VuOjpUeXBlOjpUcnVlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImZhbHNlIikKLSAgICAgICAg
cmV0dXJuIFRva2VuOjpUeXBlOjpGYWxzZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJjb25zdGFu
dCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6Q29uc3RhbnQ7Ci0gICAgaWYgKHN1YnN0
cmluZyA9PSAiZGV2aWNlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpEZXZpY2U7Ci0g
ICAgaWYgKHN1YnN0cmluZyA9PSAidGhyZWFkZ3JvdXAiKQotICAgICAgICByZXR1cm4gVG9rZW46
OlR5cGU6OlRocmVhZGdyb3VwOwotICAgIGlmIChzdWJzdHJpbmcgPT0gInRocmVhZCIpCi0gICAg
ICAgIHJldHVybiBUb2tlbjo6VHlwZTo6VGhyZWFkOwotICAgIGlmIChzdWJzdHJpbmcgPT0gInNw
YWNlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTcGFjZTsKLSAgICBpZiAoc3Vic3Ry
aW5nID09ICJ2ZXJ0ZXgiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlZlcnRleDsKLSAg
ICBpZiAoc3Vic3RyaW5nID09ICJmcmFnbWVudCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlw
ZTo6RnJhZ21lbnQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiY29tcHV0ZSIpCi0gICAgICAgIHJl
dHVybiBUb2tlbjo6VHlwZTo6Q29tcHV0ZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJudW10aHJl
YWRzIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpOdW1UaHJlYWRzOwotICAgIGlmIChz
dWJzdHJpbmcgPT0gIlNWX0luc3RhbmNlSUQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6
OlNWSW5zdGFuY2VJRDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJTVl9WZXJ0ZXhJRCIpCi0gICAg
ICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U1ZWZXJ0ZXhJRDsKLSAgICBpZiAoc3Vic3RyaW5nID09
ICJQU0laRSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6UFNpemU7Ci0gICAgaWYgKHN1
YnN0cmluZyA9PSAiU1ZfUG9zaXRpb24iKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNW
UG9zaXRpb247Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfSXNGcm9udEZhY2UiKQotICAgICAg
ICByZXR1cm4gVG9rZW46OlR5cGU6OlNWSXNGcm9udEZhY2U7Ci0gICAgaWYgKHN1YnN0cmluZyA9
PSAiU1ZfU2FtcGxlSW5kZXgiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWU2FtcGxl
SW5kZXg7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfSW5uZXJDb3ZlcmFnZSIpCi0gICAgICAg
IHJldHVybiBUb2tlbjo6VHlwZTo6U1ZJbm5lckNvdmVyYWdlOwotICAgIGlmIChzdWJzdHJpbmcg
PT0gIlNWX1RhcmdldCIpIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk1ODA3IE1ha2UgdGhpcyB3b3JrIHdpdGggc3RyaW5ncyBsaWtlICJTVl9UYXJn
ZXQwIi4KLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTVlRhcmdldDsKLSAgICBpZiAoc3Vi
c3RyaW5nID09ICJTVl9EZXB0aCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U1ZEZXB0
aDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJTVl9Db3ZlcmFnZSIpCi0gICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6U1ZDb3ZlcmFnZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJTVl9EaXNwYXRj
aFRocmVhZElEIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTVkRpc3BhdGNoVGhyZWFk
SUQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfR3JvdXBJRCIpCi0gICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6U1ZHcm91cElEOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNWX0dyb3VwSW5k
ZXgiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWR3JvdXBJbmRleDsKLSAgICBpZiAo
c3Vic3RyaW5nID09ICJTVl9Hcm91cFRocmVhZElEIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpU
eXBlOjpTVkdyb3VwVGhyZWFkSUQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiYXR0cmlidXRlIikK
LSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpBdHRyaWJ1dGU7Ci0gICAgaWYgKHN1YnN0cmlu
ZyA9PSAicmVnaXN0ZXIiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlJlZ2lzdGVyOwot
ICAgIGlmIChzdWJzdHJpbmcgPT0gInNwZWNpYWxpemVkIikKLSAgICAgICAgcmV0dXJuIFRva2Vu
OjpUeXBlOjpTcGVjaWFsaXplZDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJuYXRpdmUiKQotICAg
ICAgICByZXR1cm4gVG9rZW46OlR5cGU6Ok5hdGl2ZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJy
ZXN0cmljdGVkIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpSZXN0cmljdGVkOwotICAg
IGlmIChzdWJzdHJpbmcgPT0gIl8iKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlVuZGVy
c2NvcmU7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiYXV0byIpCi0gICAgICAgIHJldHVybiBUb2tl
bjo6VHlwZTo6QXV0bzsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJwcm90b2NvbCIpCi0gICAgICAg
IHJldHVybiBUb2tlbjo6VHlwZTo6UHJvdG9jb2w7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiY29u
c3QiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkNvbnN0OwotICAgIGlmIChzdWJzdHJp
bmcgPT0gInN0YXRpYyIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U3RhdGljOwotICAg
IGlmIChzdWJzdHJpbmcgPT0gIm5vaW50ZXJwb2xhdGlvbiIpCi0gICAgICAgIHJldHVybiBUb2tl
bjo6VHlwZTo6UXVhbGlmaWVyOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIm5vcGVyc3BlY3RpdmUi
KQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlF1YWxpZmllcjsKLSAgICBpZiAoc3Vic3Ry
aW5nID09ICJ1bmlmb3JtIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpRdWFsaWZpZXI7
Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiY2VudHJvaWQiKQotICAgICAgICByZXR1cm4gVG9rZW46
OlR5cGU6OlF1YWxpZmllcjsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJzYW1wbGUiKQotICAgICAg
ICByZXR1cm4gVG9rZW46OlR5cGU6OlF1YWxpZmllcjsKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIHJldHVybiAodGhlQ2hhciA+PSAnYScgJiYgdGhlQ2hhciA8PSAneicpCisgICAgICAg
IHx8ICh0aGVDaGFyID49ICdBJyAmJiB0aGVDaGFyIDw9ICdaJykKKyAgICAgICAgfHwgKHRoZUNo
YXIgPT0gJ18nKTsKK30KKworc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc1ZhbGlkTm9uU3Rh
cnRpbmdJZGVudGlmaWVyQ2hhcihVQ2hhciB0aGVDaGFyKQoreworICAgIHJldHVybiAodGhlQ2hh
ciA+PSAnYScgJiYgdGhlQ2hhciA8PSAneicpCisgICAgICAgIHx8ICh0aGVDaGFyID49ICdBJyAm
JiB0aGVDaGFyIDw9ICdaJykKKyAgICAgICAgfHwgKHRoZUNoYXIgPj0gJzAnICYmIHRoZUNoYXIg
PD0gJzknKQorICAgICAgICB8fCAodGhlQ2hhciA9PSAnXycpOworfQorCitzdGF0aWMgQUxXQVlT
X0lOTElORSBib29sIGlzSGV4YWRlY2ltYWxDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQorewor
ICAgIHJldHVybiAoY2hhcmFjdGVyID49ICcwJyAmJiBjaGFyYWN0ZXIgPD0gJzknKQorICAgICAg
ICB8fCAoY2hhcmFjdGVyID49ICdhJyAmJiBjaGFyYWN0ZXIgPD0gJ2YnKQorICAgICAgICB8fCAo
Y2hhcmFjdGVyID49ICdBJyAmJiBjaGFyYWN0ZXIgPD0gJ0YnKTsKK30KKworc3RhdGljIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc0RpZ2l0KFVDaGFyIHRoZUNoYXIpCit7CisgICAgcmV0dXJuIHRoZUNo
YXIgPj0gJzAnICYmIHRoZUNoYXIgPD0gJzknOwogfQogCiBhdXRvIExleGVyOjpjb25zdW1lVG9r
ZW5Gcm9tU3RyZWFtKCkgLT4gVG9rZW4KIHsKLSAgICBhdXRvIHByZXBhcmUgPSBbJl0odW5zaWdu
ZWQgbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZSB0eXBlKSAtPiBUb2tlbiB7CisgICAgVUNoYXIgY3Vy
cmVudCA9IDA7CisgICAgdW5zaWduZWQgb2Zmc2V0ID0gbV9vZmZzZXQ7CisKKyAgICBhdXRvIHBl
ZWsgPSBbJl0gKCkgLT4gVUNoYXIgeworICAgICAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3
Lmxlbmd0aCgpKQorICAgICAgICAgICAgcmV0dXJuIG1fc3RyaW5nVmlld1tvZmZzZXRdOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9OworCisgICAgYXV0byBzaGlmdCA9IFsmXSB7CisgICAgICAg
IGlmIChvZmZzZXQgPCBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGN1cnJl
bnQgPSBtX3N0cmluZ1ZpZXdbb2Zmc2V0XTsKKyAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAg
ICAgICAgcmV0dXJuIGN1cnJlbnQ7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudCA9IDA7Cisg
ICAgICAgIHJldHVybiBjdXJyZW50OworICAgIH07CisKKyAgICBhdXRvIGNvbnN1bWUgPSBbJl0g
KFVDaGFyIHRoZUNoYXIpIHsKKyAgICAgICAgaWYgKHBlZWsoKSA9PSB0aGVDaGFyKSB7CisgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAgICBhdXRvIG5leHRJc0lkZW50aWZpZXIg
PSBbJl0geworICAgICAgICByZXR1cm4gaXNWYWxpZE5vblN0YXJ0aW5nSWRlbnRpZmllckNoYXIo
cGVlaygpKTsKKyAgICB9OworCisgICAgYXV0byB0b2tlbiA9IFsmXSAoVG9rZW46OlR5cGUgdHlw
ZSkgLT4gVG9rZW4gewogICAgICAgICBhdXRvIG9sZE9mZnNldCA9IG1fb2Zmc2V0OwotICAgICAg
ICBtX29mZnNldCA9IG5ld09mZnNldDsKKyAgICAgICAgbV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAg
ICAgIHNraXBXaGl0ZXNwYWNlQW5kQ29tbWVudHMoKTsKLSAgICAgICAgcmV0dXJuIHsgeyBvbGRP
ZmZzZXQsIG5ld09mZnNldCB9LCB0eXBlIH07CisgICAgICAgIHJldHVybiB7IHsgb2xkT2Zmc2V0
LCBvZmZzZXQgfSwgdHlwZSB9OwogICAgIH07CiAKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBp
ZGVudGlmaWVyKG1fb2Zmc2V0KSkgewotICAgICAgICBpZiAoYXV0byByZXN1bHQgPSByZWNvZ25p
emVLZXl3b3JkKCpuZXdPZmZzZXQpKSB7Ci0gICAgICAgICAgICBpZiAoKnJlc3VsdCA9PSBUb2tl
bjo6VHlwZTo6T3BlcmF0b3IpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBuZXdlck9mZnNl
dCA9IGNvbXBsZXRlT3BlcmF0b3JOYW1lKCpuZXdPZmZzZXQpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcHJlcGFyZSgqbmV3ZXJPZmZzZXQsIFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUp
OworICAgIHN3aXRjaCAoc2hpZnQoKSkgeworICAgIGNhc2UgJ0EnOgorICAgIGNhc2UgJ0InOgor
ICAgIGNhc2UgJ0MnOgorICAgIGNhc2UgJ0QnOgorICAgIGNhc2UgJ0UnOgorICAgIGNhc2UgJ0Yn
OgorICAgIGNhc2UgJ0cnOgorICAgIGNhc2UgJ0gnOgorICAgIGNhc2UgJ0knOgorICAgIGNhc2Ug
J0onOgorICAgIGNhc2UgJ0snOgorICAgIGNhc2UgJ0wnOgorICAgIGNhc2UgJ00nOgorICAgIGNh
c2UgJ04nOgorICAgIGNhc2UgJ08nOgorICAgIGNhc2UgJ1EnOgorICAgIGNhc2UgJ1InOgorICAg
IGNhc2UgJ1QnOgorICAgIGNhc2UgJ1UnOgorICAgIGNhc2UgJ1YnOgorICAgIGNhc2UgJ1cnOgor
ICAgIGNhc2UgJ1gnOgorICAgIGNhc2UgJ1knOgorICAgIGNhc2UgJ1onOgorICAgIGNhc2UgJ2cn
OgorICAgIGNhc2UgJ2gnOgorICAgIGNhc2UgJ2onOgorICAgIGNhc2UgJ2snOgorICAgIGNhc2Ug
J2wnOgorICAgIGNhc2UgJ20nOgorICAgIGNhc2UgJ3EnOgorICAgIGNhc2UgJ3gnOgorICAgIGNh
c2UgJ3knOgorICAgIGNhc2UgJ3onOgorcGFyc2VJZGVudGlmaWVyOgorICAgICAgICB3aGlsZSAo
aXNWYWxpZE5vblN0YXJ0aW5nSWRlbnRpZmllckNoYXIocGVlaygpKSkKKyAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6SWRlbnRpZmllcik7CisK
KyAgICBjYXNlICdzJzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2FzZSAn
YSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdtJykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworCisgICAgICAgIGNhc2UgJ3cn
OgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaCcpKQorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIo
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJl
dHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3dpdGNoKTsKKworICAgICAgICBjYXNlICd0JzoKKyAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAg
ICAgICAgY2FzZSAncic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OlN0cnVjdCk7CisgICAgICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2knKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3RhdGljKTsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAn
YSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3BhY2UpOworICAgICAgICAgICAgY2FzZSAn
ZSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
eicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChu
ZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3BlY2lhbGl6
ZWQpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdP
ZmZzZXQsICpyZXN1bHQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ1MnOgorICAgICAgICBpZiAoIWNv
bnN1bWUoJ1YnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBp
ZiAoIWNvbnN1bWUoJ18nKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworCisg
ICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJ0cnOgorICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworCisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2Fz
ZSAnSSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2gg
KHBlZWsoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ0QnOgorICAgICAgICAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U1ZHcm91cElEKTsKKyAgICAgICAg
ICAgICAgICBjYXNlICduJzoKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdl
JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd4JykpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lk
ZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWR3JvdXBJ
bmRleCk7CisKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNh
c2UgJ1QnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ0knKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdEJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U1ZHcm91cFRocmVhZElEKTsKKworICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAnRCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ2UnOgorICAgICAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdwJykpCisg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
IGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lk
ZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkRlcHRoKTsKKyAgICAg
ICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdzJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdUJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
aCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdJJykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnRCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWRGlzcGF0Y2hUaHJlYWRJRCk7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgfQorICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndicpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J3InKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdnJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVu
dGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWQ292ZXJhZ2UpOworICAgICAgICBjYXNl
ICdUJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2En
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdnJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U1ZUYXJnZXQpOworICAg
ICAgICBjYXNlICdTJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnbScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdwJykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29u
c3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdJJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3gnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OlNWU2FtcGxlSW5kZXgpOworICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdpJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ24nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWUG9zaXRp
b24pOworICAgICAgICBjYXNlICdWJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgneCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdJJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ0QnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVu
dGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWVmVydGV4SUQpOworICAgICAgICBjYXNl
ICdJJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkg
eworICAgICAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ0YnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0
JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnRicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWSXNGcm9udEZhY2UpOworICAgICAg
ICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ24nOgorICAgICAgICAg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2Un
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J0MnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ3YnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2cnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlw
ZTo6U1ZJbm5lckNvdmVyYWdlKTsKKyAgICAgICAgICAgICAgICBjYXNlICdzJzoKKyAgICAgICAg
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0
JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCduJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdJJykpCisgICAgICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdEJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWSW5zdGFuY2VJRCk7CisgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2Ug
J3QnOgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICdyJzoKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
ZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6VHJ1ZSk7CisgICAg
ICAgIGNhc2UgJ3knOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29u
c3VtZSgncCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdmJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpUeXBlZGVm
KTsKKyAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdk
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisKKyAgICAgICAgICAg
IGlmICghbmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6VGhyZWFkKTsKKworICAgICAgICAgICAgaWYgKHBlZWsoKSAhPSAnZycpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisKKyAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50ID09ICdnJyk7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlRocmVhZGdy
b3VwKTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ2UnOgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkg
eworICAgICAgICBjYXNlICduJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6RW51bSk7CisgICAgICAgIGNhc2UgJ2wnOgorICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElz
SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpFbHNlKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBj
YXNlICdvJzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCdwJykpCisgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCd0
JykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25z
dW1lKCdvJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYg
KCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworCisgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJyYnOgorICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAg
ICAgICBjYXNlICdbJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IGlmIChjb25zdW1lKCddJykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OkludmFsaWQpOworICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9w
ZXJhdG9yTmFtZSk7CisgICAgICAgICAgICBjYXNlICcuJzoKKyAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZElkZW50aWZpZXJTdGFydChwZWVrKCkp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkludmFsaWQp
OworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGlzVmFs
aWROb25TdGFydGluZ0lkZW50aWZpZXJDaGFyKHBlZWsoKSkpCisgICAgICAgICAgICAgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVy
YXRvck5hbWUpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgY2FzZSAnWyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCddJykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZh
bGlkKTsKKyAgICAgICAgICAgIGNvbnN1bWUoJz0nKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICc+JzoKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPicpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAg
ICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJzwnOgorICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lKCc8JykpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICAgICAgaWYgKGNv
bnN1bWUoJz0nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9w
ZXJhdG9yTmFtZSk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJh
dG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnKyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgY29uc3VtZSgnKycpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGNvbnN1bWUoJy0nKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICd8JzoKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBjb25zdW1lKCd8Jyk7CisgICAgICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAn
PSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCc9Jykp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZhbGlkKTsKKyAg
ICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAg
ICAgICBjYXNlICcqJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnLyc6Cisg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJyUnOgorICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsK
KworICAgICAgICBjYXNlICchJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAn
fic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJ14nOgorICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JO
YW1lKTsKKworICAgICAgICBjYXNlICcuJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICBpZiAoIWlzVmFsaWRJZGVudGlmaWVyU3RhcnQocGVlaygpKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkludmFsaWQpOworICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgIHdoaWxlIChpc1ZhbGlkTm9uU3RhcnRpbmdJZGVudGlmaWVyQ2hhcihw
ZWVrKCkpKQorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBjb25zdW1lKCc9
Jyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3IpOworCisgICAgY2FzZSAnaSc6
CisgICAgICAgIGlmICghY29uc3VtZSgnZicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJZik7
CisKKyAgICBjYXNlICdjJzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2Fz
ZSAnYSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdz
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6
OkNhc2UpOworCisgICAgICAgIGNhc2UgJ2UnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29u
c3VtZSgnbycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1
cm4gdG9rZW4oVG9rZW46OlR5cGU6OlF1YWxpZmllcik7CisgICAgICAgIGNhc2UgJ28nOgorICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAg
ICAgICBjYXNlICdtJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCd0JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkNvbXB1dGUpOworICAgICAgICAgICAgY2FzZSAn
bic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBl
ZWsoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigp
KQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6Q29udGludWUpOworICAgICAg
ICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworCisgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dElz
SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpDb25zdCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykp
CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0
JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkNvbnN0YW50KTsKKworICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ2InOgorICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2snKSkKKyAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6QnJlYWspOworCisgICAgY2FzZSAnZCc6CisgICAgICAgIHN3aXRjaCAocGVlaygp
KSB7CisgICAgICAgIGNhc2UgJ28nOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAg
IGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkRvKTsKKyAgICAg
ICAgY2FzZSAnZSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChw
ZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ2YnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndScp
KQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0
SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RGVmYXVsdCk7Cisg
ICAgICAgICAgICBjYXNlICd2JzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6RGV2aWNlKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKworICAg
IGNhc2UgJ2YnOgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICdvJzoK
KyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0
SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkZvcik7CisgICAgICAgIGNhc2Ug
J3InOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCdnJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ20nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkZy
YWdtZW50KTsKKyAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgICAgICBjYXNl
ICdsJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29u
c3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
IGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdnJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnaCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkZhbGx0aHJvdWdoKTsKKworICAgICAgICAgICAg
Y2FzZSAncyc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpGYWxzZSk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlICdl
JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgewor
ICAgICAgICAgICAgY2FzZSAnZic6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnbCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZp
ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpEZWZhdWx0KTsKKyAgICAgICAgICAg
IGNhc2UgJ3YnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2Un
KSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpEZXZpY2UpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJ3cnOgor
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQor
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6V2hpbGUpOworCisgICAgY2FzZSAncic6CisgICAgICAgIGlmICghY29uc3Vt
ZSgnZScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHN3aXRj
aCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgndScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChu
ZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJldHVybik7CisgICAgICAg
IGNhc2UgJ2cnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnaScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdzJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpSZWdpc3Rlcik7
CisgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZp
ZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UmVzdHJpY3RlZCk7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgY2Fz
ZSAnbic6CisgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJ2EnOgorICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdpJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ3YnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6TmF0aXZlKTsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNh
c2UgJ2wnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6TnVsbCk7CisgICAgICAgICAgICBjYXNlICdtJzoKKyAgICAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgncycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6Ok51bVRocmVhZHMpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlICdv
JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgewor
ICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdwJykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRl
bnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlF1YWxpZmllcik7CisgICAg
ICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdzJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J2knKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCd2JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAo
bmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlF1YWxpZmll
cik7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgY2FzZSAndic6CisgICAgICAg
IGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgneCcpKQorICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpWZXJ0ZXgpOworCisgICAgY2FzZSAnUCc6CisgICAgICAgIGlmICghY29uc3Vt
ZSgnUycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICgh
Y29uc3VtZSgnSScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
IGlmICghY29uc3VtZSgnWicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIGlmICghY29uc3VtZSgnRScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpQU2l6ZSk7
CisKKyAgICBjYXNlICd1JzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdmJykp
CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1l
KCdvJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFj
b25zdW1lKCdyJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
aWYgKCFjb25zdW1lKCdtJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlF1YWxpZmllcik7CisK
KyAgICBjYXNlICdwJzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdv
JykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25z
dW1lKCdjJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYg
KCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlByb3RvY29sKTsK
KworICAgIGNhc2UgJ18nOgorICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6
VHlwZTo6VW5kZXJzY29yZSk7CisKKyAgICBjYXNlICdhJzoKKyAgICAgICAgc3dpdGNoIChwZWVr
KCkpIHsKKyAgICAgICAgY2FzZSAndCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdiJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRl
bnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpBdHRyaWJ1dGUpOworICAgICAgICBjYXNl
ICd1JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3Qn
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
QXV0byk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgfQorCisgICAgY2FzZSAnPic6CisgICAgICAgIGlmIChjb25zdW1lKCc+Jykp
IHsKKyAgICAgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpSaWdodFNoaWZ0RXF1YWxzKTsKKyAgICAgICAgICAgIHJldHVy
biB0b2tlbihUb2tlbjo6VHlwZTo6UmlnaHRTaGlmdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGNvbnN1bWUoJz0nKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6R3Jl
YXRlclRoYW5PckVxdWFsVG8pOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Okdy
ZWF0ZXJUaGFuU2lnbik7CisgICAgY2FzZSAnPCc6CisgICAgICAgIGlmIChjb25zdW1lKCc8Jykp
IHsKKyAgICAgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0U2hpZnRFcXVhbHMpOworICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0U2hpZnQpOworICAgICAgICB9CisgICAgICAgIGlmIChj
b25zdW1lKCc9JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Okxlc3NU
aGFuT3JFcXVhbFRvKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZXNzVGhh
blNpZ24pOworCisgICAgY2FzZSAnKyc6CisgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlBsdXNFcXVhbHMpOworICAgICAgICBp
ZiAoY29uc3VtZSgnKycpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpQ
bHVzUGx1cyk7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UGx1cyk7CisKKyAg
ICBjYXNlICctJzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJz0nKSkKKyAgICAgICAgICAgIHJldHVy
biB0b2tlbihUb2tlbjo6VHlwZTo6TWludXNFcXVhbHMpOworICAgICAgICBpZiAoY29uc3VtZSgn
LScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpNaW51c01pbnVzKTsK
KyAgICAgICAgaWYgKGNvbnN1bWUoJz4nKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6QXJyb3cpOworICAgICAgICBpZiAoaXNEaWdpdChwZWVrKCkpKSB7CisgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgZ290byBwYXJzZU51bWJlcjsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoY29uc3VtZSgnLicpKQorICAgICAgICAgICAgZ290byBwYXJzZUZsb2F0QWZ0
ZXJEb3Q7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TWludXMpOworCisgICAg
Y2FzZSAnKic6CisgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OlRpbWVzRXF1YWxzKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpTdGFyKTsKKworICAgIGNhc2UgJy8nOgorICAgICAgICBpZiAoY29uc3VtZSgn
PScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpEaXZpZGVFcXVhbHMp
OworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkRpdmlkZSk7CisKKyAgICBjYXNl
ICclJzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJz0nKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6TW9kRXF1YWxzKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpNb2QpOworCisgICAgY2FzZSAnXic6CisgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlhvckVxdWFscyk7CisgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6WG9yKTsKKworICAgIGNhc2UgJyYnOgorICAgICAg
ICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpBbmRFcXVhbHMpOworICAgICAgICBpZiAoY29uc3VtZSgnJicpKQorICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpBbmRBbmQpOworICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OkFuZCk7CisKKyAgICBjYXNlICd8JzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJz0n
KSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3JFcXVhbHMpOworICAg
ICAgICBpZiAoY29uc3VtZSgnfCcpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpPck9yKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcik7CisKKyAg
ICBjYXNlICdbJzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJ10nKSkKKyAgICAgICAgICAgIHJldHVy
biB0b2tlbihUb2tlbjo6VHlwZTo6U3F1YXJlQnJhY2tldFBhaXIpOworICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkxlZnRTcXVhcmVCcmFja2V0KTsKKworICAgIGNhc2UgJz0nOgor
ICAgICAgICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpFcXVhbENvbXBhcmlzb24pOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5
cGU6OkVxdWFsc1NpZ24pOworCisgICAgY2FzZSAnISc6CisgICAgICAgIGlmIChjb25zdW1lKCc9
JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok5vdEVxdWFsKTsKKyAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpFeGNsYW1hdGlvblBvaW50KTsKKworICAg
IGNhc2UgJzsnOgorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNlbWljb2xvbik7
CisKKyAgICBjYXNlICd7JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0
Q3VybHlCcmFja2V0KTsKKworICAgIGNhc2UgJ30nOgorICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OlJpZ2h0Q3VybHlCcmFja2V0KTsKKworICAgIGNhc2UgJzonOgorICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkNvbG9uKTsKKworICAgIGNhc2UgJywnOgorICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkNvbW1hKTsKKworICAgIGNhc2UgJygnOgorICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkxlZnRQYXJlbnRoZXNpcyk7CisKKyAgICBj
YXNlICcpJzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpSaWdodFBhcmVudGhl
c2lzKTsKKworICAgIGNhc2UgJ10nOgorICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6
OlJpZ2h0U3F1YXJlQnJhY2tldCk7CisKKyAgICBjYXNlICcuJzoKKyAgICAgICAgaWYgKGlzRGln
aXQocGVlaygpKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VGbG9hdEFmdGVyRG90OworICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkZ1bGxTdG9wKTsKKworICAgIGNhc2UgJz8nOgor
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyayk7CisKKyAgICBj
YXNlICd+JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpUaWxkZSk7CisKKyAg
ICBjYXNlICdAJzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpBdCk7CisKKyAg
ICBjYXNlICcwJzoKKyAgICBjYXNlICcxJzoKKyAgICBjYXNlICcyJzoKKyAgICBjYXNlICczJzoK
KyAgICBjYXNlICc0JzoKKyAgICBjYXNlICc1JzoKKyAgICBjYXNlICc2JzoKKyAgICBjYXNlICc3
JzoKKyAgICBjYXNlICc4JzoKKyAgICBjYXNlICc5JzogeworcGFyc2VOdW1iZXI6CisgICAgICAg
IGlmIChjdXJyZW50ID09ICcwJyAmJiBjb25zdW1lKCd4JykpIHsKKyAgICAgICAgICAgIHdoaWxl
IChpc0hleGFkZWNpbWFsQ2hhcmFjdGVyKHBlZWsoKSkpCisgICAgICAgICAgICAgICAgc2hpZnQo
KTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpVaW50TGl0ZXJhbCk7CisgICAgICAgICAgICByZXR1cm4gdG9r
ZW4oVG9rZW46OlR5cGU6OkludExpdGVyYWwpOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUg
KGlzRGlnaXQocGVlaygpKSkKKyAgICAgICAgICAgIHNoaWZ0KCk7CisKKyAgICAgICAgaWYgKGNv
bnN1bWUoJy4nKSkgeworcGFyc2VGbG9hdEFmdGVyRG90OgorICAgICAgICAgICAgd2hpbGUgKGlz
RGlnaXQocGVlaygpKSkKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgY29u
c3VtZSgnZicpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGbG9hdExp
dGVyYWwpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRv
a2VuOjpUeXBlOjpJZGVudGlmaWVyKTsKKworICAgICAgICBpZiAoY29uc3VtZSgnZicpKQorICAg
ICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGbG9hdExpdGVyYWwpOworCisgICAg
ICAgIGlmIChjb25zdW1lKCd1JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5
cGU6OlVpbnRMaXRlcmFsKTsKKworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Oklu
dExpdGVyYWwpOworICAgIH0KKworICAgIGRlZmF1bHQ6IAorICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gZmxvYXRMaXRlcmFsKG1fb2Zmc2V0KSkKLSAgICAg
ICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkZsb2F0TGl0ZXJhbCk7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gdWludExpdGVyYWwobV9vZmZzZXQpKQotICAgICAg
ICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6VWludExpdGVyYWwpOwot
ICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGludExpdGVyYWwobV9vZmZzZXQpKQotICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6SW50TGl0ZXJhbCk7Ci0gICAg
Ly8gU29ydGVkIGJ5IGxlbmd0aCwgc28gbG9uZ2VyIG1hdGNoZXMgYXJlIHByZWZlcmFibGUgdG8g
c2hvcnRlciBtYXRjaGVzLgotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiPj49Iiwg
bV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlw
ZTo6UmlnaHRTaGlmdEVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI8
PD0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpMZWZ0U2hpZnRFcXVhbHMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmlu
ZygiKz0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRv
a2VuOjpUeXBlOjpQbHVzRXF1YWxzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmco
Ii09IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tl
bjo6VHlwZTo6TWludXNFcXVhbHMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygi
Kj0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpUaW1lc0VxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCIv
PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46
OlR5cGU6OkRpdmlkZUVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCIl
PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46
OlR5cGU6Ok1vZEVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCJePSIs
IG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5
cGU6OlhvckVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCImPSIsIG1f
b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6
OkFuZEVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCJ8PSIsIG1fb2Zm
c2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6Ok9y
RXF1YWxzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIisrIiwgbV9vZmZzZXQp
KQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UGx1c1Bs
dXMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiLS0iLCBtX29mZnNldCkpCi0g
ICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpNaW51c01pbnVz
KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIi0+IiwgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6QXJyb3cpOwotICAg
IGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiW10iLCBtX29mZnNldCkpCi0gICAgICAgIHJl
dHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpTcXVhcmVCcmFja2V0UGFpcik7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCJ8fCIsIG1fb2Zmc2V0KSkKLSAgICAg
ICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6Ok9yT3IpOwotICAgIGlm
IChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiJiYiLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVy
biBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpBbmRBbmQpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IHN0cmluZygiPD0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVw
YXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpMZXNzVGhhbk9yRXF1YWxUbyk7Ci0gICAgaWYg
KGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI+PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJu
IHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkdyZWF0ZXJUaGFuT3JFcXVhbFRvKTsK
LSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIj09IiwgbV9vZmZzZXQpKQotICAgICAg
ICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6RXF1YWxDb21wYXJpc29u
KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIiE9IiwgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6Tm90RXF1YWwpOwot
ICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiPj4iLCBtX29mZnNldCkpCi0gICAgICAg
IHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpSaWdodFNoaWZ0KTsKLSAg
ICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIjw8IiwgbV9vZmZzZXQpKQotICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TGVmdFNoaWZ0KTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJz0nLCBtX29mZnNldCkpCi0gICAgICAgIHJl
dHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpFcXVhbHNTaWduKTsKLSAgICBp
ZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJzsnLCBtX29mZnNldCkpCi0gICAgICAgIHJl
dHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpTZW1pY29sb24pOwotICAgIGlm
IChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcigneycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkxlZnRDdXJseUJyYWNrZXQpOwot
ICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignfScsIG1fb2Zmc2V0KSkKLSAgICAg
ICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlJpZ2h0Q3VybHlCcmFj
a2V0KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJzonLCBtX29mZnNldCkp
Ci0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpDb2xvbik7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCcsJywgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6Q29tbWEpOwotICAg
IGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignKCcsIG1fb2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkxlZnRQYXJlbnRoZXNpcyk7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCcpJywgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UmlnaHRQYXJlbnRo
ZXNpcyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCdbJywgbV9vZmZzZXQp
KQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TGVmdFNx
dWFyZUJyYWNrZXQpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignXScsIG1f
b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6
OlJpZ2h0U3F1YXJlQnJhY2tldCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVy
KCcqJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tl
bjo6VHlwZTo6U3Rhcik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCc8Jywg
bV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlw
ZTo6TGVzc1RoYW5TaWduKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJz4n
LCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpU
eXBlOjpHcmVhdGVyVGhhblNpZ24pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignLicsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OkZ1bGxTdG9wKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIo
Jz8nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpRdWVzdGlvbk1hcmspOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignfCcsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6Ok9yKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJ14nLCBt
X29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBl
OjpYb3IpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignJicsIG1fb2Zmc2V0
KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkFuZCk7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCcrJywgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UGx1cyk7Ci0gICAg
aWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCctJywgbV9vZmZzZXQpKQotICAgICAgICBy
ZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TWludXMpOwotICAgIGlmIChh
dXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignLycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJu
IHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkRpdmlkZSk7Ci0gICAgaWYgKGF1dG8g
bmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCclJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TW9kKTsKLSAgICBpZiAoYXV0byBuZXdPZmZz
ZXQgPSBjaGFyYWN0ZXIoJ34nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpu
ZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpUaWxkZSk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0g
Y2hhcmFjdGVyKCchJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zm
c2V0LCBUb2tlbjo6VHlwZTo6RXhjbGFtYXRpb25Qb2ludCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zm
c2V0ID0gY2hhcmFjdGVyKCdAJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgq
bmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6QXQpOwogCiAgICAgaWYgKG1fb2Zmc2V0ID09IG1fc3Ry
aW5nVmlldy5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUobV9vZmZzZXQsIFRva2Vu
OjpUeXBlOjpFbmRPZkZpbGUpOwotICAgIHJldHVybiBwcmVwYXJlKG1fb2Zmc2V0LCBUb2tlbjo6
VHlwZTo6SW52YWxpZCk7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RW5kT2ZG
aWxlKTsKKyAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkludmFsaWQpOwogfQogCiAKQEAg
LTU4MCwyNDMgKzE3NTcsNiBAQCB2b2lkIExleGVyOjpza2lwV2hpdGVzcGFjZUFuZENvbW1lbnRz
KCkKICAgICB9CiB9CiAKLS8vIFJlZ3VsYXIgZXhwcmVzc2lvbiBhcmUgdW5uZWNlc3Nhcnk7IHdl
IHNob3VsZG4ndCBuZWVkIHRvIGNvbXBpbGUgdGhlbS4KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExl
eGVyOjpjb3JlRGVjaW1hbEludExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAg
IGlmIChvZmZzZXQgPj0gbV9zdHJpbmdWaWV3Lmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotICAgIGlmIChtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA9PSAnMCcpCi0gICAgICAg
IHJldHVybiBvZmZzZXQgKyAxOwotICAgIGlmIChtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA+PSAnMScg
JiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPD0gJzknKSB7Ci0gICAgICAgICsrb2Zmc2V0OwotICAg
ICAgICBmb3IgKCA7IG9mZnNldCA8IG1fc3RyaW5nVmlldy5sZW5ndGgoKSAmJiBtX3N0cmluZ1Zp
ZXdbb2Zmc2V0XSA+PSAnMCcgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPD0gJzknOyArK29mZnNl
dCkgewotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBvZmZzZXQ7Ci0gICAgfQotICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6ZGVjaW1hbElu
dExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgPCBtX3N0
cmluZ1ZpZXcubGVuZ3RoKCkgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPT0gJy0nKQotICAgICAg
ICArK29mZnNldDsKLSAgICByZXR1cm4gY29yZURlY2ltYWxJbnRMaXRlcmFsKG9mZnNldCk7Ci19
Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6ZGVjaW1hbFVpbnRMaXRlcmFsKHVuc2lnbmVk
IG9mZnNldCkgY29uc3QKLXsKLSAgICBhdXRvIHJlc3VsdCA9IGNvcmVEZWNpbWFsSW50TGl0ZXJh
bChvZmZzZXQpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotICAgIGlmICgqcmVzdWx0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmll
d1sqcmVzdWx0XSA9PSAndScpCi0gICAgICAgIHJldHVybiAqcmVzdWx0ICsgMTsKLSAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNIZXhhZGVjaW1hbENo
YXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCi17Ci0gICAgcmV0dXJuIChjaGFyYWN0ZXIgPj0gJzAn
ICYmIGNoYXJhY3RlciA8PSAnOScpCi0gICAgICAgIHx8IChjaGFyYWN0ZXIgPj0gJ2EnICYmIGNo
YXJhY3RlciA8PSAnZicpCi0gICAgICAgIHx8IChjaGFyYWN0ZXIgPj0gJ0EnICYmIGNoYXJhY3Rl
ciA8PSAnRicpOwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6OmNvcmVIZXhhZGVjaW1h
bEludExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgKyAx
ID49IG1fc3RyaW5nVmlldy5sZW5ndGgoKSB8fCBtX3N0cmluZ1ZpZXdbb2Zmc2V0XSAhPSAnMCcg
fHwgbV9zdHJpbmdWaWV3W29mZnNldCArIDFdICE9ICd4JykKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQotICAgIG9mZnNldCArPSAyOwotICAgIGlmIChvZmZzZXQgPj0gbV9zdHJpbmdW
aWV3Lmxlbmd0aCgpIHx8ICFpc0hleGFkZWNpbWFsQ2hhcmFjdGVyKG1fc3RyaW5nVmlld1tvZmZz
ZXRdKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICArK29mZnNldDsKLSAgICBm
b3IgKCA7IG9mZnNldCA8IG1fc3RyaW5nVmlldy5sZW5ndGgoKSAmJiBpc0hleGFkZWNpbWFsQ2hh
cmFjdGVyKG1fc3RyaW5nVmlld1tvZmZzZXRdKTsgKytvZmZzZXQpIHsKLSAgICB9Ci0gICAgcmV0
dXJuIG9mZnNldDsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjpoZXhhZGVjaW1hbElu
dExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgPCBtX3N0
cmluZ1ZpZXcubGVuZ3RoKCkgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPT0gJy0nKQotICAgICAg
ICArK29mZnNldDsKLSAgICByZXR1cm4gY29yZUhleGFkZWNpbWFsSW50TGl0ZXJhbChvZmZzZXQp
OwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6OmhleGFkZWNpbWFsVWludExpdGVyYWwo
dW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGF1dG8gcmVzdWx0ID0gY29yZUhleGFkZWNp
bWFsSW50TGl0ZXJhbChvZmZzZXQpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotICAgIGlmICgqcmVzdWx0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYm
IG1fc3RyaW5nVmlld1sqcmVzdWx0XSA9PSAndScpCi0gICAgICAgIHJldHVybiAqcmVzdWx0ICsg
MTsKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4
ZXI6OmludExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChhdXRvIHJl
c3VsdCA9IGRlY2ltYWxJbnRMaXRlcmFsKG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gaGV4YWRlY2ltYWxJbnRMaXRlcmFsKG9mZnNldCkpCi0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLX0KLQotT3B0
aW9uYWw8dW5zaWduZWQ+IExleGVyOjp1aW50TGl0ZXJhbCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0
Ci17Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gZGVjaW1hbFVpbnRMaXRlcmFsKG9mZnNldCkpCi0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gaGV4YWRlY2ltYWxV
aW50TGl0ZXJhbChvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6ZGlnaXQodW5zaWdu
ZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgPCBtX3N0cmluZ1ZpZXcubGVuZ3Ro
KCkgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJzAnICYmIG1fc3RyaW5nVmlld1tvZmZzZXRd
IDw9ICc5JykKLSAgICAgICAgcmV0dXJuIG9mZnNldCArIDE7Ci0gICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLX0KLQotdW5zaWduZWQgTGV4ZXI6OmRpZ2l0U3Rhcih1bnNpZ25lZCBvZmZzZXQpIGNv
bnN0Ci17Ci0gICAgd2hpbGUgKGF1dG8gcmVzdWx0ID0gZGlnaXQob2Zmc2V0KSkKLSAgICAgICAg
b2Zmc2V0ID0gKnJlc3VsdDsKLSAgICByZXR1cm4gb2Zmc2V0OwotfQotCi1PcHRpb25hbDx1bnNp
Z25lZD4gTGV4ZXI6OmNoYXJhY3RlcihjaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgb2Zmc2V0KSBj
b25zdAotewotICAgIGlmIChvZmZzZXQgPCBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkgJiYgbV9zdHJp
bmdWaWV3W29mZnNldF0gPT0gY2hhcmFjdGVyKQotICAgICAgICByZXR1cm4gb2Zmc2V0ICsgMTsK
LSAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6
OmNvcmVGbG9hdExpdGVyYWxUeXBlMSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Ci17Ci0gICAgYXV0
byByZXN1bHQgPSBkaWdpdChvZmZzZXQpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gcmVzdWx0MiA9IGRpZ2l0U3RhcigqcmVzdWx0KTsK
LSAgICBhdXRvIHJlc3VsdDMgPSBjaGFyYWN0ZXIoJy4nLCByZXN1bHQyKTsKLSAgICBpZiAoIXJl
c3VsdDMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIGRpZ2l0U3Rh
cigqcmVzdWx0Myk7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6Y29yZUZsb2F0TGl0
ZXJhbCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8gdHlwZTEgPSBjb3Jl
RmxvYXRMaXRlcmFsVHlwZTEob2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHR5cGUxOwotICAgIGF1
dG8gcmVzdWx0ID0gZGlnaXRTdGFyKG9mZnNldCk7Ci0gICAgYXV0byByZXN1bHQyID0gY2hhcmFj
dGVyKCcuJywgcmVzdWx0KTsKLSAgICBpZiAoIXJlc3VsdDIpCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgYXV0byByZXN1bHQzID0gZGlnaXQoKnJlc3VsdDIpOwotICAgIGlmICgh
cmVzdWx0MykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gZGlnaXRT
dGFyKCpyZXN1bHQzKTsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjpmbG9hdExpdGVy
YWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgPCBtX3N0cmluZ1Zp
ZXcubGVuZ3RoKCkgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPT0gJy0nKQotICAgICAgICArK29m
ZnNldDsKLSAgICBhdXRvIHJlc3VsdCA9IGNvcmVGbG9hdExpdGVyYWwob2Zmc2V0KTsKLSAgICBp
ZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBvZmZzZXQgPSAq
cmVzdWx0OwotICAgIGlmIChvZmZzZXQgPCBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkgJiYgbV9zdHJp
bmdWaWV3W29mZnNldF0gPT0gJ2YnKQotICAgICAgICArK29mZnNldDsKLSAgICByZXR1cm4gb2Zm
c2V0OwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6OnZhbGlkSWRlbnRpZmllcih1bnNp
Z25lZCBvZmZzZXQpIGNvbnN0Ci17Ci0gICAgaWYgKG9mZnNldCA+PSBtX3N0cmluZ1ZpZXcubGVu
Z3RoKCkKLSAgICAgICAgfHwgISgobV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJ2EnICYmIG1fc3Ry
aW5nVmlld1tvZmZzZXRdIDw9ICd6JykKLSAgICAgICAgICAgIHx8IChtX3N0cmluZ1ZpZXdbb2Zm
c2V0XSA+PSAnQScgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPD0gJ1onKQotICAgICAgICAgICAg
fHwgKG1fc3RyaW5nVmlld1tvZmZzZXRdID09ICdfJykpKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgICsrb2Zmc2V0OwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChv
ZmZzZXQgPj0gbV9zdHJpbmdWaWV3Lmxlbmd0aCgpCi0gICAgICAgICAgICB8fCAhKChtX3N0cmlu
Z1ZpZXdbb2Zmc2V0XSA+PSAnYScgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPD0gJ3onKQotICAg
ICAgICAgICAgICAgIHx8IChtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA+PSAnQScgJiYgbV9zdHJpbmdW
aWV3W29mZnNldF0gPD0gJ1onKQotICAgICAgICAgICAgICAgIHx8IChtX3N0cmluZ1ZpZXdbb2Zm
c2V0XSA+PSAnMCcgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPD0gJzknKQotICAgICAgICAgICAg
ICAgIHx8IChtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA9PSAnXycpKSkKLSAgICAgICAgICAgIHJldHVy
biBvZmZzZXQ7Ci0gICAgICAgICsrb2Zmc2V0OwotICAgIH0KLX0KLQotT3B0aW9uYWw8dW5zaWdu
ZWQ+IExleGVyOjppZGVudGlmaWVyKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsKLSAgICByZXR1
cm4gdmFsaWRJZGVudGlmaWVyKG9mZnNldCk7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhl
cjo6Y29tcGxldGVPcGVyYXRvck5hbWUodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIC8v
IFNvcnRlZCBieSBsZW5ndGgsIHNvIGxvbmdlciBtYXRjaGVzIGFyZSBwcmVmZXJhYmxlIHRvIHNo
b3J0ZXIgbWF0Y2hlcy4KLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIiZbXSIsIG9mZnNl
dCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gc3RyaW5n
KCJbXT0iLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJl
c3VsdCA9IHN0cmluZygiPj4iLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiPDwiLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiKysiLCBvZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiLS0iLCBv
ZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0
cmluZygiJiYiLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRv
IHJlc3VsdCA9IHN0cmluZygifHwiLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiPj0iLCBvZmZzZXQpKQotICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiPD0iLCBvZmZzZXQpKQot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IHN0cmluZygiPT0i
LCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9
IHN0cmluZygiW10iLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChh
dXRvIHJlc3VsdCA9IHN0cmluZygiJi4iLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gdmFsaWRJ
ZGVudGlmaWVyKCpyZXN1bHQpOwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3RlcignKycs
IG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0g
Y2hhcmFjdGVyKCctJywgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAo
YXV0byByZXN1bHQgPSBjaGFyYWN0ZXIoJyonLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3RlcignLycsIG9mZnNldCkpCi0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gY2hhcmFjdGVyKCclJywg
b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBj
aGFyYWN0ZXIoJzwnLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChh
dXRvIHJlc3VsdCA9IGNoYXJhY3RlcignPicsIG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gY2hhcmFjdGVyKCchJywgb2Zmc2V0KSkKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBjaGFyYWN0ZXIoJ34nLCBv
ZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNo
YXJhY3RlcignJicsIG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1
dG8gcmVzdWx0ID0gY2hhcmFjdGVyKCdeJywgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBjaGFyYWN0ZXIoJ3wnLCBvZmZzZXQpKQotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3RlcignLicsIG9m
ZnNldCkpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVzdWx0MiA9IHZhbGlkSWRlbnRpZmllcigqcmVz
dWx0KSkgewotICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0MyA9IGNoYXJhY3RlcignPScsICpy
ZXN1bHQyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0MzsKLSAgICAgICAgICAgIHJl
dHVybiAqcmVzdWx0MjsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXSExTTAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhl
ci5oCShyZXZpc2lvbiAyNDg1ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTExleGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2NSw0NCArMjY1LDEyIEBAIHBy
aXZhdGU6CiAgICAgfTsKICAgICBzdGF0aWMgTGluZUFuZENvbHVtbiBsaW5lQW5kQ29sdW1uTnVt
YmVyRnJvbU9mZnNldChjb25zdCBTdHJpbmdWaWV3JiwgdW5zaWduZWQgb2Zmc2V0KTsKIAotICAg
IE9wdGlvbmFsPFRva2VuOjpUeXBlPiByZWNvZ25pemVLZXl3b3JkKHVuc2lnbmVkIGVuZCk7Ci0K
LSAgICBPcHRpb25hbDx1bnNpZ25lZD4gY29yZURlY2ltYWxJbnRMaXRlcmFsKHVuc2lnbmVkKSBj
b25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gZGVjaW1hbEludExpdGVyYWwodW5zaWduZWQp
IGNvbnN0OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBkZWNpbWFsVWludExpdGVyYWwodW5zaWdu
ZWQpIGNvbnN0OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjb3JlSGV4YWRlY2ltYWxJbnRMaXRl
cmFsKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gaGV4YWRlY2ltYWxJ
bnRMaXRlcmFsKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gaGV4YWRl
Y2ltYWxVaW50TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+
IGludExpdGVyYWwodW5zaWduZWQpIGNvbnN0OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiB1aW50
TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRpZ2l0KHVu
c2lnbmVkKSBjb25zdDsKLSAgICB1bnNpZ25lZCBkaWdpdFN0YXIodW5zaWduZWQpIGNvbnN0Owot
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjaGFyYWN0ZXIoY2hhciwgdW5zaWduZWQpIGNvbnN0Owot
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjb3JlRmxvYXRMaXRlcmFsVHlwZTEodW5zaWduZWQpIGNv
bnN0OwotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjb3JlRmxvYXRMaXRlcmFsKHVuc2lnbmVkKSBj
b25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gZmxvYXRMaXRlcmFsKHVuc2lnbmVkKSBjb25z
dDsKLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGg+IE9wdGlvbmFsPHVuc2lnbmVkPiBzdHJp
bmcoY29uc3QgY2hhciAoJnN0cmluZylbbGVuZ3RoXSwgdW5zaWduZWQpIGNvbnN0OwotICAgIE9w
dGlvbmFsPHVuc2lnbmVkPiB2YWxpZElkZW50aWZpZXIodW5zaWduZWQpIGNvbnN0OwotICAgIE9w
dGlvbmFsPHVuc2lnbmVkPiBpZGVudGlmaWVyKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25h
bDx1bnNpZ25lZD4gY29tcGxldGVPcGVyYXRvck5hbWUodW5zaWduZWQpIGNvbnN0OwotCiAgICAg
U3RyaW5nVmlldyBtX3N0cmluZ1ZpZXc7CiAgICAgVG9rZW4gbV9yaW5nQnVmZmVyWzJdOwogICAg
IHVuc2lnbmVkIG1fcmluZ0J1ZmZlckluZGV4IHsgMCB9OwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0
IHsgMCB9OwogfTsKIAotdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBPcHRpb25hbDx1bnNpZ25l
ZD4gTGV4ZXI6OnN0cmluZyhjb25zdCBjaGFyICgmc3RyaW5nKVtsZW5ndGhdLCB1bnNpZ25lZCBv
ZmZzZXQpIGNvbnN0Ci17Ci0gICAgaWYgKG9mZnNldCArIGxlbmd0aCA+IG1fc3RyaW5nVmlldy5s
ZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgKytpKSB7Ci0gICAgICAgIGlmIChtX3N0cmluZ1ZpZXdb
b2Zmc2V0ICsgaV0gIT0gc3RyaW5nW2ldKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICB9Ci0gICAgcmV0dXJuIG9mZnNldCArIGxlbmd0aCAtIDE7Ci19Ci0KIFN0cmluZ1Zp
ZXcgVG9rZW46OnN0cmluZ1ZpZXcoY29uc3QgTGV4ZXImIGxleGVyKSBjb25zdAogewogICAgIHJl
dHVybiBsZXhlci5tX3N0cmluZ1ZpZXcuc3Vic3RyaW5nKGNvZGVMb2NhdGlvbi5zdGFydE9mZnNl
dCgpLCBjb2RlTG9jYXRpb24uZW5kT2Zmc2V0KCkgLSBjb2RlTG9jYXRpb24uc3RhcnRPZmZzZXQo
KSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDg1ODYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0wOC0xMiAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBbV0hMU0xdIE1ha2UgbGV4aW5nIGZhc3Rl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNTk2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJn
cHUvd2hsc2wvbGl0ZXJhbHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUv
d2hsc2wvbGl0ZXJhbHMuaHRtbDogQWRkZWQuCisKKzIwMTktMDgtMTIgIFNhYW0gQmFyYXRpICA8
c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBNYWtlIHVpbnQgbGl0ZXJhbHMg
d29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWJncHUvd2hsc2wvbGl0ZXJhbHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
cHUvd2hsc2wvbGl0ZXJhbHMuaHRtbDogQWRkZWQuCisKIDIwMTktMDgtMTIgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHRlc3QgdG8gZW5zdXJlIHRo
YXQgd2UgZGlzcGF0Y2gga2V5ZG93biBhbmQga2V5dXAgZXZlbnRzIHdoZW4gbXVsdGlwbGUga2V5
cyBhcmUgcHJlc3NlZCBhdCB0aGUgc2FtZSB0aW1lCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wvbGl0ZXJhbHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC9saXRlcmFscy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsL2xpdGVyYWxzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBsaXRlcmFscyAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsL2xpdGVyYWxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsL2xpdGVyYWxzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsL2xpdGVyYWxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2OSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IHByZWZpeC9wb3N0Zml4LjwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0ianMvdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Y29uc3Qgd2hsc2xUZXN0cyA9IHt9OworY29uc3QgZXBzaWxvbiA9IDAuMDAwMTsKKword2hsc2xU
ZXN0cy5saXRlcmFscyA9IGFzeW5jICgpID0+IHsKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAg
ICAgaW50IGEoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gLTEwOworICAgICAgICB9
CisgICAgICAgIGludCBiKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDEwOworICAg
ICAgICB9CisgICAgICAgIGludCBjKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIH0KKyAgICAgICAgZmxvYXQgZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiAuMTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBlKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIDEuOTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmKCkKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIC0uMTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBnKCkK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIC0xLjk7CisgICAgICAgIH0KKyAgICAgICAg
aW50IGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMHhiNGRCMzNGOworICAgICAg
ICB9CisgICAgICAgIGludCBpKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIC0weGI0
ZEIzM0Y7CisgICAgICAgIH0KKyAgICBgOworCisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
SW50RnVuY3Rpb24ocHJvZ3JhbSwgICJhIiwgW10pLCAtMTApOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICAiYiIsIFtdKSwgMTApOworICAgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICAiYyIsIFtdKSwgMCk7CisK
KyAgICBhc3NlcnRfYXBwcm94X2VxdWFscyhhd2FpdCBjYWxsRmxvYXRGdW5jdGlvbihwcm9ncmFt
LCAgImQiLCBbXSksIDAuMSwgZXBzaWxvbik7CisgICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoYXdh
aXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgICJlIiwgW10pLCAxLjksIGVwc2lsb24pOwor
ICAgIGFzc2VydF9hcHByb3hfZXF1YWxzKGF3YWl0IGNhbGxGbG9hdEZ1bmN0aW9uKHByb2dyYW0s
ICAiZiIsIFtdKSwgLTAuMSwgZXBzaWxvbik7CisgICAgYXNzZXJ0X2FwcHJveF9lcXVhbHMoYXdh
aXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgICJnIiwgW10pLCAtMS45LCBlcHNpbG9uKTsK
KworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICAiaCIs
IFtdKSwgMHhiNGRCMzNGKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlv
bihwcm9ncmFtLCAgImkiLCBbXSksIC0weGI0ZEIzM0YpOworfTsKKworcnVuVGVzdHMod2hsc2xU
ZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="391912"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376194</attachid>
            <date>2019-08-13 12:23:04 -0700</date>
            <delta_ts>2019-08-13 19:58:46 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>75647</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0ODYwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE5LTA4LTEzICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTF0gTWFrZSBsZXhpbmcg
ZmFzdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKworICAgICAg
ICBQcmV2aW91c2x5LCBvdXIgbGV4ZXIgd291bGQganVzdCBicmFuY2ggb24gYSBzZXJpZXMgb2Yg
c3RyaW5nIGNvbXBhcmVzLgorICAgICAgICBXZSdkIGhhdmUgY29kZSBsaWtlIHRoaXMgdG8gbWF0
Y2gga2V5d29yZHM6CisgICAgICAgIGBgYAorICAgICAgICAuLi4KKyAgICAgICAgaWYgKG1hdGNo
Q3VycmVudCgiZmFsc2UiKSkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZVRva2VuOworICAgICAg
ICBpZiAobWF0Y2hDdXJyZW50KCJ0cnVlIikpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZVRva2Vu
OworICAgICAgICAuLi4KKyAgICAgICAgYGBgCisgICAgICAgIAorICAgICAgICBIb3dldmVyLCB0
aGlzIGlzIGV4dHJlbWVseSBpbmVmZmljaWVudC4gV2Ugbm93IGxleCB1c2luZyBhIHRyaWUsIHdo
aWNoIG1lYW5zCisgICAgICAgIHdlIG5ldmVyIGJhY2t0cmFjayBpbiB0aGUgbGV4ZXIuCisgICAg
ICAgIAorICAgICAgICBUaGlzIHBhdGNoIGlzIGEgM21zIHNwZWVkdXAgaW4gY29tcHV0ZV9ib2lk
cy4KKworICAgICAgICBUZXN0czogd2ViZ3B1L3dobHNsL2xleGluZy5odG1sCisgICAgICAgICAg
ICAgICB3ZWJncHUvd2hsc2wvbGl0ZXJhbHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6aXNWYWxp
ZElkZW50aWZpZXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6aXNWYWxpZE5vblN0
YXJ0aW5nSWRlbnRpZmllckNoYXIpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OmlzSGV4YWRl
Y2ltYWxDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OmlzRGlnaXQpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVyOjpjb25zdW1lVG9rZW5Gcm9tU3RyZWFtKToKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpMZXhlcjo6cmVjb2duaXplS2V5d29yZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVEZWNpbWFsSW50TGl0ZXJhbCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmRlY2ltYWxJ
bnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpMZXhl
cjo6ZGVjaW1hbFVpbnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpMZXhlcjo6Y29yZUhleGFkZWNpbWFsSW50TGl0ZXJhbCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmhleGFkZWNpbWFsSW50TGl0ZXJhbCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmhleGFkZWNp
bWFsVWludExpdGVyYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkxleGVyOjppbnRMaXRlcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpMZXhlcjo6dWludExpdGVyYWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkxleGVyOjpkaWdpdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpXSExTTDo6TGV4ZXI6OmRpZ2l0U3RhciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpXSExTTDo6TGV4ZXI6OmNoYXJhY3RlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVGbG9hdExpdGVyYWxUeXBlMSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4ZXI6OmNvcmVGbG9hdExpdGVyYWwgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVyOjpmbG9hdExpdGVy
YWwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OkxleGVyOjp2YWxp
ZElkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Okxl
eGVyOjppZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpMZXhlcjo6Y29tcGxldGVPcGVyYXRvck5hbWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMTGV4ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldI
TFNMOjpMZXhlcjo6c3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKwogMjAxOS0wOC0xMyAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5
bGVzOiBzaG93IEBzdXBwb3J0cyBDU1MgZ3JvdXBpbmdzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAkocmV2aXNpb24gMjQ4
NTg2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MiwyNTAgKzI1MiwxNDI3IEBAIGNvbnN0IGNoYXIqIFRv
a2VuOjp0eXBlTmFtZShUeXBlIHR5cGUpCiAgICAgfQogfQogCi1hdXRvIExleGVyOjpyZWNvZ25p
emVLZXl3b3JkKHVuc2lnbmVkIGVuZCkgLT4gT3B0aW9uYWw8VG9rZW46OlR5cGU+CitzdGF0aWMg
QUxXQVlTX0lOTElORSBib29sIGlzVmFsaWRJZGVudGlmaWVyU3RhcnQoVUNoYXIgdGhlQ2hhcikK
IHsKLSAgICBhdXRvIHN1YnN0cmluZyA9IG1fc3RyaW5nVmlldy5zdWJzdHJpbmcobV9vZmZzZXQs
IGVuZCAtIG1fb2Zmc2V0KTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJzdHJ1Y3QiKQotICAgICAg
ICByZXR1cm4gVG9rZW46OlR5cGU6OlN0cnVjdDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJ0eXBl
ZGVmIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpUeXBlZGVmOwotICAgIGlmIChzdWJz
dHJpbmcgPT0gImVudW0iKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkVudW07Ci0gICAg
aWYgKHN1YnN0cmluZyA9PSAib3BlcmF0b3IiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6
Ok9wZXJhdG9yOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImlmIikKLSAgICAgICAgcmV0dXJuIFRv
a2VuOjpUeXBlOjpJZjsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJlbHNlIikKLSAgICAgICAgcmV0
dXJuIFRva2VuOjpUeXBlOjpFbHNlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImNvbnRpbnVlIikK
LSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpDb250aW51ZTsKLSAgICBpZiAoc3Vic3RyaW5n
ID09ICJicmVhayIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6QnJlYWs7Ci0gICAgaWYg
KHN1YnN0cmluZyA9PSAic3dpdGNoIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTd2l0
Y2g7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiY2FzZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6
VHlwZTo6Q2FzZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJkZWZhdWx0IikKLSAgICAgICAgcmV0
dXJuIFRva2VuOjpUeXBlOjpEZWZhdWx0OwotICAgIGlmIChzdWJzdHJpbmcgPT0gImZhbGx0aHJv
dWdoIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpGYWxsdGhyb3VnaDsKLSAgICBpZiAo
c3Vic3RyaW5nID09ICJmb3IiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkZvcjsKLSAg
ICBpZiAoc3Vic3RyaW5nID09ICJ3aGlsZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6
V2hpbGU7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiZG8iKQotICAgICAgICByZXR1cm4gVG9rZW46
OlR5cGU6OkRvOwotICAgIGlmIChzdWJzdHJpbmcgPT0gInJldHVybiIpCi0gICAgICAgIHJldHVy
biBUb2tlbjo6VHlwZTo6UmV0dXJuOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIm51bGwiKQotICAg
ICAgICByZXR1cm4gVG9rZW46OlR5cGU6Ok51bGw7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAidHJ1
ZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6VHJ1ZTsKLSAgICBpZiAoc3Vic3RyaW5n
ID09ICJmYWxzZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6RmFsc2U7Ci0gICAgaWYg
KHN1YnN0cmluZyA9PSAiY29uc3RhbnQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkNv
bnN0YW50OwotICAgIGlmIChzdWJzdHJpbmcgPT0gImRldmljZSIpCi0gICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6RGV2aWNlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gInRocmVhZGdyb3VwIikK
LSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpUaHJlYWRncm91cDsKLSAgICBpZiAoc3Vic3Ry
aW5nID09ICJ0aHJlYWQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlRocmVhZDsKLSAg
ICBpZiAoc3Vic3RyaW5nID09ICJzcGFjZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6
U3BhY2U7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAidmVydGV4IikKLSAgICAgICAgcmV0dXJuIFRv
a2VuOjpUeXBlOjpWZXJ0ZXg7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiZnJhZ21lbnQiKQotICAg
ICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkZyYWdtZW50OwotICAgIGlmIChzdWJzdHJpbmcgPT0g
ImNvbXB1dGUiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkNvbXB1dGU7Ci0gICAgaWYg
KHN1YnN0cmluZyA9PSAibnVtdGhyZWFkcyIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6
TnVtVGhyZWFkczsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJTVl9JbnN0YW5jZUlEIikKLSAgICAg
ICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTVkluc3RhbmNlSUQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9
PSAiU1ZfVmVydGV4SUQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWVmVydGV4SUQ7
Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiUFNJWkUiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5
cGU6OlBTaXplOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNWX1Bvc2l0aW9uIikKLSAgICAgICAg
cmV0dXJuIFRva2VuOjpUeXBlOjpTVlBvc2l0aW9uOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNW
X0lzRnJvbnRGYWNlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpTVklzRnJvbnRGYWNl
OwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNWX1NhbXBsZUluZGV4IikKLSAgICAgICAgcmV0dXJu
IFRva2VuOjpUeXBlOjpTVlNhbXBsZUluZGV4OwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNWX0lu
bmVyQ292ZXJhZ2UiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWSW5uZXJDb3ZlcmFn
ZTsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJTVl9UYXJnZXQiKSAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTgwNyBNYWtlIHRoaXMgd29yayB3aXRo
IHN0cmluZ3MgbGlrZSAiU1ZfVGFyZ2V0MCIuCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6
U1ZUYXJnZXQ7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfRGVwdGgiKQotICAgICAgICByZXR1
cm4gVG9rZW46OlR5cGU6OlNWRGVwdGg7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfQ292ZXJh
Z2UiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWQ292ZXJhZ2U7Ci0gICAgaWYgKHN1
YnN0cmluZyA9PSAiU1ZfRGlzcGF0Y2hUaHJlYWRJRCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6
VHlwZTo6U1ZEaXNwYXRjaFRocmVhZElEOwotICAgIGlmIChzdWJzdHJpbmcgPT0gIlNWX0dyb3Vw
SUQiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlNWR3JvdXBJRDsKLSAgICBpZiAoc3Vi
c3RyaW5nID09ICJTVl9Hcm91cEluZGV4IikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpT
Vkdyb3VwSW5kZXg7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAiU1ZfR3JvdXBUaHJlYWRJRCIpCi0g
ICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U1ZHcm91cFRocmVhZElEOwotICAgIGlmIChzdWJz
dHJpbmcgPT0gImF0dHJpYnV0ZSIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6QXR0cmli
dXRlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gInJlZ2lzdGVyIikKLSAgICAgICAgcmV0dXJuIFRv
a2VuOjpUeXBlOjpSZWdpc3RlcjsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJzcGVjaWFsaXplZCIp
Ci0gICAgICAgIHJldHVybiBUb2tlbjo6VHlwZTo6U3BlY2lhbGl6ZWQ7Ci0gICAgaWYgKHN1YnN0
cmluZyA9PSAibmF0aXZlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpOYXRpdmU7Ci0g
ICAgaWYgKHN1YnN0cmluZyA9PSAicmVzdHJpY3RlZCIpCi0gICAgICAgIHJldHVybiBUb2tlbjo6
VHlwZTo6UmVzdHJpY3RlZDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJfIikKLSAgICAgICAgcmV0
dXJuIFRva2VuOjpUeXBlOjpVbmRlcnNjb3JlOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImF1dG8i
KQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OkF1dG87Ci0gICAgaWYgKHN1YnN0cmluZyA9
PSAicHJvdG9jb2wiKQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlByb3RvY29sOwotICAg
IGlmIChzdWJzdHJpbmcgPT0gImNvbnN0IikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpD
b25zdDsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJzdGF0aWMiKQotICAgICAgICByZXR1cm4gVG9r
ZW46OlR5cGU6OlN0YXRpYzsKLSAgICBpZiAoc3Vic3RyaW5nID09ICJub2ludGVycG9sYXRpb24i
KQotICAgICAgICByZXR1cm4gVG9rZW46OlR5cGU6OlF1YWxpZmllcjsKLSAgICBpZiAoc3Vic3Ry
aW5nID09ICJub3BlcnNwZWN0aXZlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpRdWFs
aWZpZXI7Ci0gICAgaWYgKHN1YnN0cmluZyA9PSAidW5pZm9ybSIpCi0gICAgICAgIHJldHVybiBU
b2tlbjo6VHlwZTo6UXVhbGlmaWVyOwotICAgIGlmIChzdWJzdHJpbmcgPT0gImNlbnRyb2lkIikK
LSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpRdWFsaWZpZXI7Ci0gICAgaWYgKHN1YnN0cmlu
ZyA9PSAic2FtcGxlIikKLSAgICAgICAgcmV0dXJuIFRva2VuOjpUeXBlOjpRdWFsaWZpZXI7Ci0g
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gKHRoZUNoYXIgPj0gJ2EnICYmIHRo
ZUNoYXIgPD0gJ3onKQorICAgICAgICB8fCAodGhlQ2hhciA+PSAnQScgJiYgdGhlQ2hhciA8PSAn
WicpCisgICAgICAgIHx8ICh0aGVDaGFyID09ICdfJyk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5M
SU5FIGJvb2wgaXNWYWxpZE5vblN0YXJ0aW5nSWRlbnRpZmllckNoYXIoVUNoYXIgdGhlQ2hhcikK
K3sKKyAgICByZXR1cm4gKHRoZUNoYXIgPj0gJ2EnICYmIHRoZUNoYXIgPD0gJ3onKQorICAgICAg
ICB8fCAodGhlQ2hhciA+PSAnQScgJiYgdGhlQ2hhciA8PSAnWicpCisgICAgICAgIHx8ICh0aGVD
aGFyID49ICcwJyAmJiB0aGVDaGFyIDw9ICc5JykKKyAgICAgICAgfHwgKHRoZUNoYXIgPT0gJ18n
KTsKK30KKworc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0hleGFkZWNpbWFsQ2hhcmFjdGVy
KFVDaGFyIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gKGNoYXJhY3RlciA+PSAnMCcgJiYgY2hh
cmFjdGVyIDw9ICc5JykKKyAgICAgICAgfHwgKGNoYXJhY3RlciA+PSAnYScgJiYgY2hhcmFjdGVy
IDw9ICdmJykKKyAgICAgICAgfHwgKGNoYXJhY3RlciA+PSAnQScgJiYgY2hhcmFjdGVyIDw9ICdG
Jyk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNEaWdpdChVQ2hhciB0aGVDaGFy
KQoreworICAgIHJldHVybiB0aGVDaGFyID49ICcwJyAmJiB0aGVDaGFyIDw9ICc5JzsKIH0KIAog
YXV0byBMZXhlcjo6Y29uc3VtZVRva2VuRnJvbVN0cmVhbSgpIC0+IFRva2VuCiB7Ci0gICAgYXV0
byBwcmVwYXJlID0gWyZdKHVuc2lnbmVkIG5ld09mZnNldCwgVG9rZW46OlR5cGUgdHlwZSkgLT4g
VG9rZW4geworICAgIFVDaGFyIGN1cnJlbnQgPSAwOworICAgIHVuc2lnbmVkIG9mZnNldCA9IG1f
b2Zmc2V0OworCisgICAgYXV0byBwZWVrID0gWyZdICgpIC0+IFVDaGFyIHsKKyAgICAgICAgaWYg
KG9mZnNldCA8IG1fc3RyaW5nVmlldy5sZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiBtX3N0
cmluZ1ZpZXdbb2Zmc2V0XTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfTsKKworICAgIGF1dG8g
c2hpZnQgPSBbJl0geworICAgICAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgp
KSB7CisgICAgICAgICAgICBjdXJyZW50ID0gbV9zdHJpbmdWaWV3W29mZnNldF07CisgICAgICAg
ICAgICArK29mZnNldDsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50OworICAgICAgICB9Cisg
ICAgICAgIGN1cnJlbnQgPSAwOworICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICB9OworCisg
ICAgYXV0byBjb25zdW1lID0gWyZdIChVQ2hhciB0aGVDaGFyKSB7CisgICAgICAgIGlmIChwZWVr
KCkgPT0gdGhlQ2hhcikgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAg
YXV0byBuZXh0SXNJZGVudGlmaWVyID0gWyZdIHsKKyAgICAgICAgcmV0dXJuIGlzVmFsaWROb25T
dGFydGluZ0lkZW50aWZpZXJDaGFyKHBlZWsoKSk7CisgICAgfTsKKworICAgIGF1dG8gdG9rZW4g
PSBbJl0gKFRva2VuOjpUeXBlIHR5cGUpIC0+IFRva2VuIHsKICAgICAgICAgYXV0byBvbGRPZmZz
ZXQgPSBtX29mZnNldDsKLSAgICAgICAgbV9vZmZzZXQgPSBuZXdPZmZzZXQ7CisgICAgICAgIG1f
b2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICBza2lwV2hpdGVzcGFjZUFuZENvbW1lbnRzKCk7Ci0g
ICAgICAgIHJldHVybiB7IHsgb2xkT2Zmc2V0LCBuZXdPZmZzZXQgfSwgdHlwZSB9OworICAgICAg
ICByZXR1cm4geyB7IG9sZE9mZnNldCwgb2Zmc2V0IH0sIHR5cGUgfTsKICAgICB9OwogCi0gICAg
aWYgKGF1dG8gbmV3T2Zmc2V0ID0gaWRlbnRpZmllcihtX29mZnNldCkpIHsKLSAgICAgICAgaWYg
KGF1dG8gcmVzdWx0ID0gcmVjb2duaXplS2V5d29yZCgqbmV3T2Zmc2V0KSkgewotICAgICAgICAg
ICAgaWYgKCpyZXN1bHQgPT0gVG9rZW46OlR5cGU6Ok9wZXJhdG9yKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGF1dG8gbmV3ZXJPZmZzZXQgPSBjb21wbGV0ZU9wZXJhdG9yTmFtZSgqbmV3T2Zmc2V0
KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld2VyT2Zmc2V0LCBUb2tl
bjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICBzd2l0Y2ggKHNoaWZ0KCkpIHsKKyAgICBjYXNl
ICdBJzoKKyAgICBjYXNlICdCJzoKKyAgICBjYXNlICdDJzoKKyAgICBjYXNlICdEJzoKKyAgICBj
YXNlICdFJzoKKyAgICBjYXNlICdGJzoKKyAgICBjYXNlICdHJzoKKyAgICBjYXNlICdIJzoKKyAg
ICBjYXNlICdJJzoKKyAgICBjYXNlICdKJzoKKyAgICBjYXNlICdLJzoKKyAgICBjYXNlICdMJzoK
KyAgICBjYXNlICdNJzoKKyAgICBjYXNlICdOJzoKKyAgICBjYXNlICdPJzoKKyAgICBjYXNlICdR
JzoKKyAgICBjYXNlICdSJzoKKyAgICBjYXNlICdUJzoKKyAgICBjYXNlICdVJzoKKyAgICBjYXNl
ICdWJzoKKyAgICBjYXNlICdXJzoKKyAgICBjYXNlICdYJzoKKyAgICBjYXNlICdZJzoKKyAgICBj
YXNlICdaJzoKKyAgICBjYXNlICdnJzoKKyAgICBjYXNlICdoJzoKKyAgICBjYXNlICdqJzoKKyAg
ICBjYXNlICdrJzoKKyAgICBjYXNlICdsJzoKKyAgICBjYXNlICdtJzoKKyAgICBjYXNlICdxJzoK
KyAgICBjYXNlICd4JzoKKyAgICBjYXNlICd5JzoKKyAgICBjYXNlICd6JzoKK3BhcnNlSWRlbnRp
ZmllcjoKKyAgICAgICAgd2hpbGUgKGlzVmFsaWROb25TdGFydGluZ0lkZW50aWZpZXJDaGFyKHBl
ZWsoKSkpCisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OklkZW50aWZpZXIpOworCisgICAgY2FzZSAncyc6CisgICAgICAgIHN3aXRjaCAocGVl
aygpKSB7CisgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnbScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdwJykpCisgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UXVhbGlmaWVy
KTsKKworICAgICAgICBjYXNlICd3JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J2gnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlN3aXRjaCk7CisK
KyAgICAgICAgY2FzZSAndCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dp
dGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ3InOgorICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnYycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTdHJ1Y3QpOworICAgICAgICAgICAgY2FzZSAn
YSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlN0YXRp
Yyk7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSAncCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkp
IHsKKyAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNwYWNl
KTsKKyAgICAgICAgICAgIGNhc2UgJ2UnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
aScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ3onKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnZCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4o
VG9rZW46OlR5cGU6OlNwZWNpYWxpemVkKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCAqcmVzdWx0KTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNl
ICdTJzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCdWJykpCisgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdfJykpCisgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKworICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBj
YXNlICdHJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J3InKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKworICAgICAgICAgICAgc3dpdGNoIChwZWVr
KCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdE
JzoKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6
OlNWR3JvdXBJRCk7CisgICAgICAgICAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgneCcpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpTVkdyb3VwSW5kZXgpOworCisgICAgICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnaCcpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdJJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnRCcpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWR3Jv
dXBUaHJlYWRJRCk7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgJ0QnOgorICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAg
ICAgICBjYXNlICdlJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6
VHlwZTo6U1ZEZXB0aCk7CisgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAgICAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8g
cGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAg
ICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
VCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdkJykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnSScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ0QnKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJ
c0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkRpc3BhdGNoVGhy
ZWFkSUQpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3YnKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZycpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkNv
dmVyYWdlKTsKKyAgICAgICAgY2FzZSAnVCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZycpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6OlNWVGFyZ2V0KTsKKyAgICAgICAgY2FzZSAnUyc6CisgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ20nKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
cCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnSScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdu
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd4JykpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRp
ZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVlNhbXBsZUluZGV4KTsKKyAgICAgICAgY2Fz
ZSAnUCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdv
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ3MnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2kn
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpTVlBvc2l0aW9uKTsKKyAgICAgICAgY2FzZSAnVic6CisgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3gnKSkKKyAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnSScpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdEJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVlZl
cnRleElEKTsKKyAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdGJykpCisgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlm
ICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdu
JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ0YnKSkKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdhJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpT
VklzRnJvbnRGYWNlKTsKKyAgICAgICAgICAgIGNhc2UgJ24nOgorICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlICduJzoKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisg
ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdDJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdvJykp
CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd2JykpCisgICAgICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdl
JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCdhJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdnJykpCisgICAgICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNWSW5uZXJDb3ZlcmFnZSk7CisgICAgICAgICAgICAg
ICAgY2FzZSAncyc6CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycp
KQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgn
SScpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnRCcpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJ
ZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpTVkluc3Rh
bmNlSUQpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICB9CisKKyAgICBjYXNlICd0JzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAg
ICAgICAgY2FzZSAncic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OlRydWUpOworICAgICAgICBjYXNlICd5JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdk
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6VHlwZWRlZik7CisgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgnZCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworCisgICAgICAgICAgICBpZiAoIW5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlRocmVhZCk7CisKKyAgICAgICAgICAg
IGlmIChwZWVrKCkgIT0gJ2cnKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVy
OworCisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY3Vy
cmVudCA9PSAnZycpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28n
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgndScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdwJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpUaHJlYWRncm91cCk7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9CisKKyAgICBjYXNlICdlJzoKKyAg
ICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ20nKSkKKyAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0
SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkVudW0pOworICAgICAgICBjYXNl
ICdsJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3Mn
KSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlm
ICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
RWxzZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgfQorCisgICAgY2FzZSAnbyc6CisgICAgICAgIGlmICghY29uc3VtZSgncCcp
KQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3Vt
ZSgnZScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICgh
Y29uc3VtZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
IGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKworICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgewor
ICAgICAgICBjYXNlICcmJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0
Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAnWyc6CisgICAgICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY29uc3VtZSgnXScpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZhbGlkKTsKKyAgICAgICAgICAgIGNh
c2UgJyYnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICAgICAgY2FzZSAnLic6
CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRJ
ZGVudGlmaWVyU3RhcnQocGVlaygpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgICAgIHdoaWxlIChpc1ZhbGlkTm9uU3RhcnRpbmdJZGVudGlmaWVyQ2hhcihwZWVrKCkp
KQorICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgJ1snOgorICAgICAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgICAgIGlmICghY29uc3VtZSgnXScpKQorICAgICAgICAgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6SW52YWxpZCk7CisgICAgICAgICAgICBjb25zdW1lKCc9Jyk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAg
ICAgICAgY2FzZSAnPic6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKGNv
bnN1bWUoJz4nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9w
ZXJhdG9yTmFtZSk7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNl
ICc8JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPCcp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1l
KTsKKyAgICAgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICAgICAgcmV0dXJuIHRv
a2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOworCisgICAgICAgIGNhc2UgJysnOgorICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGNvbnN1bWUoJysnKTsKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNl
ICctJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBjb25zdW1lKCctJyk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAg
ICAgICAgY2FzZSAnfCc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgY29uc3Vt
ZSgnfCcpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5h
bWUpOworCisgICAgICAgIGNhc2UgJz0nOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnPScpKQorICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6SW52YWxpZCk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6
Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnKic6CisgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5hbWUpOwor
CisgICAgICAgIGNhc2UgJy8nOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHJl
dHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBjYXNlICcl
JzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnISc6CisgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpPcGVyYXRvck5h
bWUpOworCisgICAgICAgIGNhc2UgJ34nOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3BlcmF0b3JOYW1lKTsKKworICAgICAgICBj
YXNlICdeJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4o
VG9rZW46OlR5cGU6Ok9wZXJhdG9yTmFtZSk7CisKKyAgICAgICAgY2FzZSAnLic6CisgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSWRlbnRpZmllclN0YXJ0KHBl
ZWsoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnZhbGlk
KTsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICB3aGlsZSAoaXNWYWxpZE5vblN0
YXJ0aW5nSWRlbnRpZmllckNoYXIocGVlaygpKSkKKyAgICAgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgY29uc3VtZSgnPScpOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpPcGVyYXRvck5hbWUpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok9wZXJh
dG9yKTsKKworICAgIGNhc2UgJ2knOgorICAgICAgICBpZiAoIWNvbnN1bWUoJ2YnKSkKKyAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6SWYpOworCisgICAgY2FzZSAnYyc6CisgICAgICAgIHN3aXRjaCAo
cGVlaygpKSB7CisgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigp
KQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDYXNlKTsKKworICAgICAgICBjYXNlICdlJzoKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ24nKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgn
dCcpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdk
JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBp
ZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOwor
ICAgICAgICBjYXNlICdvJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBzd2l0
Y2ggKHBlZWsoKSkgeworICAgICAgICAgICAgY2FzZSAnbSc6CisgICAgICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCd1JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDb21wdXRl
KTsKKyAgICAgICAgICAgIGNhc2UgJ24nOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICAgICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICd0JzoK
KyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5
cGU6OkNvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisg
ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKworICAgICAgICAg
ICAgICAgICAgICBpZiAoIW5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6Q29uc3QpOworCisgICAgICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnbicpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVy
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDb25zdGFudCk7CisKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICB9
CisKKyAgICBjYXNlICdiJzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdhJykp
CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1l
KCdrJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKG5l
eHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkJyZWFrKTsKKworICAgIGNhc2UgJ2QnOgor
ICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICdvJzoKKyAgICAgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpEbyk7CisgICAgICAgIGNhc2UgJ2UnOgorICAgICAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgICAgICBjYXNlICdmJzoKKyAg
ICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScp
KQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdsJykpCisgICAgICAgICAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29u
c3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OkRlZmF1bHQpOworICAgICAgICAgICAgY2FzZSAndic6CisgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFj
b25zdW1lKCdjJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkRldmljZSk7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmll
cjsKKyAgICAgICAgfQorCisKKyAgICBjYXNlICdmJzoKKyAgICAgICAgc3dpdGNoIChwZWVrKCkp
IHsKKyAgICAgICAgY2FzZSAnbyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdyJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpGb3IpOworICAgICAgICBjYXNlICdyJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2EnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnZycpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdtJykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIGlmICghY29uc3VtZSgnbicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQor
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpGcmFnbWVudCk7CisgICAgICAgIGNhc2UgJ2EnOgorICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgnbCcpKQorICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworCisgICAgICAgICAgICBzd2l0Y2ggKHBlZWso
KSkgeworICAgICAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisg
ICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAg
IGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1l
KCd1JykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnZycpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2gnKSkKKyAgICAg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGYWxsdGhy
b3VnaCk7CisKKyAgICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RmFsc2UpOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgY2FzZSAnZSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ2YnOgorICAgICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgndScpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2wnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0Jykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
RGVmYXVsdCk7CisgICAgICAgICAgICBjYXNlICd2JzoKKyAgICAgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgICAg
ICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2Mn
KSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAg
ICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIHJl
dHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RGV2aWNlKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICB9CisKKyAgICBjYXNlICd3JzoKKyAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25zdW1lKCds
JykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFjb25z
dW1lKCdlJykpCisgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgaWYg
KG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOwor
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OldoaWxlKTsKKworICAgIGNhc2UgJ3In
OgorICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgeworICAgICAgICBjYXNlICd0JzoKKyAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3UnKSkKKyAgICAg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAg
ICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAg
IGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpSZXR1cm4pOworICAgICAgICBjYXNlICdnJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNl
SWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd0Jykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6UmVnaXN0ZXIpOworICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdpJykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICBpZiAoIWNvbnN1bWUoJ2MnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRp
ZmllcjsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdlJykpCisgICAg
ICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1
bWUoJ2QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJlc3RyaWN0
ZWQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgIH0KKworICAgIGNhc2UgJ24nOgorICAgICAgICBzd2l0Y2ggKHBlZWsoKSkgewor
ICAgICAgICBjYXNlICdhJzoKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd2JykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChu
ZXh0SXNJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok5hdGl2ZSk7CisgICAgICAg
IGNhc2UgJ3UnOgorICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAocGVl
aygpKSB7CisgICAgICAgICAgICBjYXNlICdsJzoKKyAgICAgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dElzSWRlbnRpZmll
cigpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok51bGwpOworICAgICAgICAgICAgY2Fz
ZSAnbSc6CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNv
bnN1bWUoJ3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdoJykpCisgICAgICAgICAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgncicpKQor
ICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdhJykpCisgICAgICAgICAgICAg
ICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3Vt
ZSgnZCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3MnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkK
KyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpOdW1UaHJlYWRzKTsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgY2FzZSAnbyc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgc3dpdGNoIChwZWVrKCkpIHsKKyAgICAgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCduJykpCisgICAgICAg
ICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgndCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykp
CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAg
ICAgIGlmICghY29uc3VtZSgncCcpKQorICAgICAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRl
bnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdsJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYScpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J24nKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpU
eXBlOjpRdWFsaWZpZXIpOworICAgICAgICAgICAgY2FzZSAncCc6CisgICAgICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAg
ICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgaWYgKCFjb25z
dW1lKCdyJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgICAgIGlmICghY29uc3VtZSgncycpKQorICAgICAgICAgICAgICAgICAgICBnb3Rv
IHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3AnKSkKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAg
aWYgKCFjb25zdW1lKCdlJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAgICAgICAgICAgICAg
ICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWUo
J3QnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
ICAgICAgICAgaWYgKCFjb25zdW1lKCdpJykpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZSgndicpKQorICAgICAg
ICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAg
ICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2Vu
KFRva2VuOjpUeXBlOjpRdWFsaWZpZXIpOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKwor
ICAgIGNhc2UgJ3YnOgorICAgICAgICBpZiAoIWNvbnN1bWUoJ2UnKSkKKyAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ3InKSkKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkKKyAg
ICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ2Un
KSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1
bWUoJ3gnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAo
bmV4dElzSWRlbnRpZmllcigpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6VmVydGV4KTsKKworICAgIGNhc2UgJ1An
OgorICAgICAgICBpZiAoIWNvbnN1bWUoJ1MnKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVu
dGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ0knKSkKKyAgICAgICAgICAgIGdvdG8gcGFy
c2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ1onKSkKKyAgICAgICAgICAgIGdv
dG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAoIWNvbnN1bWUoJ0UnKSkKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICBpZiAobmV4dElzSWRlbnRpZmllcigp
KQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6UFNpemUpOworCisgICAgY2FzZSAndSc6CisgICAgICAgIGlmICghY29u
c3VtZSgnbicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlm
ICghY29uc3VtZSgnaScpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAg
ICAgIGlmICghY29uc3VtZSgnZicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7
CisgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJz
ZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbScpKQorICAgICAgICAgICAgZ290
byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisgICAg
ICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpRdWFsaWZpZXIpOworCisgICAgY2FzZSAncCc6CisgICAgICAgIGlmICghY29uc3Vt
ZSgncicpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICgh
Y29uc3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAg
IGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7Cisg
ICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZp
ZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnYycpKQorICAgICAgICAgICAgZ290byBwYXJzZUlk
ZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbycpKQorICAgICAgICAgICAgZ290byBw
YXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmICghY29uc3VtZSgnbCcpKQorICAgICAgICAgICAg
Z290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkpCisg
ICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpQcm90b2NvbCk7CisKKyAgICBjYXNlICdfJzoKKyAgICAgICAgaWYgKG5leHRJ
c0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAg
ICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlVuZGVyc2NvcmUpOworCisgICAgY2FzZSAnYSc6
CisgICAgICAgIHN3aXRjaCAocGVlaygpKSB7CisgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmICghY29uc3VtZSgndCcpKQorICAgICAgICAgICAg
ICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCdyJykp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAo
IWNvbnN1bWUoJ2knKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGlmICghY29uc3VtZSgnYicpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJ
ZGVudGlmaWVyOworICAgICAgICAgICAgaWYgKCFjb25zdW1lKCd1JykpCisgICAgICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ3QnKSkK
KyAgICAgICAgICAgICAgICBnb3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmICgh
Y29uc3VtZSgnZScpKQorICAgICAgICAgICAgICAgIGdvdG8gcGFyc2VJZGVudGlmaWVyOworICAg
ICAgICAgICAgaWYgKG5leHRJc0lkZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICBnb3RvIHBh
cnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6QXR0
cmlidXRlKTsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgaWYgKCFjb25zdW1lKCd0JykpCisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50
aWZpZXI7CisgICAgICAgICAgICBpZiAoIWNvbnN1bWUoJ28nKSkKKyAgICAgICAgICAgICAgICBn
b3RvIHBhcnNlSWRlbnRpZmllcjsKKyAgICAgICAgICAgIGlmIChuZXh0SXNJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICAgICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgICAgICByZXR1
cm4gdG9rZW4oVG9rZW46OlR5cGU6OkF1dG8pOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgZ290byBwYXJzZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgIGNhc2UgJz4nOgorICAg
ICAgICBpZiAoY29uc3VtZSgnPicpKSB7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPScpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6UmlnaHRTaGlmdEVxdWFs
cyk7CisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlJpZ2h0U2hpZnQpOwor
ICAgICAgICB9CisgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICByZXR1cm4g
dG9rZW4oVG9rZW46OlR5cGU6OkdyZWF0ZXJUaGFuT3JFcXVhbFRvKTsKKyAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpHcmVhdGVyVGhhblNpZ24pOworICAgIGNhc2UgJzwnOgorICAg
ICAgICBpZiAoY29uc3VtZSgnPCcpKSB7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgnPScpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TGVmdFNoaWZ0RXF1YWxz
KTsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TGVmdFNoaWZ0KTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRv
a2VuKFRva2VuOjpUeXBlOjpMZXNzVGhhbk9yRXF1YWxUbyk7CisgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6TGVzc1RoYW5TaWduKTsKKworICAgIGNhc2UgJysnOgorICAgICAgICBp
ZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpQ
bHVzRXF1YWxzKTsKKyAgICAgICAgaWYgKGNvbnN1bWUoJysnKSkKKyAgICAgICAgICAgIHJldHVy
biB0b2tlbihUb2tlbjo6VHlwZTo6UGx1c1BsdXMpOworICAgICAgICByZXR1cm4gdG9rZW4oVG9r
ZW46OlR5cGU6OlBsdXMpOworCisgICAgY2FzZSAnLSc6CisgICAgICAgIGlmIChjb25zdW1lKCc9
JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok1pbnVzRXF1YWxzKTsK
KyAgICAgICAgaWYgKGNvbnN1bWUoJy0nKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6TWludXNNaW51cyk7CisgICAgICAgIGlmIChjb25zdW1lKCc+JykpCisgICAgICAg
ICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OkFycm93KTsKKyAgICAgICAgaWYgKGlzRGln
aXQocGVlaygpKSkgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGdvdG8gcGFy
c2VOdW1iZXI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbnN1bWUoJy4nKSkKKyAgICAgICAg
ICAgIGdvdG8gcGFyc2VGbG9hdEFmdGVyRG90OworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6Ok1pbnVzKTsKKworICAgIGNhc2UgJyonOgorICAgICAgICBpZiAoY29uc3VtZSgnPScp
KQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpUaW1lc0VxdWFscyk7Cisg
ICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6U3Rhcik7CisKKyAgICBjYXNlICcvJzoK
KyAgICAgICAgaWYgKGNvbnN1bWUoJz0nKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6RGl2aWRlRXF1YWxzKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpEaXZpZGUpOworCisgICAgY2FzZSAnJSc6CisgICAgICAgIGlmIChjb25zdW1lKCc9JykpCisg
ICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Ok1vZEVxdWFscyk7CisgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6TW9kKTsKKworICAgIGNhc2UgJ14nOgorICAgICAg
ICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpYb3JFcXVhbHMpOworICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6Olhvcik7CisK
KyAgICBjYXNlICcmJzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJz0nKSkKKyAgICAgICAgICAgIHJl
dHVybiB0b2tlbihUb2tlbjo6VHlwZTo6QW5kRXF1YWxzKTsKKyAgICAgICAgaWYgKGNvbnN1bWUo
JyYnKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6QW5kQW5kKTsKKyAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpBbmQpOworCisgICAgY2FzZSAnfCc6Cisg
ICAgICAgIGlmIChjb25zdW1lKCc9JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46
OlR5cGU6Ok9yRXF1YWxzKTsKKyAgICAgICAgaWYgKGNvbnN1bWUoJ3wnKSkKKyAgICAgICAgICAg
IHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6T3JPcik7CisgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6T3IpOworCisgICAgY2FzZSAnWyc6CisgICAgICAgIGlmIChjb25zdW1lKCdd
JykpCisgICAgICAgICAgICByZXR1cm4gdG9rZW4oVG9rZW46OlR5cGU6OlNxdWFyZUJyYWNrZXRQ
YWlyKTsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0U3F1YXJlQnJhY2tl
dCk7CisKKyAgICBjYXNlICc9JzoKKyAgICAgICAgaWYgKGNvbnN1bWUoJz0nKSkKKyAgICAgICAg
ICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RXF1YWxDb21wYXJpc29uKTsKKyAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpFcXVhbHNTaWduKTsKKworICAgIGNhc2UgJyEnOgor
ICAgICAgICBpZiAoY29uc3VtZSgnPScpKQorICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2Vu
OjpUeXBlOjpOb3RFcXVhbCk7CisgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6RXhj
bGFtYXRpb25Qb2ludCk7CisKKyAgICBjYXNlICc7JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRv
a2VuOjpUeXBlOjpTZW1pY29sb24pOworCisgICAgY2FzZSAneyc6CisgICAgICAgIHJldHVybiB0
b2tlbihUb2tlbjo6VHlwZTo6TGVmdEN1cmx5QnJhY2tldCk7CisKKyAgICBjYXNlICd9JzoKKyAg
ICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpSaWdodEN1cmx5QnJhY2tldCk7CisKKyAg
ICBjYXNlICc6JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDb2xvbik7CisK
KyAgICBjYXNlICcsJzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpDb21tYSk7
CisKKyAgICBjYXNlICcoJzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpMZWZ0
UGFyZW50aGVzaXMpOworCisgICAgY2FzZSAnKSc6CisgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6UmlnaHRQYXJlbnRoZXNpcyk7CisKKyAgICBjYXNlICddJzoKKyAgICAgICAgcmV0
dXJuIHRva2VuKFRva2VuOjpUeXBlOjpSaWdodFNxdWFyZUJyYWNrZXQpOworCisgICAgY2FzZSAn
Lic6CisgICAgICAgIGlmIChpc0RpZ2l0KHBlZWsoKSkpCisgICAgICAgICAgICBnb3RvIHBhcnNl
RmxvYXRBZnRlckRvdDsKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpGdWxsU3Rv
cCk7CisKKyAgICBjYXNlICc/JzoKKyAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpR
dWVzdGlvbk1hcmspOworCisgICAgY2FzZSAnfic6CisgICAgICAgIHJldHVybiB0b2tlbihUb2tl
bjo6VHlwZTo6VGlsZGUpOworCisgICAgY2FzZSAnQCc6CisgICAgICAgIHJldHVybiB0b2tlbihU
b2tlbjo6VHlwZTo6QXQpOworCisgICAgY2FzZSAnMCc6CisgICAgY2FzZSAnMSc6CisgICAgY2Fz
ZSAnMic6CisgICAgY2FzZSAnMyc6CisgICAgY2FzZSAnNCc6CisgICAgY2FzZSAnNSc6CisgICAg
Y2FzZSAnNic6CisgICAgY2FzZSAnNyc6CisgICAgY2FzZSAnOCc6CisgICAgY2FzZSAnOSc6IHsK
K3BhcnNlTnVtYmVyOgorICAgICAgICBpZiAoY3VycmVudCA9PSAnMCcgJiYgY29uc3VtZSgneCcp
KSB7CisgICAgICAgICAgICB3aGlsZSAoaXNIZXhhZGVjaW1hbENoYXJhY3RlcihwZWVrKCkpKQor
ICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoY29uc3VtZSgndScpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6VWludExpdGVyYWwpOwor
ICAgICAgICAgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpJbnRMaXRlcmFsKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHdoaWxlIChpc0RpZ2l0KHBlZWsoKSkpCisgICAgICAgICAgICBzaGlm
dCgpOworCisgICAgICAgIGlmIChjb25zdW1lKCcuJykpIHsKK3BhcnNlRmxvYXRBZnRlckRvdDoK
KyAgICAgICAgICAgIHdoaWxlIChpc0RpZ2l0KHBlZWsoKSkpCisgICAgICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGNvbnN1bWUoJ2YnKTsKKyAgICAgICAgICAgIHJldHVybiB0b2tl
bihUb2tlbjo6VHlwZTo6RmxvYXRMaXRlcmFsKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4g
cHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6SWRlbnRpZmllcik7CisKKyAgICAgICAg
aWYgKGNvbnN1bWUoJ2YnKSkKKyAgICAgICAgICAgIHJldHVybiB0b2tlbihUb2tlbjo6VHlwZTo6
RmxvYXRMaXRlcmFsKTsKKworICAgICAgICBpZiAoY29uc3VtZSgndScpKQorICAgICAgICAgICAg
cmV0dXJuIHRva2VuKFRva2VuOjpUeXBlOjpVaW50TGl0ZXJhbCk7CisKKyAgICAgICAgcmV0dXJu
IHRva2VuKFRva2VuOjpUeXBlOjpJbnRMaXRlcmFsKTsKKyAgICB9CisKKyAgICBkZWZhdWx0OiAK
KyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGZsb2F0TGl0
ZXJhbChtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpGbG9hdExpdGVyYWwpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHVpbnRMaXRl
cmFsKG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46
OlR5cGU6OlVpbnRMaXRlcmFsKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBpbnRMaXRlcmFs
KG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5
cGU6OkludExpdGVyYWwpOwotICAgIC8vIFNvcnRlZCBieSBsZW5ndGgsIHNvIGxvbmdlciBtYXRj
aGVzIGFyZSBwcmVmZXJhYmxlIHRvIHNob3J0ZXIgbWF0Y2hlcy4KLSAgICBpZiAoYXV0byBuZXdP
ZmZzZXQgPSBzdHJpbmcoIj4+PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUo
Km5ld09mZnNldCwgVG9rZW46OlR5cGU6OlJpZ2h0U2hpZnRFcXVhbHMpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IHN0cmluZygiPDw9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TGVmdFNoaWZ0RXF1YWxzKTsKLSAgICBpZiAo
YXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIis9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4g
cHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UGx1c0VxdWFscyk7Ci0gICAgaWYgKGF1
dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCItPSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHBy
ZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6Ok1pbnVzRXF1YWxzKTsKLSAgICBpZiAoYXV0
byBuZXdPZmZzZXQgPSBzdHJpbmcoIio9IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6VGltZXNFcXVhbHMpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IHN0cmluZygiLz0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVw
YXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpEaXZpZGVFcXVhbHMpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IHN0cmluZygiJT0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVw
YXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpNb2RFcXVhbHMpOwotICAgIGlmIChhdXRvIG5l
d09mZnNldCA9IHN0cmluZygiXj0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJl
KCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpYb3JFcXVhbHMpOwotICAgIGlmIChhdXRvIG5ld09m
ZnNldCA9IHN0cmluZygiJj0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpu
ZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpBbmRFcXVhbHMpOwotICAgIGlmIChhdXRvIG5ld09mZnNl
dCA9IHN0cmluZygifD0iLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdP
ZmZzZXQsIFRva2VuOjpUeXBlOjpPckVxdWFscyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0g
c3RyaW5nKCIrKyIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNl
dCwgVG9rZW46OlR5cGU6OlBsdXNQbHVzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJp
bmcoIi0tIiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBU
b2tlbjo6VHlwZTo6TWludXNNaW51cyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5n
KCItPiIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OkFycm93KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIltdIiwg
bV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlw
ZTo6U3F1YXJlQnJhY2tldFBhaXIpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygi
fHwiLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpPck9yKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIiYmIiwgbV9v
ZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6
QW5kQW5kKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIjw9IiwgbV9vZmZzZXQp
KQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6TGVzc1Ro
YW5PckVxdWFsVG8pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IHN0cmluZygiPj0iLCBtX29m
ZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpH
cmVhdGVyVGhhbk9yRXF1YWxUbyk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI9
PSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46
OlR5cGU6OkVxdWFsQ29tcGFyaXNvbik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5n
KCIhPSIsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6Ok5vdEVxdWFsKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBzdHJpbmcoIj4+
IiwgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6
VHlwZTo6UmlnaHRTaGlmdCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gc3RyaW5nKCI8PCIs
IG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5
cGU6OkxlZnRTaGlmdCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCc9Jywg
bV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlw
ZTo6RXF1YWxzU2lnbik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCc7Jywg
bV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlw
ZTo6U2VtaWNvbG9uKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJ3snLCBt
X29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBl
OjpMZWZ0Q3VybHlCcmFja2V0KTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIo
J30nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2Vu
OjpUeXBlOjpSaWdodEN1cmx5QnJhY2tldCk7Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hh
cmFjdGVyKCc6JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0
LCBUb2tlbjo6VHlwZTo6Q29sb24pOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignLCcsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OkNvbW1hKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJygn
LCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpU
eXBlOjpMZWZ0UGFyZW50aGVzaXMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignKScsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OlJpZ2h0UGFyZW50aGVzaXMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNo
YXJhY3RlcignWycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNl
dCwgVG9rZW46OlR5cGU6OkxlZnRTcXVhcmVCcmFja2V0KTsKLSAgICBpZiAoYXV0byBuZXdPZmZz
ZXQgPSBjaGFyYWN0ZXIoJ10nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpu
ZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpSaWdodFNxdWFyZUJyYWNrZXQpOwotICAgIGlmIChhdXRv
IG5ld09mZnNldCA9IGNoYXJhY3RlcignKicsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHBy
ZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OlN0YXIpOwotICAgIGlmIChhdXRvIG5ld09m
ZnNldCA9IGNoYXJhY3RlcignPCcsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUo
Km5ld09mZnNldCwgVG9rZW46OlR5cGU6Okxlc3NUaGFuU2lnbik7Ci0gICAgaWYgKGF1dG8gbmV3
T2Zmc2V0ID0gY2hhcmFjdGVyKCc+JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFy
ZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6R3JlYXRlclRoYW5TaWduKTsKLSAgICBpZiAoYXV0
byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJy4nLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBw
cmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpGdWxsU3RvcCk7Ci0gICAgaWYgKGF1dG8g
bmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCc/JywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJl
cGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6UXVlc3Rpb25NYXJrKTsKLSAgICBpZiAoYXV0
byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJ3wnLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBw
cmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpPcik7Ci0gICAgaWYgKGF1dG8gbmV3T2Zm
c2V0ID0gY2hhcmFjdGVyKCdeJywgbV9vZmZzZXQpKQotICAgICAgICByZXR1cm4gcHJlcGFyZSgq
bmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6WG9yKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBj
aGFyYWN0ZXIoJyYnLCBtX29mZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZz
ZXQsIFRva2VuOjpUeXBlOjpBbmQpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3Rl
cignKycsIG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9r
ZW46OlR5cGU6OlBsdXMpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignLScs
IG1fb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5
cGU6Ok1pbnVzKTsKLSAgICBpZiAoYXV0byBuZXdPZmZzZXQgPSBjaGFyYWN0ZXIoJy8nLCBtX29m
ZnNldCkpCi0gICAgICAgIHJldHVybiBwcmVwYXJlKCpuZXdPZmZzZXQsIFRva2VuOjpUeXBlOjpE
aXZpZGUpOwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignJScsIG1fb2Zmc2V0
KSkKLSAgICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6Ok1vZCk7
Ci0gICAgaWYgKGF1dG8gbmV3T2Zmc2V0ID0gY2hhcmFjdGVyKCd+JywgbV9vZmZzZXQpKQotICAg
ICAgICByZXR1cm4gcHJlcGFyZSgqbmV3T2Zmc2V0LCBUb2tlbjo6VHlwZTo6VGlsZGUpOwotICAg
IGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignIScsIG1fb2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkV4Y2xhbWF0aW9uUG9pbnQp
OwotICAgIGlmIChhdXRvIG5ld09mZnNldCA9IGNoYXJhY3RlcignQCcsIG1fb2Zmc2V0KSkKLSAg
ICAgICAgcmV0dXJuIHByZXBhcmUoKm5ld09mZnNldCwgVG9rZW46OlR5cGU6OkF0KTsKIAogICAg
IGlmIChtX29mZnNldCA9PSBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBw
cmVwYXJlKG1fb2Zmc2V0LCBUb2tlbjo6VHlwZTo6RW5kT2ZGaWxlKTsKLSAgICByZXR1cm4gcHJl
cGFyZShtX29mZnNldCwgVG9rZW46OlR5cGU6OkludmFsaWQpOworICAgICAgICByZXR1cm4gdG9r
ZW4oVG9rZW46OlR5cGU6OkVuZE9mRmlsZSk7CisgICAgcmV0dXJuIHRva2VuKFRva2VuOjpUeXBl
OjpJbnZhbGlkKTsKIH0KIAogCkBAIC01ODAsMjQzICsxNzU3LDYgQEAgdm9pZCBMZXhlcjo6c2tp
cFdoaXRlc3BhY2VBbmRDb21tZW50cygpCiAgICAgfQogfQogCi0vLyBSZWd1bGFyIGV4cHJlc3Np
b24gYXJlIHVubmVjZXNzYXJ5OyB3ZSBzaG91bGRuJ3QgbmVlZCB0byBjb21waWxlIHRoZW0uCi0K
LU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6Y29yZURlY2ltYWxJbnRMaXRlcmFsKHVuc2lnbmVk
IG9mZnNldCkgY29uc3QKLXsKLSAgICBpZiAob2Zmc2V0ID49IG1fc3RyaW5nVmlldy5sZW5ndGgo
KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAobV9zdHJpbmdWaWV3W29m
ZnNldF0gPT0gJzAnKQotICAgICAgICByZXR1cm4gb2Zmc2V0ICsgMTsKLSAgICBpZiAobV9zdHJp
bmdWaWV3W29mZnNldF0gPj0gJzEnICYmIG1fc3RyaW5nVmlld1tvZmZzZXRdIDw9ICc5Jykgewot
ICAgICAgICArK29mZnNldDsKLSAgICAgICAgZm9yICggOyBvZmZzZXQgPCBtX3N0cmluZ1ZpZXcu
bGVuZ3RoKCkgJiYgbV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJzAnICYmIG1fc3RyaW5nVmlld1tv
ZmZzZXRdIDw9ICc5JzsgKytvZmZzZXQpIHsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gb2Zm
c2V0OwotICAgIH0KLSAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotfQotCi1PcHRpb25hbDx1bnNp
Z25lZD4gTGV4ZXI6OmRlY2ltYWxJbnRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsK
LSAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tv
ZmZzZXRdID09ICctJykKLSAgICAgICAgKytvZmZzZXQ7Ci0gICAgcmV0dXJuIGNvcmVEZWNpbWFs
SW50TGl0ZXJhbChvZmZzZXQpOwotfQotCi1PcHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6OmRlY2lt
YWxVaW50TGl0ZXJhbCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Ci17Ci0gICAgYXV0byByZXN1bHQg
PSBjb3JlRGVjaW1hbEludExpdGVyYWwob2Zmc2V0KTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAoKnJlc3VsdCA8IG1fc3RyaW5nVmlldy5s
ZW5ndGgoKSAmJiBtX3N0cmluZ1ZpZXdbKnJlc3VsdF0gPT0gJ3UnKQotICAgICAgICByZXR1cm4g
KnJlc3VsdCArIDE7Ci0gICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLX0KLQotc3RhdGljIGlubGlu
ZSBib29sIGlzSGV4YWRlY2ltYWxDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQotewotICAgIHJl
dHVybiAoY2hhcmFjdGVyID49ICcwJyAmJiBjaGFyYWN0ZXIgPD0gJzknKQotICAgICAgICB8fCAo
Y2hhcmFjdGVyID49ICdhJyAmJiBjaGFyYWN0ZXIgPD0gJ2YnKQotICAgICAgICB8fCAoY2hhcmFj
dGVyID49ICdBJyAmJiBjaGFyYWN0ZXIgPD0gJ0YnKTsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+
IExleGVyOjpjb3JlSGV4YWRlY2ltYWxJbnRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QK
LXsKLSAgICBpZiAob2Zmc2V0ICsgMSA+PSBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkgfHwgbV9zdHJp
bmdWaWV3W29mZnNldF0gIT0gJzAnIHx8IG1fc3RyaW5nVmlld1tvZmZzZXQgKyAxXSAhPSAneCcp
Ci0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBvZmZzZXQgKz0gMjsKLSAgICBp
ZiAob2Zmc2V0ID49IG1fc3RyaW5nVmlldy5sZW5ndGgoKSB8fCAhaXNIZXhhZGVjaW1hbENoYXJh
Y3RlcihtX3N0cmluZ1ZpZXdbb2Zmc2V0XSkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0gICAgKytvZmZzZXQ7Ci0gICAgZm9yICggOyBvZmZzZXQgPCBtX3N0cmluZ1ZpZXcubGVuZ3Ro
KCkgJiYgaXNIZXhhZGVjaW1hbENoYXJhY3RlcihtX3N0cmluZ1ZpZXdbb2Zmc2V0XSk7ICsrb2Zm
c2V0KSB7Ci0gICAgfQotICAgIHJldHVybiBvZmZzZXQ7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVk
PiBMZXhlcjo6aGV4YWRlY2ltYWxJbnRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsK
LSAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tv
ZmZzZXRdID09ICctJykKLSAgICAgICAgKytvZmZzZXQ7Ci0gICAgcmV0dXJuIGNvcmVIZXhhZGVj
aW1hbEludExpdGVyYWwob2Zmc2V0KTsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjpo
ZXhhZGVjaW1hbFVpbnRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsKLSAgICBhdXRv
IHJlc3VsdCA9IGNvcmVIZXhhZGVjaW1hbEludExpdGVyYWwob2Zmc2V0KTsKLSAgICBpZiAoIXJl
c3VsdCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAoKnJlc3VsdCA8IG1f
c3RyaW5nVmlldy5sZW5ndGgoKSAmJiBtX3N0cmluZ1ZpZXdbKnJlc3VsdF0gPT0gJ3UnKQotICAg
ICAgICByZXR1cm4gKnJlc3VsdCArIDE7Ci0gICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLX0KLQot
T3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjppbnRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29u
c3QKLXsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBkZWNpbWFsSW50TGl0ZXJhbChvZmZzZXQpKQot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGhleGFkZWNpbWFs
SW50TGl0ZXJhbChvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6dWludExpdGVyYWwo
dW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChhdXRvIHJlc3VsdCA9IGRlY2ltYWxV
aW50TGl0ZXJhbChvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRv
IHJlc3VsdCA9IGhleGFkZWNpbWFsVWludExpdGVyYWwob2Zmc2V0KSkKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotfQotCi1PcHRpb25hbDx1bnNpZ25l
ZD4gTGV4ZXI6OmRpZ2l0KHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsKLSAgICBpZiAob2Zmc2V0
IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tvZmZzZXRdID49ICcwJyAm
JiBtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA8PSAnOScpCi0gICAgICAgIHJldHVybiBvZmZzZXQgKyAx
OwotICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci19Ci0KLXVuc2lnbmVkIExleGVyOjpkaWdpdFN0
YXIodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIHdoaWxlIChhdXRvIHJlc3VsdCA9IGRp
Z2l0KG9mZnNldCkpCi0gICAgICAgIG9mZnNldCA9ICpyZXN1bHQ7Ci0gICAgcmV0dXJuIG9mZnNl
dDsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjpjaGFyYWN0ZXIoY2hhciBjaGFyYWN0
ZXIsIHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsKLSAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdW
aWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tvZmZzZXRdID09IGNoYXJhY3RlcikKLSAgICAg
ICAgcmV0dXJuIG9mZnNldCArIDE7Ci0gICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLX0KLQotT3B0
aW9uYWw8dW5zaWduZWQ+IExleGVyOjpjb3JlRmxvYXRMaXRlcmFsVHlwZTEodW5zaWduZWQgb2Zm
c2V0KSBjb25zdAotewotICAgIGF1dG8gcmVzdWx0ID0gZGlnaXQob2Zmc2V0KTsKLSAgICBpZiAo
IXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBhdXRvIHJlc3VsdDIg
PSBkaWdpdFN0YXIoKnJlc3VsdCk7Ci0gICAgYXV0byByZXN1bHQzID0gY2hhcmFjdGVyKCcuJywg
cmVzdWx0Mik7Ci0gICAgaWYgKCFyZXN1bHQzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotICAgIHJldHVybiBkaWdpdFN0YXIoKnJlc3VsdDMpOwotfQotCi1PcHRpb25hbDx1bnNpZ25l
ZD4gTGV4ZXI6OmNvcmVGbG9hdExpdGVyYWwodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAg
IGlmIChhdXRvIHR5cGUxID0gY29yZUZsb2F0TGl0ZXJhbFR5cGUxKG9mZnNldCkpCi0gICAgICAg
IHJldHVybiB0eXBlMTsKLSAgICBhdXRvIHJlc3VsdCA9IGRpZ2l0U3RhcihvZmZzZXQpOwotICAg
IGF1dG8gcmVzdWx0MiA9IGNoYXJhY3RlcignLicsIHJlc3VsdCk7Ci0gICAgaWYgKCFyZXN1bHQy
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGF1dG8gcmVzdWx0MyA9IGRpZ2l0
KCpyZXN1bHQyKTsKLSAgICBpZiAoIXJlc3VsdDMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgcmV0dXJuIGRpZ2l0U3RhcigqcmVzdWx0Myk7Ci19Ci0KLU9wdGlvbmFsPHVuc2ln
bmVkPiBMZXhlcjo6ZmxvYXRMaXRlcmFsKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKLXsKLSAgICBp
ZiAob2Zmc2V0IDwgbV9zdHJpbmdWaWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tvZmZzZXRd
ID09ICctJykKLSAgICAgICAgKytvZmZzZXQ7Ci0gICAgYXV0byByZXN1bHQgPSBjb3JlRmxvYXRM
aXRlcmFsKG9mZnNldCk7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgb2Zmc2V0ID0gKnJlc3VsdDsKLSAgICBpZiAob2Zmc2V0IDwgbV9zdHJpbmdW
aWV3Lmxlbmd0aCgpICYmIG1fc3RyaW5nVmlld1tvZmZzZXRdID09ICdmJykKLSAgICAgICAgKytv
ZmZzZXQ7Ci0gICAgcmV0dXJuIG9mZnNldDsKLX0KLQotT3B0aW9uYWw8dW5zaWduZWQ+IExleGVy
Ojp2YWxpZElkZW50aWZpZXIodW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZz
ZXQgPj0gbV9zdHJpbmdWaWV3Lmxlbmd0aCgpCi0gICAgICAgIHx8ICEoKG1fc3RyaW5nVmlld1tv
ZmZzZXRdID49ICdhJyAmJiBtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA8PSAneicpCi0gICAgICAgICAg
ICB8fCAobV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJ0EnICYmIG1fc3RyaW5nVmlld1tvZmZzZXRd
IDw9ICdaJykKLSAgICAgICAgICAgIHx8IChtX3N0cmluZ1ZpZXdbb2Zmc2V0XSA9PSAnXycpKSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICArK29mZnNldDsKLSAgICB3aGlsZSAo
dHJ1ZSkgewotICAgICAgICBpZiAob2Zmc2V0ID49IG1fc3RyaW5nVmlldy5sZW5ndGgoKQotICAg
ICAgICAgICAgfHwgISgobV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJ2EnICYmIG1fc3RyaW5nVmll
d1tvZmZzZXRdIDw9ICd6JykKLSAgICAgICAgICAgICAgICB8fCAobV9zdHJpbmdWaWV3W29mZnNl
dF0gPj0gJ0EnICYmIG1fc3RyaW5nVmlld1tvZmZzZXRdIDw9ICdaJykKLSAgICAgICAgICAgICAg
ICB8fCAobV9zdHJpbmdWaWV3W29mZnNldF0gPj0gJzAnICYmIG1fc3RyaW5nVmlld1tvZmZzZXRd
IDw9ICc5JykKLSAgICAgICAgICAgICAgICB8fCAobV9zdHJpbmdWaWV3W29mZnNldF0gPT0gJ18n
KSkpCi0gICAgICAgICAgICByZXR1cm4gb2Zmc2V0OwotICAgICAgICArK29mZnNldDsKLSAgICB9
Ci19Ci0KLU9wdGlvbmFsPHVuc2lnbmVkPiBMZXhlcjo6aWRlbnRpZmllcih1bnNpZ25lZCBvZmZz
ZXQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHZhbGlkSWRlbnRpZmllcihvZmZzZXQpOwotfQotCi1P
cHRpb25hbDx1bnNpZ25lZD4gTGV4ZXI6OmNvbXBsZXRlT3BlcmF0b3JOYW1lKHVuc2lnbmVkIG9m
ZnNldCkgY29uc3QKLXsKLSAgICAvLyBTb3J0ZWQgYnkgbGVuZ3RoLCBzbyBsb25nZXIgbWF0Y2hl
cyBhcmUgcHJlZmVyYWJsZSB0byBzaG9ydGVyIG1hdGNoZXMuCi0gICAgaWYgKGF1dG8gcmVzdWx0
ID0gc3RyaW5nKCImW10iLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlm
IChhdXRvIHJlc3VsdCA9IHN0cmluZygiW109Iiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIj4+Iiwgb2Zmc2V0KSkKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIjw8Iiwgb2Zm
c2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJp
bmcoIisrIiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byBy
ZXN1bHQgPSBzdHJpbmcoIi0tIiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIiYmIiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoInx8Iiwgb2Zmc2V0KSkKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIj49Iiwg
b2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBz
dHJpbmcoIjw9Iiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0
byByZXN1bHQgPSBzdHJpbmcoIj09Iiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIltdIiwgb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBzdHJpbmcoIiYuIiwgb2Zmc2V0KSkK
LSAgICAgICAgcmV0dXJuIHZhbGlkSWRlbnRpZmllcigqcmVzdWx0KTsKLSAgICBpZiAoYXV0byBy
ZXN1bHQgPSBjaGFyYWN0ZXIoJysnLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3RlcignLScsIG9mZnNldCkpCi0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gY2hhcmFjdGVyKCcqJywgb2Zmc2V0
KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBjaGFyYWN0
ZXIoJy8nLCBvZmZzZXQpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJl
c3VsdCA9IGNoYXJhY3RlcignJScsIG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgaWYgKGF1dG8gcmVzdWx0ID0gY2hhcmFjdGVyKCc8Jywgb2Zmc2V0KSkKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1bHQgPSBjaGFyYWN0ZXIoJz4nLCBvZmZzZXQp
KQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3Rl
cignIScsIG9mZnNldCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVz
dWx0ID0gY2hhcmFjdGVyKCd+Jywgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICBpZiAoYXV0byByZXN1bHQgPSBjaGFyYWN0ZXIoJyYnLCBvZmZzZXQpKQotICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIGlmIChhdXRvIHJlc3VsdCA9IGNoYXJhY3RlcignXicsIG9mZnNldCkp
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gcmVzdWx0ID0gY2hhcmFjdGVy
KCd8Jywgb2Zmc2V0KSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoYXV0byByZXN1
bHQgPSBjaGFyYWN0ZXIoJy4nLCBvZmZzZXQpKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlc3VsdDIg
PSB2YWxpZElkZW50aWZpZXIoKnJlc3VsdCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHJlc3Vs
dDMgPSBjaGFyYWN0ZXIoJz0nLCAqcmVzdWx0MikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDM7Ci0gICAgICAgICAgICByZXR1cm4gKnJlc3VsdDI7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV0hMU0wKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xMZXhlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMTGV4ZXIuaAkocmV2aXNpb24gMjQ4NTg2KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjUsNDQgKzI2NSwxMiBAQCBwcml2YXRlOgogICAgIH07CiAgICAgc3RhdGljIExpbmVBbmRD
b2x1bW4gbGluZUFuZENvbHVtbk51bWJlckZyb21PZmZzZXQoY29uc3QgU3RyaW5nVmlldyYsIHVu
c2lnbmVkIG9mZnNldCk7CiAKLSAgICBPcHRpb25hbDxUb2tlbjo6VHlwZT4gcmVjb2duaXplS2V5
d29yZCh1bnNpZ25lZCBlbmQpOwotCi0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNvcmVEZWNpbWFs
SW50TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRlY2lt
YWxJbnRMaXRlcmFsKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gZGVj
aW1hbFVpbnRMaXRlcmFsKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4g
Y29yZUhleGFkZWNpbWFsSW50TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8
dW5zaWduZWQ+IGhleGFkZWNpbWFsSW50TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0
aW9uYWw8dW5zaWduZWQ+IGhleGFkZWNpbWFsVWludExpdGVyYWwodW5zaWduZWQpIGNvbnN0Owot
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBpbnRMaXRlcmFsKHVuc2lnbmVkKSBjb25zdDsKLSAgICBP
cHRpb25hbDx1bnNpZ25lZD4gdWludExpdGVyYWwodW5zaWduZWQpIGNvbnN0OwotICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBkaWdpdCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgZGlnaXRT
dGFyKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gY2hhcmFjdGVyKGNo
YXIsIHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gY29yZUZsb2F0TGl0
ZXJhbFR5cGUxKHVuc2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gY29yZUZs
b2F0TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGZsb2F0
TGl0ZXJhbCh1bnNpZ25lZCkgY29uc3Q7Ci0gICAgdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBP
cHRpb25hbDx1bnNpZ25lZD4gc3RyaW5nKGNvbnN0IGNoYXIgKCZzdHJpbmcpW2xlbmd0aF0sIHVu
c2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gdmFsaWRJZGVudGlmaWVyKHVu
c2lnbmVkKSBjb25zdDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gaWRlbnRpZmllcih1bnNpZ25l
ZCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNvbXBsZXRlT3BlcmF0b3JOYW1lKHVu
c2lnbmVkKSBjb25zdDsKLQogICAgIFN0cmluZ1ZpZXcgbV9zdHJpbmdWaWV3OwogICAgIFRva2Vu
IG1fcmluZ0J1ZmZlclsyXTsKICAgICB1bnNpZ25lZCBtX3JpbmdCdWZmZXJJbmRleCB7IDAgfTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldCB7IDAgfTsKIH07CiAKLXRlbXBsYXRlPHVuc2lnbmVkIGxl
bmd0aD4gT3B0aW9uYWw8dW5zaWduZWQ+IExleGVyOjpzdHJpbmcoY29uc3QgY2hhciAoJnN0cmlu
ZylbbGVuZ3RoXSwgdW5zaWduZWQgb2Zmc2V0KSBjb25zdAotewotICAgIGlmIChvZmZzZXQgKyBs
ZW5ndGggPiBtX3N0cmluZ1ZpZXcubGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aCAtIDE7ICsraSkgewotICAg
ICAgICBpZiAobV9zdHJpbmdWaWV3W29mZnNldCArIGldICE9IHN0cmluZ1tpXSkKLSAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgfQotICAgIHJldHVybiBvZmZzZXQgKyBsZW5n
dGggLSAxOwotfQotCiBTdHJpbmdWaWV3IFRva2VuOjpzdHJpbmdWaWV3KGNvbnN0IExleGVyJiBs
ZXhlcikgY29uc3QKIHsKICAgICByZXR1cm4gbGV4ZXIubV9zdHJpbmdWaWV3LnN1YnN0cmluZyhj
b2RlTG9jYXRpb24uc3RhcnRPZmZzZXQoKSwgY29kZUxvY2F0aW9uLmVuZE9mZnNldCgpIC0gY29k
ZUxvY2F0aW9uLnN0YXJ0T2Zmc2V0KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ4NTg2KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTktMDgtMTMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dI
TFNMXSBNYWtlIGxleGluZyBmYXN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDU5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIEMuIE1h
eGZpZWxkLgorCisgICAgICAgICogd2ViZ3B1L3dobHNsL2xleGluZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC9sZXhpbmcuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ3B1L3dobHNsL2xpdGVyYWxzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViZ3B1L3dobHNsL2xpdGVyYWxzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA4LTEyICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3Vy
ZSB0aGF0IHdlIGRpc3BhdGNoIGtleWRvd24gYW5kIGtleXVwIGV2ZW50cyB3aGVuIG11bHRpcGxl
IGtleXMgYXJlIHByZXNzZWQgYXQgdGhlIHNhbWUgdGltZQpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsL2xleGluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsL2xleGluZy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsL2xleGluZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw2IEBACisKK1BBU1MgbGV4aW5nS2V5d29yZExpa2VJZGVudGlmaWVycyAKK1BBU1Mg
a2V5d29yZHNBc0lkZW50aWZpZXJzIAorUEFTUyBjb21tZW50cyAKK1BBU1Mgb3BlcmF0b3JOYW1l
cyAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL2xleGluZy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC9sZXhpbmcuaHRtbAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbGV4aW5nLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVz
dCBwcmVmaXgvcG9zdGZpeC48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3Rlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKK2NvbnN0IGVwc2ls
b24gPSAwLjAwMDE7CisKK2NvbnN0IGtleXdvcmRzID0gWworICAgICJzdHJ1Y3QiCisgICAgLCAi
dHlwZWRlZiIKKyAgICAsICJlbnVtIgorICAgICwgIm9wZXJhdG9yIgorICAgICwgImlmIgorICAg
ICwgImVsc2UiCisgICAgLCAiY29udGludWUiCisgICAgLCAiYnJlYWsiCisgICAgLCAic3dpdGNo
IgorICAgICwgImNhc2UiCisgICAgLCAiZGVmYXVsdCIKKyAgICAsICJmYWxsdGhyb3VnaCIKKyAg
ICAsICJmb3IiCisgICAgLCAid2hpbGUiCisgICAgLCAiZG8iCisgICAgLCAicmV0dXJuIgorICAg
ICwgIm51bGwiCisgICAgLCAidHJ1ZSIKKyAgICAsICJmYWxzZSIKKyAgICAsICJjb25zdGFudCIK
KyAgICAsICJkZXZpY2UiCisgICAgLCAidGhyZWFkZ3JvdXAiCisgICAgLCAidGhyZWFkIgorICAg
ICwgInNwYWNlIgorICAgICwgInZlcnRleCIKKyAgICAsICJmcmFnbWVudCIKKyAgICAsICJjb21w
dXRlIgorICAgICwgIm51bXRocmVhZHMiCisgICAgLCAiU1ZfSW5zdGFuY2VJRCIKKyAgICAsICJT
Vl9WZXJ0ZXhJRCIKKyAgICAsICJQU0laRSIKKyAgICAsICJTVl9Qb3NpdGlvbiIKKyAgICAsICJT
Vl9Jc0Zyb250RmFjZSIKKyAgICAsICJTVl9TYW1wbGVJbmRleCIKKyAgICAsICJTVl9Jbm5lckNv
dmVyYWdlIgorICAgICwgIlNWX1RhcmdldCIKKyAgICAsICJTVl9EZXB0aCIKKyAgICAsICJTVl9D
b3ZlcmFnZSIKKyAgICAsICJTVl9EaXNwYXRjaFRocmVhZElEIgorICAgICwgIlNWX0dyb3VwSUQi
CisgICAgLCAiU1ZfR3JvdXBJbmRleCIKKyAgICAsICJTVl9Hcm91cFRocmVhZElEIgorICAgICwg
ImF0dHJpYnV0ZSIKKyAgICAsICJyZWdpc3RlciIKKyAgICAsICJzcGVjaWFsaXplZCIKKyAgICAs
ICJuYXRpdmUiCisgICAgLCAicmVzdHJpY3RlZCIKKyAgICAsICJfIgorICAgICwgImF1dG8iCisg
ICAgLCAicHJvdG9jb2wiCisgICAgLCAiY29uc3QiCisgICAgLCAic3RhdGljIgorICAgICwgIm5v
aW50ZXJwb2xhdGlvbiIKKyAgICAsICJub3BlcnNwZWN0aXZlIgorICAgICwgInVuaWZvcm0iCisg
ICAgLCAiY2VudHJvaWQiCisgICAgLCAic2FtcGxlIgorXTsKKworY29uc3Qgc3VmZml4ZXMgPSBb
ImZvbyIsICIxMzM3IiwgIl9mb28iXTsKKword2hsc2xUZXN0cy5sZXhpbmdLZXl3b3JkTGlrZUlk
ZW50aWZpZXJzID0gYXN5bmMgKCkgPT4geworICAgIGZvciAoY29uc3Qga2V5d29yZCBvZiBrZXl3
b3JkcykgeworICAgICAgICBmb3IgKGNvbnN0IHN1ZmZpeCBvZiBzdWZmaXhlcykgeworICAgICAg
ICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0ga2V5d29yZCArIHN1ZmZpeDsKKyAgICAgICAgICAg
IGNvbnN0IHByb2dyYW0gPSBgCisgICAgICAgICAgICAgICAgaW50IGZvbygpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW50ICR7dmFyaWFibGVOYW1lfSA9IDQyOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gJHt2YXJpYWJsZU5hbWV9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGA7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHBy
b2dyYW0sICAiZm9vIiwgW10pLCA0Mik7CisgICAgICAgIH0KKyAgICB9CisKK307CisKK3dobHNs
VGVzdHMua2V5d29yZHNBc0lkZW50aWZpZXJzID0gYXN5bmMgKCkgPT4geworCisgICAgZm9yIChj
b25zdCBrZXl3b3JkIG9mIGtleXdvcmRzKSB7CisgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9
IGtleXdvcmQ7CisgICAgICAgIGNvbnN0IHByb2dyYW0gPSBgCisgICAgICAgICAgICB2b2lkIGZv
bygpIHsKKyAgICAgICAgICAgICAgICBpbnQgJHt2YXJpYWJsZU5hbWV9ID0gNDI7CisgICAgICAg
ICAgICB9CisgICAgICAgIGA7CisgICAgICAgIGF3YWl0IGNoZWNrRmFpbChwcm9ncmFtKTsKKyAg
ICB9Cit9OworCit3aGxzbFRlc3RzLmNvbW1lbnRzID0gYXN5bmMgKCkgPT4geworICAgIGF3YWl0
IGNoZWNrRmFpbChgCisgICAgICAgIC8qCisgICAgYCk7CisgICAgYXdhaXQgY2hlY2tGYWlsKGAK
KyAgICAgICAgKi8KKyAgICBgKTsKKworICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGlu
dCBmb28oKSB7CisgICAgICAgICAgICByZXR1cm4gNC8qKi8yOworICAgICAgICB9CisgICAgYCk7
CisKK307CisKK3dobHNsVGVzdHMub3BlcmF0b3JOYW1lcyA9IGFzeW5jICgpID0+IHsKKyAgICBh
d2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgfQorCisgICAg
ICAgIGludCBvcGVyYXRvci4kKEZvbykgeworICAgICAgICAgICAgcmV0dXJuIDQyOworICAgICAg
ICB9CisgICAgYCk7CisKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9v
IHsKKyAgICAgICAgfQorCisgICAgICAgIGludCBvcGVyYXRvci4jKEZvbykgeworICAgICAgICAg
ICAgcmV0dXJuIDQyOworICAgICAgICB9CisgICAgYCk7CisKKyAgICBhd2FpdCBjaGVja0ZhaWwo
YAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgfQorCisgICAgICAgIGludCBvcGVyYXRv
ci5AKEZvbykgeworICAgICAgICAgICAgcmV0dXJuIDQyOworICAgICAgICB9CisgICAgYCk7CisK
KyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgfQor
CisgICAgICAgIGludCBvcGVyYXRvci4qJShGb28pIHsKKyAgICAgICAgICAgIHJldHVybiA0MjsK
KyAgICAgICAgfQorICAgIGApOworfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3Njcmlw
dD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC9saXRlcmFscy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL2xpdGVyYWxz
LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
bGl0ZXJhbHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIGxpdGVyYWxzIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbGl0ZXJhbHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbGl0ZXJhbHMuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvbGl0ZXJhbHMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciPgorPHRpdGxlPlRlc3QgcHJlZml4L3Bvc3RmaXguPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJq
cy90ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3dlYmdwdS1m
dW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0g
e307Citjb25zdCBlcHNpbG9uID0gMC4wMDAxOworCit3aGxzbFRlc3RzLmxpdGVyYWxzID0gYXN5
bmMgKCkgPT4geworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgYSgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiAtMTA7CisgICAgICAgIH0KKyAgICAgICAgaW50IGIoKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMTA7CisgICAgICAgIH0KKyAgICAgICAgaW50
IGMoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAg
ICBmbG9hdCBkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIC4xOworICAgICAgICB9
CisgICAgICAgIGZsb2F0IGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMS45Owor
ICAgICAgICB9CisgICAgICAgIGZsb2F0IGYoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gLS4xOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGcoKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gLTEuOTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiAweGI0ZEIzM0Y7CisgICAgICAgIH0KKyAgICAgICAgaW50IGko
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gLTB4YjRkQjMzRjsKKyAgICAgICAgfQor
ICAgIGA7CisKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFt
LCAgImEiLCBbXSksIC0xMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rp
b24ocHJvZ3JhbSwgICJiIiwgW10pLCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
SW50RnVuY3Rpb24ocHJvZ3JhbSwgICJjIiwgW10pLCAwKTsKKworICAgIGFzc2VydF9hcHByb3hf
ZXF1YWxzKGF3YWl0IGNhbGxGbG9hdEZ1bmN0aW9uKHByb2dyYW0sICAiZCIsIFtdKSwgMC4xLCBl
cHNpbG9uKTsKKyAgICBhc3NlcnRfYXBwcm94X2VxdWFscyhhd2FpdCBjYWxsRmxvYXRGdW5jdGlv
bihwcm9ncmFtLCAgImUiLCBbXSksIDEuOSwgZXBzaWxvbik7CisgICAgYXNzZXJ0X2FwcHJveF9l
cXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgICJmIiwgW10pLCAtMC4xLCBl
cHNpbG9uKTsKKyAgICBhc3NlcnRfYXBwcm94X2VxdWFscyhhd2FpdCBjYWxsRmxvYXRGdW5jdGlv
bihwcm9ncmFtLCAgImciLCBbXSksIC0xLjksIGVwc2lsb24pOworCisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgICJoIiwgW10pLCAweGI0ZEIzM0YpOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICAiaSIsIFtd
KSwgLTB4YjRkQjMzRik7Cit9OworCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0Pgor
PC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="392011"
          type_id="3"
          status="-"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>