x86 update -- raytrace benchmark

Matthew Fluet fluet@CS.Cornell.EDU
Mon, 16 Oct 2000 15:31:43 -0400 (EDT)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-971724703=:12960
Content-Type: TEXT/PLAIN; charset=US-ASCII


> Now for the bad news.  I tried to compile the native version with
> -DMLton_safe=0 and the resulting executable terminates immediately on
> every example with exit status zero without producing any output. 
> Matthew, any ideas? 

Found it.  It was a register allocation bug -- essentially I was using
register equality instead of register coincideness(?) in a filter.  This
is used when I've already allocated either a sorce or destination operand
and need to allocate the other, but want to "freeze" the previously
allocated values.  So, if the destination got allocated to an address,
like (%edx,%eax,1), then we want to freeze %edx and %eax.  So, when I
generate a list of potential registers for the size of the operand to be
allocated, I would toss out %edx and %eax.  However, I wasn't tossing out
%ah or %al.  So, sometimes we ended up with something looking like:
movl (%ebp,%ecx,1),%al
movl %al,(%edx,%eax,1)
which obviously has problems.  This apparently was only every a problem
when doing some character-array to character-array moves -- hence IO
without subscript checking (with subscript checking, the source is moved
to a temporary, then we check the second subscript, and apparently that
ammount of code and control flow ensured that this problem never really
occured.)

So, raytrace.sml works with both -DMLton_safe=1 and -DMLton_safe=0.  I'm
including the updated allocate-registers.fun.  I'm also tracking down
another minor bug, but I think it was introduced by some changes I made to
the translation phase.  Let me know if you encounter anything odd with
this version.



---559023410-851401618-971724703=:12960
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="x86-allocate-registers.fun"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95.1001016153142.12960C@hoho.cs.cornell.edu>
Content-Description: 

KCogQ29weXJpZ2h0IChDKSAxOTk3LTE5OTkgTkVDIFJlc2VhcmNoIEluc3RpdHV0ZS4NCiAqIFBs
ZWFzZSBzZWUgdGhlIGZpbGUgTElDRU5TRSBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4NCiAqKQ0K
ZnVuY3RvciB4ODZBbGxvY2F0ZVJlZ2lzdGVycyhTOiBYODZfQUxMT0NBVEVfUkVHSVNURVJTX1NU
UlVDVFMpOiBYODZfQUxMT0NBVEVfUkVHSVNURVJTID0NCnN0cnVjdA0KICANCiAgb3BlbiBTDQog
IG9wZW4geDg2DQoNCiAgc3RydWN0dXJlIExpdmVuZXNzID0NCiAgICBzdHJ1Y3QNCiAgICAgIGRh
dGF0eXBlIGZ1dHVyZSA9IFVTRSBvZiBNZW1Mb2MudA0KCSAgICAgICAgICAgICAgfCBERUYgb2Yg
TWVtTG9jLnQNCgkgICAgICAgICAgICAgIHwgVVNFREVGIG9mIE1lbUxvYy50DQoNCiAgICAgIHZh
bCBmdXR1cmVfdG9TdHJpbmcNCgk9IGZuIFVTRSBtZW1sb2MgPT4gY29uY2F0IFsiVVNFICIsIE1l
bUxvYy50b1N0cmluZyBtZW1sb2NdDQoJICAgfCBERUYgbWVtbG9jID0+IGNvbmNhdCBbIkRFRiAi
LCBNZW1Mb2MudG9TdHJpbmcgbWVtbG9jXQ0KCSAgIHwgVVNFREVGIG1lbWxvYyA9PiBjb25jYXQg
WyJVU0VERUYgIiwgTWVtTG9jLnRvU3RyaW5nIG1lbWxvY10NCg0KICAgICAgdmFsIGZ1dHVyZV9l
cQ0KCT0gZm4gKFVTRSBtZW1sb2MxLCBVU0UgbWVtbG9jMikgPT4gTWVtTG9jLmVxKG1lbWxvYzEs
bWVtbG9jMikNCgkgICB8IChVU0VERUYgbWVtbG9jMSwgVVNFREVGIG1lbWxvYzIpID0+IE1lbUxv
Yy5lcShtZW1sb2MxLG1lbWxvYzIpDQoJICAgfCAoREVGIG1lbWxvYzEsIERFRiBtZW1sb2MyKSA9
PiBNZW1Mb2MuZXEobWVtbG9jMSxtZW1sb2MyKQ0KCSAgIHwgXyA9PiBmYWxzZQ0KDQogICAgICB0
eXBlIHQgPSB7bGl2ZUluOiBNZW1Mb2MudCBsaXN0LA0KCQlsaXZlT3V0OiBNZW1Mb2MudCBsaXN0
LA0KCQlkZWFkOiBNZW1Mb2MudCBsaXN0LA0KCQljb21taXQ6IE1lbUxvYy50IGxpc3QsDQoJCXJl
bW92ZTogTWVtTG9jLnQgbGlzdCwNCgkJZnV0dXJlOiBmdXR1cmUgbGlzdH0NCg0KICAgICAgZnVu
IHRvU3RyaW5nIHtsaXZlSW4sIGxpdmVPdXQsIGRlYWQsIGNvbW1pdCwgcmVtb3ZlLCBmdXR1cmV9
DQoJPSBjb25jYXRbTGlzdC5mb2xkKGxpdmVJbiwNCgkJCSAgICIiLA0KCQkJICAgZm4gKG1lbWxv
YyxzKQ0KCQkJICAgID0+IGNvbmNhdCBbImxpdmVJbjogIiwNCgkJCQkgICAgICAgTWVtTG9jLnRv
U3RyaW5nIG1lbWxvYywNCgkJCQkgICAgICAgIlxuIiwNCgkJCQkgICAgICAgc10pLA0KCQkgTGlz
dC5mb2xkKGxpdmVPdXQsDQoJCQkgICAiIiwNCgkJCSAgIGZuIChtZW1sb2MscykNCgkJCSAgICA9
PiBjb25jYXQgWyJsaXZlT3V0OiAiLA0KCQkJCSAgICAgICBNZW1Mb2MudG9TdHJpbmcgbWVtbG9j
LA0KCQkJCSAgICAgICAiXG4iLA0KCQkJCSAgICAgICBzXSksDQoJCSBMaXN0LmZvbGQoZGVhZCwN
CgkJCSAgICIiLA0KCQkJICAgZm4gKG1lbWxvYyxzKQ0KCQkJICAgID0+IGNvbmNhdCBbImRlYWQ6
ICIsDQoJCQkJICAgICAgIE1lbUxvYy50b1N0cmluZyBtZW1sb2MsDQoJCQkJICAgICAgICJcbiIs
DQoJCQkJICAgICAgIHNdKSwNCgkJIExpc3QuZm9sZChjb21taXQsDQoJCQkgICAiIiwNCgkJCSAg
IGZuIChtZW1sb2MscykNCgkJCSAgICA9PiBjb25jYXQgWyJjb21taXQ6ICIsDQoJCQkJICAgICAg
IE1lbUxvYy50b1N0cmluZyBtZW1sb2MsDQoJCQkJICAgICAgICJcbiIsDQoJCQkJICAgICAgIHNd
KSwNCgkJIExpc3QuZm9sZChyZW1vdmUsDQoJCQkgICAiIiwNCgkJCSAgIGZuIChtZW1sb2MscykN
CgkJCSAgICA9PiBjb25jYXQgWyJyZW1vdmU6ICIsDQoJCQkJICAgICAgIE1lbUxvYy50b1N0cmlu
ZyBtZW1sb2MsDQoJCQkJICAgICAgICJcbiIsDQoJCQkJICAgICAgIHNdKSwNCgkJIExpc3QuZm9s
ZChmdXR1cmUsDQoJCQkgICAiIiwNCgkJCSAgIGZuIChtZW1sb2MscykNCgkJCSAgICA9PiBjb25j
YXQgWyJmdXR1cmU6ICIsDQoJCQkJICAgICAgIGZ1dHVyZV90b1N0cmluZyBtZW1sb2MsDQoJCQkJ
ICAgICAgICJcbiIsDQoJCQkJICAgICAgIHNdKV0NCg0KICAgICAgZnVuIHRvQ29tbWVudHMge2xp
dmVJbiwgbGl2ZU91dCwgZGVhZCwgY29tbWl0LCByZW1vdmUsIGZ1dHVyZX0NCgk9IExpc3QuZmxh
dHRlbg0KCSAgW0xpc3QubWFwKGxpdmVJbiwNCgkJICAgIGZuIG1lbWxvYw0KCQkgICAgID0+IEFz
c2VtYmx5LmNvbW1lbnQgKGNvbmNhdCBbImxpdmVJbjogIiwNCgkJCQkJCSAgTWVtTG9jLnRvU3Ry
aW5nIG1lbWxvY10pKSwNCgkgICBMaXN0Lm1hcChsaXZlT3V0LA0KCQkgICAgZm4gbWVtbG9jDQoJ
CSAgICAgPT4gQXNzZW1ibHkuY29tbWVudCAoY29uY2F0IFsibGl2ZU91dDogIiwNCgkJCQkJCSAg
TWVtTG9jLnRvU3RyaW5nIG1lbWxvY10pKSwNCgkgICBMaXN0Lm1hcChkZWFkLA0KCQkgICAgZm4g
bWVtbG9jDQoJCSAgICAgPT4gQXNzZW1ibHkuY29tbWVudCAoY29uY2F0IFsiZGVhZDogIiwNCgkJ
CQkJCSAgTWVtTG9jLnRvU3RyaW5nIG1lbWxvY10pKSwNCgkgICBMaXN0Lm1hcChjb21taXQsDQoJ
CSAgICBmbiBtZW1sb2MNCgkJICAgICA9PiBBc3NlbWJseS5jb21tZW50IChjb25jYXQgWyJjb21t
aXQ6ICIsDQoJCQkJCQkgIE1lbUxvYy50b1N0cmluZyBtZW1sb2NdKSksDQoJICAgTGlzdC5tYXAo
cmVtb3ZlLA0KCQkgICAgZm4gbWVtbG9jDQoJCSAgICAgPT4gQXNzZW1ibHkuY29tbWVudCAoY29u
Y2F0IFsicmVtb3ZlOiAiLA0KCQkJCQkJICBNZW1Mb2MudG9TdHJpbmcgbWVtbG9jXSkpLA0KCSAg
IExpc3QubWFwKGZ1dHVyZSwNCgkJICAgIGZuIG1lbWxvYw0KCQkgICAgID0+IEFzc2VtYmx5LmNv
bW1lbnQgKGNvbmNhdCBbImZ1dHVyZTogIiwNCgkJCQkJCSAgZnV0dXJlX3RvU3RyaW5nIG1lbWxv
Y10pKV0NCg0KICAgICAgZGF0YXR5cGUgY29tbWl0ID0gTk8gfCBDT01NSVQgfCBSRU1PVkUNCiAg
ICAgIGRhdGF0eXBlIHNjYW4gPSBDT05USU5VRSBvZiBjb21taXQgfCBSRVRVUk4gb2YgY29tbWl0
DQogICAgICBmdW4gc2NhbihmdXR1cmUsIGRlZmF1bHQsIGYpDQoJPSBjYXNlIGZ1dHVyZQ0KCSAg
ICBvZiBbXSA9PiBkZWZhdWx0DQoJICAgICB8IGg6OmZ1dHVyZSANCgkgICAgID0+IChjYXNlIGYo
ZGVmYXVsdCwgaCkNCgkJICAgb2YgQ09OVElOVUUgZGVmYXVsdCA9PiBzY2FuKGZ1dHVyZSwgZGVm
YXVsdCwgZikNCgkJICAgIHwgUkVUVVJOIGNvbW1pdCA9PiBjb21taXQpDQoNCiAgICAgIHZhbCBy
ZWMgc3BsaXQNCgk9IGZuIChbXSxwKSA9PiAoW10sW10sW10pDQogICAgICAgICAgIHwgKGg6OnQs
cCkgPT4gbGV0DQoJCQkgICB2YWwgKG5vLGNvbW1pdCxyZW1vdmUpID0gc3BsaXQodCwgcCkNCgkJ
CSBpbg0KCQkJICAgY2FzZSBwIGgNCgkJCSAgICAgb2YgTk8gPT4gKGg6Om5vLGNvbW1pdCxyZW1v
dmUpDQoJCQkgICAgICB8IENPTU1JVCA9PiAobm8saDo6Y29tbWl0LHJlbW92ZSkNCgkJCSAgICAg
IHwgUkVNT1ZFID0+IChubyxjb21taXQsaDo6cmVtb3ZlKQ0KCQkJIGVuZA0KDQogICAgICB2YWwg
cmVjIHBhcnRpdGlvbg0KCT0gZm4gKFtdLHApID0+IChbXSxbXSkNCiAgICAgICAgICAgfCAoaDo6
dCxwKSA9PiBsZXQNCgkJCSAgIHZhbCAodHJ1ZWUsZmFsc2VlKSA9IHBhcnRpdGlvbih0LCBwKQ0K
CQkJIGluDQoJCQkgICBpZiBwIGgNCgkJCSAgICAgdGhlbiAoaDo6dHJ1ZWUsZmFsc2VlKQ0KCQkJ
ICAgICBlbHNlICh0cnVlZSxoOjpmYWxzZWUpDQoJCQkgZW5kDQoNCiAgICAgIHZhbCByZWMgYXRN
b3N0DQoJPSBmbiAoW10sXykgPT4gW10NCgkgICB8IChfLDApID0+IFtdDQoJICAgfCAoaDo6dCxu
KSA9PiBoOjooYXRNb3N0KHQsbi0xKSkNCg0KICAgICAgZnVuIGxpdmVuZXNzIHt1c2VzOiBNZW1M
b2MudCBsaXN0LA0KCQkgICAgZGVmczogTWVtTG9jLnQgbGlzdCwNCgkJICAgIGxpdmU6IE1lbUxv
Yy50IGxpc3QsDQoJCSAgICBmdXR1cmVfY29tbWl0OiBNZW1Mb2MudCBsaXN0LA0KCQkgICAgZnV0
dXJlOiBmdXR1cmUgbGlzdH0gOg0KCSAgICAgICAgICAge2luZm86IHQsDQoJCSAgICBsaXZlOiBN
ZW1Mb2MudCBsaXN0LA0KCQkgICAgZnV0dXJlX2NvbW1pdDogTWVtTG9jLnQgbGlzdCwNCgkJICAg
IGZ1dHVyZTogZnV0dXJlIGxpc3R9DQoJPSBsZXQNCgkgICAgdmFsIGFsbFVzZXMNCgkgICAgICA9
IExpc3QucmVtb3ZlRHVwbGljYXRlcyh1c2VzIEANCgkJCQkgICAgICAoTGlzdC5mbGF0dGVuTWFw
KHVzZXMgQCBkZWZzLCANCgkJCQkJCSAgICAgICBNZW1Mb2MudXRpbGl6ZWQpKSwNCgkJCQkgICAg
ICBNZW1Mb2MuZXEpDQoJICAgIHZhbCAodGVtcFVzZXMsIG5vbnRlbXBVc2VzKQ0KCSAgICAgID0g
cGFydGl0aW9uKGFsbFVzZXMsIE1lbUxvYy5pc1RlbXApDQoNCgkgICAgdmFsIGFsbERlZnMNCgkg
ICAgICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcyhkZWZzLA0KCQkJCSAgICAgIE1lbUxvYy5lcSkN
CgkgICAgdmFsICh0ZW1wRGVmcywgbm9udGVtcERlZnMpDQoJICAgICAgPSBwYXJ0aXRpb24oYWxs
RGVmcywgTWVtTG9jLmlzVGVtcCkNCg0KCSAgICB2YWwgbGl2ZU91dCA9IGxpdmUNCgkgICAgdmFs
IGxpdmVJbiANCgkgICAgICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcw0KCSAgICAgICAgKExpc3Qu
cmVtb3ZlQWxsKGxpdmVPdXQsDQoJCQkJZm4gbWVtbG9jDQoJCQkJID0+IExpc3QuY29udGFpbnMo
dGVtcERlZnMsDQoJCQkJCQkgIG1lbWxvYywNCgkJCQkJCSAgTWVtTG9jLmVxKSkgQA0KCQkgdGVt
cFVzZXMsDQoJCSBNZW1Mb2MuZXEpDQoNCgkgICAgdmFsIGxpdmVPdXQnDQoJICAgICAgPSBMaXN0
LnJlbW92ZUR1cGxpY2F0ZXMobGl2ZUluIEAgdGVtcERlZnMsDQoJCQkJICAgICAgTWVtTG9jLmVx
KQ0KDQoJICAgIHZhbCBkZWFkIA0KCSAgICAgID0gTGlzdC5yZW1vdmVBbGwobGl2ZU91dCcsDQoJ
CQkgICAgICAgZm4gbWVtbG9jDQoJCQkgICAgICAgID0+IExpc3QuY29udGFpbnMobGl2ZU91dCwN
CgkJCQkJCSBtZW1sb2MsDQoJCQkJCQkgTWVtTG9jLmVxKSkNCg0KCSAgICB2YWwgKGRlYWRfcmVt
b3ZlLGRlYWQpDQoJICAgICAgPSBwYXJ0aXRpb24oZGVhZCwNCgkJCSAgZm4gbWVtbG9jID0+IExp
c3QuY29udGFpbnMoZnV0dXJlX2NvbW1pdCwNCgkJCQkJCSAgICAgbWVtbG9jLA0KCQkJCQkJICAg
ICBNZW1Mb2MuZXEpKQ0KDQoJICAgIHZhbCBjdXJyZW50X3VzZWRlZiANCgkgICAgICA9IExpc3Qu
a2VlcEFsbChub250ZW1wRGVmcywNCgkJCSAgICAgZm4gbWVtbG9jID0+IExpc3QuY29udGFpbnMo
bm9udGVtcFVzZXMsDQoJCQkJCQkJbWVtbG9jLA0KCQkJCQkJCU1lbUxvYy5lcSkpDQoJICAgIHZh
bCBjdXJyZW50X3VzZQ0KCSAgICAgID0gTGlzdC5rZWVwQWxsKG5vbnRlbXBVc2VzLA0KCQkJICAg
ICBmbiBtZW1sb2MgPT4gbm90IChMaXN0LmNvbnRhaW5zKGN1cnJlbnRfdXNlZGVmLA0KCQkJCQkJ
CSAgICAgbWVtbG9jLA0KCQkJCQkJCSAgICAgTWVtTG9jLmVxKSkpDQoNCgkgICAgdmFsIGN1cnJl
bnRfZGVmDQoJICAgICAgPSBMaXN0LmtlZXBBbGwobm9udGVtcERlZnMsDQoJCQkgICAgIGZuIG1l
bWxvYyA9PiBub3QgKExpc3QuY29udGFpbnMoY3VycmVudF91c2VkZWYsDQoJCQkJCQkJICAgICBt
ZW1sb2MsDQoJCQkJCQkJICAgICBNZW1Mb2MuZXEpKSkNCg0KCSAgICBsb2NhbA0KCSAgICAgIGZ1
biBkb2l0IChjb25zdHJ1Y3RvciwgbWVtbG9jKQ0KCQk9IGlmIExpc3QuZXhpc3RzDQoJCSAgICAg
KGFsbFVzZXMsDQoJCSAgICAgIGZuIG1lbWxvYycNCgkJICAgICAgID0+IExpc3QuZXhpc3RzDQoJ
CSAgICAgICAgICAoTWVtTG9jLnV0aWxpemVkIG1lbWxvYywNCgkJCSAgIGZuIG1lbWxvYycNCgkJ
CSAgICA9PiBMaXN0LmV4aXN0cw0KCQkJICAgICAgIChhbGxEZWZzLA0KCQkJCWZuIG1lbWxvYycn
DQoJCQkJID0+IE1lbUxvYy5tYXlBbGlhcyhtZW1sb2MnLCANCgkJCQkJCSAgICBtZW1sb2MnJykp
KSkNCgkJICAgICBvcmVsc2UNCgkJICAgICBMaXN0LmV4aXN0cw0KCQkgICAgIChhbGxEZWZzLA0K
CQkgICAgICBmbiBtZW1sb2MnDQoJCSAgICAgICA9PiBNZW1Mb2MubWF5QWxpYXMobWVtbG9jLA0K
CQkJCQkgIG1lbWxvYycpDQoJCSAgICAgICAgICBhbmRhbHNvDQoJCQkgIG5vdCAoTWVtTG9jLmVx
KG1lbWxvYywNCgkJCQkJIG1lbWxvYycpKSkNCgkJICAgIHRoZW4gTk9ORQ0KCQkgICAgZWxzZSBT
T01FIChjb25zdHJ1Y3RvciBtZW1sb2MpDQoJICAgIGluDQoJICAgICAgdmFsIGZ1dHVyZQ0KCQk9
IExpc3Qua2VlcEFsbE1hcA0KCQkgIChmdXR1cmUsDQoJCSAgIGZuIFVTRSBtZW1sb2MgPT4gZG9p
dChVU0UsIG1lbWxvYykNCgkJICAgIHwgREVGIG1lbWxvYyA9PiBkb2l0KERFRiwgbWVtbG9jKQ0K
CQkgICAgfCBVU0VERUYgbWVtbG9jID0+IGRvaXQoVVNFREVGLCBtZW1sb2MpKQ0KCSAgICBlbmQN
Cg0KCSAgICB2YWwgKG5vX3VzZSxjb21taXRfdXNlLHJlbW92ZV91c2UpDQoJICAgICAgPSBzcGxp
dChjdXJyZW50X3VzZSwNCgkJICAgICAgZm4gbWVtbG9jDQoJCSAgICAgICA9PiBzY2FuDQoJCSAg
ICAgICAgICAoZnV0dXJlLA0KCQkJICAgUkVNT1ZFLA0KCQkJICAgZm4gKGRlZmF1bHQsIFVTRSBt
ZW1sb2MnKSANCgkJCSAgICA9PiBpZiBNZW1Mb2MuZXEobWVtbG9jLG1lbWxvYycpDQoJCQkJIHRo
ZW4gUkVUVVJOIE5PDQoJCQkJIGVsc2UgQ09OVElOVUUgZGVmYXVsdA0KCQkJICAgIHwgKGRlZmF1
bHQsIFVTRURFRiBtZW1sb2MnKQ0KCQkJICAgID0+IGlmIE1lbUxvYy5lcShtZW1sb2MsbWVtbG9j
JykNCgkJCQkgdGhlbiBSRVRVUk4gTk8NCgkJCQkgZWxzZSBDT05USU5VRSBkZWZhdWx0DQoJCQkg
ICAgfCAoZGVmYXVsdCwgREVGIG1lbWxvYycpDQoJCQkgICAgPT4gaWYgTWVtTG9jLmVxKG1lbWxv
YyxtZW1sb2MnKQ0KCQkJCSB0aGVuIFJFVFVSTiBSRU1PVkUNCgkJCQkgZWxzZSBDT05USU5VRSBk
ZWZhdWx0KSkNCg0KCSAgICB2YWwgKG5vX3VzZWRlZixjb21taXRfdXNlZGVmLHJlbW92ZV91c2Vk
ZWYpDQoJICAgICAgPSBzcGxpdChjdXJyZW50X3VzZWRlZiwNCgkJICAgICAgZm4gbWVtbG9jDQoJ
CSAgICAgICA9PiBzY2FuDQoJCSAgICAgICAgICAoZnV0dXJlLA0KCQkJICAgUkVNT1ZFLA0KCQkJ
ICAgZm4gKGRlZmF1bHQsIFVTRSBtZW1sb2MnKQ0KCQkJICAgID0+IGlmIE1lbUxvYy5lcShtZW1s
b2MsbWVtbG9jJykNCgkJCQkgdGhlbiBDT05USU5VRSBDT01NSVQNCgkJCQkgZWxzZSBDT05USU5V
RSBkZWZhdWx0DQoJCQkgICAgfCAoZGVmYXVsdCwgVVNFREVGIG1lbWxvYycpDQoJCQkgICAgPT4g
aWYgTWVtTG9jLmVxKG1lbWxvYyxtZW1sb2MnKQ0KCQkJCSB0aGVuIFJFVFVSTiBOTw0KCQkJCSBl
bHNlIENPTlRJTlVFIGRlZmF1bHQNCgkJCSAgICB8IChkZWZhdWx0LCBERUYgbWVtbG9jJykNCgkJ
CSAgICA9PiBpZiBNZW1Mb2MuZXEobWVtbG9jLG1lbWxvYycpDQoJCQkJIHRoZW4gUkVUVVJOIE5P
DQoJCQkJIGVsc2UgQ09OVElOVUUgZGVmYXVsdCkpDQoNCgkgICAgdmFsIChub19kZWYsY29tbWl0
X2RlZixyZW1vdmVfZGVmKQ0KCSAgICAgID0gc3BsaXQoY3VycmVudF9kZWYsDQoJCSAgICAgIGZu
IG1lbWxvYw0KCQkgICAgICAgPT4gc2Nhbg0KCQkgICAgICAgICAgKGZ1dHVyZSwNCgkJCSAgIFJF
TU9WRSwNCgkJCSAgIGZuIChkZWZhdWx0LCBVU0UgbWVtbG9jJykNCgkJCSAgICA9PiBpZiBNZW1M
b2MuZXEobWVtbG9jLG1lbWxvYycpDQoJCQkJIHRoZW4gQ09OVElOVUUgQ09NTUlUDQoJCQkJIGVs
c2UgQ09OVElOVUUgZGVmYXVsdA0KCQkJICAgIHwgKGRlZmF1bHQsIFVTRURFRiBtZW1sb2MnKQ0K
CQkJICAgID0+IGlmIE1lbUxvYy5lcShtZW1sb2MsbWVtbG9jJykNCgkJCQkgdGhlbiBSRVRVUk4g
Tk8NCgkJCQkgZWxzZSBDT05USU5VRSBkZWZhdWx0DQoJCQkgICAgfCAoZGVmYXVsdCwgREVGIG1l
bWxvYycpDQoJCQkgICAgPT4gaWYgTWVtTG9jLmVxKG1lbWxvYyxtZW1sb2MnKQ0KCQkJCSB0aGVu
IFJFVFVSTiBOTw0KCQkJCSBlbHNlIENPTlRJTlVFIGRlZmF1bHQpKQ0KDQoJICAgIHZhbCBubyA9
IG5vX3VzZSBAIG5vX3VzZWRlZiBAIG5vX2RlZg0KCSAgICB2YWwgY29tbWl0ID0gY29tbWl0X3Vz
ZSBAIGNvbW1pdF91c2VkZWYgQCBjb21taXRfZGVmDQoJICAgIHZhbCByZW1vdmUgPSByZW1vdmVf
dXNlIEAgcmVtb3ZlX3VzZWRlZiBAIHJlbW92ZV9kZWYgQCBkZWFkX3JlbW92ZQ0KDQoJICAgIHZh
bCBmdXR1cmUNCgkgICAgICA9IExpc3QucmV2DQoJICAgICAgICAoTGlzdC5yZW1vdmVEdXBsaWNh
dGVzDQoJCSAoTGlzdC5mbGF0dGVuDQoJCSAgW0xpc3QubWFwKGN1cnJlbnRfdXNlLCBVU0UpLA0K
CQkgICBMaXN0Lm1hcChjdXJyZW50X3VzZWRlZiwgVVNFREVGKSwNCgkJICAgTGlzdC5tYXAoY3Vy
cmVudF9kZWYsIERFRiksDQoJCSAgIGZ1dHVyZV0sDQoJCSAgZnV0dXJlX2VxKSkNCg0KCSAgICB2
YWwgZnV0dXJlID0gYXRNb3N0KGZ1dHVyZSwgMTYpDQoNCgkgICAgdmFsIGluZm8gDQoJICAgICAg
PSBpZiAhQ29udHJvbC5uYXRpdmVDb21tZW50ZWQgPiAyDQoJCSAgdGhlbiB7bGl2ZUluID0gbGl2
ZUluLA0KCQkJbGl2ZU91dCA9IGxpdmVPdXQsDQoJCQlkZWFkID0gZGVhZCwNCgkJCWNvbW1pdCA9
IGNvbW1pdCwNCgkJCXJlbW92ZSA9IHJlbW92ZSwNCgkJCWZ1dHVyZSA9IGZ1dHVyZX0NCgkJICBl
bHNlIHtsaXZlSW4gPSBbXSwNCgkJCWxpdmVPdXQgPSBbXSwNCgkJCWRlYWQgPSBkZWFkLA0KCQkJ
Y29tbWl0ID0gY29tbWl0LA0KCQkJcmVtb3ZlID0gcmVtb3ZlLA0KCQkJZnV0dXJlID0gW119DQoJ
ICBpbg0KCSAgICB7aW5mbyA9IGluZm8sDQoJICAgICBsaXZlID0gbGl2ZUluLA0KCSAgICAgZnV0
dXJlX2NvbW1pdCA9IGZ1dHVyZV9jb21taXQsDQoJICAgICBmdXR1cmUgPSBmdXR1cmV9DQoJICBl
bmQNCg0KICAgICAgZnVuIGxpdmVuZXNzQXNzZW1ibHkge2Fzc2VtYmx5OiBBc3NlbWJseS50LA0K
CQkJICAgIGxpdmU6IE1lbUxvYy50IGxpc3QsDQoJCQkgICAgZnV0dXJlX2NvbW1pdDogTWVtTG9j
LnQgbGlzdCwNCgkJCSAgICBmdXR1cmU6IGZ1dHVyZSBsaXN0fSA6DQoJICAgICAgICAgICAgICAg
ICAgIHtpbmZvOiB0LA0KCQkJICAgIGxpdmU6IE1lbUxvYy50IGxpc3QsDQoJCQkgICAgZnV0dXJl
X2NvbW1pdDogTWVtTG9jLnQgbGlzdCwNCgkJCSAgICBmdXR1cmU6IGZ1dHVyZSBsaXN0fQ0KCT0g
Y2FzZSBhc3NlbWJseQ0KCSAgICBvZiBBc3NlbWJseS5EaXJlY3RpdmUgRGlyZWN0aXZlLlJlc2V0
IA0KCSAgICAgPT4gbGl2ZW5lc3Mge3VzZXMgPSBbXSwNCgkJCSAgZGVmcyA9IFtdLA0KCQkJICBs
aXZlID0gW10sDQoJCQkgIGZ1dHVyZV9jb21taXQgPSBbXSwNCgkJCSAgZnV0dXJlID0gW119DQoJ
ICAgICB8IEFzc2VtYmx5LkRpcmVjdGl2ZSBEaXJlY3RpdmUuRmx1c2gNCgkgICAgID0+IGxpdmVu
ZXNzIHt1c2VzID0gW10sDQoJCQkgIGRlZnMgPSBbXSwNCgkJCSAgbGl2ZSA9IGxpdmUsDQoJCQkg
IGZ1dHVyZV9jb21taXQgPSBmdXR1cmVfY29tbWl0LA0KCQkJICBmdXR1cmUNCgkJCSAgPSBMaXN0
LnJldg0KCQkJICAgIChMaXN0LnJlbW92ZUR1cGxpY2F0ZXMNCgkJCSAgICAgKExpc3Qua2VlcEFs
bE1hcA0KCQkJICAgICAgKGZ1dHVyZSwNCgkJCSAgICAgICBmbiBVU0UgbWVtbG9jIA0KCQkJICAg
ICAgICA9PiAoY2FzZSBTaXplLmNsYXNzIChNZW1Mb2Muc2l6ZSBtZW1sb2MpDQoJCQkJICAgICAg
b2YgU2l6ZS5JTlQgPT4gU09NRSAoVVNFIG1lbWxvYykNCgkJCQkgICAgICAgfCBfID0+IE5PTkUp
DQoJCQkJfCBVU0VERUYgbWVtbG9jIA0KCQkJICAgICAgICA9PiAoY2FzZSBTaXplLmNsYXNzIChN
ZW1Mb2Muc2l6ZSBtZW1sb2MpDQoJCQkJICAgICAgb2YgU2l6ZS5JTlQgPT4gU09NRSAoVVNFIG1l
bWxvYykNCgkJCQkgICAgICAgfCBfID0+IE5PTkUpDQoJCQkgICAgICAgIHwgREVGIG1lbWxvYw0K
CQkJICAgICAgICA9PiBOT05FKSwNCgkJCSAgICAgIGZ1dHVyZV9lcSkpfQ0KCSAgICAgfCBBc3Nl
bWJseS5EaXJlY3RpdmUgRGlyZWN0aXZlLkNsZWFyDQoJICAgICA9PiBsaXZlbmVzcyB7dXNlcyA9
IFtdLA0KCQkJICBkZWZzID0gW10sDQoJCQkgIGxpdmUgPSBsaXZlLA0KCQkJICBmdXR1cmVfY29t
bWl0ID0gZnV0dXJlX2NvbW1pdCwNCgkJCSAgZnV0dXJlDQoJCQkgID0gTGlzdC5rZWVwQWxsTWFw
DQoJCQkgICAgKGZ1dHVyZSwNCgkJCSAgICAgZm4gVVNFIG1lbWxvYyANCgkJCSAgICAgID0+IChj
YXNlIFNpemUuY2xhc3MgKE1lbUxvYy5zaXplIG1lbWxvYykNCgkJCQkgICAgb2YgU2l6ZS5JTlQg
PT4gU09NRSAoVVNFIG1lbWxvYykNCgkJCQkgICAgIHwgXyA9PiBOT05FKQ0KCQkJICAgICAgfCBV
U0VERUYgbWVtbG9jIA0KCQkJICAgICAgPT4gKGNhc2UgU2l6ZS5jbGFzcyAoTWVtTG9jLnNpemUg
bWVtbG9jKQ0KCQkJCSAgICBvZiBTaXplLklOVCA9PiBTT01FIChVU0UgbWVtbG9jKQ0KCQkJCSAg
ICAgfCBfID0+IE5PTkUpDQoJCQkgICAgICB8IERFRiBtZW1sb2MNCgkJCSAgICAgID0+IE5PTkUp
fQ0KCSAgICAgfCBBc3NlbWJseS5EaXJlY3RpdmUgKERpcmVjdGl2ZS5Db21taXQge21lbWxvY3N9
KQ0KCSAgICAgPT4gbGV0DQoJCSAgdmFsICh0ZW1wcyxub25UZW1wcykNCgkJICAgID0gcGFydGl0
aW9uKG1lbWxvY3MsIE1lbUxvYy5pc1RlbXApDQoNCgkJICB2YWwgKG5vbkNvbW1pdHMsY29tbWl0
cykNCgkJICAgID0gcGFydGl0aW9uKHRlbXBzLA0KCQkJCWZuIG1lbWxvYyA9PiBMaXN0LmNvbnRh
aW5zDQoJCQkJICAgICAgICAgICAgIChsaXZlLA0KCQkJCQkgICAgICBtZW1sb2MsDQoJCQkJCSAg
ICAgIE1lbUxvYy5lcSkpDQoJCWluDQoJCSAgbGl2ZW5lc3Mge3VzZXMgPSBub25UZW1wcyBAIG5v
bkNvbW1pdHMsDQoJCQkgICAgZGVmcyA9IFtdLA0KCQkJICAgIGxpdmUgPSBsaXZlLA0KCQkJICAg
IGZ1dHVyZV9jb21taXQgDQoJCQkgICAgPSBMaXN0LnJlbW92ZUR1cGxpY2F0ZXMoY29tbWl0cyBA
IGZ1dHVyZV9jb21taXQsDQoJCQkJCQkgICAgTWVtTG9jLmVxKSwNCgkJCSAgICBmdXR1cmUgPSBm
dXR1cmV9DQoJCWVuZA0KCSAgICAgfCBfID0+IGxldA0KCQkgICAgICB2YWwge3VzZXMsZGVmcywu
Li59ID0gQXNzZW1ibHkudXNlc19kZWZzX2tpbGxzIGFzc2VtYmx5DQoJCSAgICBpbg0KCQkgICAg
ICBsaXZlbmVzcyB7dXNlcyA9IExpc3Qua2VlcEFsbE1hcCh1c2VzLE9wZXJhbmQuZGVNZW1sb2Mp
LA0KCQkJCWRlZnMgPSBMaXN0LmtlZXBBbGxNYXAoZGVmcyxPcGVyYW5kLmRlTWVtbG9jKSwNCgkJ
CQlsaXZlID0gbGl2ZSwNCgkJCQlmdXR1cmVfY29tbWl0ID0gZnV0dXJlX2NvbW1pdCwNCgkJCQlm
dXR1cmUgPSBmdXR1cmV9DQoJCSAgICBlbmQNCg0KICAgICAgZnVuIHRvTGl2ZW5lc3MgKGFzc2Vt
Ymx5OiBBc3NlbWJseS50IGxpc3QpIDogKChBc3NlbWJseS50ICogdCkgbGlzdCkNCgk9IGxldA0K
CSAgICB2YWwge2Fzc2VtYmx5LC4uLn0NCgkgICAgICA9IExpc3QuZm9sZHIoYXNzZW1ibHksDQoJ
CQkgICB7YXNzZW1ibHkgPSBbXSwNCgkJCSAgICBsaXZlID0gW10sDQoJCQkgICAgZnV0dXJlX2Nv
bW1pdCA9IFtdLA0KCQkJICAgIGZ1dHVyZSA9IFtdfSwNCgkJCSAgIGZuIChhc20sDQoJCQkgICAg
ICAge2Fzc2VtYmx5LA0KCQkJCWxpdmUsDQoJCQkJZnV0dXJlX2NvbW1pdCwNCgkJCQlmdXR1cmV9
KQ0KCQkJICAgPT4gbGV0DQoJCQkJdmFsIHtpbmZvLGxpdmUsZnV0dXJlX2NvbW1pdCxmdXR1cmV9
DQoJCQkJICA9IGxpdmVuZXNzQXNzZW1ibHkNCgkJCQkgICAge2Fzc2VtYmx5ID0gYXNtLA0KCQkJ
CSAgICAgbGl2ZSA9IGxpdmUsDQoJCQkJICAgICBmdXR1cmVfY29tbWl0ID0gZnV0dXJlX2NvbW1p
dCwNCgkJCQkgICAgIGZ1dHVyZSA9IGZ1dHVyZX0NCgkJCSAgICAgIGluDQoJCQkJe2Fzc2VtYmx5
ID0gKGFzbSxpbmZvKTo6YXNzZW1ibHksDQoJCQkJIGxpdmUgPSBsaXZlLA0KCQkJCSBmdXR1cmVf
Y29tbWl0ID0gZnV0dXJlX2NvbW1pdCwNCgkJCQkgZnV0dXJlID0gZnV0dXJlfQ0KCQkJICAgICAg
ZW5kKQ0KCSAgaW4NCgkgICAgYXNzZW1ibHkNCgkgIGVuZA0KDQogICAgICBmdW4gdG9Ob0xpdmVu
ZXNzIChhc3NlbWJseTogQXNzZW1ibHkudCBsaXN0KSA6ICgoQXNzZW1ibHkudCAqIHQpIGxpc3Qp
DQoJPSBMaXN0Lm1hcChhc3NlbWJseSwgZm4gYXNtID0+IChhc20se2xpdmVJbiA9IFtdLA0KCQkJ
CQkgICAgIGxpdmVPdXQgPSBbXSwNCgkJCQkJICAgICBkZWFkID0gW10sDQoJCQkJCSAgICAgY29t
bWl0ID0gW10sDQoJCQkJCSAgICAgcmVtb3ZlID0gW10sDQoJCQkJCSAgICAgZnV0dXJlID0gW119
KSkNCiAgICBlbmQNCg0KICBzdHJ1Y3R1cmUgUmVnaXN0ZXJBbGxvY2F0aW9uID0NCiAgICBzdHJ1
Y3QNCiAgICAgIHZhbCByZWMgcGFydGl0aW9uDQoJPSBmbiAoW10scCkgPT4gKFtdLFtdKQ0KICAg
ICAgICAgICB8IChoOjp0LHApID0+IGxldA0KCQkJICAgdmFsICh0cnVlZSxmYWxzZWUpID0gcGFy
dGl0aW9uKHQsIHApDQoJCQkgaW4NCgkJCSAgIGlmIHAgaA0KCQkJICAgICB0aGVuIChoOjp0cnVl
ZSxmYWxzZWUpDQoJCQkgICAgIGVsc2UgKHRydWVlLGg6OmZhbHNlZSkNCgkJCSBlbmQNCg0KICAg
ICAgZGF0YXR5cGUgY29tbWl0IA0KCT0gTk8gDQoJfCBDT01NSVQgb2YgaW50IA0KCXwgUkVNT1ZF
IG9mIGludA0KCXwgVFJZQ09NTUlUIG9mIGludCANCgl8IFRSWVJFTU9WRSBvZiBpbnQNCg0KICAg
ICAgdmFsIGNvbW1pdF90b1N0cmluZw0KCT0gZm4gTk8gPT4gIk5PIg0KICAgICAgICAgICB8IENP
TU1JVCBpID0+ICJDT01NSVQgIiBeIChJbnQudG9TdHJpbmcgaSkNCgkgICB8IFJFTU9WRSBpID0+
ICJSRU1PVkUgIiBeIChJbnQudG9TdHJpbmcgaSkNCiAgICAgICAgICAgfCBUUllDT01NSVQgaSA9
PiAiVFJZQ09NTUlUICIgXiAoSW50LnRvU3RyaW5nIGkpDQoJICAgfCBUUllSRU1PVkUgaSA9PiAi
VFJZUkVNT1ZFICIgXiAoSW50LnRvU3RyaW5nIGkpDQoNCiAgICAgIHR5cGUgdmFsdWUgPSB7cmVn
aXN0ZXI6IFJlZ2lzdGVyLnQsDQoJCSAgICBtZW1sb2M6IE1lbUxvYy50LA0KCQkgICAgd2VpZ2h0
OiBpbnQsDQoJCSAgICBzeW5jOiBib29sLA0KCQkgICAgY29tbWl0OiBjb21taXR9DQoNCiAgICAg
IGZ1biB2YWx1ZV90b1N0cmluZyB7cmVnaXN0ZXIsIG1lbWxvYywgd2VpZ2h0LCBzeW5jLCBjb21t
aXR9DQoJPSBjb25jYXQgW1JlZ2lzdGVyLnRvU3RyaW5nIHJlZ2lzdGVyLCAiICIsDQoJCSAgTWVt
TG9jLnRvU3RyaW5nIG1lbWxvYywgIiAiLA0KCQkgIEludC50b1N0cmluZyB3ZWlnaHQsICIgIiwN
CgkJICBCb29sLnRvU3RyaW5nIHN5bmMsICIgIiwNCgkJICBjb21taXRfdG9TdHJpbmcgY29tbWl0
XQ0KDQogICAgICBmdW4gdmFsdWVfZXEgKHZhbHVlMSBhcyB7cmVnaXN0ZXIgPSByZWdpc3RlcjEs
DQoJCQkgICAgICAgbWVtbG9jID0gbWVtbG9jMSwNCgkJCSAgICAgICB3ZWlnaHQgPSB3ZWlnaHQx
LA0KCQkJICAgICAgIHN5bmMgPSBzeW5jMSwNCgkJCSAgICAgICBjb21taXQgPSBjb21taXQxfSwN
CgkJICAgIHZhbHVlMiBhcyB7cmVnaXN0ZXIgPSByZWdpc3RlcjIsDQoJCQkgICAgICAgbWVtbG9j
ID0gbWVtbG9jMiwNCgkJCSAgICAgICB3ZWlnaHQgPSB3ZWlnaHQyLA0KCQkJICAgICAgIHN5bmMg
PSBzeW5jMiwNCgkJCSAgICAgICBjb21taXQgPSBjb21taXQyfSkNCgk9IFJlZ2lzdGVyLmVxKHJl
Z2lzdGVyMSwgcmVnaXN0ZXIyKQ0KCSAgYW5kYWxzbw0KCSAgTWVtTG9jLmVxKG1lbWxvYzEsIG1l
bWxvYzIpDQoJICBhbmRhbHNvDQoJICB3ZWlnaHQxID0gd2VpZ2h0Mg0KCSAgYW5kYWxzbw0KCSAg
c3luYzEgPSBzeW5jMg0KCSAgYW5kYWxzbw0KCSAgY29tbWl0MSA9IGNvbW1pdDINCg0KICAgICAg
dHlwZSBmbHR2YWx1ZSA9IHtmbHRyZWdpc3RlcjogRmx0UmVnaXN0ZXIudCwNCgkJICAgICAgIG1l
bWxvYzogTWVtTG9jLnQsDQoJCSAgICAgICB3ZWlnaHQ6IGludCwNCgkJICAgICAgIHN5bmM6IGJv
b2wsDQoJCSAgICAgICBjb21taXQ6IGNvbW1pdH0NCg0KICAgICAgZnVuIGZsdHZhbHVlX3RvU3Ry
aW5nIHtmbHRyZWdpc3RlciwgbWVtbG9jLCB3ZWlnaHQsIHN5bmMsIGNvbW1pdH0NCgk9IGNvbmNh
dCBbRmx0UmVnaXN0ZXIudG9TdHJpbmcgZmx0cmVnaXN0ZXIsICIgIiwNCgkJICBNZW1Mb2MudG9T
dHJpbmcgbWVtbG9jLCAiICIsDQoJCSAgSW50LnRvU3RyaW5nIHdlaWdodCwgIiAiLA0KCQkgIEJv
b2wudG9TdHJpbmcgc3luYywgIiAiLA0KCQkgIGNvbW1pdF90b1N0cmluZyBjb21taXRdDQoNCiAg
ICAgIGZ1biBmbHR2YWx1ZV9lcSAodmFsdWUxIGFzIHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVy
MSwNCgkJCQkgIG1lbWxvYyA9IG1lbWxvYzEsDQoJCQkJICB3ZWlnaHQgPSB3ZWlnaHQxLA0KCQkJ
CSAgc3luYyA9IHN5bmMxLA0KCQkJCSAgY29tbWl0ID0gY29tbWl0MX0sDQoJCSAgICAgICB2YWx1
ZTIgYXMge2ZsdHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXIyLA0KCQkJCSAgbWVtbG9jID0gbWVtbG9j
MiwNCgkJCQkgIHdlaWdodCA9IHdlaWdodDIsDQoJCQkJICBzeW5jID0gc3luYzIsDQoJCQkJICBj
b21taXQgPSBjb21taXQyfSkNCgk9IEZsdFJlZ2lzdGVyLmVxKGZsdHJlZ2lzdGVyMSwgZmx0cmVn
aXN0ZXIyKQ0KCSAgYW5kYWxzbw0KCSAgTWVtTG9jLmVxKG1lbWxvYzEsIG1lbWxvYzIpDQoJICBh
bmRhbHNvDQoJICB3ZWlnaHQxID0gd2VpZ2h0Mg0KCSAgYW5kYWxzbw0KCSAgc3luYzEgPSBzeW5j
Mg0KCSAgYW5kYWxzbw0KCSAgY29tbWl0MSA9IGNvbW1pdDINCgkJICAgICAgDQogICAgICB0eXBl
IHQgPSB7ZW50cmllczogdmFsdWUgbGlzdCwNCgkJcmVzZXJ2ZWQ6IFJlZ2lzdGVyLnQgbGlzdCwN
CgkJZmx0c3RhY2s6IGZsdHZhbHVlIGxpc3R9DQoNCiAgICAgIGZ1biB0b1N0cmluZyAocmVnaXN0
ZXJBbGxvY2F0aW9uIGFzIHtlbnRyaWVzLCByZXNlcnZlZCwgZmx0c3RhY2t9OiB0KSANCgk9IGNv
bmNhdCBbImVudHJpZXM6XG4iLA0KCQkgIChMaXN0LmZvbGQoZW50cmllcywgIiIsDQoJCQkgICAg
IGZuICh2YWx1ZSxzKQ0KCQkJICAgICAgPT4gY29uY2F0W3ZhbHVlX3RvU3RyaW5nIHZhbHVlLCAi
XG4iLCBzXSkpLA0KCQkgICJyZXNlcnZlZDogIiwNCgkJICAoTGlzdC5mb2xkKHJlc2VydmVkLCAi
IiwNCgkJCSAgICAgZm4gKHJlZ2lzdGVyLHMpIA0KCQkJICAgICAgPT4gY29uY2F0W1JlZ2lzdGVy
LnRvU3RyaW5nIHJlZ2lzdGVyLCAiICIsIHNdKSksIA0KCQkgICJcbmZsdHN0YWNrOlxuIiwNCgkJ
ICAoTGlzdC5mb2xkKGZsdHN0YWNrLCAiIiwNCgkJCSAgICAgZm4gKGZsdHZhbHVlLHMpDQoJCQkg
ICAgICA9PiBjb25jYXRbZmx0dmFsdWVfdG9TdHJpbmcgZmx0dmFsdWUsICJcbiIsIHNdKSksDQoJ
CSAgIlxuIl0NCg0KICAgICAgZnVuIHRvQ29tbWVudHMgKHJlZ2lzdGVyQWxsb2NhdGlvbiBhcyB7
ZW50cmllcywgcmVzZXJ2ZWQsIGZsdHN0YWNrfTogdCkNCgk9IExpc3QuZmxhdHRlbg0KCSAgW1tB
c3NlbWJseS5jb21tZW50ICJlbnRyaWVzOiJdLA0KCSAgIExpc3QubWFwDQoJICAgKGVudHJpZXMs
DQoJICAgIGZuIHZhbHVlID0+IEFzc2VtYmx5LmNvbW1lbnQgKHZhbHVlX3RvU3RyaW5nIHZhbHVl
KSksDQoJICAgW0Fzc2VtYmx5LmNvbW1lbnQgDQoJICAgICgicmVzZXJ2ZWQ6ICIgXg0KCSAgICAg
KExpc3QuZm9sZChyZXNlcnZlZCwgIiIsDQoJCQlmbiAocmVnaXN0ZXIscykgDQoJCQkgPT4gY29u
Y2F0W1JlZ2lzdGVyLnRvU3RyaW5nIHJlZ2lzdGVyLCAiICIsIHNdKSkpXSwNCgkgICBbQXNzZW1i
bHkuY29tbWVudCAiZmx0c3RhY2s6Il0sDQoJICAgTGlzdC5tYXANCgkgICAoZmx0c3RhY2ssDQoJ
ICAgIGZuIGZsdHZhbHVlID0+IEFzc2VtYmx5LmNvbW1lbnQgKGZsdHZhbHVlX3RvU3RyaW5nIGZs
dHZhbHVlKSldDQoNCiAgICAgIGZ1biBlcSAocmVnaXN0ZXJBbGxvY2F0aW9uMSBhcyB7ZW50cmll
cyA9IGVudHJpZXMxLCANCgkJCQkgICAgICByZXNlcnZlZCA9IHJlc2VydmVkMSwNCgkJCQkgICAg
ICBmbHRzdGFjayA9IGZsdHN0YWNrMX0sDQoJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uMiBhcyB7
ZW50cmllcyA9IGVudHJpZXMyLCANCgkJCQkgICAgICByZXNlcnZlZCA9IHJlc2VydmVkMiwNCgkJ
CQkgICAgICBmbHRzdGFjayA9IGZsdHN0YWNrMn0pDQoJPSBMaXN0LmVxdWFsc0FzU2V0KGVudHJp
ZXMxLCANCgkJCSAgIGVudHJpZXMyLA0KCQkJICAgdmFsdWVfZXEpDQoJICBhbmRhbHNvDQoJICBM
aXN0LmVxdWFsc0FzU2V0KHJlc2VydmVkMSwNCgkJCSAgIHJlc2VydmVkMiwNCgkJCSAgIFJlZ2lz
dGVyLmVxKQ0KCSAgYW5kYWxzbw0KCSAgTGlzdC5lcXVhbHMoZmx0c3RhY2sxLA0KCQkgICAgICBm
bHRzdGFjazIsDQoJCSAgICAgIGZsdHZhbHVlX2VxKQ0KDQogICAgICBmdW4gZW1wdHkgKCkgOiB0
DQoJPSB7ZW50cmllcyA9IFtdLA0KCSAgIHJlc2VydmVkID0gW10sDQoJICAgZmx0c3RhY2sgPSBb
XX0NCg0KICAgICAgZnVuIHZhbHVlTWFwIHttYXAsIA0KCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
IGFzIHtlbnRyaWVzLA0KCQkJCQkgICByZXNlcnZlZCwgDQoJCQkJCSAgIGZsdHN0YWNrfTogdH0N
Cgk9IHtlbnRyaWVzID0gTGlzdC5tYXAoZW50cmllcywgbWFwKSwNCgkgICByZXNlcnZlZCA9IHJl
c2VydmVkLA0KCSAgIGZsdHN0YWNrID0gZmx0c3RhY2t9DQoNCiAgICAgIGZ1biB2YWx1ZUZpbHRl
ciB7ZmlsdGVyLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIGFzIHtlbnRyaWVzLCANCgkJ
CQkJICAgICAgcmVzZXJ2ZWQsIA0KCQkJCQkgICAgICBmbHRzdGFja306IHR9DQoJPSBMaXN0Lmtl
ZXBBbGwoZW50cmllcywgZmlsdGVyKQ0KDQogICAgICBmdW4gdmFsdWVzUmVnaXN0ZXIge3JlZ2lz
dGVyIGFzIFJlZ2lzdGVyLlQge3JlZywgcGFydH0sIA0KCQkJICByZWdpc3RlckFsbG9jYXRpb24g
YXMge2VudHJpZXMsIA0KCQkJCQkJIHJlc2VydmVkLCANCgkJCQkJCSBmbHRzdGFja306IHR9DQoJ
PSBMaXN0LmtlZXBBbGwoZW50cmllcywgDQoJCSAgICAgICBmbiB7cmVnaXN0ZXIgDQoJCQkgICA9
IHJlZ2lzdGVyJyBhcyBSZWdpc3Rlci5UIHtyZWcgPSByZWcnLA0KCQkJCQkJICAgICAgcGFydCA9
IHBhcnQnfSwuLi59DQoJCSAgICAgICAgPT4gcmVnID0gcmVnJykNCg0KICAgICAgZnVuIGZsdHZh
bHVlTWFwIHttYXAsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gYXMge2VudHJpZXMsIA0K
CQkJCQkgICAgICByZXNlcnZlZCwgDQoJCQkJCSAgICAgIGZsdHN0YWNrfTogdH0NCgk9IHtlbnRy
aWVzID0gZW50cmllcywNCgkgICByZXNlcnZlZCA9IHJlc2VydmVkLA0KCSAgIGZsdHN0YWNrID0g
TGlzdC5tYXAoZmx0c3RhY2ssIG1hcCl9DQoNCiAgICAgIGZ1biBmbHR2YWx1ZUZpbHRlciB7Zmls
dGVyLA0KCQkJICByZWdpc3RlckFsbG9jYXRpb24gYXMge2VudHJpZXMsIA0KCQkJCQkJIHJlc2Vy
dmVkLCANCgkJCQkJCSBmbHRzdGFja30gOnR9DQoJPSBMaXN0LmtlZXBBbGwoZmx0c3RhY2ssIGZp
bHRlcikNCg0KICAgICAgZnVuIHZhbHVlc0ZsdFJlZ2lzdGVyIHtmbHRyZWdpc3RlciBhcyBGbHRS
ZWdpc3Rlci5UIGksDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiBhcyB7ZW50cmllcywNCgkJ
CQkJCSAgICByZXNlcnZlZCwNCgkJCQkJCSAgICBmbHRzdGFja30gOiB0fQ0KCT0gTGlzdC5rZWVw
QWxsKGZsdHN0YWNrLA0KCQkgICAgICAgZm4ge2ZsdHJlZ2lzdGVyIA0KCQkJICAgPSBmbHRyZWdp
c3RlcicgYXMgRmx0UmVnaXN0ZXIuVCBpJywgLi4ufQ0KCQkgICAgICAgID0+IGkgPSBpJykNCg0K
ICAgICAgZnVuIHVwZGF0ZSB7dmFsdWUgYXMge3JlZ2lzdGVyLC4uLn0sDQoJCSAgcmVnaXN0ZXJB
bGxvY2F0aW9uIGFzIHtlbnRyaWVzLCByZXNlcnZlZCwgZmx0c3RhY2t9OiB0fQ0KCT0ge2VudHJp
ZXMgPSBsZXQNCgkJICAgICAgIHZhbCBlbnRyaWVzIA0KCQkJID0gTGlzdC5yZW1vdmVBbGwoZW50
cmllcywNCgkJCQkJICBmbiB7cmVnaXN0ZXIgPSByZWdpc3RlcicsLi4ufSANCgkJCQkJICAgPT4g
UmVnaXN0ZXIuZXEocmVnaXN0ZXIscmVnaXN0ZXInKSkNCgkJICAgICBpbg0KCQkgICAgICAgdmFs
dWU6OmVudHJpZXMNCgkJICAgICBlbmQsDQoJICAgcmVzZXJ2ZWQgPSByZXNlcnZlZCwNCgkgICBm
bHRzdGFjayA9IGZsdHN0YWNrfQ0KICAgICAgZnVuIHVwZGF0ZXMge3ZhbHVlcywgcmVnaXN0ZXJB
bGxvY2F0aW9uOiB0fQ0KCT0gTGlzdC5mb2xkKHZhbHVlcywNCgkJICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiwNCgkJICAgIGZuICh2YWx1ZSwgcmVnaXN0ZXJBbGxvY2F0aW9uKQ0KCQkgICAgID0+IHVw
ZGF0ZSB7dmFsdWUgPSB2YWx1ZSwNCgkJCQlyZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259KQ0KDQogICAgICBmdW4gZmx0dXBkYXRlIHt2YWx1ZSBhcyB7Zmx0cmVnaXN0ZXIs
IC4uLn0sDQoJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIGFzIHtlbnRyaWVzLCByZXNlcnZlZCwg
Zmx0c3RhY2t9OiB0fQ0KCT0ge2VudHJpZXMgPSBlbnRyaWVzLA0KCSAgIHJlc2VydmVkID0gcmVz
ZXJ2ZWQsDQoJICAgZmx0c3RhY2sgPSBsZXQNCgkJCXZhbCByZWMgZmx0dXBkYXRlJw0KCQkJICA9
IGZuIFtdID0+IEVycm9yLmJ1ZyAiZmx0dXBkYXRlIg0KCQkJICAgICB8ICh2YWx1ZScgYXMge2Zs
dHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXInLCAuLi59KTo6bA0KCQkJICAgICA9PiBpZiBGbHRSZWdp
c3Rlci5lcShmbHRyZWdpc3RlciwgZmx0cmVnaXN0ZXInKQ0KCQkJCSAgdGhlbiB2YWx1ZTo6bA0K
CQkJCSAgZWxzZSB2YWx1ZSc6OihmbHR1cGRhdGUnIGwpDQoJCSAgICAgIGluDQoJCQlmbHR1cGRh
dGUnIGZsdHN0YWNrDQoJCSAgICAgIGVuZH0NCiAgICAgIGZ1biBmbHR1cGRhdGVzIHt2YWx1ZXMs
IHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IExpc3QuZm9sZCh2YWx1ZXMsDQoJCSAgICByZWdp
c3RlckFsbG9jYXRpb24sDQoJCSAgICBmbiAodmFsdWUsIHJlZ2lzdGVyQWxsb2NhdGlvbikNCgkJ
ICAgICA9PiBmbHR1cGRhdGUge3ZhbHVlID0gdmFsdWUsDQoJCQkJICAgcmVnaXN0ZXJBbGxvY2F0
aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufSkNCg0KICAgICAgZnVuIGRlbGV0ZSB7cmVnaXN0ZXIs
DQoJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIGFzIHtlbnRyaWVzLCByZXNlcnZlZCwgZmx0c3RhY2t9
OiB0fQ0KCT0ge2VudHJpZXMgPSBMaXN0LnJlbW92ZUFsbChlbnRyaWVzLA0KCQkJCSAgICBmbiB7
cmVnaXN0ZXIgPSByZWdpc3RlcicsLi4ufQ0KCQkJCSAgICAgPT4gUmVnaXN0ZXIuZXEocmVnaXN0
ZXIsIHJlZ2lzdGVyJykpLA0KCSAgIHJlc2VydmVkID0gcmVzZXJ2ZWQsDQoJICAgZmx0c3RhY2sg
PSBmbHRzdGFja30NCiAgICAgIGZ1biBkZWxldGVzIHtyZWdpc3RlcnMsIHJlZ2lzdGVyQWxsb2Nh
dGlvbjogdH0NCgk9IExpc3QuZm9sZChyZWdpc3RlcnMsDQoJCSAgICByZWdpc3RlckFsbG9jYXRp
b24sDQoJCSAgICBmbiAocmVnaXN0ZXIsIHJlZ2lzdGVyQWxsb2NhdGlvbikNCgkJICAgICA9PiBk
ZWxldGUge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufSkNCg0KICAgICAgZnVuIGZsdHB1c2gge3ZhbHVlLA0KCQkgICByZWdp
c3RlckFsbG9jYXRpb24gYXMge2VudHJpZXMsIHJlc2VydmVkLCBmbHRzdGFja306IHR9DQoJPSB7
cmVuYW1lID0gRmx0UmVnaXN0ZXIucHVzaCwNCgkgICByZWdpc3RlckFsbG9jYXRpb24NCgkgICA9
IHtlbnRyaWVzID0gZW50cmllcywNCgkgICAgICByZXNlcnZlZCA9IHJlc2VydmVkLA0KCSAgICAg
IGZsdHN0YWNrID0gY2FzZSAjZmx0cmVnaXN0ZXIgdmFsdWUNCgkJCSAgIG9mIEZsdFJlZ2lzdGVy
LlQgMA0KCQkJICAgID0+IHZhbHVlOjooTGlzdC5tYXAoZmx0c3RhY2ssDQoJCQkJCQlmbiB7Zmx0
cmVnaXN0ZXIgDQoJCQkJCQkgICAgYXMgRmx0UmVnaXN0ZXIuVCBpLA0KCQkJCQkJICAgIG1lbWxv
YywNCgkJCQkJCSAgICB3ZWlnaHQsDQoJCQkJCQkgICAgc3luYywNCgkJCQkJCSAgICBjb21taXR9
DQoJCQkJCSAgICAgICAgID0+IHtmbHRyZWdpc3RlciA9DQoJCQkJCQkgICAgIEZsdFJlZ2lzdGVy
LlQgKGkgKyAxKSwNCgkJCQkJCSAgICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkJICAgICB3ZWln
aHQgPSB3ZWlnaHQsDQoJCQkJCQkgICAgIHN5bmMgPSBzeW5jLA0KCQkJCQkJICAgICBjb21taXQg
PSBjb21taXR9KSkNCgkJCSAgICB8IF8gPT4gRXJyb3IuYnVnICJmbHRwdXNoIn19DQoNCiAgICAg
IGZ1biBmbHRwb3Age3JlZ2lzdGVyQWxsb2NhdGlvbiBhcyB7ZW50cmllcywgcmVzZXJ2ZWQsIGZs
dHN0YWNrfTogdH0NCgk9IHtyZW5hbWUgPSBGbHRSZWdpc3Rlci5wb3AsDQoJICAgcmVnaXN0ZXJB
bGxvY2F0aW9uDQoJICAgPSB7ZW50cmllcyA9IGVudHJpZXMsDQoJICAgICAgcmVzZXJ2ZWQgPSBy
ZXNlcnZlZCwNCgkgICAgICBmbHRzdGFjayA9IGNhc2UgZmx0c3RhY2sNCgkJCSAgIG9mIFtdID0+
IEVycm9yLmJ1ZyAiZmx0cG9wIg0KCQkJICAgIHwgdmFsdWU6OmZsdHN0YWNrDQoJCQkgICAgPT4g
TGlzdC5tYXAoZmx0c3RhY2ssDQoJCQkJCWZuIHtmbHRyZWdpc3RlciBhcyBGbHRSZWdpc3Rlci5U
IGksDQoJCQkJCSAgICBtZW1sb2MsDQoJCQkJCSAgICB3ZWlnaHQsDQoJCQkJCSAgICBzeW5jLA0K
CQkJCQkgICAgY29tbWl0fQ0KCQkJCQkgPT4ge2ZsdHJlZ2lzdGVyIA0KCQkJCQkgICAgID0gRmx0
UmVnaXN0ZXIuVCAoaSAtIDEpLA0KCQkJCQkgICAgIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJICAg
ICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCSAgICAgc3luYyA9IHN5bmMsDQoJCQkJCSAgICAgY29t
bWl0ID0gY29tbWl0fSl9fQ0KDQogICAgICBmdW4gZmx0eGNoJyB7Zmx0cmVnaXN0ZXI6IEZsdFJl
Z2lzdGVyLnQsDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiBhcyB7ZW50cmllcywgcmVzZXJ2ZWQs
IGZsdHN0YWNrfTogdH0NCgk9IGxldA0KCSAgICB2YWwgcmVjIHNwbGl0DQoJICAgICAgPSBmbiAo
Zmx0c3RhY2sgOiBmbHR2YWx1ZSBsaXN0LCBbXSkgPT4gRXJyb3IuYnVnICJmbHR4Y2gnOiBzcGxp
dCINCgkgICAgICAgICB8IChmbHRzdGFja19wcmUsdmFsdWU6OmZsdHN0YWNrX3Bvc3QpDQoJICAg
ICAgICAgPT4gaWYgRmx0UmVnaXN0ZXIuZXEoZmx0cmVnaXN0ZXIsICNmbHRyZWdpc3RlciB2YWx1
ZSkNCgkJICAgICAgdGhlbiAoZmx0c3RhY2tfcHJlLCB2YWx1ZSwgZmx0c3RhY2tfcG9zdCkNCgkJ
ICAgICAgZWxzZSBzcGxpdCAoZmx0c3RhY2tfcHJlIEAgW3ZhbHVlXSwgZmx0c3RhY2tfcG9zdCkN
Cg0KCSAgICB2YWwgKGZsdHN0YWNrX3ByZSwNCgkJIHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVy
JywgDQoJCSAgbWVtbG9jID0gbWVtbG9jJywgDQoJCSAgd2VpZ2h0ID0gd2VpZ2h0JywgDQoJCSAg
c3luYyA9IHN5bmMnLCANCgkJICBjb21taXQgPSBjb21taXQnfSwgDQoJCSBmbHRzdGFja19wb3N0
KSA9IHNwbGl0IChbXSwgZmx0c3RhY2spDQoJICBpbiANCgkgICAge3JlbmFtZSA9IGZuIGZsdHJl
Z2lzdGVyIA0KCSAgICAgICAgICAgICAgID0+IGlmIEZsdFJlZ2lzdGVyLmVxKGZsdHJlZ2lzdGVy
LA0KCQkJCQkgICAgZmx0cmVnaXN0ZXInKQ0KCQkJICAgIHRoZW4gRmx0UmVnaXN0ZXIudG9wDQoJ
CQkgIGVsc2UgaWYgRmx0UmVnaXN0ZXIuZXEoZmx0cmVnaXN0ZXIsDQoJCQkJCQkgRmx0UmVnaXN0
ZXIudG9wKQ0KCQkJICAgIHRoZW4gZmx0cmVnaXN0ZXInDQoJCQkgIGVsc2UgZmx0cmVnaXN0ZXIs
DQoJICAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJICAgICA9IHtlbnRyaWVzID0gZW50cmllcywN
CgkJcmVzZXJ2ZWQgPSByZXNlcnZlZCwNCgkJZmx0c3RhY2sgPSBjYXNlIGZsdHN0YWNrX3ByZQ0K
CQkJICAgICBvZiBbXSA9PiBFcnJvci5idWcgImZsdHhjaCciDQoJCQkgICAgICB8ICh2YWx1ZSBh
cyB7Zmx0cmVnaXN0ZXIsDQoJCQkJCSAgIG1lbWxvYywNCgkJCQkJICAgd2VpZ2h0LA0KCQkJCQkg
ICBzeW5jLA0KCQkJCQkgICBjb21taXR9KTo6Zmx0c3RhY2tfcHJlDQoJCQkgICAgICA9PiBbe2Zs
dHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXIsDQoJCQkJICAgbWVtbG9jID0gbWVtbG9jJywNCgkJCQkg
ICB3ZWlnaHQgPSB3ZWlnaHQnLA0KCQkJCSAgIHN5bmMgPSBzeW5jJywNCgkJCQkgICBjb21taXQg
PSBjb21taXQnfV0gQA0KCQkJICAgICAgICAgZmx0c3RhY2tfcHJlIEANCgkJCQkgW3tmbHRyZWdp
c3RlciA9IGZsdHJlZ2lzdGVyJywNCgkJCQkgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJICAgd2Vp
Z2h0ID0gd2VpZ2h0LA0KCQkJCSAgIHN5bmMgPSBzeW5jLA0KCQkJCSAgIGNvbW1pdCA9IGNvbW1p
dH1dIEANCgkJCQkgZmx0c3RhY2tfcG9zdH19DQoJICBlbmQNCg0KICAgICAgZnVuIGZsdHhjaCB7
dmFsdWU6IGZsdHZhbHVlLCByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSBmbHR4Y2gnIHtmbHRy
ZWdpc3RlciA9ICNmbHRyZWdpc3RlciB2YWx1ZSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQogICAgICBmdW4gZmx0eGNoMSB7cmVnaXN0ZXJBbGxvY2F0
aW9uOiB0fQ0KCT0gZmx0eGNoJyB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci5vbmUsDQoJCSAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KICAgICAgZnVuIGFs
bG9jYXRlZCB7bWVtbG9jLCANCgkJICAgICByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSBjYXNl
IHZhbHVlRmlsdGVyIHtmaWx0ZXIgPSBmbiB7bWVtbG9jID0gbWVtbG9jJywuLi59DQoJCQkgICAg
ICAgICAgICAgID0+IE1lbUxvYy5lcShtZW1sb2MsbWVtbG9jJyksDQoJCQkgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAgICBvZiBbXSA9PiBOT05FDQoJICAg
ICB8IFt2YWx1ZV0gPT4gU09NRSB2YWx1ZQ0KCSAgICAgfCBfID0+IChwcmludCAiYWxsb2NhdGVk
XG4iOw0KCQkgICAgIHByaW50ICh0b1N0cmluZyByZWdpc3RlckFsbG9jYXRpb24pOw0KCQkgICAg
IEVycm9yLmJ1ZyAiYWxsb2NhdGVkIikNCg0KICAgICAgZnVuIGZsdGFsbG9jYXRlZCB7bWVtbG9j
LA0KCQkJcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fQ0KCT0gY2FzZSBmbHR2YWx1ZUZpbHRlciB7Zmls
dGVyID0gZm4ge21lbWxvYyA9IG1lbWxvYycsLi4ufQ0KCQkJICAgICAgICAgICAgICAgICA9PiBN
ZW1Mb2MuZXEobWVtbG9jLG1lbWxvYycpLA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgb2YgW10gPT4gTk9ORQ0KCSAgICAgfCBbdmFsdWVd
ID0+IFNPTUUgdmFsdWUNCgkgICAgIHwgXyA9PiBFcnJvci5idWcgImZsdGFsbG9jYXRlZCINCg0K
ICAgICAgZnVuIHJlbW92ZSB7bWVtbG9jLA0KCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9
IGNhc2UgYWxsb2NhdGVkIHttZW1sb2MgPSBtZW1sb2MsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgb2YgU09NRSB7cmVnaXN0ZXIsIC4uLn0NCgkg
ICAgID0+IGRlbGV0ZSB7cmVnaXN0ZXIgPSByZWdpc3RlciwNCgkJCXJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgIHwgTk9ORSA9PiByZWdpc3RlckFsbG9jYXRp
b24NCiAgICAgIGZ1biByZW1vdmVzIHttZW1sb2NzLA0KCQkgICByZWdpc3RlckFsbG9jYXRpb246
IHR9DQoJPSBMaXN0LmZvbGQobWVtbG9jcywNCgkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiwNCgkJ
ICAgIGZuIChtZW1sb2MscmVnaXN0ZXJBbGxvY2F0aW9uKQ0KCQkgICAgID0+IHJlbW92ZSB7bWVt
bG9jID0gbWVtbG9jLA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0pDQoNCiAgICAgIGxvY2FsDQoJdmFsIGNvbW1pdFB1c2gnIA0KCSAgPSBmbiBOTyA9PiBOTw0K
CSAgICAgfCBDT01NSVQgaSA9PiBDT01NSVQgKGkgKyAxKQ0KCSAgICAgfCBSRU1PVkUgaSA9PiBS
RU1PVkUgKGkgKyAxKQ0KCSAgICAgfCBUUllDT01NSVQgaSA9PiBUUllDT01NSVQgKGkgKyAxKQ0K
CSAgICAgfCBUUllSRU1PVkUgaSA9PiBUUllSRU1PVkUgKGkgKyAxKQ0KDQoJdmFsIGNvbW1pdFBv
cCcgDQoJICA9IGZuIE5PID0+IE5PDQoJICAgICB8IENPTU1JVCBpID0+IENPTU1JVCAoaSAtIDEp
DQoJICAgICB8IFJFTU9WRSBpID0+IFJFTU9WRSAoaSAtIDEpDQoJICAgICB8IFRSWUNPTU1JVCBp
ID0+IFRSWUNPTU1JVCAoaSAtIDEpDQoJICAgICB8IFRSWVJFTU9WRSBpID0+IFRSWVJFTU9WRSAo
aSAtIDEpDQogICAgICBpbg0KCWZ1biBjb21taXRQdXNoIHtyZWdpc3RlckFsbG9jYXRpb246IHR9
DQoJICA9IHZhbHVlTWFwIHttYXAgPSBmbiB7cmVnaXN0ZXIsbWVtbG9jLHdlaWdodCxzeW5jLGNv
bW1pdH0NCgkJICAgICAgICAgICAgID0+IHtyZWdpc3RlciA9IHJlZ2lzdGVyLA0KCQkJCSBtZW1s
b2MgPSBtZW1sb2MsDQoJCQkJIHdlaWdodCA9IHdlaWdodCwNCgkJCQkgc3luYyA9IHN5bmMsDQoJ
CQkJIGNvbW1pdCA9IGNvbW1pdFB1c2gnIGNvbW1pdH0sDQoJCSAgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCWZ1biBjb21taXRQb3Age3JlZ2lzdGVyQWxs
b2NhdGlvbjogdH0NCgkgID0gdmFsdWVNYXAge21hcCA9IGZuIHtyZWdpc3RlcixtZW1sb2Msd2Vp
Z2h0LHN5bmMsY29tbWl0fQ0KCQkgICAgICAgICAgICAgPT4ge3JlZ2lzdGVyID0gcmVnaXN0ZXIs
DQoJCQkJIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJCSBzeW5j
ID0gc3luYywNCgkJCQkgY29tbWl0ID0gY29tbWl0UG9wJyBjb21taXR9LA0KCQkgICAgICByZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQogICAgICBlbmQNCg0KICAgICAg
ZnVuIHNhdmVkUmVnaXN0ZXJzIHtzYXZlczogT3BlcmFuZC50IGxpc3QsDQoJCQkgIHJlZ2lzdGVy
QWxsb2NhdGlvbjogdH0gOg0KICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyLnQgbGlz
dA0KCT0gTGlzdC5mbGF0dGVuTWFwDQoJICAoc2F2ZXMsDQoJICAgZm4gT3BlcmFuZC5NZW1Mb2Mg
bQ0KCSAgICA9PiAoY2FzZSBhbGxvY2F0ZWQge21lbWxvYyA9IG0sDQoJCQkJcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgIG9mIFNPTUUge3JlZ2lzdGVyLCAuLi59
ID0+IFtyZWdpc3Rlcl0NCgkJICAgfCBOT05FID0+IFtdKQ0KCSAgICB8IE9wZXJhbmQuUmVnaXN0
ZXIgciA9PiBbcl0NCgkgICAgfCBPcGVyYW5kLkFkZHJlc3MgKEFkZHJlc3MuVCB7YmFzZSwgaW5k
ZXgsIC4uLn0pDQoJICAgID0+IChjYXNlIChiYXNlLCBpbmRleCkNCgkJICBvZiAoTk9ORSwgICAg
Tk9ORSAgICkgPT4gW10NCgkJICAgfCAoU09NRSByYiwgTk9ORSAgICkgPT4gW3JiXSANCgkJICAg
fCAoTk9ORSwgICAgU09NRSBybykgPT4gW3JvXQ0KCQkgICB8IChTT01FIHJiLCBTT01FIHJvKSA9
PiBbcmIscm9dKQ0KCSAgIHwgXyA9PiBbXSkNCg0KICAgICAgZnVuIHN1cHBvcnRlZFJlZ2lzdGVy
cyB7c3VwcG9ydHM6IE9wZXJhbmQudCBsaXN0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
OiB0fSA6DQoJICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIudCBsaXN0DQoJPSBsZXQNCgkg
ICAgZnVuIHN1cHBvcnRlZFJlZ2lzdGVycycgbWVtbG9jDQoJICAgICAgPSBjYXNlIChhbGxvY2F0
ZWQge21lbWxvYyA9IG1lbWxvYywNCgkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufSwNCgkJICAgICAgZmx0YWxsb2NhdGVkIHttZW1sb2MgPSBtZW1sb2MsDQoJCQkJ
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0pDQoJCSAgb2YgKFNP
TUUge3JlZ2lzdGVyLCAuLi59LCBfKSA9PiBbcmVnaXN0ZXJdDQoJCSAgIHwgKF8sIFNPTUUgXykg
PT4gW10NCgkJICAgfCAoTk9ORSwgTk9ORSkgPT4gTGlzdC5mbGF0dGVuTWFwKE1lbUxvYy51dGls
aXplZCBtZW1sb2MsDQoJCQkJCQkgICAgIHN1cHBvcnRlZFJlZ2lzdGVycycpDQoJICBpbg0KCSAg
ICBMaXN0LmZsYXR0ZW5NYXANCgkgICAgKHN1cHBvcnRzLA0KCSAgICAgZm4gT3BlcmFuZC5NZW1M
b2MgbSA9PiBzdXBwb3J0ZWRSZWdpc3RlcnMnIG0NCgkgICAgICB8IF8gPT4gW10pDQoJICBlbmQN
Cg0KICAgICAgZnVuIHN1cHBvcnRlZE1lbUxvY3Mge3N1cHBvcnRzOiBPcGVyYW5kLnQgbGlzdCwN
CgkJCSAgICByZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAgICAgICAgTWVt
TG9jLnQgbGlzdA0KCT0gbGV0DQoJICAgIGZ1biBzdXBwb3J0ZWRNZW1Mb2NzJyBtZW1sb2MNCgkg
ICAgICA9IGNhc2UgKGFsbG9jYXRlZCB7bWVtbG9jID0gbWVtbG9jLA0KCQkJCSByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259LA0KCQkgICAgICBmbHRhbGxvY2F0ZWQge21l
bWxvYyA9IG1lbWxvYywNCgkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufSkNCgkJICBvZiAoU09NRSBfLCBfKSA9PiBbbWVtbG9jXQ0KCQkgICB8IChfLCBTT01F
IF8pID0+IFttZW1sb2NdDQoJCSAgIHwgKE5PTkUsIE5PTkUpID0+IExpc3QuZmxhdHRlbk1hcChN
ZW1Mb2MudXRpbGl6ZWQgbWVtbG9jLA0KCQkJCQkJICAgICBzdXBwb3J0ZWRNZW1Mb2NzJykNCgkg
IGluDQoJICAgIExpc3QuZmxhdHRlbk1hcA0KCSAgICAoc3VwcG9ydHMsDQoJICAgICBmbiBPcGVy
YW5kLk1lbUxvYyBtID0+IHN1cHBvcnRlZE1lbUxvY3MnIG0NCgkgICAgICB8IF8gPT4gW10pDQoJ
ICBlbmQNCg0KICAgICAgZnVuIGZsdHNhdmVkTWVtTG9jcyB7c2F2ZXM6IE9wZXJhbmQudCBsaXN0
LA0KCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fSA6DQogICAgICAgICAgICAgICAgICAgICAg
ICAgIE1lbUxvYy50IGxpc3QNCgk9IExpc3Qua2VlcEFsbE1hcA0KCSAgKHNhdmVzLA0KCSAgIGZu
IE9wZXJhbmQuTWVtTG9jIG0NCgkgICAgPT4gKGNhc2UgZmx0YWxsb2NhdGVkIHttZW1sb2MgPSBt
LA0KCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICBv
ZiBTT01FIF8gPT4gU09NRSBtDQoJCSAgIHwgTk9ORSA9PiBOT05FKQ0KCSAgICB8IF8gPT4gTk9O
RSkNCg0KICAgICAgZnVuIGZsdHN1cHBvcnRlZE1lbUxvY3Mge3N1cHBvcnRzOiBPcGVyYW5kLnQg
bGlzdCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAg
ICAgICAgICAgTWVtTG9jLnQgbGlzdA0KCT0gTGlzdC5rZWVwQWxsTWFwDQoJICAoc3VwcG9ydHMs
DQoJICAgZm4gT3BlcmFuZC5NZW1Mb2MgbQ0KCSAgICA9PiAoY2FzZSBmbHRhbGxvY2F0ZWQge21l
bWxvYyA9IG0sDQoJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkgIG9mIFNPTUUgXyA9PiBTT01FIG0NCgkJICAgfCBOT05FID0+IE5PTkUpDQoJICAgIHwg
XyA9PiBOT05FKQ0KDQogICAgICBmdW4gcG90ZW50aWFsUmVnaXN0ZXJzIHtzaXplOiBTaXplLnQs
DQoJCQkgICAgICBzYXZlczogT3BlcmFuZC50IGxpc3QsDQoJCQkgICAgICBmb3JjZTogUmVnaXN0
ZXIudCBsaXN0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fSA6DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyLnQgbGlzdA0KCT0gY2FzZSBmb3JjZQ0KCSAgICBv
ZiBbXSA9PiBSZWdpc3Rlci5yZWdpc3RlcnMgc2l6ZQ0KCSAgICAgfCByZWdpc3RlcnMgPT4gTGlz
dC5rZWVwQWxsKFJlZ2lzdGVyLnJlZ2lzdGVycyBzaXplLA0KCQkJCQkgZm4gcmVnaXN0ZXIgDQoJ
CQkJCSAgPT4gTGlzdC5jb250YWlucyhyZWdpc3RlcnMsIA0KCQkJCQkJCSAgIHJlZ2lzdGVyLCAN
CgkJCQkJCQkgICBSZWdpc3Rlci5lcSkpDQoNCiAgICAgIGZ1biBjaG9vc2VSZWdpc3RlciB7c2l6
ZTogU2l6ZS50LA0KCQkJICBzdXBwb3J0czogT3BlcmFuZC50IGxpc3QsDQoJCQkgIHNhdmVzOiBP
cGVyYW5kLnQgbGlzdCwNCgkJCSAgZm9yY2U6IFJlZ2lzdGVyLnQgbGlzdCwNCgkJCSAgcmVnaXN0
ZXJBbGxvY2F0aW9uIGFzIHtyZXNlcnZlZCwuLi59OiB0fSA6DQoJICAgICAgICAgICAgICAgICB7
cmVnaXN0ZXI6IFJlZ2lzdGVyLnQsDQoJCQkgIGNvaW5jaWRlX3ZhbHVlczogdmFsdWUgbGlzdH0N
CiAgICAgICAgPSBsZXQNCgkgICAgdmFsIHJlZ2lzdGVycyA9IHBvdGVudGlhbFJlZ2lzdGVycyB7
c2l6ZSA9IHNpemUsDQoJCQkJCQlzYXZlcyA9IHNhdmVzLA0KCQkJCQkJZm9yY2UgPSBmb3JjZSwN
CgkJCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoN
CgkgICAgdmFsIHNhdmVkDQoJICAgICAgPSBzYXZlZFJlZ2lzdGVycyB7c2F2ZXMgPSBzYXZlcywN
CgkJCQlyZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAgdmFs
IHByZXNlcnZlZA0KCSAgICAgID0gTGlzdC5yZW1vdmVEdXBsaWNhdGVzKHNhdmVkIEAgcmVzZXJ2
ZWQsIFJlZ2lzdGVyLmVxKQ0KDQoJICAgIHZhbCByZWdpc3RlcnMgDQoJICAgICAgPSBMaXN0LnJl
bW92ZUFsbA0KCSAgICAgICAgKHJlZ2lzdGVycywNCgkJIGZuIHJlZ2lzdGVyJw0KCQkgID0+IExp
c3QuZXhpc3RzDQoJCSAgICAgKHByZXNlcnZlZCwNCgkJICAgICAgZm4gcmVnaXN0ZXInJw0KCQkg
ICAgICAgPT4gUmVnaXN0ZXIuY29pbmNpZGUocmVnaXN0ZXInLHJlZ2lzdGVyJycpKSkNCg0KCSAg
ICB2YWwgc3VwcG9ydGVkID0gc3VwcG9ydGVkUmVnaXN0ZXJzIHtzdXBwb3J0cyA9IHN1cHBvcnRz
LA0KCQkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0N
Cg0KCSAgICB2YWwgcmVnaXN0ZXJzX2Nvc3RzDQoJICAgICAgPSBMaXN0Lm1hcChyZWdpc3RlcnMs
DQoJCQkgZm4gcmVnaXN0ZXInDQoJCQkgID0+IGxldA0KCQkJICAgICAgIHZhbCB2YWx1ZXMNCgkJ
CQkgPSB2YWx1ZXNSZWdpc3RlciB7cmVnaXN0ZXIgPSByZWdpc3RlcicsDQoJCQkJCQkgICByZWdp
c3RlckFsbG9jYXRpb24gDQoJCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJICAg
ICAgIHZhbCBjb3N0DQoJCQkJID0gTGlzdC5mb2xkDQoJCQkJICAgKHZhbHVlcywNCgkJCQkgICAg
MCwNCgkJCQkgICAgZm4gKHtyZWdpc3Rlcix3ZWlnaHQsc3luYywuLi59LGMpDQoJCQkJICAgICA9
PiBpZiBSZWdpc3Rlci5jb2luY2lkZShyZWdpc3RlciwNCgkJCQkJCQkgICAgIHJlZ2lzdGVyJykN
CgkJCQkJICB0aGVuIGMgKyAoaWYgTGlzdC5jb250YWlucw0KCQkJCQkJICAgICAgIChzdXBwb3J0
ZWQsDQoJCQkJCQkJcmVnaXN0ZXInLA0KCQkJCQkJCVJlZ2lzdGVyLmVxKQ0KCQkJCQkJICAgICAg
dGhlbiAyICogd2VpZ2h0DQoJCQkJCQkgICAgICBlbHNlIHdlaWdodCkNCgkJCQkJICAgICAgICAg
KiAoaWYgc3luYyB0aGVuIDEgZWxzZSAyKQ0KCQkJCQkgIGVsc2UgYykNCgkJCSAgICAgaW4NCgkJ
CSAgICAgICAocmVnaXN0ZXInLCBjb3N0KQ0KCQkJICAgICBlbmQpDQoNCgkgICAgdmFsIHJlZ2lz
dGVyc19jb3N0c19zb3J0ZWQNCgkgICAgICA9IExpc3QuaW5zZXJ0aW9uU29ydChyZWdpc3RlcnNf
Y29zdHMsDQoJCQkJICAgZm4gKChfLGMxKSwoXyxjMikpID0+IGMxIDwgYzIpDQoNCgkgICAgdmFs
IHJlZ2lzdGVycw0KCSAgICAgID0gTGlzdC5tYXAocmVnaXN0ZXJzX2Nvc3RzX3NvcnRlZCwgIzEp
DQoNCgkgICAgdmFsIHJlZ2lzdGVyDQoJICAgICAgPSBjYXNlIHJlZ2lzdGVycw0KCQkgIG9mIFtd
IA0KCQkgICA9PiBsZXQNCgkJCWZ1biBsaXN0VG9TdHJpbmcoc3M6IHN0cmluZyBsaXN0KTogc3Ry
aW5nDQoJCQkgID0gY29uY2F0KCJbIiA6OiBMaXN0LnNlcGFyYXRlKHNzLCAiLCAiKSBAIFsiXSJd
KQ0KDQoJCQl2YWwgc2l6ZSA9IFNpemUudG9TdHJpbmcgc2l6ZQ0KCQkJdmFsIHNhdmVzIA0KCQkJ
ICA9IGxpc3RUb1N0cmluZyhMaXN0Lm1hcChzYXZlcyxPcGVyYW5kLnRvU3RyaW5nKSkgDQoJCQl2
YWwgZm9yY2UNCgkJCSAgPSBsaXN0VG9TdHJpbmcoTGlzdC5tYXAoZm9yY2UsUmVnaXN0ZXIudG9T
dHJpbmcpKSANCgkJCXZhbCByZXNlcnZlZA0KCQkJICA9IGxpc3RUb1N0cmluZyhMaXN0Lm1hcChy
ZXNlcnZlZCxSZWdpc3Rlci50b1N0cmluZykpIA0KDQoJCQl2YWwgbXNnID0gY29uY2F0WyJcbiIs
DQoJCQkJCSAiY2hvb3NlUmVnaXN0ZXI6XG4iLA0KCQkJCQkgKHRvU3RyaW5nIHJlZ2lzdGVyQWxs
b2NhdGlvbiksDQoJCQkJCSAic2l6ZSA9ICIsIHNpemUsICJcbiIsDQoJCQkJCSAic2F2ZXMgPSAi
LCBzYXZlcywgIlxuIiwNCgkJCQkJICJmb3JjZSA9ICIsIGZvcmNlLCAiXG4iXQ0KDQoJCQl2YWwg
XyA9IHByaW50IG1zZw0KCQkgICAgICBpbg0KCQkJRXJyb3IuYnVnICJjaG9vc2VSZWdpc3Rlciwg
cmVnaXN0ZXJzOltdIiANCgkJICAgICAgZW5kDQoJCSAgIHwgcmVnaXN0ZXI6Ol8gPT4gcmVnaXN0
ZXINCg0KCSAgICB2YWwgdmFsdWVzID0gdmFsdWVzUmVnaXN0ZXIge3JlZ2lzdGVyID0gcmVnaXN0
ZXIsDQoJCQkJCSByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkgICAgdmFsIGNvaW5jaWRlX3ZhbHVlcw0KCSAgICAgID0gTGlzdC5rZWVwQWxsKHZhbHVl
cywNCgkJCSAgICAgZm4gdmFsdWUgYXMge3JlZ2lzdGVyID0gcmVnaXN0ZXInLC4uLn0NCgkJCSAg
ICAgID0+IFJlZ2lzdGVyLmNvaW5jaWRlKHJlZ2lzdGVyJyxyZWdpc3RlcikpDQoJICBpbg0KCSAg
ICB7cmVnaXN0ZXIgPSByZWdpc3RlciwNCgkgICAgIGNvaW5jaWRlX3ZhbHVlcyA9IGNvaW5jaWRl
X3ZhbHVlc30NCgkgIGVuZA0KDQogICAgICBmdW4gZnJlZVJlZ2lzdGVyIHtzaXplOiBTaXplLnQs
DQoJCQlzdXBwb3J0czogT3BlcmFuZC50IGxpc3QsDQoJCQlzYXZlczogT3BlcmFuZC50IGxpc3Qs
DQoJCQlmb3JjZTogUmVnaXN0ZXIudCBsaXN0LCANCgkJCXJlZ2lzdGVyQWxsb2NhdGlvbjogdH0g
Og0KICAgICAgICAgICAgICAgICAgICAgICB7cmVnaXN0ZXI6IFJlZ2lzdGVyLnQsDQoJCQlhc3Nl
bWJseTogQXNzZW1ibHkudCBsaXN0LA0KCQkJcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fQ0KCT0gbGV0
DQoJICAgIHZhbCB7cmVnaXN0ZXIgPSBmaW5hbF9yZWdpc3RlciwNCgkJIGNvaW5jaWRlX3ZhbHVl
c30NCgkgICAgICA9IGNob29zZVJlZ2lzdGVyIHtzaXplID0gc2l6ZSwNCgkJCQlzdXBwb3J0cyA9
IHN1cHBvcnRzLA0KCQkJCXNhdmVzID0gc2F2ZXMsDQoJCQkJZm9yY2UgPSBmb3JjZSwNCgkJCQly
ZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAgdmFsIHN1cHBv
cnRlZCA9IHN1cHBvcnRlZE1lbUxvY3Mge3N1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0K
CSAgICBmdW4gc3VwcG9ydFJlbW92ZSBtZW1sb2MNCgkgICAgICA9IGxldA0KCQkgIGZ1biBzdXBw
b3J0UmVtb3ZlJyBtZW1sb2NzDQoJCSAgICA9IExpc3QuZmxhdHRlbk1hcA0KCQkgICAgICAobWVt
bG9jcywNCgkJICAgICAgIGZuIG1lbWxvYycgDQoJCSAgICAgICAgPT4gaWYgTWVtTG9jLmVxKG1l
bWxvYyxtZW1sb2MnKQ0KCQkJICAgICB0aGVuIFtdDQoJCQkgICAgIGVsc2Ugc3VwcG9ydFJlbW92
ZScgKE1lbUxvYy51dGlsaXplZCBtZW1sb2MnKSkNCgkJaW4NCgkJICBMaXN0LmZvbGQNCgkJICAo
c3VwcG9ydHMsDQoJCSAgIFtdLA0KCQkgICBmbiAoT3BlcmFuZC5NZW1Mb2MgbWVtbG9jJywgc3Vw
cG9ydHMpDQoJCSAgICA9PiAoc3VwcG9ydFJlbW92ZScgW21lbWxvYyddKSBAIHN1cHBvcnRzDQoJ
CSAgICB8IChfLCBzdXBwb3J0cykgPT4gc3VwcG9ydHMpDQoJCWVuZA0KDQoJICAgIHZhbCB7YXNz
ZW1ibHkgPSBhc3NlbWJseV9zdXBwb3J0LA0KCQkgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAgICAg
ID0gTGlzdC5mb2xkDQoJICAgICAgICAoY29pbmNpZGVfdmFsdWVzLA0KCQkge2Fzc2VtYmx5ID0g
W10sDQoJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufSwNCgkJIGZu
ICh2YWx1ZSBhcyB7bWVtbG9jLC4uLn0sDQoJCSAgICAge2Fzc2VtYmx5LA0KCQkgICAgICByZWdp
c3RlckFsbG9jYXRpb259KQ0KCQkgID0+IGlmIExpc3QuY29udGFpbnMoc3VwcG9ydGVkLA0KCQkJ
CSAgICAgIG1lbWxvYywNCgkJCQkgICAgICBNZW1Mb2MuZXEpDQoJCSAgICAgICB0aGVuIGxldA0K
CQkJICAgICAgdmFsIHN1cHBvcnRzID0gc3VwcG9ydFJlbW92ZSBtZW1sb2MNCg0KCQkJICAgICAg
dmFsIGZvcmNlDQoJCQkJPSBMaXN0LnJlbW92ZUFsbA0KCQkJCSAgKFJlZ2lzdGVyLnJlZ2lzdGVy
cyAoTWVtTG9jLnNpemUgbWVtbG9jKSwNCgkJCQkgICBmbiByZWdpc3RlcicNCgkJCQkgICAgPT4g
UmVnaXN0ZXIuY29pbmNpZGUoZmluYWxfcmVnaXN0ZXIsDQoJCQkJCQkJIHJlZ2lzdGVyJykpDQoJ
CQkJICANCgkJCSAgICAgIHZhbCB7cmVnaXN0ZXIsDQoJCQkJICAgYXNzZW1ibHkgPSBhc3NlbWJs
eV9yZWdpc3RlciwNCgkJCQkgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJPSB0b1JlZ2lzdGVy
TWVtTG9jDQoJCQkJICB7bWVtbG9jID0gbWVtbG9jLA0KCQkJCSAgIHNpemUgPSBNZW1Mb2Muc2l6
ZSBtZW1sb2MsDQoJCQkJICAgbW92ZSA9IHRydWUsDQoJCQkJICAgc3VwcG9ydHMgPSBzdXBwb3J0
cywNCgkJCQkgICBzYXZlcyA9IChPcGVyYW5kLnJlZ2lzdGVyIA0KCQkJCQkgICAgZmluYWxfcmVn
aXN0ZXIpOjpzYXZlcywNCgkJCQkgICBmb3JjZSA9IGZvcmNlLA0KCQkJCSAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgICBpbg0KCQkJICAgICAge2Fzc2Vt
Ymx5ID0gYXNzZW1ibHkgQCBhc3NlbWJseV9yZWdpc3RlciwNCgkJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgZW5kDQoJCSAgICAgICBlbHNl
IHthc3NlbWJseSA9IGFzc2VtYmx5LA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdp
c3RlckFsbG9jYXRpb259KQ0KDQoJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkgICAgICA9
IHZhbHVlTWFwDQoJICAgICAgICB7bWFwID0gZm4gdmFsdWUgYXMge3JlZ2lzdGVyLA0KCQkJCSAg
ICBtZW1sb2MsDQoJCQkJICAgIHdlaWdodCwNCgkJCQkgICAgc3luYywNCgkJCQkgICAgY29tbWl0
fQ0KCQkgICAgICAgID0+IGlmIFJlZ2lzdGVyLmNvaW5jaWRlKHJlZ2lzdGVyLA0KCQkJCQkJZmlu
YWxfcmVnaXN0ZXIpDQoJCQkgICAgIHRoZW4ge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkJICAg
bWVtbG9jID0gbWVtbG9jLA0KCQkJCSAgIHdlaWdodCA9IHdlaWdodCwNCgkJCQkgICBzeW5jID0g
c3luYywJCQkJICAgDQoJCQkJICAgY29tbWl0ID0gUkVNT1ZFIDB9DQoJCQkgICAgIGVsc2UgdmFs
dWUsDQoJCSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAg
dmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X2NvbW1pdCwNCgkJIHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkgICAgICA9IGNvbW1pdFJlZ2lzdGVycyB7c3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkgc2F2
ZXMgPSBzYXZlcywNCgkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCSAgaW4NCgkgICAge3JlZ2lzdGVyID0gZmluYWxfcmVnaXN0ZXIsDQoJICAgICBhc3NlbWJs
eSA9IGFzc2VtYmx5X3N1cHBvcnQgQCBhc3NlbWJseV9jb21taXQsDQoJICAgICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICBlbmQNCg0KICAgICAgYW5kIGZyZWVG
bHRSZWdpc3RlciB7c2l6ZTogU2l6ZS50LA0KCQkJICAgc3VwcG9ydHM6IE9wZXJhbmQudCBsaXN0
LA0KCQkJICAgc2F2ZXM6IE9wZXJhbmQudCBsaXN0LA0KCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9u
OiB0fSA6DQoJICAgICAgICAgICAgICAgICAge2Fzc2VtYmx5OiBBc3NlbWJseS50IGxpc3QsDQoJ
CQkgICByZW5hbWU6IEZsdFJlZ2lzdGVyLnQgLT4gRmx0UmVnaXN0ZXIudCwNCgkJCSAgIHJlZ2lz
dGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldA0KCSAgICB2YWwgdmFsdWVzDQoJICAgICAgPSBmbHR2
YWx1ZUZpbHRlciB7ZmlsdGVyID0gZm4gXyA9PiB0cnVlLA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgIGluDQoJICAgIGlmIExpc3QubGVuZ3RoIHZhbHVl
cyA+PSBGbHRSZWdpc3Rlci50b3RhbA0KCSAgICAgIHRoZW4gbGV0DQoJCSAgICAgdmFsIHNhdmVk
ID0gZmx0c2F2ZWRNZW1Mb2NzIHtzYXZlcyA9IHNhdmVzLA0KCQkJCQkJICByZWdpc3RlckFsbG9j
YXRpb24gDQoJCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgICAgdmFsIHN1cHBv
cnRlZCA9IGZsdHN1cHBvcnRlZE1lbUxvY3Mge3N1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCQkJ
ICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJ
CSAgICAgdmFsIHZhbHVlcw0KCQkgICAgICAgPSBMaXN0LnJlbW92ZUFsbCh2YWx1ZXMsDQoJCQkJ
CWZuIHttZW1sb2MsLi4ufQ0KCQkJCQkgPT4gTGlzdC5jb250YWlucyhzYXZlZCwNCgkJCQkJCQkg
IG1lbWxvYywNCgkJCQkJCQkgIE1lbUxvYy5lcSkpDQoNCgkJICAgICB2YWwgdmFsdWVzX2Nvc3Rz
DQoJCSAgICAgICA9IExpc3QubWFwKHZhbHVlcywNCgkJCQkgIGZuIHZhbHVlIGFzIHttZW1sb2Ms
d2VpZ2h0LHN5bmMsLi4ufQ0KCQkJCSAgID0+IGxldA0KCQkJCQl2YWwgY29zdCA9IChpZiBMaXN0
LmNvbnRhaW5zDQoJCQkJCQkgICAgICAgKHN1cHBvcnRlZCwNCgkJCQkJCQltZW1sb2MsDQoJCQkJ
CQkJTWVtTG9jLmVxKQ0KCQkJCQkJICAgICAgdGhlbiAyICogd2VpZ2h0DQoJCQkJCQkgICAgICBl
bHNlIHdlaWdodCkNCgkJCQkJICAgICAgICAgICAqIChpZiBzeW5jIHRoZW4gMSBlbHNlIDIpDQoJ
CQkJICAgICAgaW4NCgkJCQkJKHZhbHVlLCBjb3N0KQ0KCQkJCSAgICAgIGVuZCkNCg0KCQkgICAg
IHZhbCB2YWx1ZXNfY29zdHNfc29ydGVkDQoJCSAgICAgICA9IExpc3QuaW5zZXJ0aW9uU29ydCh2
YWx1ZXNfY29zdHMsDQoJCQkJCSAgICBmbiAoKF8sYzEpLChfLGMyKSkgPT4gYzEgPCBjMikNCg0K
CQkgICAgIHZhbCB2YWx1ZXMgPSBMaXN0Lm1hcCh2YWx1ZXNfY29zdHNfc29ydGVkLCAjMSkNCgkJ
ICAgaW4NCgkJICAgICBjYXNlIHZhbHVlcw0KCQkgICAgICAgb2YgW10gPT4gRXJyb3IuYnVnICJm
cmVlRmx0UmVnaXN0ZXIiDQoJCQl8IHtmbHRyZWdpc3RlciwNCgkJCSAgIG1lbWxvYywNCgkJCSAg
IHdlaWdodCwNCgkJCSAgIHN5bmMsDQoJCQkgICBjb21taXR9OjpfDQoJCQk9PiBsZXQNCgkJCSAg
ICAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJICAgICAgID0gZmx0dXBkYXRlIHt2YWx1ZSA9
IHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJCQkJICAgICBtZW1sb2MgPSBtZW1sb2Ms
DQoJCQkJCQkgICAgIHdlaWdodCA9IHdlaWdodCwNCgkJCQkJCSAgICAgc3luYyA9IHN5bmMsDQoJ
CQkJCQkgICAgIGNvbW1pdCA9IFJFTU9WRSAwfSwNCgkJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlv
biANCgkJCQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkgICAgIHZhbCB7YXNzZW1i
bHkgPSBhc3NlbWJseV9jb21taXQsDQoJCQkJICByZW5hbWUgPSByZW5hbWVfY29tbWl0LA0KCQkJ
CSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICAgID0gY29tbWl0Rmx0UmVnaXN0ZXJzIHtz
dXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCQkJICAgICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkJICAg
ICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CQkgICBpbg0KCQkJICAgICB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXQsDQoJCQkgICAgICBy
ZW5hbWUgPSByZW5hbWVfY29tbWl0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgZW5kDQoJCSAgIGVuZA0KCSAgICAgIGVsc2Uge2Fzc2Vt
Ymx5ID0gW10sDQoJCSAgICByZW5hbWUgPSBGbHRSZWdpc3Rlci5pZCwNCgkJICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgIGVuZA0KDQogICAgICBhbmQgY29t
bWl0UmVnaXN0ZXJzIHtzdXBwb3J0czogT3BlcmFuZC50IGxpc3QsDQoJCQkgICBzYXZlczogT3Bl
cmFuZC50IGxpc3QsDQoJCQkgICByZWdpc3RlckFsbG9jYXRpb24gYXMge3Jlc2VydmVkLC4uLn06
IHR9IDoNCgkgICAgICAgICAgICAgICAgICB7YXNzZW1ibHk6IEFzc2VtYmx5LnQgbGlzdCwNCgkJ
CSAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldA0KICAgICAgICAgICAgdmFsIGNvbW1p
dF92YWx1ZXMNCgkgICAgICA9IHZhbHVlRmlsdGVyIHtmaWx0ZXIgPSBmbiB7Y29tbWl0ID0gQ09N
TUlUIDAsIC4uLn0gPT4gdHJ1ZQ0KCQkJICAgICAgICAgICAgICAgfCB7Y29tbWl0ID0gUkVNT1ZF
IDAsIC4uLn0gPT4gdHJ1ZQ0KCQkJICAgICAgICAgICAgICAgfCB7Y29tbWl0ID0gVFJZQ09NTUlU
IDAsIC4uLn0gPT4gdHJ1ZQ0KCQkJICAgICAgICAgICAgICAgfCB7Y29tbWl0ID0gVFJZUkVNT1ZF
IDAsIC4uLn0gPT4gdHJ1ZQ0KCQkJICAgICAgICAgICAgICAgfCBfID0+IGZhbHNlLCANCgkJCSAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCBj
b21taXRfbWVtbG9jcyA9IExpc3QubWFwKGNvbW1pdF92YWx1ZXMsICNtZW1sb2MpDQoNCgkgICAg
dmFsIGNvbW1pdF9tZW1sb2NzDQoJICAgICAgPSBMaXN0Lmluc2VydGlvblNvcnQNCgkgICAgICAg
IChjb21taXRfbWVtbG9jcywNCgkJIGZuIChtZW1sb2MxLG1lbWxvYzIpDQoJCSAgPT4gTGlzdC5j
b250YWlucyhNZW1Mb2MudXRpbGl6ZWQgbWVtbG9jMSwNCgkJCQkgICBtZW1sb2MyLA0KCQkJCSAg
IE1lbUxvYy5lcSkpDQoNCgkgICAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X2NvbW1pdCwNCgkJ
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgICA9IExpc3QuZm9sZA0KCSAgICAgICAgKGNvbW1p
dF9tZW1sb2NzLA0KCQkge2Fzc2VtYmx5ID0gW10sDQoJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufSwNCgkJIGZuIChtZW1sb2MsDQoJCSAgICAge2Fzc2VtYmx5LA0K
CQkgICAgICByZWdpc3RlckFsbG9jYXRpb259KQ0KCQkgID0+IChjYXNlIGFsbG9jYXRlZCB7bWVt
bG9jID0gbWVtbG9jLA0KCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkgICAgICA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCW9mIE5PTkUgPT4ge2Fzc2VtYmx5ID0gYXNzZW1ibHks
DQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSB8
IFNPTUUgKHZhbHVlIGFzIHtyZWdpc3RlciwNCgkJCQkJICAgbWVtbG9jLA0KCQkJCQkgICB3ZWln
aHQsDQoJCQkJCSAgIHN5bmMsDQoJCQkJCSAgIGNvbW1pdH0pDQoJCQkgPT4gbGV0DQoJCQkgICAg
ICBmdW4gZG9Db21taXRGYWxzZSAoKQ0KCQkJCT0gbGV0DQoJCQkJICAgIHZhbCByZWdpc3RlckFs
bG9jYXRpb24NCgkJCQkgICAgICA9IHVwZGF0ZSB7dmFsdWUgPSB7cmVnaXN0ZXIgPSByZWdpc3Rl
ciwNCgkJCQkJCQkgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkJCSB3ZWlnaHQgPSB3ZWlnaHQgLSA1
MDAsDQoJCQkJCQkJIHN5bmMgPSB0cnVlLA0KCQkJCQkJCSBjb21taXQgPSBOT30sDQoJCQkJCQly
ZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJCSAg
ICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJICAgICAgPSBjb21taXRQdXNoIHtyZWdpc3Rl
ckFsbG9jYXRpb24gDQoJCQkJCQkgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCQkgICAg
dmFsIGNvbW1pdF9zYXZlcyANCgkJCQkgICAgICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcw0KCQkJ
CSAgICAgICAgKChPcGVyYW5kLnJlZ2lzdGVyIHJlZ2lzdGVyKTo6c2F2ZXMsDQoJCQkJCSBPcGVy
YW5kLmVxKQ0KDQoJCQkJICAgIHZhbCBzaXplID0gUmVnaXN0ZXIuc2l6ZSByZWdpc3Rlcg0KCQkJ
CSAgICB2YWwge2FkZHJlc3MsDQoJCQkJCSBhc3NlbWJseSA9IGFzc2VtYmx5X2FkZHJlc3MsDQoJ
CQkJCSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgPSB0b0FkZHJlc3NNZW1Mb2Mge21l
bWxvYyA9IG1lbWxvYywNCgkJCQkJCQkgc2l6ZSA9IHNpemUsDQoJCQkJCQkJIHN1cHBvcnRzID0g
c3VwcG9ydHMsDQoJCQkJCQkJIHNhdmVzID0gY29tbWl0X3NhdmVzLA0KCQkJCQkJCSByZWdpc3Rl
ckFsbG9jYXRpb24gDQoJCQkJCQkJID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkJICAgIHZh
bCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAgICA9IGNvbW1pdFBvcCB7cmVnaXN0ZXJBbGxv
Y2F0aW9uIA0KCQkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICBpbg0KCQkJCSAg
ICB7YXNzZW1ibHkgDQoJCQkJICAgICA9IExpc3QuZmxhdHRlbiANCgkJCQkgICAgICAgW2Fzc2Vt
Ymx5LA0KCQkJCQlhc3NlbWJseV9hZGRyZXNzLA0KCQkJCQlbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25f
bW92DQoJCQkJCSB7ZHN0ID0gT3BlcmFuZC5BZGRyZXNzIGFkZHJlc3MsDQoJCQkJCSAgc3JjID0g
T3BlcmFuZC5SZWdpc3RlciByZWdpc3RlciwNCgkJCQkJICBzaXplID0gc2l6ZX1dXSwNCgkJCQkg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgIGVuZA0K
DQoJCQkgICAgICBmdW4gZG9Db21taXRUcnVlICgpDQoJCQkJPSBsZXQNCgkJCQkgICAgdmFsIHJl
Z2lzdGVyQWxsb2NhdGlvbg0KCQkJCSAgICAgID0gdXBkYXRlIHt2YWx1ZSA9IHtyZWdpc3RlciA9
IHJlZ2lzdGVyLA0KCQkJCQkJCSBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCQkJIHdlaWdodCA9IHdl
aWdodCAtIDUwMCwNCgkJCQkJCQkgc3luYyA9IHRydWUsDQoJCQkJCQkJIGNvbW1pdCA9IE5PfSwN
CgkJCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgaW4NCgkJCQkgICAge2Fzc2VtYmx5ID0gYXNzZW1ibHksDQoJCQkJICAgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICBlbmQNCg0KCQkJICAgICAg
ZnVuIGRvUmVtb3ZlRmFsc2UgKCkNCgkJCQk9IGxldA0KCQkJCSAgICB2YWwgcmVnaXN0ZXJBbGxv
Y2F0aW9uDQoJCQkJICAgICAgPSB1cGRhdGUge3ZhbHVlID0ge3JlZ2lzdGVyID0gcmVnaXN0ZXIs
DQoJCQkJCQkJIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJCQkgd2VpZ2h0ID0gd2VpZ2h0IC0gNTAw
LA0KCQkJCQkJCSBzeW5jID0gdHJ1ZSwNCgkJCQkJCQkgY29tbWl0ID0gTk99LA0KCQkJCQkJcmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJDQoJCQkJ
ICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAgICA9IGNvbW1pdFB1c2gge3JlZ2lz
dGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAg
ICANCgkJCQkgICAgdmFsIGNvbW1pdF9zYXZlcyANCgkJCQkgICAgICA9IExpc3QucmVtb3ZlRHVw
bGljYXRlcw0KCQkJCSAgICAgICAgKChPcGVyYW5kLnJlZ2lzdGVyIHJlZ2lzdGVyKTo6c2F2ZXMs
DQoJCQkJCSBPcGVyYW5kLmVxKQ0KDQoJCQkJICAgIHZhbCBzaXplID0gUmVnaXN0ZXIuc2l6ZSBy
ZWdpc3Rlcg0KCQkJCSAgICB2YWwge2FkZHJlc3MsDQoJCQkJCSBhc3NlbWJseSA9IGFzc2VtYmx5
X2FkZHJlc3MsDQoJCQkJCSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgPSB0b0FkZHJl
c3NNZW1Mb2Mge21lbWxvYyA9IG1lbWxvYywNCgkJCQkJCQkgc2l6ZSA9IHNpemUsDQoJCQkJCQkJ
IHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCQkJIHNhdmVzID0gY29tbWl0X3NhdmVzLA0KCQkJ
CQkJCSByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCQkJID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgDQoJCQkJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAgICA9IGNvbW1p
dFBvcCB7cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCQkJICAgICAgDQoJCQkJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAgICA9
IGlmIExpc3QuY29udGFpbnMNCgkJCQkgICAgICAgICAgIChyZXNlcnZlZCwNCgkJCQkJICAgIHJl
Z2lzdGVyLA0KCQkJCQkgICAgUmVnaXN0ZXIuZXEpDQoJCQkJCSAgdGhlbiByZWdpc3RlckFsbG9j
YXRpb24NCgkJCQkJICBlbHNlIHJlbW92ZSB7bWVtbG9jID0gbWVtbG9jLA0KCQkJCQkJICAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJCQkgIGluDQoJCQkJICAgIHthc3NlbWJseSANCgkJCQkgICAgID0gTGlzdC5mbGF0dGVuIA0K
CQkJCSAgICAgICBbYXNzZW1ibHksDQoJCQkJCWFzc2VtYmx5X2FkZHJlc3MsDQoJCQkJCVtBc3Nl
bWJseS5pbnN0cnVjdGlvbl9tb3YNCgkJCQkJIHtkc3QgPSBPcGVyYW5kLkFkZHJlc3MgYWRkcmVz
cywNCgkJCQkJICBzcmMgPSBPcGVyYW5kLlJlZ2lzdGVyIHJlZ2lzdGVyLA0KCQkJCQkgIHNpemUg
PSBzaXplfV1dLA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkJCSAgZW5kDQoNCgkJCSAgICAgIGZ1biBkb1JlbW92ZVRydWUgKCkNCgkJCQk9IGxl
dA0KCQkJCSAgICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJICAgICAgPSB1cGRhdGUge3Zh
bHVlID0ge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkJCQkJIG1lbWxvYyA9IG1lbWxvYywNCgkJ
CQkJCQkgd2VpZ2h0ID0gd2VpZ2h0IC0gNTAwLA0KCQkJCQkJCSBzeW5jID0gdHJ1ZSwNCgkJCQkJ
CQkgY29tbWl0ID0gTk99LA0KCQkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgDQoJCQkJICAgIHZhbCByZWdpc3RlckFsbG9jYXRp
b24NCgkJCQkgICAgICA9IGlmIExpc3QuY29udGFpbnMNCgkJCQkgICAgICAgICAgIChyZXNlcnZl
ZCwNCgkJCQkJICAgIHJlZ2lzdGVyLA0KCQkJCQkgICAgUmVnaXN0ZXIuZXEpDQoJCQkJCSAgdGhl
biByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICBlbHNlIHJlbW92ZSB7bWVtbG9jID0gbWVtbG9j
LA0KCQkJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICAgICA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJCQkgIGluDQoJCQkJICAgIHthc3NlbWJseSA9IGFzc2VtYmx5LA0K
CQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAg
ZW5kDQoJCQkgICAgaW4NCgkJCSAgICAgIGNhc2UgKGNvbW1pdCxzeW5jKQ0KCQkJCW9mIChDT01N
SVQgMCwgZmFsc2UpID0+IGRvQ29tbWl0RmFsc2UgKCkNCgkJCQkgfCAoQ09NTUlUIDAsIHRydWUp
ID0+IGRvQ29tbWl0VHJ1ZSAoKQ0KCQkJCSB8IChSRU1PVkUgMCwgZmFsc2UpID0+IGRvUmVtb3Zl
RmFsc2UgKCkNCgkJCQkgfCAoUkVNT1ZFIDAsIHRydWUpID0+IGRvUmVtb3ZlVHJ1ZSAoKQ0KCQkJ
CSB8IChUUllDT01NSVQgMCwgZmFsc2UpID0+IGRvQ29tbWl0RmFsc2UgKCkNCgkJCQkgfCAoVFJZ
Q09NTUlUIDAsIHRydWUpID0+IGRvQ29tbWl0VHJ1ZSAoKQ0KCQkJCSB8IChUUllSRU1PVkUgMCwg
ZmFsc2UpID0+IGRvUmVtb3ZlRmFsc2UgKCkNCgkJCQkgfCAoVFJZUkVNT1ZFIDAsIHRydWUpID0+
IGRvUmVtb3ZlVHJ1ZSAoKQ0KCQkJCSB8IF8gDQoJCQkJID0+IEVycm9yLmJ1ZyAiY29tbWl0UmVn
aXN0ZXJzIg0KCQkJICAgIGVuZCkpDQoJICBpbg0KCSAgICB7YXNzZW1ibHkgPSBhc3NlbWJseV9j
b21taXQsDQoJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
ICBlbmQNCg0KICAgICAgYW5kIGNvbW1pdEZsdFJlZ2lzdGVycyB7c3VwcG9ydHM6IE9wZXJhbmQu
dCBsaXN0LA0KCQkJICAgICAgc2F2ZXM6IE9wZXJhbmQudCBsaXN0LA0KCQkJICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9uOiB0fSA6DQoJICAgICAgICAgICAgICAgICAgICAge2Fzc2VtYmx5OiBBc3Nl
bWJseS50IGxpc3QsDQoJCQkgICAgICByZW5hbWU6IEZsdFJlZ2lzdGVyLnQgLT4gRmx0UmVnaXN0
ZXIudCwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldA0KCSAgICB2YWwg
Y29tbWl0X3ZhbHVlcw0KCSAgICAgID0gZmx0dmFsdWVGaWx0ZXIge2ZpbHRlcg0KCQkJCT0gZm4g
e2NvbW1pdCA9IENPTU1JVCAwLCAuLi59ID0+IHRydWUNCgkJCSAgICAgICAgICAgfCB7Y29tbWl0
ID0gUkVNT1ZFIDAsIC4uLn0gPT4gdHJ1ZQ0KCQkJICAgICAgICAgICB8IHtjb21taXQgPSBUUllD
T01NSVQgMCwgLi4ufSA9PiB0cnVlDQoJCQkgICAgICAgICAgIHwge2NvbW1pdCA9IFRSWVJFTU9W
RSAwLCAuLi59ID0+IHRydWUNCgkJCQkgICB8IF8gPT4gZmFsc2UsDQoJCQkJcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCB7YXNzZW1ibHkgPSBhc3Nl
bWJseV9jb21taXQsDQoJCSByZW5hbWUgPSByZW5hbWVfY29tbWl0LA0KCQkgcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KCSAgICAgID0gTGlzdC5mb2xkDQoJICAgICAgICAoY29tbWl0X3ZhbHVlcywNCgkJ
IHthc3NlbWJseSA9IFtdLA0KCQkgIHJlbmFtZSA9IEZsdFJlZ2lzdGVyLmlkLA0KCQkgIHJlZ2lz
dGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0sDQoJCSBmbiAodmFsdWUgYXMge2Zs
dHJlZ2lzdGVyLA0KCQkJICAgICAgIG1lbWxvYywNCgkJCSAgICAgICB3ZWlnaHQsDQoJCQkgICAg
ICAgc3luYywNCgkJCSAgICAgICBjb21taXR9LA0KCQkgICAgIHthc3NlbWJseSwgcmVuYW1lLCBy
ZWdpc3RlckFsbG9jYXRpb259KQ0KCQkgID0+IGxldA0KCQkgICAgICAgZnVuIGRvQ29tbWl0RmFs
c2UgKCkNCgkJCSA9IGxldA0KCQkJICAgICB2YWwgZmx0cmVnaXN0ZXIgPSByZW5hbWUgZmx0cmVn
aXN0ZXINCgkJCSAgICAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3hjaCwNCgkJCQkgIHJlbmFt
ZSA9IHJlbmFtZV94Y2gsDQoJCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgICAgPSBp
ZiBGbHRSZWdpc3Rlci5lcShmbHRyZWdpc3RlciwgDQoJCQkJCQkgICBGbHRSZWdpc3Rlci50b3Ap
DQoJCQkJICAgdGhlbiB7YXNzZW1ibHkgPSBbXSwNCgkJCQkJIHJlbmFtZSA9IEZsdFJlZ2lzdGVy
LmlkLA0KCQkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkJICAgZWxzZSBsZXQNCgkJCQkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV94Y2gsDQoJ
CQkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCSAgICA9IGZsdHhjaCcgDQoJCQkJ
CSAgICAgIHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJCQkgICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uIA0KCQkJCQkgICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCWluDQoJ
CQkJCSAge2Fzc2VtYmx5DQoJCQkJCSAgID0gW0Fzc2VtYmx5Lmluc3RydWN0aW9uX2Z4Y2gNCgkJ
CQkJICAgICAge3NyYyA9IE9wZXJhbmQuZmx0cmVnaXN0ZXIgDQoJCQkJCSAgICAgICAgICAgICBm
bHRyZWdpc3Rlcn1dLA0KCQkJCQkgICByZW5hbWUgPSByZW5hbWVfeGNoLA0KCQkJCQkgICByZWdp
c3RlckFsbG9jYXRpb24gDQoJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQllbmQN
Cg0KCQkJICAgICB2YWwgc2l6ZSA9IE1lbUxvYy5zaXplIG1lbWxvYw0KCQkJICAgICAgIA0KCQkJ
ICAgICB2YWwge2FkZHJlc3MsDQoJCQkJICBhc3NlbWJseSA9IGFzc2VtYmx5X2FkZHJlc3MsDQoJ
CQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgICAgPSB0b0FkZHJlc3NNZW1Mb2Mge21l
bWxvYyA9IG1lbWxvYywNCgkJCQkJCSAgc2l6ZSA9IHNpemUsDQoJCQkJCQkgIHN1cHBvcnRzID0g
c3VwcG9ydHMsDQoJCQkJCQkgIHNhdmVzID0gc2F2ZXMsDQoJCQkJCQkgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiANCgkJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgICAgDQoJCQkgICAg
IHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgICAgICA9IGZsdHVwZGF0ZSB7dmFsdWUgDQoJ
CQkJCSAgICA9IHtmbHRyZWdpc3RlciA9IEZsdFJlZ2lzdGVyLnRvcCwNCgkJCQkJICAgICAgIG1l
bWxvYyA9IG1lbWxvYywNCgkJCQkJICAgICAgIHdlaWdodCA9IHdlaWdodCwNCgkJCQkJICAgICAg
IHN5bmMgPSB0cnVlLA0KCQkJCQkgICAgICAgY29tbWl0ID0gTk99LA0KCQkJCQkgICAgcmVnaXN0
ZXJBbGxvY2F0aW9uIA0KCQkJCQkgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICBpbg0K
CQkJICAgICB7YXNzZW1ibHkgDQoJCQkgICAgICA9IExpc3QuZmxhdHRlbg0KCQkJICAgICAgICBb
YXNzZW1ibHksDQoJCQkJIGFzc2VtYmx5X3hjaCwNCgkJCQkgYXNzZW1ibHlfYWRkcmVzcywNCgkJ
CQkgY2FzZSBTaXplLmNsYXNzIHNpemUNCgkJCQkgICBvZiBTaXplLkZMVCANCgkJCQkgICAgPT4g
W0Fzc2VtYmx5Lmluc3RydWN0aW9uX2ZzdA0KCQkJCQl7ZHN0ID0gT3BlcmFuZC5BZGRyZXNzIGFk
ZHJlc3MsDQoJCQkJCSBzaXplID0gc2l6ZSwNCgkJCQkJIHBvcCA9IGZhbHNlfV0NCgkJCQkgICAg
fCBTaXplLkZQSSANCgkJCQkgICAgPT4gW0Fzc2VtYmx5Lmluc3RydWN0aW9uX2Zpc3QNCgkJCQkJ
e2RzdCA9IE9wZXJhbmQuQWRkcmVzcyBhZGRyZXNzLA0KCQkJCQkgc2l6ZSA9IHNpemUsDQoJCQkJ
CSBwb3AgPSBmYWxzZX1dDQoJCQkJICAgIHwgXyA9PiBFcnJvci5idWcgImNvbW1pdEZsdFJlZ2lz
dGVycyJdLA0KCQkJICAgICAgcmVuYW1lIA0KCQkJICAgICAgPSByZW5hbWVfeGNoIG8gcmVuYW1l
LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
CSAgIGVuZA0KDQoJCSAgICAgICBmdW4gZG9Db21taXRUcnVlICgpDQoJCQkgPSBsZXQNCgkJCSAg
ICAgdmFsIGZsdHJlZ2lzdGVyID0gcmVuYW1lIGZsdHJlZ2lzdGVyDQoJCQkgICAgIHZhbCByZWdp
c3RlckFsbG9jYXRpb24NCgkJCSAgICAgICA9IGZsdHVwZGF0ZSANCgkJCSAgICAgICAgIHt2YWx1
ZSA9IHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJCQkgICBtZW1sb2MgPSBtZW1sb2Ms
DQoJCQkJCSAgIHdlaWdodCA9IHdlaWdodCwNCgkJCQkJICAgc3luYyA9IHRydWUsDQoJCQkJCSAg
IGNvbW1pdCA9IE5PfSwNCgkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJCSAgIGluDQoJCQkgICAgIHthc3NlbWJseSA9IGFzc2VtYmx5LA0KCQkJICAgICAg
cmVuYW1lID0gcmVuYW1lLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJICAgZW5kDQoNCgkJICAgICAgIGZ1biBkb1JlbW92ZUZhbHNlICgpDQoJ
CQkgPSBsZXQNCgkJCSAgICAgdmFsIGZsdHJlZ2lzdGVyID0gcmVuYW1lIGZsdHJlZ2lzdGVyDQoJ
CQkgICAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV94Y2gsDQoJCQkJICByZW5hbWUgPSByZW5h
bWVfeGNoLA0KCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICAgID0gaWYgRmx0UmVn
aXN0ZXIuZXEoZmx0cmVnaXN0ZXIsIA0KCQkJCQkJICAgRmx0UmVnaXN0ZXIudG9wKQ0KCQkJCSAg
IHRoZW4ge2Fzc2VtYmx5ID0gW10sDQoJCQkJCSByZW5hbWUgPSBGbHRSZWdpc3Rlci5pZCwNCgkJ
CQkJIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJ
CSAgIGVsc2UgbGV0DQoJCQkJCSAgdmFsIHtyZW5hbWUgPSByZW5hbWVfeGNoLA0KCQkJCQkgICAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkgICAgPSBmbHR4Y2gnIA0KCQkJCQkgICAgICB7
Zmx0cmVnaXN0ZXIgPSBmbHRyZWdpc3RlciwNCgkJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
biANCgkJCQkJICAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQlpbg0KCQkJCQkgIHth
c3NlbWJseQ0KCQkJCQkgICA9IFtBc3NlbWJseS5pbnN0cnVjdGlvbl9meGNoDQoJCQkJCSAgICAg
IHtzcmMgPSBPcGVyYW5kLmZsdHJlZ2lzdGVyIA0KCQkJCQkgICAgICAgICAgICAgZmx0cmVnaXN0
ZXJ9XSwNCgkJCQkJICAgcmVuYW1lID0gcmVuYW1lX3hjaCwNCgkJCQkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uIA0KCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJZW5kDQoNCgkJCSAg
ICAgdmFsIHNpemUgPSBNZW1Mb2Muc2l6ZSBtZW1sb2MNCgkJCSAgICAgICANCgkJCSAgICAgdmFs
IHthZGRyZXNzLA0KCQkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseV9hZGRyZXNzLA0KCQkJCSAgcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICAgID0gdG9BZGRyZXNzTWVtTG9jIHttZW1sb2MgPSBt
ZW1sb2MsDQoJCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkJICBzdXBwb3J0cyA9IHN1cHBvcnRz
LA0KCQkJCQkJICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkJICByZWdpc3RlckFsbG9jYXRpb24gDQoJ
CQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkgICAgIHZhbCB7cmVuYW1lID0gcmVu
YW1lX3BvcCwNCgkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgICAgICA9IGZsdHBvcCAN
CgkJCSAgICAgICAgIHtyZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CQkgICBpbg0KCQkJICAgICB7YXNzZW1ibHkgDQoJCQkgICAgICA9IExpc3QuZmxhdHRlbg0KCQkJ
ICAgICAgICBbYXNzZW1ibHksDQoJCQkJIGFzc2VtYmx5X3hjaCwNCgkJCQkgYXNzZW1ibHlfYWRk
cmVzcywNCgkJCQkgY2FzZSBTaXplLmNsYXNzIHNpemUNCgkJCQkgICBvZiBTaXplLkZMVCANCgkJ
CQkgICAgPT4gW0Fzc2VtYmx5Lmluc3RydWN0aW9uX2ZzdA0KCQkJCQl7ZHN0ID0gT3BlcmFuZC5B
ZGRyZXNzIGFkZHJlc3MsDQoJCQkJCSBzaXplID0gc2l6ZSwNCgkJCQkJIHBvcCA9IHRydWV9XQ0K
CQkJCSAgICB8IFNpemUuRlBJIA0KCQkJCSAgICA9PiBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZmlz
dA0KCQkJCQl7ZHN0ID0gT3BlcmFuZC5BZGRyZXNzIGFkZHJlc3MsDQoJCQkJCSBzaXplID0gc2l6
ZSwNCgkJCQkJIHBvcCA9IHRydWV9XQ0KCQkJCSAgICB8IF8gPT4gRXJyb3IuYnVnICJjb21taXRG
bHRSZWdpc3RlcnMiXSwNCgkJCSAgICAgIHJlbmFtZSANCgkJCSAgICAgID0gcmVuYW1lX3BvcCBv
IHJlbmFtZV94Y2ggbyByZW5hbWUsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgZW5kDQoNCgkJICAgICAgIGZ1biBkb1JlbW92ZVRydWUg
KCkNCgkJCSA9IGxldA0KCQkJICAgICB2YWwgZmx0cmVnaXN0ZXIgPSByZW5hbWUgZmx0cmVnaXN0
ZXINCgkJCSAgICAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3hjaCwNCgkJCQkgIHJlbmFtZSA9
IHJlbmFtZV94Y2gsDQoJCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgICAgPSBpZiBG
bHRSZWdpc3Rlci5lcShmbHRyZWdpc3RlciwgDQoJCQkJCQkgICBGbHRSZWdpc3Rlci50b3ApDQoJ
CQkJICAgdGhlbiB7YXNzZW1ibHkgPSBbXSwNCgkJCQkJIHJlbmFtZSA9IEZsdFJlZ2lzdGVyLmlk
LA0KCQkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCQkJICAgZWxzZSBsZXQNCgkJCQkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV94Y2gsDQoJCQkJ
CSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCSAgICA9IGZsdHhjaCcgDQoJCQkJCSAg
ICAgIHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJCQkgICAgICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uIA0KCQkJCQkgICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCWluDQoJCQkJ
CSAge2Fzc2VtYmx5IA0KCQkJCQkgICA9IFtBc3NlbWJseS5pbnN0cnVjdGlvbl9meGNoDQoJCQkJ
CSAgICAgIHtzcmMgPSBPcGVyYW5kLmZsdHJlZ2lzdGVyIA0KCQkJCQkgICAgICAgZmx0cmVnaXN0
ZXJ9XSwNCgkJCQkJICAgcmVuYW1lID0gcmVuYW1lX3hjaCwNCgkJCQkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uIA0KCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJZW5kDQoJCSAgICAg
DQoJCQkgICAgIHZhbCB7cmVuYW1lID0gcmVuYW1lX3BvcCwNCgkJCQkgIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJCSAgICAgICA9IGZsdHBvcCB7cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCSAgICAgdmFsIHNpemUgPSBNZW1Mb2Muc2l6ZSBtZW1s
b2MNCgkJCSAgIGluDQoJCQkgICAgIHthc3NlbWJseSANCgkJCSAgICAgID0gTGlzdC5mbGF0dGVu
DQoJCQkgICAgICAgIFthc3NlbWJseSwNCgkJCQkgYXNzZW1ibHlfeGNoLA0KCQkJCSBjYXNlIFNp
emUuY2xhc3Mgc2l6ZQ0KCQkJCSAgIG9mIFNpemUuRkxUIA0KCQkJCSAgICA9PiBbQXNzZW1ibHku
aW5zdHJ1Y3Rpb25fZnN0DQoJCQkJCXtkc3QgPSBPcGVyYW5kLmZsdHJlZ2lzdGVyIA0KCQkJCQkg
ICAgICAgRmx0UmVnaXN0ZXIudG9wLA0KCQkJCQkgc2l6ZSA9IHNpemUsDQoJCQkJCSBwb3AgPSB0
cnVlfV0NCgkJCQkgIHwgU2l6ZS5GUEkgDQoJCQkJICA9PiBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25f
ZnN0DQoJCQkJICAgICAge2RzdCA9IE9wZXJhbmQuZmx0cmVnaXN0ZXINCgkJCQkgICAgICAgICAg
ICAgRmx0UmVnaXN0ZXIudG9wLA0KCQkJCSAgICAgICBzaXplID0gU2l6ZS5EQkxFLA0KCQkJCSAg
ICAgICBwb3AgPSB0cnVlfV0NCgkJCQkgIHwgXyA9PiBFcnJvci5idWcgImNvbW1pdEZsdFJlZ2lz
dGVycyJdLA0KCQkJICAgICAgcmVuYW1lID0gcmVuYW1lX3BvcCBvIHJlbmFtZV94Y2ggbyByZW5h
bWUsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJICAgZW5kDQoNCgkJICAgICAgIGZ1biBkb05vdGhpbmcgKCkNCgkJCSA9IHthc3NlbWJseSA9
IGFzc2VtYmx5LA0KCQkJICAgIHJlbmFtZSA9IHJlbmFtZSwNCgkJCSAgICByZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgaW4NCgkJICAgICAgIGNhc2UgKGNv
bW1pdCxzeW5jKQ0KCQkJIG9mIChDT01NSVQgMCwgZmFsc2UpID0+IGRvQ29tbWl0RmFsc2UgKCkN
CgkJCSAgfCAoQ09NTUlUIDAsIHRydWUpID0+IGRvQ29tbWl0VHJ1ZSAoKQ0KCQkJICB8IChSRU1P
VkUgMCwgZmFsc2UpID0+IGRvUmVtb3ZlRmFsc2UgKCkNCgkJCSAgfCAoUkVNT1ZFIDAsIHRydWUp
ID0+IGRvUmVtb3ZlVHJ1ZSAoKQ0KCQkJICB8IChUUllDT01NSVQgMCwgZmFsc2UpDQoJCQkgID0+
IGlmIEZsdFJlZ2lzdGVyLmVxKHJlbmFtZSBmbHRyZWdpc3RlciwgDQoJCQkJCSAgICAgICBGbHRS
ZWdpc3Rlci50b3ApDQoJCQkgICAgICAgdGhlbiBkb0NvbW1pdEZhbHNlICgpDQoJCQkgICAgICAg
ZWxzZSBkb05vdGhpbmcgKCkNCgkJCSAgfCAoVFJZQ09NTUlUIDAsIHRydWUpDQoJCQkgID0+IGlm
IEZsdFJlZ2lzdGVyLmVxKHJlbmFtZSBmbHRyZWdpc3RlciwgDQoJCQkJCSAgICAgICBGbHRSZWdp
c3Rlci50b3ApDQoJCQkgICAgICAgdGhlbiBkb0NvbW1pdFRydWUgKCkNCgkJCSAgICAgICBlbHNl
IGRvTm90aGluZyAoKQ0KCQkJICB8IChUUllSRU1PVkUgMCwgZmFsc2UpDQoJCQkgID0+IGlmIEZs
dFJlZ2lzdGVyLmVxKHJlbmFtZSBmbHRyZWdpc3RlciwgDQoJCQkJCSAgICAgICBGbHRSZWdpc3Rl
ci50b3ApDQoJCQkgICAgICAgdGhlbiBkb1JlbW92ZUZhbHNlICgpDQoJCQkgICAgICAgZWxzZSBk
b05vdGhpbmcgKCkNCgkJCSAgfCAoVFJZUkVNT1ZFIDAsIHRydWUpDQoJCQkgID0+IGlmIEZsdFJl
Z2lzdGVyLmVxKHJlbmFtZSBmbHRyZWdpc3RlciwgDQoJCQkJCSAgICAgICBGbHRSZWdpc3Rlci50
b3ApDQoJCQkgICAgICAgdGhlbiBkb1JlbW92ZVRydWUgKCkNCgkJCSAgICAgICBlbHNlIGRvTm90
aGluZyAoKQ0KCQkJICB8IF8gPT4gRXJyb3IuYnVnICJjb21taXRGbHRSZWdpc3RlcnMiDQoJCSAg
ICAgZW5kKQ0KCSAgaW4NCgkgICAge2Fzc2VtYmx5ID0gYXNzZW1ibHlfY29tbWl0LA0KCSAgICAg
cmVuYW1lID0gcmVuYW1lX2NvbW1pdCwNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkgIGVuZA0KDQogICAgICBhbmQgdG9SZWdpc3Rlck1lbUxvYyB7bWVt
bG9jOiBNZW1Mb2MudCwgDQoJCQkgICAgc2l6ZTogU2l6ZS50LCANCgkJCSAgICBtb3ZlOiBib29s
LA0KCQkJICAgIHN1cHBvcnRzOiBPcGVyYW5kLnQgbGlzdCwNCgkJCSAgICBzYXZlczogT3BlcmFu
ZC50IGxpc3QsIA0KCQkJICAgIGZvcmNlOiBSZWdpc3Rlci50IGxpc3QsIA0KCQkJICAgIHJlZ2lz
dGVyQWxsb2NhdGlvbjogdH0gOg0KCSAgICAgICAgICAgICAgICAgICB7cmVnaXN0ZXI6IFJlZ2lz
dGVyLnQsDQoJCQkgICAgYXNzZW1ibHk6IEFzc2VtYmx5LnQgbGlzdCwNCgkJCSAgICByZWdpc3Rl
ckFsbG9jYXRpb246IHR9DQoJPSBjYXNlIGFsbG9jYXRlZCB7bWVtbG9jID0gbWVtbG9jLA0KCQkJ
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICAgIG9mIFNPTUUg
KHZhbHVlIGFzIHtyZWdpc3RlcixtZW1sb2Msd2VpZ2h0LHN5bmMsY29tbWl0fSkNCgkgICAgID0+
IGxldA0KCQkgIHZhbCByZWdpc3RlcnMNCgkJICAgID0gcG90ZW50aWFsUmVnaXN0ZXJzIHtzaXpl
ID0gc2l6ZSwNCgkJCQkJICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkgIGZvcmNlID0gZm9yY2UsDQoJ
CQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CWluDQoJCSAgaWYgTGlzdC5jb250YWlucyhyZWdpc3RlcnMsIHJlZ2lzdGVyLCBSZWdpc3Rlci5l
cSkNCgkJICAgIHRoZW4ge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkgIGFzc2VtYmx5ID0gW10s
DQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgIGVs
c2UgbGV0DQoJCQkgICB2YWwge3JlZ2lzdGVyID0gZmluYWxfcmVnaXN0ZXIsDQoJCQkJY29pbmNp
ZGVfdmFsdWVzfQ0KCQkJICAgICA9IGNob29zZVJlZ2lzdGVyIA0KCQkJICAgICAgIHtzaXplID0g
c2l6ZSwNCgkJCQlzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCXNhdmVzID0gKE9wZXJhbmQucmVn
aXN0ZXIgcmVnaXN0ZXIpOjpzYXZlcywNCgkJCQlmb3JjZSA9IGZvcmNlLA0KCQkJCXJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgICAgPSBkZWxldGUge3JlZ2lzdGVyID0g
cmVnaXN0ZXIsDQoJCQkgICAgICAgICAgICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAg
ICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgaW4NCgkJCSAgIGNhc2UgY29pbmNpZGVfdmFs
dWVzDQoJCQkgICAgIG9mIFtdIA0KCQkJICAgICAgPT4gaWYgbW92ZQ0KCQkJCSAgIHRoZW4gbGV0
DQoJCQkJCSAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgPSB1cGRhdGUge3ZhbHVl
IA0KCQkJCQkJICAgICAgPSB7cmVnaXN0ZXIgDQoJCQkJCQkJID0gZmluYWxfcmVnaXN0ZXIsDQoJ
CQkJCQkJIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJCQkgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJCQkJ
CSBzeW5jID0gc3luYywNCgkJCQkJCQkgY29tbWl0ID0gY29tbWl0fSwNCgkJCQkJCSAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJ
CWluDQoJCQkJCSAge3JlZ2lzdGVyID0gZmluYWxfcmVnaXN0ZXIsDQoJCQkJCSAgIGFzc2VtYmx5
DQoJCQkJCSAgID0gW0Fzc2VtYmx5Lmluc3RydWN0aW9uX21vdg0KCQkJCQkgICAgICB7c3JjID0g
T3BlcmFuZC5yZWdpc3RlciANCgkJCQkJICAgICAgICAgICAgIHJlZ2lzdGVyLA0KCQkJCQkgICAg
ICAgZHN0ID0gT3BlcmFuZC5yZWdpc3Rlcg0KCQkJCQkgICAgICAgICAgICAgZmluYWxfcmVnaXN0
ZXIsDQoJCQkJCSAgICAgICBzaXplID0gc2l6ZX1dLA0KCQkJCQkgICByZWdpc3RlckFsbG9jYXRp
b24gDQoJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQllbmQNCgkJCQkgICBlbHNl
IGxldA0KCQkJCQkgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICAgID0gdXBkYXRlIHt2
YWx1ZSANCgkJCQkJCSAgICAgID0ge3JlZ2lzdGVyIA0KCQkJCQkJCSA9IGZpbmFsX3JlZ2lzdGVy
LA0KCQkJCQkJCSBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCQkJIHdlaWdodCA9IHdlaWdodCwNCgkJ
CQkJCQkgc3luYyA9IHRydWUsDQoJCQkJCQkJIGNvbW1pdCA9IGNvbW1pdH0sDQoJCQkJCQkgICAg
ICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCQlpbg0KCQkJCQkgIHtyZWdpc3RlciA9IGZpbmFsX3JlZ2lzdGVyLA0KCQkJCQkgICBhc3Nl
bWJseSA9IFtdLA0KCQkJCQkgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICAgPSByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCQkJCWVuZA0KCQkJICAgICAgfCBbdmFsdWUnIGFzIHtyZWdpc3RlciA9
IHJlZ2lzdGVyJywNCgkJCQkJICAgIG1lbWxvYyA9IG1lbWxvYycsDQoJCQkJCSAgICB3ZWlnaHQg
PSB3ZWlnaHQnLA0KCQkJCQkgICAgc3luYyA9IHN5bmMnLA0KCQkJCQkgICAgY29tbWl0ID0gY29t
bWl0J31dIA0KCQkJICAgICAgPT4gaWYgUmVnaXN0ZXIuZXEocmVnaXN0ZXInLGZpbmFsX3JlZ2lz
dGVyKQ0KCQkJCSAgIHRoZW4gbGV0DQoJCQkJCSAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkgICAgPSBkZWxldGUge3JlZ2lzdGVyDQoJCQkJCQkgICAgICA9IHJlZ2lzdGVyJywNCgkJCQkJ
CSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgICAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkJCSAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgPSB1cGRhdGUge3Zh
bHVlDQoJCQkJCQkgICAgICA9IHtyZWdpc3RlciANCgkJCQkJCQkgPSByZWdpc3RlciwNCgkJCQkJ
CQkgbWVtbG9jID0gbWVtbG9jJywNCgkJCQkJCQkgd2VpZ2h0ID0gd2VpZ2h0JywNCgkJCQkJCQkg
c3luYyA9IHN5bmMnLA0KCQkJCQkJCSBjb21taXQgPSBjb21taXQnfSwNCgkJCQkJCSAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJ
CWluDQoJCQkJCSAgaWYgbW92ZQ0KCQkJCQkgICAgdGhlbiBsZXQNCgkJCQkJCSAgIHZhbCByZWdp
c3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICAgPSB1cGRhdGUNCgkJCQkJCSAgICAgICB7dmFsdWUN
CgkJCQkJCQk9IHtyZWdpc3RlciANCgkJCQkJCQkgICA9IGZpbmFsX3JlZ2lzdGVyLA0KCQkJCQkJ
CSAgIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJCQkgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCQkJ
ICAgc3luYyA9IHN5bmMsDQoJCQkJCQkJICAgY29tbWl0ID0gY29tbWl0fSwNCgkJCQkJCQlyZWdp
c3RlckFsbG9jYXRpb24NCgkJCQkJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJCSBpbg0K
CQkJCQkJICAge3JlZ2lzdGVyID0gZmluYWxfcmVnaXN0ZXIsDQoJCQkJCQkgICAgYXNzZW1ibHkg
DQoJCQkJCQkgICAgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25feGNoZw0KCQkJCQkJICAgICAgIHtz
cmMNCgkJCQkJCQk9IE9wZXJhbmQucmVnaXN0ZXINCgkJCQkJCSAgICAgICAgICByZWdpc3RlciwN
CgkJCQkJCQlkc3QNCgkJCQkJCQk9IE9wZXJhbmQucmVnaXN0ZXINCgkJCQkJCSAgICAgICAgICBm
aW5hbF9yZWdpc3RlciwNCgkJCQkJCSAgICAgICAgc2l6ZSA9IHNpemV9XSwNCgkJCQkJCSAgICBy
ZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJ
CSBlbmQNCgkJCQkJICAgIGVsc2UgbGV0DQoJCQkJCQkgICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9u
DQoJCQkJCQkgICAgID0gdXBkYXRlDQoJCQkJCQkgICAgICAge3ZhbHVlDQoJCQkJCQkJPSB7cmVn
aXN0ZXIgDQoJCQkJCQkJICAgPSBmaW5hbF9yZWdpc3RlciwNCgkJCQkJCQkgICBtZW1sb2MgPSBt
ZW1sb2MsDQoJCQkJCQkJICAgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJCQkJCSAgIHN5bmMgPSB0cnVl
LA0KCQkJCQkJCSAgIGNvbW1pdCA9IGNvbW1pdH0sDQoJCQkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9u
DQoJCQkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCQkgaW4NCgkJCQkJCSAgIHtyZWdp
c3RlciA9IGZpbmFsX3JlZ2lzdGVyLA0KCQkJCQkJICAgIGFzc2VtYmx5IA0KCQkJCQkJICAgID0g
W0Fzc2VtYmx5Lmluc3RydWN0aW9uX21vdg0KCQkJCQkJICAgICAgIHtzcmMNCgkJCQkJCQk9IE9w
ZXJhbmQucmVnaXN0ZXINCgkJCQkJCSAgICAgICAgICBmaW5hbF9yZWdpc3RlciwNCgkJCQkJCQlk
c3QNCgkJCQkJCQk9IE9wZXJhbmQucmVnaXN0ZXINCgkJCQkJCSAgICAgICAgICByZWdpc3RlciwN
CgkJCQkJCQlzaXplID0gc2l6ZX1dLA0KCQkJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkJIGVuZA0KCQkJCQllbmQNCgkJCQkg
ICBlbHNlIGxldA0KCQkJCQkgIHZhbCB7cmVnaXN0ZXIgPSBmaW5hbF9yZWdpc3RlciwNCgkJCQkJ
ICAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfcmVnaXN0ZXIsDQoJCQkJCSAgICAgICByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCQkJCSAgICA9IGZyZWVSZWdpc3Rlcg0KCQkJCQkgICAgICB7c2l6ZSA9
IHNpemUsDQoJCQkJCSAgICAgICBzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCQkgICAgICAgc2F2
ZXMgPSAoT3BlcmFuZC5yZWdpc3Rlcg0KCQkJCQkJCXJlZ2lzdGVyKTo6c2F2ZXMsDQoJCQkJCSAg
ICAgICBmb3JjZSA9IGZvcmNlLA0KCQkJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJ
CSAgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJICB2YWwgcmVnaXN0ZXJBbGxvY2F0
aW9uDQoJCQkJCSAgICA9IHJlbW92ZSANCgkJCQkJICAgICAge21lbWxvYyA9IG1lbWxvYywNCgkJ
CQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgICAgPSByZWdpc3RlckFsbG9j
YXRpb259DQoJCQkJCWluDQoJCQkJCSAgaWYgbW92ZQ0KCQkJCQkgICAgdGhlbiBsZXQNCgkJCQkJ
CSAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICAgPSB1cGRhdGUge3ZhbHVlDQoJ
CQkJCQkJICAgICAgID0ge3JlZ2lzdGVyDQoJCQkJCQkJCSAgPSBmaW5hbF9yZWdpc3RlciwNCgkJ
CQkJCQkJICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCQkJCSAgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJ
CQkJCQkgIHN5bmMgPSBzeW5jLA0KCQkJCQkJCQkgIGNvbW1pdCA9IGNvbW1pdH0sDQoJCQkJCQkJ
ICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJCSAgICAgICA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJCQkJCSBpbg0KCQkJCQkJICAge3JlZ2lzdGVyID0gZmluYWxfcmVnaXN0ZXIsDQoJ
CQkJCQkgICAgYXNzZW1ibHkgDQoJCQkJCQkgICAgPSBhc3NlbWJseV9yZWdpc3RlciBADQoJCQkJ
CQkgICAgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fbW92DQoJCQkJCQkgICAgICAge3NyYyANCgkJ
CQkJCQk9IE9wZXJhbmQucmVnaXN0ZXIgDQoJCQkJCQkgICAgICAgICAgcmVnaXN0ZXIsDQoJCQkJ
CQkgICAgICAgIGRzdA0KCQkJCQkJCT0gT3BlcmFuZC5yZWdpc3RlciANCgkJCQkJCQkgIGZpbmFs
X3JlZ2lzdGVyLA0KCQkJCQkJCXNpemUgPSBzaXplfV0sDQoJCQkJCQkgICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uDQoJCQkJCQkgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCQkgZW5kDQoJCQkJ
CSAgICBlbHNlIGxldA0KCQkJCQkJICAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAg
ICA9IHVwZGF0ZSB7dmFsdWUNCgkJCQkJCQkgICAgICAgPSB7cmVnaXN0ZXINCgkJCQkJCQkJICA9
IGZpbmFsX3JlZ2lzdGVyLA0KCQkJCQkJCQkgIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJCQkJICB3
ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCQkJCSAgc3luYyA9IHRydWUsDQoJCQkJCQkJCSAgY29tbWl0
ID0gY29tbWl0fSwNCgkJCQkJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCQkJICAg
ICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkJIGluDQoJCQkJCQkgICB7cmVnaXN0ZXIg
PSBmaW5hbF9yZWdpc3RlciwNCgkJCQkJCSAgICBhc3NlbWJseSANCgkJCQkJCSAgICA9IGFzc2Vt
Ymx5X3JlZ2lzdGVyLA0KCQkJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkJIGVuZA0KCQkJCQllbmQNCgkJCSAgICAgIHwgY29p
bmNpZGVfdmFsdWVzIA0KCQkJICAgICAgPT4gbGV0DQoJCQkJICAgdmFsIHtyZWdpc3RlciA9IGZp
bmFsX3JlZ2lzdGVyLA0KCQkJCQlhc3NlbWJseSA9IGFzc2VtYmx5X3JlZ2lzdGVyLA0KCQkJCQly
ZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICA9IGZyZWVSZWdpc3RlciB7c2l6ZSA9IHNpemUs
DQoJCQkJCQkgICAgIHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCQkgICAgIHNhdmVzID0gKE9w
ZXJhbmQucmVnaXN0ZXINCgkJCQkJCQkgICAgICByZWdpc3Rlcik6OnNhdmVzLA0KCQkJCQkJICAg
ICBmb3JjZSA9IGZvcmNlLA0KCQkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAg
ICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0K
CQkJCSAgICAgPSByZW1vdmUge21lbWxvYyA9IG1lbWxvYywNCgkJCQkJICAgICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbg0KCQkJCQkgICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJIGluDQoJ
CQkJICAgaWYgbW92ZQ0KCQkJCSAgICAgdGhlbiBsZXQNCgkJCQkJICAgIHZhbCByZWdpc3RlckFs
bG9jYXRpb24NCgkJCQkJICAgICAgPSB1cGRhdGUge3ZhbHVlDQoJCQkJCQkJPSB7cmVnaXN0ZXIN
CgkJCQkJCQkgICA9IGZpbmFsX3JlZ2lzdGVyLA0KCQkJCQkJCSAgIG1lbWxvYyA9IG1lbWxvYywN
CgkJCQkJCQkgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCQkJICAgc3luYyA9IHN5bmMsDQoJCQkJ
CQkJICAgY29tbWl0ID0gY29tbWl0fSwNCgkJCQkJCQlyZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJ
CQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJICBpbg0KCQkJCQkgICAge3JlZ2lzdGVyID0g
ZmluYWxfcmVnaXN0ZXIsDQoJCQkJCSAgICAgYXNzZW1ibHkgDQoJCQkJCSAgICAgPSBhc3NlbWJs
eV9yZWdpc3RlciBADQoJCQkJCSAgICAgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fbW92DQoJCQkJ
CQl7c3JjIA0KCQkJCQkJID0gT3BlcmFuZC5yZWdpc3RlciANCgkJCQkJCSAgIHJlZ2lzdGVyLA0K
CQkJCQkJIGRzdA0KCQkJCQkJID0gT3BlcmFuZC5yZWdpc3RlciANCgkJCQkJCSAgIGZpbmFsX3Jl
Z2lzdGVyLA0KCQkJCQkJIHNpemUgPSBzaXplfV0sDQoJCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0
aW9uDQoJCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCSAgZW5kDQoJCQkJICAg
ICBlbHNlIGxldA0KCQkJCQkgICAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgICA9
IHVwZGF0ZSB7dmFsdWUNCgkJCQkJCQk9IHtyZWdpc3Rlcg0KCQkJCQkJCSAgID0gZmluYWxfcmVn
aXN0ZXIsDQoJCQkJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkJCSAgIHdlaWdodCA9IHdl
aWdodCwNCgkJCQkJCQkgICBzeW5jID0gdHJ1ZSwNCgkJCQkJCQkgICBjb21taXQgPSBjb21taXR9
LA0KCQkJCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkJCQkgIGluDQoJCQkJCSAgICB7cmVnaXN0ZXIgPSBmaW5hbF9yZWdpc3RlciwNCgkJCQkJ
ICAgICBhc3NlbWJseSANCgkJCQkJICAgICA9IGFzc2VtYmx5X3JlZ2lzdGVyLA0KCQkJCQkgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJ
CQkgIGVuZA0KCQkJCSBlbmQNCgkJCSBlbmQNCg0KCQllbmQNCgkgICAgIHwgTk9ORSANCgkgICAg
ID0+IGlmIG1vdmUNCgkJICB0aGVuIGxldA0KCQkJIHZhbCB7YWRkcmVzcywgDQoJCQkgICAgICBh
c3NlbWJseSA9IGFzc2VtYmx5X2FkZHJlc3MsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb259
DQoJCQkgICA9IHRvQWRkcmVzc01lbUxvYyB7bWVtbG9jID0gbWVtbG9jLA0KCQkJCQkgICAgICBz
aXplID0gc2l6ZSwNCgkJCQkJICAgICAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkJICAgICAg
c2F2ZXMgPSBzYXZlcywNCgkJCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgICAg
ICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJIHZhbCB7cmVnaXN0ZXIsIA0KCQkJICAgICAg
YXNzZW1ibHkgPSBhc3NlbWJseV9yZWdpc3RlciwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJCSAgID0gZnJlZVJlZ2lzdGVyIHtzaXplID0gc2l6ZSwNCgkJCQkJICAgc3VwcG9ydHMg
PSBzdXBwb3J0cywNCgkJCQkJICAgc2F2ZXMgPSBzYXZlcywNCgkJCQkJICAgZm9yY2UgPSBmb3Jj
ZSwNCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCg0KCQkJIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgID0gcmVtb3ZlIHttZW1s
b2MgPSBtZW1sb2MsDQoJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9j
YXRpb259DQoNCgkJCSB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkgICA9IHVwZGF0ZSB7dmFs
dWUgPSB7cmVnaXN0ZXIgPSByZWdpc3RlciwNCgkJCQkJICAgICAgbWVtbG9jID0gbWVtbG9jLA0K
CQkJCQkgICAgICB3ZWlnaHQgPSAxMDI0LA0KCQkJCQkgICAgICBzeW5jID0gdHJ1ZSwNCgkJCQkJ
ICAgICAgY29tbWl0ID0gTk99LA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAgaW4NCgkJCSB7cmVnaXN0ZXIgPSByZWdpc3RlciwNCgkJ
CSAgYXNzZW1ibHkgDQoJCQkgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9hZGRyZXNzLA0KCQkJ
CQkgIGFzc2VtYmx5X3JlZ2lzdGVyLA0KCQkJCQkgIFtBc3NlbWJseS5pbnN0cnVjdGlvbl9tb3YN
CgkJCQkJICAge2RzdCA9IE9wZXJhbmQucmVnaXN0ZXIgcmVnaXN0ZXIsDQoJCQkJCSAgICBzcmMg
PSBPcGVyYW5kLmFkZHJlc3MgYWRkcmVzcywNCgkJCQkJICAgIHNpemUgPSBzaXplfV1dLA0KCQkJ
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgICBlbmQN
CgkJICBlbHNlIGxldA0KIAkJCSB2YWwge3JlZ2lzdGVyLCANCgkJCSAgICAgIGFzc2VtYmx5ID0g
YXNzZW1ibHlfcmVnaXN0ZXIsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICA9
IGZyZWVSZWdpc3RlciB7c2l6ZSA9IHNpemUsDQoJCQkJCSAgIHN1cHBvcnRzID0gc3VwcG9ydHMs
DQoJCQkJCSAgIHNhdmVzID0gc2F2ZXMsDQoJCQkJCSAgIGZvcmNlID0gZm9yY2UsDQoJCQkJCSAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkg
dmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJICAgPSByZW1vdmUge21lbWxvYyA9IG1lbWxvYywN
CgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJ
IHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgID0gdXBkYXRlIHt2YWx1ZSA9IHtyZWdpc3Rl
ciA9IHJlZ2lzdGVyLA0KCQkJCQkgICAgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCSAgICAgIHdl
aWdodCA9IDEwMjQsDQoJCQkJCSAgICAgIHN5bmMgPSB0cnVlLA0KCQkJCQkgICAgICBjb21taXQg
PSBOT30sDQoJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgICAgICBpbg0KCQkJIHtyZWdpc3RlciA9IHJlZ2lzdGVyLA0KCQkJICBhc3NlbWJseSA9
IGFzc2VtYmx5X3JlZ2lzdGVyLA0KCQkJICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICAgICBlbmQNCg0KICAgICAgYW5kIHRvRmx0UmVnaXN0ZXJNZW1Mb2Mg
e21lbWxvYzogTWVtTG9jLnQsDQoJCQkgICAgICAgc2l6ZTogU2l6ZS50LA0KCQkJICAgICAgIG1v
dmU6IGJvb2wsDQoJCQkgICAgICAgc3VwcG9ydHM6IE9wZXJhbmQudCBsaXN0LA0KCQkJICAgICAg
IHNhdmVzOiBPcGVyYW5kLnQgbGlzdCwgDQoJCQkgICAgICAgdG9wOiBib29sIG9wdGlvbiwNCgkJ
CSAgICAgICByZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAgICAgICAgICAg
e2ZsdHJlZ2lzdGVyOiBGbHRSZWdpc3Rlci50LA0KCQkJICAgICAgIGFzc2VtYmx5OiBBc3NlbWJs
eS50IGxpc3QsDQoJCQkgICAgICAgcmVuYW1lIDogRmx0UmVnaXN0ZXIudCAtPiBGbHRSZWdpc3Rl
ci50LA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGNhc2UgZmx0YWxsb2Nh
dGVkIHttZW1sb2MgPSBtZW1sb2MsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkgICAgb2YgU09NRSAodmFsdWUgYXMge2ZsdHJlZ2lzdGVyLG1lbWxv
Yyx3ZWlnaHQsc3luYyxjb21taXR9KQ0KCSAgICAgPT4gKGNhc2UgKEZsdFJlZ2lzdGVyLmVxKGZs
dHJlZ2lzdGVyLCBGbHRSZWdpc3Rlci50b3ApLA0KCQkgICAgICAgdG9wKQ0KCQkgICBvZiAodHJ1
ZSwgTk9ORSkNCgkJICAgID0+IGxldA0KCQkJIHZhbCB7cmVuYW1lID0gcmVuYW1lX3BvcCwNCgkJ
CSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgID0gZmx0cG9wIHtyZWdpc3RlckFsbG9j
YXRpb24NCgkJCQkgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJIHZhbCBhc3NlbWJseV9w
b3ANCgkJCSAgID0gW0Fzc2VtYmx5Lmluc3RydWN0aW9uX2ZzdA0KCQkJICAgICAge2RzdCA9IE9w
ZXJhbmQuZmx0cmVnaXN0ZXIgRmx0UmVnaXN0ZXIudG9wLA0KCQkJICAgICAgIHNpemUgPSBzaXpl
LA0KCQkJICAgICAgIHBvcCA9IHRydWV9XQ0KDQoJCQkgdmFsIHtyZW5hbWUgPSByZW5hbWVfcHVz
aCwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgID0gZmx0cHVzaCB7dmFsdWUg
PSB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci50b3AsDQoJCQkJCSAgICAgICBtZW1sb2MgPSBt
ZW1sb2MsDQoJCQkJCSAgICAgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCSAgICAgICBzeW5jID0g
c3luYywNCgkJCQkJICAgICAgIGNvbW1pdCA9IGNvbW1pdH0sDQoJCQkJICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAgaW4NCgkJCSB7Zmx0cmVn
aXN0ZXIgPSBGbHRSZWdpc3Rlci50b3AsDQoJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfcG9wLA0K
CQkJICByZW5hbWUgPSByZW5hbWVfcG9wLA0KCQkJICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCSAgICAgICBlbmQNCgkJICAgIHwgKGZhbHNlLCBOT05FKQ0KCQkg
ICAgPT4gbGV0DQoJCQkgdmFsIHtyZW5hbWUgPSByZW5hbWVfeGNoLA0KCQkJICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkJICAgPSBmbHR4Y2gge3ZhbHVlID0gdmFsdWUsDQoJCQkJICAgICBy
ZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSB2
YWwgYXNzZW1ibHlfeGNoDQoJCQkgICA9IFtBc3NlbWJseS5pbnN0cnVjdGlvbl9meGNoDQoJCQkg
ICAgICB7c3JjID0gT3BlcmFuZC5mbHRyZWdpc3RlciBmbHRyZWdpc3Rlcn1dDQoNCgkJCSB2YWwg
e3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkg
ICA9IGZsdHBvcCB7cmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJICAgICA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJCSB2YWwgYXNzZW1ibHlfcG9wDQoJCQkgICA9IFtBc3NlbWJseS5pbnN0cnVjdGlv
bl9mc3QNCgkJCSAgICAgIHtkc3QgPSBPcGVyYW5kLmZsdHJlZ2lzdGVyIEZsdFJlZ2lzdGVyLnRv
cCwNCgkJCSAgICAgICBzaXplID0gc2l6ZSwNCgkJCSAgICAgICBwb3AgPSB0cnVlfV0NCg0KCQkJ
IHZhbCB7cmVuYW1lID0gcmVuYW1lX3B1c2gsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb259
DQoJCQkgICA9IGZsdHB1c2gge3ZhbHVlID0ge2ZsdHJlZ2lzdGVyID0gRmx0UmVnaXN0ZXIudG9w
LA0KCQkJCQkgICAgICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkgICAgICAgd2VpZ2h0ID0gd2Vp
Z2h0LA0KCQkJCQkgICAgICAgc3luYyA9IHN5bmMsDQoJCQkJCSAgICAgICBjb21taXQgPSBjb21t
aXR9LA0KCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJICAgICAgIGluDQoJCQkge2ZsdHJlZ2lzdGVyID0gRmx0UmVnaXN0ZXIudG9wLA0KCQkJICBh
c3NlbWJseSA9IGFzc2VtYmx5X3hjaCBAIGFzc2VtYmx5X3BvcCwNCgkJCSAgcmVuYW1lID0gcmVu
YW1lX3BvcCBvIHJlbmFtZV94Y2gsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCgkJICAgICAgIGVuZA0KCQkgICAgfCAoZmFsc2UsIFNPTUUgdHJ1ZSkNCgkJ
ICAgID0+IGxldA0KCQkJIHZhbCB7cmVuYW1lID0gcmVuYW1lX3hjaCwNCgkJCSAgICAgIHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJCSAgID0gZmx0eGNoIHt2YWx1ZSA9IHZhbHVlLA0KCQkJCSAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkg
dmFsIGFzc2VtYmx5X3hjaA0KCQkJICAgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZnhjaA0KCQkJ
ICAgICAge3NyYyA9IE9wZXJhbmQuZmx0cmVnaXN0ZXIgZmx0cmVnaXN0ZXJ9XQ0KCQkgICAgICAg
aW4NCgkJCSB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci50b3AsDQoJCQkgIGFzc2VtYmx5ID0g
YXNzZW1ibHlfeGNoLA0KCQkJICByZW5hbWUgPSByZW5hbWVfeGNoLA0KCQkJICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgICBlbmQNCgkJICAgIHwgKF8s
IFNPTUUgXykNCgkJICAgID0+IHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJYXNzZW1i
bHkgPSBbXSwNCgkJCXJlbmFtZSA9IEZsdFJlZ2lzdGVyLmlkLA0KCQkJcmVnaXN0ZXJBbGxvY2F0
aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufSkNCgkgICAgIHwgTk9ORQ0KCSAgICAgPT4gKGNhc2Ug
KHRvcCwgbW92ZSkNCgkJICAgb2YgKE5PTkUsIF8pDQoJCSAgICA9PiBsZXQNCgkJCSB2YWwge2Fz
c2VtYmx5ID0gYXNzZW1ibHlfZnJlZSwNCgkJCSAgICAgIHJlbmFtZSA9IHJlbmFtZV9mcmVlLA0K
CQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJCSAgID0gZnJlZUZsdFJlZ2lzdGVyIHtzaXplID0gc2l6ZSwNCgkJCQkJICAgICAgc3Vw
cG9ydHMgPSBzdXBwb3J0cywNCgkJCQkJICAgICAgc2F2ZXMgPSBzYXZlcywNCgkJCQkJICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJ
CQkgdmFsIHtyZW5hbWUgPSByZW5hbWVfcHVzaCwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJCSAgID0gZmx0cHVzaCB7dmFsdWUgPSB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci50
b3AsDQoJCQkJCSAgICAgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCSAgICAgICB3ZWlnaHQgPSAx
MDI0LA0KCQkJCQkgICAgICAgc3luYyA9IHRydWUsDQoJCQkJCSAgICAgICBjb21taXQgPSBOT30s
DQoJCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkg
ICAgICAgaW4NCgkJCSB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci50b3AsDQoJCQkgIGFzc2Vt
Ymx5ID0gYXNzZW1ibHlfZnJlZSwNCgkJCSAgcmVuYW1lID0gcmVuYW1lX2ZyZWUsDQoJCQkgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGVuZA0KCQkg
ICAgfCAoU09NRSBfLCB0cnVlKQ0KCQkgICAgPT4gbGV0DQoJCQkgdmFsIHthc3NlbWJseSA9IGFz
c2VtYmx5X2ZyZWUsDQoJCQkgICAgICByZW5hbWUgPSByZW5hbWVfZnJlZSwNCgkJCSAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbg0KCQkJICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICA9
IGZyZWVGbHRSZWdpc3RlciB7c2l6ZSA9IHNpemUsDQoJCQkJCSAgICAgIHN1cHBvcnRzID0gc3Vw
cG9ydHMsDQoJCQkJCSAgICAgIHNhdmVzID0gc2F2ZXMsDQoJCQkJCSAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbg0KCQkJCQkgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJIHZhbCB7YWRk
cmVzcywNCgkJCSAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfYWRkcmVzcywNCgkJCSAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgID0gdG9BZGRyZXNzTWVtTG9jIHttZW1sb2MgPSBtZW1s
b2MsDQoJCQkJCSAgICAgIHNpemUgPSBzaXplLA0KCQkJCQkgICAgICBzdXBwb3J0cyA9IHN1cHBv
cnRzLA0KCQkJCQkgICAgICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkgICAgICByZWdpc3RlckFsbG9j
YXRpb24gDQoJCQkJCSAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkgdmFsIHtyZW5h
bWUgPSByZW5hbWVfcHVzaCwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgID0g
Zmx0cHVzaCB7dmFsdWUgPSB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci50b3AsDQoJCQkJCSAg
ICAgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCSAgICAgICB3ZWlnaHQgPSAxMDI0LA0KCQkJCQkg
ICAgICAgc3luYyA9IHRydWUsDQoJCQkJCSAgICAgICBjb21taXQgPSBOT30sDQoJCQkJICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkgdmFsIGFzc2Vt
Ymx5X2xvYWQNCgkJCSAgID0gY2FzZSBTaXplLmNsYXNzIHNpemUNCgkJCSAgICAgICBvZiBTaXpl
LkZMVA0KCQkJCT0+IEFzc2VtYmx5Lmluc3RydWN0aW9uX2ZsZA0KCQkJCSAgIHtzcmMgPSBPcGVy
YW5kLmFkZHJlc3MgYWRkcmVzcywNCgkJCQkgICAgc2l6ZSA9IHNpemV9DQoJCQkJfCBTaXplLkZQ
SQ0KCQkJCT0+IEFzc2VtYmx5Lmluc3RydWN0aW9uX2ZpbGQNCgkJCQkgICB7c3JjID0gT3BlcmFu
ZC5hZGRyZXNzIGFkZHJlc3MsDQoJCQkJICAgIHNpemUgPSBzaXplfQ0KCQkJCXwgXyANCgkJCQk9
PiBFcnJvci5idWcgInRvRmx0UmVnaXN0ZXJNZW1Mb2MsIHNpemUiDQoJCSAgICAgICBpbg0KCQkJ
IHtmbHRyZWdpc3RlciA9IEZsdFJlZ2lzdGVyLnRvcCwNCgkJCSAgYXNzZW1ibHkgPSBhc3NlbWJs
eV9mcmVlIEANCgkJCSAgICAgICAgICAgICBhc3NlbWJseV9hZGRyZXNzIEANCgkJCSAgICAgICAg
ICAgICBbYXNzZW1ibHlfbG9hZF0sDQoJCQkgIHJlbmFtZSA9IHJlbmFtZV9wdXNoIG8gcmVuYW1l
X2ZyZWUsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
ICAgICAgIGVuZA0KCQkgICAgfCAoU09NRSBfLCBmYWxzZSkNCgkJICAgID0+IEVycm9yLmJ1ZyAi
dG9GbHRSZWdpc3Rlck1lbUxvYzogKHRvcCwgbW92ZSkiKQ0KDQogICAgICBhbmQgdG9BZGRyZXNz
TWVtTG9jIHttZW1sb2M6IE1lbUxvYy50LCANCgkJCSAgIHNpemU6IFNpemUudCwgDQoJCQkgICBz
dXBwb3J0czogT3BlcmFuZC50IGxpc3QsDQoJCQkgICBzYXZlczogT3BlcmFuZC50IGxpc3QsIA0K
CQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fSA6DQoJICAgICAgICAgICAgICAgICAge2FkZHJl
c3M6IEFkZHJlc3MudCwNCgkJCSAgIGFzc2VtYmx5OiBBc3NlbWJseS50IGxpc3QsDQoJCQkgICBy
ZWdpc3RlckFsbG9jYXRpb246IHR9DQogICAgICAgID0gY2FzZSBtZW1sb2MNCgkgICAgb2YgTWVt
TG9jLkltbSB7YmFzZSwgaW5kZXgsIHNjYWxlLCBzaXplLCAuLi59DQoJICAgICA9PiBsZXQNCgkJ
ICB2YWwgZGlzcCcgDQoJCSAgICA9IGlmIEltbWVkaWF0ZS5lcShpbmRleCwgSW1tZWRpYXRlLmNv
bnN0X2ludCAwKQ0KCQkJdGhlbiBOT05FDQoJCQllbHNlIFNPTUUgKEltbWVkaWF0ZS5iaW5leHAg
DQoJCQkJICAge29wZXIgPSBJbW1lZGlhdGUuTXVsdGlwbGljYXRpb24sIA0KCQkJCSAgICBleHAx
ID0gaW5kZXgsIA0KCQkJCSAgICBleHAyID0gU2NhbGUudG9JbW1lZGlhdGUgc2NhbGV9KQ0KCQkg
IHZhbCBkaXNwDQoJCSAgICA9IGNhc2UgZGlzcCcNCgkJCW9mIE5PTkUgPT4gU09NRSBiYXNlDQoJ
CQkgfCBTT01FIGRpc3AnJyA9PiBTT01FIChJbW1lZGlhdGUuYmluZXhwIA0KCQkJCQkJe29wZXIg
PSBJbW1lZGlhdGUuQWRkaXRpb24sDQoJCQkJCQkgZXhwMSA9IGJhc2UsIA0KCQkJCQkJIGV4cDIg
PSBkaXNwJyd9KQ0KCQlpbg0KCQkgIHthZGRyZXNzID0gQWRkcmVzcy5UIHtkaXNwID0gZGlzcCwN
CgkJCQkJYmFzZSA9IE5PTkUsDQoJCQkJCWluZGV4ID0gTk9ORSwNCgkJCQkJc2NhbGUgPSBOT05F
fSwNCgkJICAgYXNzZW1ibHkgPSBbXSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCgkgICAgIHwgTWVtTG9jLlNpbXBsZSB7YmFzZSwgaW5kZXgs
IHNjYWxlLCBzaXplLCAuLi59DQoJICAgICA9PiBsZXQNCgkJICB2YWwgZGlzcA0KCQkgICAgPSBp
ZiBJbW1lZGlhdGUuZXEoaW5kZXgsIEltbWVkaWF0ZS5jb25zdF9pbnQgMCkNCgkJCXRoZW4gTk9O
RQ0KCQkJZWxzZSBTT01FIChJbW1lZGlhdGUuYmluZXhwIA0KCQkJCSAgIHtvcGVyID0gSW1tZWRp
YXRlLk11bHRpcGxpY2F0aW9uLA0KCQkJCSAgICBleHAxID0gaW5kZXgsIA0KCQkJCSAgICBleHAy
ID0gU2NhbGUudG9JbW1lZGlhdGUgc2NhbGV9KQ0KDQoJCSAgdmFsIHtyZWdpc3RlciA9IHJlZ2lz
dGVyX2Jhc2UsDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Jhc2UsDQoJCSAgICAgICBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IHRvUmVnaXN0ZXJNZW1Mb2Mge21lbWxvYyA9IGJh
c2UsDQoJCQkJCXNpemUgPSBNZW1Mb2Muc2l6ZSBiYXNlLA0KCQkJCQltb3ZlID0gdHJ1ZSwNCgkJ
CQkJc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkJc2F2ZXMgPSBzYXZlcywNCgkJCQkJZm9yY2Ug
PSBSZWdpc3Rlci5iYXNlUmVnaXN0ZXJzLA0KCQkJCQlyZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJ
CT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthZGRyZXNzID0gQWRkcmVzcy5UIHtk
aXNwID0gZGlzcCwNCgkJCQkJYmFzZSA9IFNPTUUgcmVnaXN0ZXJfYmFzZSwNCgkJCQkJaW5kZXgg
PSBOT05FLA0KCQkJCQlzY2FsZSA9IE5PTkV9LA0KCQkgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Jh
c2UsDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5k
DQogICAgICAgICAgICAgfCBNZW1Mb2MuQ29tcGxleCB7YmFzZSwgaW5kZXgsIHNjYWxlLCBzaXpl
LCAuLi59DQoJICAgICA9PiBsZXQNCgkJICB2YWwge3JlZ2lzdGVyID0gcmVnaXN0ZXJfYmFzZSwN
CgkJICAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfYmFzZSwNCgkJICAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJICAgID0gdG9SZWdpc3Rlck1lbUxvYyB7bWVtbG9jID0gYmFzZSwNCgkJCQkJ
c2l6ZSA9IE1lbUxvYy5zaXplIGJhc2UsDQoJCQkJCW1vdmUgPSB0cnVlLA0KCQkJCQlzdXBwb3J0
cyANCgkJCQkJPSAoT3BlcmFuZC5tZW1sb2MgaW5kZXgpOjpzdXBwb3J0cywNCgkJCQkJc2F2ZXMg
PSBzYXZlcywNCgkJCQkJZm9yY2UgPSBSZWdpc3Rlci5iYXNlUmVnaXN0ZXJzLA0KCQkJCQlyZWdp
c3RlckFsbG9jYXRpb24gDQoJCQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHty
ZWdpc3RlciA9IHJlZ2lzdGVyX2luZGV4LA0KCQkgICAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9p
bmRleCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gdG9SZWdpc3Rlck1l
bUxvYyB7bWVtbG9jID0gaW5kZXgsDQoJCQkJCXNpemUgPSBNZW1Mb2Muc2l6ZSBpbmRleCwNCgkJ
CQkJbW92ZSA9IHRydWUsDQoJCQkJCXN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCXNhdmVzID0g
W09wZXJhbmQubWVtbG9jIGJhc2UsDQoJCQkJCQkgT3BlcmFuZC5yZWdpc3RlciANCgkJCQkJCSBy
ZWdpc3Rlcl9iYXNlXSBAIHNhdmVzLA0KCQkJCQlmb3JjZSA9IFJlZ2lzdGVyLmluZGV4UmVnaXN0
ZXJzLA0KCQkJCQlyZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQlpbg0KCQkgIHthZGRyZXNzID0gQWRkcmVzcy5UIHtkaXNwID0gTk9ORSwNCgkJCQkJYmFz
ZSA9IFNPTUUgcmVnaXN0ZXJfYmFzZSwNCgkJCQkJaW5kZXggPSBTT01FIHJlZ2lzdGVyX2luZGV4
LA0KCQkJCQlzY2FsZSA9IFNPTUUgc2NhbGV9LA0KCQkgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Jh
c2UgQCBhc3NlbWJseV9pbmRleCwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQllbmQNCg0KICAgICAgZnVuIHRvUmVnaXN0ZXJJbW1lZGlhdGUge2ltbWVk
aWF0ZTogSW1tZWRpYXRlLnQsDQoJCQkgICAgICAgc2l6ZTogU2l6ZS50LA0KCQkJICAgICAgIHN1
cHBvcnRzOiBPcGVyYW5kLnQgbGlzdCwNCgkJCSAgICAgICBzYXZlczogT3BlcmFuZC50IGxpc3Qs
DQoJCQkgICAgICAgZm9yY2U6IFJlZ2lzdGVyLnQgbGlzdCwNCgkJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAgICAgICAgICAge3JlZ2lzdGVyOiBSZWdpc3Rl
ci50LA0KCQkJICAgICAgIGFzc2VtYmx5OiBBc3NlbWJseS50IGxpc3QsDQoJCQkgICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uOiB0fQ0KCT0gbGV0DQoJICAgIHZhbCB7cmVnaXN0ZXIgPSBmaW5hbF9y
ZWdpc3RlciwgYXNzZW1ibHksIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgICA9IGZyZWVSZWdp
c3RlciB7c2l6ZSA9IHNpemUsDQoJCQkgICAgICBzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJICAg
ICAgc2F2ZXMgPSBzYXZlcywNCgkJCSAgICAgIGZvcmNlID0gZm9yY2UsDQoJCQkgICAgICByZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICBpbg0KCSAgICB7cmVnaXN0
ZXIgPSBmaW5hbF9yZWdpc3RlciwNCgkgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHkgQA0KCSAgICAg
ICAgICAgICAgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fbW92DQoJCQkge2RzdCA9IE9wZXJhbmQu
UmVnaXN0ZXIgZmluYWxfcmVnaXN0ZXIsDQoJCQkgIHNyYyA9IE9wZXJhbmQuSW1tZWRpYXRlIGlt
bWVkaWF0ZSwNCgkJCSAgc2l6ZSA9IHNpemV9XSwNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgIGVuZA0KDQoNCiAgICAgIGZ1biBwcmUge3VzZXM6IE9w
ZXJhbmQudCBsaXN0LA0KCSAgICAgICBkZWZzOiBPcGVyYW5kLnQgbGlzdCwNCgkgICAgICAga2ls
bHM6IE9wZXJhbmQudCBsaXN0LA0KCSAgICAgICBpbmZvIGFzIHtkZWFkLA0KCQkJY29tbWl0LA0K
CQkJcmVtb3ZlLA0KCQkJLi4ufTogTGl2ZW5lc3MudCwNCgkgICAgICAgcmVnaXN0ZXJBbGxvY2F0
aW9uOiB0fSA6DQoJICAgICAge2Fzc2VtYmx5OiBBc3NlbWJseS50IGxpc3QsDQoJICAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldA0KCSAgICB2YWwgdXNlcyA9IExpc3Qua2VlcEFs
bE1hcCh1c2VzLCBPcGVyYW5kLmRlTWVtbG9jKQ0KCSAgICB2YWwgdXNlcyA9IExpc3QucmVtb3Zl
RHVwbGljYXRlcyh1c2VzLCAgTWVtTG9jLmVxKQ0KCSAgICB2YWwgZGVmcyA9IExpc3Qua2VlcEFs
bE1hcChkZWZzLCBPcGVyYW5kLmRlTWVtbG9jKQ0KCSAgICB2YWwgZGVmcyA9IExpc3QucmVtb3Zl
RHVwbGljYXRlcyhkZWZzLCAgTWVtTG9jLmVxKQ0KCSAgICB2YWwga2lsbHMgPSBMaXN0LmtlZXBB
bGxNYXAoa2lsbHMsIE9wZXJhbmQuZGVNZW1sb2MpDQoJICAgIHZhbCBraWxscyA9IExpc3QucmVt
b3ZlRHVwbGljYXRlcyhraWxscywgIE1lbUxvYy5lcSkNCg0KCSAgICB2YWwgYWxsVXNlcw0KCSAg
ICAgID0gTGlzdC5yZW1vdmVEdXBsaWNhdGVzKHVzZXMgQA0KCQkJCSAgICAgIChMaXN0LmZsYXR0
ZW5NYXAodXNlcyBAIGRlZnMsIA0KCQkJCQkJICAgICAgIE1lbUxvYy51dGlsaXplZCkpLA0KCQkJ
CSAgICAgIE1lbUxvYy5lcSkNCgkgICAgdmFsIGFsbERlZnMNCgkgICAgICA9IExpc3QucmVtb3Zl
RHVwbGljYXRlcyhkZWZzLA0KCQkJCSAgICAgIE1lbUxvYy5lcSkNCgkgICAgdmFsIGFsbEtpbGxz
DQoJICAgICAgPSBMaXN0LnJlbW92ZUR1cGxpY2F0ZXMoa2lsbHMsDQoJCQkJICAgICAgTWVtTG9j
LmVxKQ0KDQoJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkgICAgICA9IGZsdHZhbHVlTWFw
IA0KCSAgICAgICAgIHttYXAgPSBmbiB2YWx1ZSBhcyB7Zmx0cmVnaXN0ZXIsDQoJCQkJICAgICBt
ZW1sb2MsDQoJCQkJICAgICB3ZWlnaHQsDQoJCQkJICAgICBzeW5jLA0KCQkJCSAgICAgY29tbWl0
fQ0KCQkgICAgICAgICA9PiBpZiBMaXN0LmNvbnRhaW5zDQoJCSAgICAgICAgICAgICAgIChhbGxL
aWxscywNCgkJCQltZW1sb2MsDQoJCQkJTWVtTG9jLmVxKQ0KCQkJICAgICAgdGhlbiBpZiBMaXN0
LmNvbnRhaW5zDQoJCQkJICAgICAgKGRlYWQsDQoJCQkJICAgICAgIG1lbWxvYywNCgkJCQkgICAg
ICAgTWVtTG9jLmVxKQ0KCQkJCSAgICAgdGhlbiB7Zmx0cmVnaXN0ZXIgPSBmbHRyZWdpc3RlciwN
CgkJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJ
CSAgIHN5bmMgPSB0cnVlLA0KCQkJCQkgICBjb21taXQgPSBOT30NCgkJCQkgICAgIGVsc2Uge2Zs
dHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXIsDQoJCQkJCSAgIG1lbWxvYyA9IG1lbWxvYywNCgkJCQkJ
ICAgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJCQkgICBzeW5jID0gc3luYywNCgkJCQkJICAgY29tbWl0
ID0gQ09NTUlUIDB9DQoJCQkgICAgICBlbHNlIGlmIExpc3QuZXhpc3RzDQoJCQkJICAgICAgKGFs
bFVzZXMsDQoJCQkJICAgICAgIGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IE1lbUxvYy5tYXlB
bGlhcyhtZW1sb2MsDQoJCQkJCQkJICAgbWVtbG9jJykNCgkJCQkgICAgICAgICAgIGFuZGFsc28N
CgkJCQkJICAgbm90IChNZW1Mb2MuZXEobWVtbG9jLA0KCQkJCQkJCSAgbWVtbG9jJykpKQ0KCQkJ
CSAgICAgIG9yZWxzZQ0KCQkJCSAgICAgIExpc3QuZXhpc3RzDQoJCQkJICAgICAgKE1lbUxvYy51
dGlsaXplZCBtZW1sb2MsDQoJCQkJICAgICAgIGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IExp
c3QuZXhpc3RzDQoJCQkJICAgICAgICAgICAoYWxsRGVmcywNCgkJCQkJICAgIGZuIG1lbWxvYycn
DQoJCQkJCSAgICAgPT4gTWVtTG9jLm1heUFsaWFzKG1lbWxvYycsIA0KCQkJCQkJCQltZW1sb2Mn
JykpKQ0KCQkJCSAgICAgIG9yZWxzZQ0KCQkJCSAgICAgIExpc3QuZXhpc3RzDQoJCQkJICAgICAg
KGFsbERlZnMsDQoJCQkJICAgICAgIGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IE1lbUxvYy5t
YXlBbGlhcyhtZW1sb2MsDQoJCQkJCQkJICAgbWVtbG9jJykNCgkJCQkgICAgICAgICAgIGFuZGFs
c28NCgkJCQkJICAgbm90IChNZW1Mb2MuZXEobWVtbG9jLA0KCQkJCQkJCSAgbWVtbG9jJykpKQ0K
CQkJCSAgICAgdGhlbiB7Zmx0cmVnaXN0ZXIgPSBmbHRyZWdpc3RlciwNCgkJCQkJICAgbWVtbG9j
ID0gbWVtbG9jLA0KCQkJCQkgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCQkJCSAgIHN5bmMgPSBzeW5j
LA0KCQkJCQkgICBjb21taXQgPSBSRU1PVkUgMH0NCgkJCQkgICAgIGVsc2UgdmFsdWUsDQoJCSAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCB7YXNz
ZW1ibHkgPSBhc3NlbWJseV9jb21taXRfZmx0cmVnaXN0ZXJzLA0KCQkgcmVuYW1lID0gcmVuYW1l
X2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJCSByZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgPSBj
b21taXRGbHRSZWdpc3RlcnMge3N1cHBvcnRzID0gW10sDQoJCQkJICAgIHNhdmVzID0gW10sDQoJ
CQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2
YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJICAgICAgPSB2YWx1ZU1hcCANCgkgICAgICAgICB7bWFw
ID0gZm4gdmFsdWUgYXMge3JlZ2lzdGVyLA0KCQkJCSAgICAgbWVtbG9jLA0KCQkJCSAgICAgd2Vp
Z2h0LA0KCQkJCSAgICAgc3luYywNCgkJCQkgICAgIGNvbW1pdH0NCgkJICAgICAgICAgPT4gaWYg
TGlzdC5jb250YWlucw0KCQkgICAgICAgICAgICAgICAoYWxsS2lsbHMsDQoJCQkJbWVtbG9jLA0K
CQkJCU1lbUxvYy5lcSkNCgkJCSAgICAgIHRoZW4gaWYgTGlzdC5jb250YWlucw0KCQkJCSAgICAg
IChkZWFkLA0KCQkJCSAgICAgICBtZW1sb2MsDQoJCQkJICAgICAgIE1lbUxvYy5lcSkNCgkJCQkg
ICAgIHRoZW4ge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkJCSAgIG1lbWxvYyA9IG1lbWxvYywN
CgkJCQkJICAgd2VpZ2h0ID0gd2VpZ2h0LA0KCQkJCQkgICBzeW5jID0gdHJ1ZSwNCgkJCQkJICAg
Y29tbWl0ID0gTk99DQoJCQkJICAgICBlbHNlIHtyZWdpc3RlciA9IHJlZ2lzdGVyLA0KCQkJCQkg
ICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCSAgIHdlaWdodCA9IHdlaWdodCwNCgkJCQkJICAgc3lu
YyA9IHN5bmMsDQoJCQkJCSAgIGNvbW1pdCA9IENPTU1JVCAwfQ0KCQkJICAgICAgZWxzZSBpZiBM
aXN0LmV4aXN0cw0KCQkgICAgICAgICAgICAgICAgICAgICAgKGFsbFVzZXMsDQoJCQkJICAgICAg
IGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IE1lbUxvYy5tYXlBbGlhcyhtZW1sb2MsDQoJCQkJ
CQkJICAgbWVtbG9jJykNCgkJCQkgICAgICAgICAgIGFuZGFsc28NCgkJCQkJICAgbm90IChNZW1M
b2MuZXEobWVtbG9jLA0KCQkJCQkJCSAgbWVtbG9jJykpKQ0KCQkJCSAgICAgIG9yZWxzZQ0KCQkJ
CSAgICAgIExpc3QuZXhpc3RzDQoJCQkJICAgICAgKE1lbUxvYy51dGlsaXplZCBtZW1sb2MsDQoJ
CQkJICAgICAgIGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IExpc3QuZXhpc3RzDQoJCQkJICAg
ICAgICAgICAoYWxsRGVmcywNCgkJCQkJICAgIGZuIG1lbWxvYycnDQoJCQkJCSAgICAgPT4gTWVt
TG9jLm1heUFsaWFzKG1lbWxvYycsIA0KCQkJCQkJCQltZW1sb2MnJykpKQ0KCQkJCSAgICAgIG9y
ZWxzZQ0KCQkJCSAgICAgIExpc3QuZXhpc3RzDQoJCQkJICAgICAgKGFsbERlZnMsDQoJCQkJICAg
ICAgIGZuIG1lbWxvYycNCgkJCQkgICAgICAgID0+IE1lbUxvYy5tYXlBbGlhcyhtZW1sb2MsDQoJ
CQkJCQkJICAgbWVtbG9jJykNCgkJCQkgICAgICAgICAgIGFuZGFsc28NCgkJCQkJICAgbm90IChN
ZW1Mb2MuZXEobWVtbG9jLA0KCQkJCQkJCSAgbWVtbG9jJykpKQ0KCQkJCSAgICAgdGhlbiB7cmVn
aXN0ZXIgPSByZWdpc3RlciwNCgkJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCQkgICB3ZWln
aHQgPSB3ZWlnaHQsDQoJCQkJCSAgIHN5bmMgPSBzeW5jLA0KCQkJCQkgICBjb21taXQgPSBDT01N
SVQgMH0NCgkJCQkgICAgIGVsc2UgdmFsdWUsDQoJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXRf
cmVnaXN0ZXJzLA0KCQkgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAgICAgID0gY29tbWl0UmVnaXN0
ZXJzIHtzdXBwb3J0cyA9IFtdLA0KCQkJCSBzYXZlcyA9IFtdLA0KCQkJCSByZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICBpbg0KCSAgICB7YXNzZW1ibHkgPSBhc3Nl
bWJseV9jb21taXRfZmx0cmVnaXN0ZXJzIEANCgkgICAgICAgICAgICAgICAgYXNzZW1ibHlfY29t
bWl0X3JlZ2lzdGVycywNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkgIGVuZA0KDQogICAgICBmdW4gcG9zdCB7dXNlczogT3BlcmFuZC50IGxpc3QsDQoJ
CWZpbmFsX3VzZXM6IE9wZXJhbmQudCBsaXN0LA0KCQlkZWZzOiBPcGVyYW5kLnQgbGlzdCwNCgkJ
ZmluYWxfZGVmczogT3BlcmFuZC50IGxpc3QsDQoJCWluZm8gYXMge2RlYWQsDQoJCQkgY29tbWl0
LA0KCQkJIHJlbW92ZSwNCgkJCSAuLi59OiBMaXZlbmVzcy50LA0KCQlvcGVyOiBJbnN0cnVjdGlv
bi5wbW92LA0KCQlyZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAge2Fzc2VtYmx5OiBB
c3NlbWJseS50IGxpc3QsDQoJCXJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldCANCgkgICAg
dmFsIGZpbmFsX3VzZXNfcmVnaXN0ZXJzDQoJICAgICAgPSBMaXN0LmtlZXBBbGxNYXAoZmluYWxf
dXNlcywgT3BlcmFuZC5kZVJlZ2lzdGVyKQ0KCSAgICB2YWwgZmluYWxfdXNlc19yZWdpc3RlcnMN
CgkgICAgICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcyhmaW5hbF91c2VzX3JlZ2lzdGVycywgUmVn
aXN0ZXIuZXEpDQoJICAgIHZhbCBmaW5hbF91c2VzX2ZsdHJlZ2lzdGVycw0KCSAgICAgID0gTGlz
dC5rZWVwQWxsTWFwKGZpbmFsX3VzZXMsIE9wZXJhbmQuZGVGbHRyZWdpc3RlcikNCgkgICAgdmFs
IGZpbmFsX3VzZXNfZmx0cmVnaXN0ZXJzDQoJICAgICAgPSBMaXN0LnJlbW92ZUR1cGxpY2F0ZXMo
ZmluYWxfdXNlc19mbHRyZWdpc3RlcnMsIEZsdFJlZ2lzdGVyLmVxKQ0KCSAgICB2YWwgZmluYWxf
ZGVmc19yZWdpc3RlcnMNCgkgICAgICA9IExpc3Qua2VlcEFsbE1hcChmaW5hbF9kZWZzLCBPcGVy
YW5kLmRlUmVnaXN0ZXIpDQoJICAgIHZhbCBmaW5hbF9kZWZzX3JlZ2lzdGVycw0KCSAgICAgID0g
TGlzdC5yZW1vdmVEdXBsaWNhdGVzKGZpbmFsX2RlZnNfcmVnaXN0ZXJzLCBSZWdpc3Rlci5lcSkN
CgkgICAgdmFsIGZpbmFsX2RlZnNfZmx0cmVnaXN0ZXJzDQoJICAgICAgPSBMaXN0LmtlZXBBbGxN
YXAoZmluYWxfZGVmcywgT3BlcmFuZC5kZUZsdHJlZ2lzdGVyKQ0KCSAgICB2YWwgZmluYWxfZGVm
c19mbHRyZWdpc3RlcnMNCgkgICAgICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcyhmaW5hbF9kZWZz
X2ZsdHJlZ2lzdGVycywgRmx0UmVnaXN0ZXIuZXEpDQoNCgkgICAgdmFsIHVzZXMgPSBMaXN0Lmtl
ZXBBbGxNYXAodXNlcywgT3BlcmFuZC5kZU1lbWxvYykNCgkgICAgdmFsIHVzZXMgPSBMaXN0LnJl
bW92ZUR1cGxpY2F0ZXModXNlcywgTWVtTG9jLmVxKQ0KCSAgICB2YWwgZGVmcyA9IExpc3Qua2Vl
cEFsbE1hcChkZWZzLCBPcGVyYW5kLmRlTWVtbG9jKQ0KCSAgICB2YWwgZGVmcyA9IExpc3QucmVt
b3ZlRHVwbGljYXRlcyhkZWZzLCBNZW1Mb2MuZXEpDQoNCgkgICAgdmFsIGFsbFVzZXMNCgkgICAg
ICA9IExpc3QucmVtb3ZlRHVwbGljYXRlcyh1c2VzIEANCgkJCQkgICAgICAoTGlzdC5mbGF0dGVu
TWFwKHVzZXMgQCBkZWZzLCANCgkJCQkJCSAgICAgICBNZW1Mb2MudXRpbGl6ZWQpKSwNCgkJCQkg
ICAgICBNZW1Mb2MuZXEpDQoJICAgIHZhbCBhbGxEZWZzDQoJICAgICAgPSBMaXN0LnJlbW92ZUR1
cGxpY2F0ZXMoZGVmcywNCgkJCQkgICAgICBNZW1Mb2MuZXEpDQoNCgkgICAgdmFsIHJlbW92ZV9t
ZW1sb2NzID0gTGlzdC5rZWVwQWxsKHJlbW92ZSwgTWVtTG9jLm9uRmx1c2gpDQoJICAgIHZhbCBj
b21taXRfbWVtbG9jcyA9IExpc3Qua2VlcEFsbChjb21taXQsIE1lbUxvYy5vbkZsdXNoKQ0KDQoJ
ICAgIHZhbCAobWlzc2VkX2NvbW1lbnRzLHNhdmVfbWVtbG9jcyxzYXZlX2NvbW1pdCkNCgkgICAg
ICA9IGNhc2Ugb3Blcg0KCQkgIG9mIEluc3RydWN0aW9uLk5vcm1hbA0KCQkgICA9PiBsZXQNCgkJ
CXZhbCBzYXZlX21lbWxvY3MNCgkJCSAgPSBMaXN0LmtlZXBBbGwoYWxsRGVmcywNCgkJCQkJIGZu
IE1lbUxvYy5JbW0gXyA9PiBmYWxzZQ0KCQkJCQkgIHwgTWVtTG9jLlNpbXBsZSBfID0+IHRydWUN
CgkJCQkJICB8IE1lbUxvYy5Db21wbGV4IF8gPT4gdHJ1ZSkNCgkJICAgICAgaW4gDQoJCQkoW10s
IHNhdmVfbWVtbG9jcywgQ09NTUlUIDApDQoJCSAgICAgIGVuZA0KCQkgICB8IEluc3RydWN0aW9u
LldlYWsgDQoJCSAgID0+IGxldAkJCQ0KCQkJdmFsIHNhdmVfbWVtbG9jcw0KCQkJICA9IExpc3Qu
a2VlcEFsbChhbGxEZWZzLA0KCQkJCQkgZm4gTWVtTG9jLkltbSBfID0+IHRydWUNCgkJCQkJICB8
IE1lbUxvYy5TaW1wbGUgXyA9PiB0cnVlDQoJCQkJCSAgfCBNZW1Mb2MuQ29tcGxleCBfID0+IHRy
dWUpDQoNCgkJCXZhbCBtaXNzZWRfY29tbWVudHMNCgkJCSAgPSBpZiAhQ29udHJvbC5uYXRpdmVD
b21tZW50ZWQgPiAxDQoJCQkgICAgICB0aGVuIGxldA0KCQkJCSAgICAgdmFsIG1pc3NlZF9tZW1s
b2NzDQoJCQkJICAgICAgID0gTGlzdC5yZW1vdmVBbGwNCgkJCQkgICAgICAgICAoc2F2ZV9tZW1s
b2NzLA0KCQkJCQkgIGZuIG1lbWxvYyANCgkJCQkJICAgPT4gTGlzdC5jb250YWlucyhyZW1vdmVf
bWVtbG9jcywNCgkJCQkJCQkgICAgbWVtbG9jLA0KCQkJCQkJCSAgICBNZW1Mb2MuZXEpDQoJCQkJ
CSAgICAgIG9yZWxzZQ0KCQkJCQkgICAgICBMaXN0LmNvbnRhaW5zKGNvbW1pdF9tZW1sb2NzLA0K
CQkJCQkJCSAgICBtZW1sb2MsDQoJCQkJCQkJICAgIE1lbUxvYy5lcSkpDQoJCQkJICAgaW4NCgkJ
CQkgICAgIExpc3QubWFwDQoJCQkJICAgICAobWlzc2VkX21lbWxvY3MsDQoJCQkJICAgICAgZm4g
bWVtbG9jDQoJCQkJICAgICAgID0+IEFzc2VtYmx5LmNvbW1lbnQgDQoJCQkJICAgICAgICAgIChj
b25jYXQgWyJwb3N0X3dlYWsgbWlzc2VkOiAiLA0KCQkJCQkJICAgTWVtTG9jLnRvU3RyaW5nIG1l
bWxvY10pKQ0KCQkJCSAgIGVuZA0KCQkJICAgICAgZWxzZSBbXQ0KCQkgICAgICBpbg0KCQkJKG1p
c3NlZF9jb21tZW50cywgc2F2ZV9tZW1sb2NzLCBSRU1PVkUgMCkNCgkJICAgICAgZW5kDQoJCSAg
IHwgSW5zdHJ1Y3Rpb24uU3Ryb25nDQoJCSAgID0+IGxldA0KCQkJdmFsIHNhdmVfbWVtbG9jcyA9
IFtdDQoNCgkJCXZhbCBtaXNzZWRfY29tbWVudHMNCgkJCSAgPSBpZiAhQ29udHJvbC5uYXRpdmVD
b21tZW50ZWQgPiAxDQoJCQkgICAgICB0aGVuIGxldAkJCSAgDQoJCQkJICAgICB2YWwgbWlzc2Vk
X21lbWxvY3MNCgkJCQkgICAgICAgPSBMaXN0LmtlZXBBbGwNCgkJCQkgICAgICAgICAoYWxsRGVm
cywNCgkJCQkJICBmbiBtZW1sb2MNCgkJCQkJICAgPT4gTGlzdC5jb250YWlucyhyZW1vdmVfbWVt
bG9jcywNCgkJCQkJCQkgICAgbWVtbG9jLA0KCQkJCQkJCSAgICBNZW1Mb2MuZXEpDQoJCQkJCSAg
ICAgIG9yZWxzZQ0KCQkJCQkgICAgICBMaXN0LmNvbnRhaW5zKGNvbW1pdF9tZW1sb2NzLA0KCQkJ
CQkJCSAgICBtZW1sb2MsDQoJCQkJCQkJICAgIE1lbUxvYy5lcSkpDQoJCQkJICAgaW4NCgkJCQkg
ICAgIExpc3QubWFwDQoJCQkJICAgICAobWlzc2VkX21lbWxvY3MsDQoJCQkJICAgICAgZm4gbWVt
bG9jDQoJCQkJICAgICAgID0+IEFzc2VtYmx5LmNvbW1lbnQgDQoJCQkJICAgICAgICAgIChjb25j
YXQgWyJwb3N0X3N0cm9uZyBoaXQ6ICIsDQoJCQkJCQkgICBNZW1Mb2MudG9TdHJpbmcgbWVtbG9j
XSkpDQoJCQkJICAgZW5kDQoJCQkgICAgICBlbHNlIFtdDQoJCSAgICAgIGluDQoJCQkobWlzc2Vk
X2NvbW1lbnRzLCBzYXZlX21lbWxvY3MsIE5PKQ0KCQkgICAgICBlbmQNCg0KCSAgICB2YWwgcmVn
aXN0ZXJBbGxvY2F0aW9uDQoJICAgICAgPSBmbHR2YWx1ZU1hcCANCgkgICAgICAgIHttYXAgPSBm
biB2YWx1ZSBhcyB7Zmx0cmVnaXN0ZXIsDQoJCQkJICAgIG1lbWxvYywNCgkJCQkgICAgd2VpZ2h0
LA0KCQkJCSAgICBzeW5jLA0KCQkJCSAgICBjb21taXR9DQoJCSAgICAgICAgPT4gaWYgTGlzdC5j
b250YWlucyhkZWFkLA0KCQkJCQkgICAgbWVtbG9jLA0KCQkJCQkgICAgTWVtTG9jLmVxKQ0KCQkJ
ICAgICB0aGVuIHtmbHRyZWdpc3RlciA9IGZsdHJlZ2lzdGVyLA0KCQkJCSAgIG1lbWxvYyA9IG1l
bWxvYywNCgkJCQkgICBzeW5jID0gdHJ1ZSwNCgkJCQkgICB3ZWlnaHQgPSB3ZWlnaHQgLSA1MDAs
DQoJCQkJICAgY29tbWl0ID0gVFJZUkVNT1ZFIDB9DQoJCQkgICAgIGVsc2UgbGV0DQoJCQkJICAg
IHZhbCBpc1NyYw0KCQkJCSAgICAgID0gTGlzdC5leGlzdHMNCgkJCQkgICAgICAgIChmaW5hbF91
c2VzX2ZsdHJlZ2lzdGVycywNCgkJCQkJIGZuIGZsdHJlZ2lzdGVyJw0KCQkJCQkgID0+IEZsdFJl
Z2lzdGVyLmVxKGZsdHJlZ2lzdGVyLA0KCQkJCQkJCSAgICBmbHRyZWdpc3RlcicpKQ0KDQoJCQkJ
ICAgIHZhbCBpc0RzdA0KCQkJCSAgICAgID0gTGlzdC5leGlzdHMNCgkJCQkgICAgICAgIChmaW5h
bF9kZWZzX2ZsdHJlZ2lzdGVycywNCgkJCQkJIGZuIGZsdHJlZ2lzdGVyJw0KCQkJCQkgID0+IEZs
dFJlZ2lzdGVyLmVxKGZsdHJlZ2lzdGVyLA0KCQkJCQkJCSAgICBmbHRyZWdpc3RlcicpKQ0KCQkJ
ICAgICAgIA0KCQkJCSAgICB2YWwgaXNEZWYgPSBpc0RzdA0KCQkJCSAgaW4NCgkJCQkgICAge2Zs
dHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXIsDQoJCQkJICAgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJ
ICAgICB3ZWlnaHQgPSB3ZWlnaHQgLSA1DQoJCQkJICAgICAgICAgICAgICArIChpZiBpc1NyYw0K
CQkJCQkJICAgdGhlbiA1DQoJCQkJCQkgICBlbHNlIDApDQoJCQkJICAgICAgICAgICAgICArIChp
ZiBpc0RzdA0KCQkJCQkJICAgdGhlbiAxMA0KCQkJCQkJICAgZWxzZSAwKSwNCgkJCQkgICAgIHN5
bmMgPSBzeW5jIGFuZGFsc28gKG5vdCBpc0RlZiksDQoJCQkJICAgICBjb21taXQgPSBpZiBMaXN0
LmNvbnRhaW5zDQoJCQkJICAgICAgICAgICAgICAgICAgKHJlbW92ZV9tZW1sb2NzLA0KCQkJCQkJ
ICAgbWVtbG9jLA0KCQkJCQkJICAgTWVtTG9jLmVxKQ0KCQkJCQkJIHRoZW4gVFJZUkVNT1ZFIDAN
CgkJCQkJICAgICAgZWxzZSBpZiBMaXN0LmNvbnRhaW5zDQoJCQkJCSAgICAgICAgICAgICAgIChj
b21taXRfbWVtbG9jcywNCgkJCQkJCQltZW1sb2MsDQoJCQkJCQkJTWVtTG9jLmVxKQ0KCQkJCQkJ
IHRoZW4gVFJZQ09NTUlUIDANCgkJCQkJICAgICAgIGVsc2UgaWYgTGlzdC5jb250YWlucw0KCQkJ
CQkgICAgICAgICAgICAgICAoc2F2ZV9tZW1sb2NzLA0KCQkJCQkJCW1lbWxvYywNCgkJCQkJCQlN
ZW1Mb2MuZXEpDQoJCQkJCQkgdGhlbiBzYXZlX2NvbW1pdA0KCQkJCQkgICAgICAgZWxzZSBjb21t
aXR9DQoJCQkJICBlbmQsDQoJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KDQoJICAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXRfZmx0cmVnaXN0ZXJz
LA0KCQkgcmVuYW1lID0gcmVuYW1lX2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJCSByZWdpc3RlckFs
bG9jYXRpb259DQoJICAgICAgPSBjb21taXRGbHRSZWdpc3RlcnMge3N1cHBvcnRzID0gW10sDQoJ
CQkJICAgIHNhdmVzID0gW10sDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCg0KCSAgICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJICAgICAgPSB2YWx1
ZU1hcCANCgkgICAgICAgIHttYXAgPSBmbiB2YWx1ZSBhcyB7cmVnaXN0ZXIsDQoJCQkJICAgIG1l
bWxvYywNCgkJCQkgICAgd2VpZ2h0LA0KCQkJCSAgICBzeW5jLA0KCQkJCSAgICBjb21taXR9DQoJ
CSAgICAgICAgPT4gaWYgTGlzdC5leGlzdHMNCgkJICAgICAgICAgICAgICAoTWVtTG9jLnV0aWxp
emVkIG1lbWxvYywNCgkJCSAgICAgICBmbiBtZW1sb2MnDQoJCQkgICAgICAgID0+IExpc3QuZXhp
c3RzDQoJCQkgICAgICAgICAgIChhbGxEZWZzLA0KCQkJCSAgICBmbiBtZW1sb2MnJw0KCQkJCSAg
ICAgPT4gTWVtTG9jLm1heUFsaWFzKG1lbWxvYycsIA0KCQkJCQkJCW1lbWxvYycnKSkpDQoJCQkg
ICAgICBvcmVsc2UNCgkJCSAgICAgIExpc3QuZXhpc3RzDQoJCQkgICAgICAoYWxsRGVmcywNCgkJ
CSAgICAgICBmbiBtZW1sb2MnDQoJCQkgICAgICAgID0+IE1lbUxvYy5tYXlBbGlhcyhtZW1sb2Ms
DQoJCQkJCQkgICBtZW1sb2MnKQ0KCQkJICAgICAgICAgICBhbmRhbHNvDQoJCQkJICAgbm90IChN
ZW1Mb2MuZXEobWVtbG9jLA0KCQkJCQkJICBtZW1sb2MnKSkpDQoJCQkgICAgIHRoZW4ge3JlZ2lz
dGVyID0gcmVnaXN0ZXIsDQoJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCSAgIHdlaWdodCA9
IHdlaWdodCwNCgkJCQkgICBzeW5jID0gc3luYywNCgkJCQkgICBjb21taXQgPSBSRU1PVkUgMH0N
CgkJCSAgIGVsc2UgaWYgTGlzdC5jb250YWlucyhkZWFkLA0KCQkJCQkJIG1lbWxvYywNCgkJCQkJ
CSBNZW1Mb2MuZXEpDQoJCQkgICAgIHRoZW4gdmFsdWUNCgkJCSAgIGVsc2UgbGV0DQoJCQkJICB2
YWwgaXNTcmMNCgkJCQkgICAgPSBMaXN0LmV4aXN0cw0KCQkJCSAgICAgIChmaW5hbF91c2VzX3Jl
Z2lzdGVycywNCgkJCQkgICAgICAgZm4gcmVnaXN0ZXInDQoJCQkJICAgICAgICA9PiBSZWdpc3Rl
ci5jb2luY2lkZShyZWdpc3RlciwNCgkJCQkJCQkgICAgIHJlZ2lzdGVyJykpDQoNCgkJCQkgIHZh
bCBpc0RzdA0KCQkJCSAgICA9IExpc3QuZXhpc3RzDQoJCQkJICAgICAgKGZpbmFsX2RlZnNfcmVn
aXN0ZXJzLA0KCQkJCSAgICAgICBmbiByZWdpc3RlcicNCgkJCQkgICAgICAgID0+IFJlZ2lzdGVy
LmNvaW5jaWRlKHJlZ2lzdGVyLA0KCQkJCQkJCSAgICAgcmVnaXN0ZXInKSkNCgkJCSAgICAgICAN
CgkJCQkgICAgdmFsIGlzRGVmID0gaXNEc3QNCgkJCQlpbg0KCQkJCSAge3JlZ2lzdGVyID0gcmVn
aXN0ZXIsDQoJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCSAgIHdlaWdodCA9IHdlaWdodCAt
IDUNCgkJCQkgICAgICAgICAgICArIChpZiBpc1NyYw0KCQkJCQkJIHRoZW4gNQ0KCQkJCQkJIGVs
c2UgMCkNCgkJCQkgICAgICAgICAgICArIChpZiBpc0RzdA0KCQkJCQkJIHRoZW4gMTANCgkJCQkJ
CSBlbHNlIDApLA0KCQkJCSAgIHN5bmMgPSBzeW5jIGFuZGFsc28gKG5vdCBpc0RlZiksDQoJCQkJ
ICAgY29tbWl0ID0gaWYgTGlzdC5jb250YWlucw0KCQkJCSAgICAgICAgICAgICAgIChyZW1vdmVf
bWVtbG9jcywNCgkJCQkJCW1lbWxvYywNCgkJCQkJCU1lbUxvYy5lcSkNCgkJCQkJICAgICAgdGhl
biBUUllSRU1PVkUgMA0KCQkJCQkgICAgZWxzZSBpZiBMaXN0LmNvbnRhaW5zDQoJCQkJCSAgICAg
ICAgICAgIChjb21taXRfbWVtbG9jcywNCgkJCQkJCSAgICAgbWVtbG9jLA0KCQkJCQkJICAgICBN
ZW1Mb2MuZXEpDQoJCQkJCSAgICAgIHRoZW4gVFJZQ09NTUlUIDANCgkJCQkJICAgIGVsc2UgaWYg
TGlzdC5jb250YWlucw0KCQkJCQkgICAgICAgICAgICAoc2F2ZV9tZW1sb2NzLA0KCQkJCQkJICAg
ICBtZW1sb2MsDQoJCQkJCQkgICAgIE1lbUxvYy5lcSkNCgkJCQkJICAgICAgdGhlbiBzYXZlX2Nv
bW1pdA0KCQkJCQkgICAgZWxzZSBjb21taXR9DQoJCQkJZW5kLA0KCQkgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1i
bHlfY29tbWl0X3JlZ2lzdGVycywNCgkJIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgICA9IGNv
bW1pdFJlZ2lzdGVycyB7c3VwcG9ydHMgPSBbXSwNCgkJCQkgc2F2ZXMgPSBbXSwNCgkJCQkgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCByZWdpc3Rl
ckFsbG9jYXRpb24NCgkgICAgICA9IHZhbHVlTWFwIA0KCSAgICAgICAge21hcCA9IGZuIHZhbHVl
IGFzIHtyZWdpc3RlciwNCgkJCQkgICAgbWVtbG9jLA0KCQkJCSAgICB3ZWlnaHQsDQoJCQkJICAg
IHN5bmMsDQoJCQkJICAgIGNvbW1pdH0NCgkJICAgICAgICA9PiBpZiBMaXN0LmNvbnRhaW5zKGRl
YWQsDQoJCQkJCSAgICBtZW1sb2MsDQoJCQkJCSAgICBNZW1Mb2MuZXEpDQoJCQkgICAgIHRoZW4g
e3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCQkJICAgbWVtbG9jID0gbWVtbG9jLA0KCQkJCSAgIHN5
bmMgPSB0cnVlLA0KCQkJCSAgIHdlaWdodCA9IHdlaWdodCAtIDUwMCwNCgkJCQkgICBjb21taXQg
PSBSRU1PVkUgMH0NCgkJCSAgICAgZWxzZSB2YWx1ZSwNCgkJIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfZGVh
ZF9yZWdpc3RlcnMsDQoJCSByZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgPSBjb21taXRSZWdp
c3RlcnMge3N1cHBvcnRzID0gW10sDQoJCQkJIHNhdmVzID0gW10sDQoJCQkJIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgIGluDQoJICAgIHthc3NlbWJseSA9IG1p
c3NlZF9jb21tZW50cyBADQoJICAgICAgICAgICAgICAgIGFzc2VtYmx5X2NvbW1pdF9mbHRyZWdp
c3RlcnMgQA0KCSAgICAgICAgICAgICAgICBhc3NlbWJseV9jb21taXRfcmVnaXN0ZXJzIEANCgkJ
CWFzc2VtYmx5X2RlYWRfcmVnaXN0ZXJzLA0KCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCSAgZW5kDQoNCiAgICAgIGZ1biBhbGxvY2F0ZU9wZXJhbmQge29w
ZXJhbmQ6IE9wZXJhbmQudCwNCgkJCSAgIG9wdGlvbnMgPSB7cmVnaXN0ZXI6IGJvb2wsDQoJCQkJ
ICAgICAgaW1tZWRpYXRlOiBib29sLA0KCQkJCSAgICAgIGxhYmVsOiBib29sLA0KCQkJCSAgICAg
IGFkZHJlc3M6IGJvb2x9LA0KCQkJICAgaW5mbyBhcyB7ZGVhZCwgDQoJCQkJICAgIGNvbW1pdCwN
CgkJCQkgICAgcmVtb3ZlLA0KCQkJCSAgICAuLi59OiBMaXZlbmVzcy50LA0KCQkJICAgc2l6ZTog
U2l6ZS50LA0KCQkJICAgbW92ZTogYm9vbCwNCgkJCSAgIHN1cHBvcnRzOiBPcGVyYW5kLnQgbGlz
dCwNCgkJCSAgIHNhdmVzOiBPcGVyYW5kLnQgbGlzdCwNCgkJCSAgIGZvcmNlOiBSZWdpc3Rlci50
IGxpc3QsDQoJCQkgICByZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAgICAg
ICB7b3BlcmFuZDogT3BlcmFuZC50LA0KCQkJICAgYXNzZW1ibHk6IEFzc2VtYmx5LnQgbGlzdCwN
CgkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGNhc2Ugb3BlcmFuZA0KCSAgICBvZiBP
cGVyYW5kLkltbWVkaWF0ZSBpDQoJICAgICA9PiBpZiBpbW1lZGlhdGUNCgkJICB0aGVuIHtvcGVy
YW5kID0gb3BlcmFuZCwNCgkJCWFzc2VtYmx5ID0gW10sDQoJCQlyZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVsc2UgaWYgcmVnaXN0ZXINCgkJICB0aGVuIGxldA0K
CQkJIHZhbCB7cmVnaXN0ZXIsIA0KCQkJICAgICAgYXNzZW1ibHksIA0KCQkJICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkJICAgPSB0b1JlZ2lzdGVySW1tZWRpYXRlIHtpbW1lZGlhdGUgPSBp
LA0KCQkJCQkJICBzaXplID0gc2l6ZSwNCgkJCQkJCSAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJ
CQkJCSAgc2F2ZXMgPSBzYXZlcywNCgkJCQkJCSAgZm9yY2UgPSBmb3JjZSwNCgkJCQkJCSAgcmVn
aXN0ZXJBbGxvY2F0aW9uDQoJCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAg
aW4NCgkJCSB7b3BlcmFuZCA9IE9wZXJhbmQucmVnaXN0ZXIgcmVnaXN0ZXIsDQoJCQkgIGFzc2Vt
Ymx5ID0gYXNzZW1ibHksDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJICAgICAgIGVuZA0KCQllbHNlIGlmIGFkZHJlc3MNCgkJICB0aGVuIGxldA0KCQkJ
IHZhbCBhZGRyZXNzIA0KCQkJICAgPSBBZGRyZXNzLlQgDQoJCQkgICAgIHtkaXNwID0gU09NRSAo
SW1tZWRpYXRlLmxhYmVsIA0KCQkJCQkgICAoTGFiZWwuZnJvbVN0cmluZyAicmFUZW1wIikpLA0K
CQkJICAgICAgYmFzZSA9IE5PTkUsDQoJCQkgICAgICBpbmRleCA9IE5PTkUsDQoJCQkgICAgICBz
Y2FsZSA9IE5PTkV9DQoJCSAgICAgICBpbiANCgkJCSB7b3BlcmFuZCA9IE9wZXJhbmQuYWRkcmVz
cyBhZGRyZXNzLA0KCQkJICBhc3NlbWJseSA9IFtBc3NlbWJseS5pbnN0cnVjdGlvbl9tb3YNCgkJ
CQkgICAgICB7c3JjID0gT3BlcmFuZC5pbW1lZGlhdGUgaSwNCgkJCQkgICAgICAgZHN0ID0gT3Bl
cmFuZC5hZGRyZXNzIGFkZHJlc3MsDQoJCQkJICAgICAgIHNpemUgPSBzaXplfV0sDQoJCQkgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGVuZCANCgkg
ICAgICAgZWxzZSBFcnJvci5idWcgImFsbG9jYXRlT3BlcmFuZDogb3BlcmFuZDpJbW1lZGlhdGUi
DQoJICAgICB8IE9wZXJhbmQuTGFiZWwgbA0KCSAgICAgPT4gaWYgbGFiZWwNCgkJICB0aGVuIHtv
cGVyYW5kID0gb3BlcmFuZCwNCgkJCWFzc2VtYmx5ID0gW10sDQoJCQlyZWdpc3RlckFsbG9jYXRp
b24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVsc2UgaWYgaW1tZWRpYXRlDQoJCSAgdGhlbiB7
b3BlcmFuZCA9IE9wZXJhbmQuaW1tZWRpYXRlX2xhYmVsIGwsDQoJCQlhc3NlbWJseSA9IFtdLA0K
CQkJcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAgICAgICAgZWxz
ZSBpZiBhZGRyZXNzDQoJCSAgdGhlbiBsZXQNCgkJCSB2YWwgYWRkcmVzcw0KCQkJICAgPSBBZGRy
ZXNzLlQge2Rpc3AgPSBTT01FIChJbW1lZGlhdGUubGFiZWwgbCksDQoJCQkJCWJhc2UgPSBOT05F
LA0KCQkJCQlpbmRleCA9IE5PTkUsDQoJCQkJCXNjYWxlID0gTk9ORX0NCgkJICAgICAgIGluDQoJ
CQkge29wZXJhbmQgPSBPcGVyYW5kLmFkZHJlc3MgYWRkcmVzcywNCgkJCSAgYXNzZW1ibHkgPSBb
XSwNCgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAg
ICAgZW5kDQoJCWVsc2UgaWYgcmVnaXN0ZXINCgkJICB0aGVuIGxldA0KCQkJIHZhbCB7cmVnaXN0
ZXIsIA0KCQkJICAgICAgYXNzZW1ibHksIA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJICAgPSB0b1JlZ2lzdGVySW1tZWRpYXRlIHtpbW1lZGlhdGUgDQoJCQkJCQkgID0gSW1tZWRp
YXRlLmxhYmVsIGwsDQoJCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkJICBzdXBwb3J0cyA9IHN1
cHBvcnRzLA0KCQkJCQkJICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkJICBmb3JjZSA9IGZvcmNlLA0K
CQkJCQkJICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgICAgICBpbg0KCQkJIHtvcGVyYW5kID0gT3BlcmFuZC5yZWdpc3RlciByZWdpc3RlciwN
CgkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseSwNCgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAgZW5kDQoJCWVsc2UgRXJyb3IuYnVnICJhbGxvY2F0
ZU9wZXJhbmQ6IG9wZXJhbmQ6TGFiZWwiDQoJICAgICB8IE9wZXJhbmQuTWVtTG9jIG0NCgkgICAg
ID0+IGlmIHJlZ2lzdGVyIGFuZGFsc28gYWRkcmVzcw0KCQkgIHRoZW4gY2FzZSBhbGxvY2F0ZWQg
e21lbWxvYyA9IG0sDQoJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCSBvZiBOT05FIA0KCQkJICA9PiBpZiBMaXN0LmNvbnRhaW5zKGRlYWQsDQoJ
CQkJCSAgICAgIG0sDQoJCQkJCSAgICAgIE1lbUxvYy5lcSkNCgkJCSAgICAgICAgb3JlbHNlDQoJ
CQkJTGlzdC5jb250YWlucyhyZW1vdmUsDQoJCQkJCSAgICAgIG0sDQoJCQkJCSAgICAgIE1lbUxv
Yy5lcSkNCgkJCSAgICAgICB0aGVuIGxldA0KCQkJCSAgICAgIHZhbCB7YWRkcmVzcywgDQoJCQkJ
CSAgIGFzc2VtYmx5LCANCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQk9IHRvQWRk
cmVzc01lbUxvYyANCgkJCQkJICB7bWVtbG9jID0gbSwNCgkJCQkJICAgc2l6ZSA9IHNpemUsDQoJ
CQkJCSAgIHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgIHNhdmVzID0gc2F2ZXMsDQoJCQkJ
CSAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
CQkgICAgaW4NCgkJCQkgICAgICB7b3BlcmFuZCA9IE9wZXJhbmQuQWRkcmVzcyBhZGRyZXNzLA0K
CQkJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5LA0KCQkJCSAgICAgICByZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgIGVuZA0KCQkJICAgICAgIGVsc2Ug
bGV0DQoJCQkJICAgICAgdmFsIHtyZWdpc3RlciwgDQoJCQkJCSAgIGFzc2VtYmx5LCANCgkJCQkJ
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQk9IHRvUmVnaXN0ZXJNZW1Mb2MgDQoJCQkJCSAg
e21lbWxvYyA9IG0sDQoJCQkJCSAgIHNpemUgPSBzaXplLA0KCQkJCQkgICBtb3ZlID0gbW92ZSwN
CgkJCQkJICAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkJICAgc2F2ZXMgPSBzYXZlcywNCgkJ
CQkJICAgZm9yY2UgPSBmb3JjZSwNCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAg
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgICBpbg0KCQkJCSAgICAgIHtvcGVyYW5kID0g
T3BlcmFuZC5SZWdpc3RlciByZWdpc3RlciwNCgkJCQkgICAgICAgYXNzZW1ibHkgPSBhc3NlbWJs
eSwNCgkJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgICBlbmQNCgkgICAgICAgICAgICAgICAgICB8IFNPTUUgXw0KCQkJICA9PiBsZXQNCgkJ
CSAgICAgICB2YWwge3JlZ2lzdGVyLCBhc3NlbWJseSwgcmVnaXN0ZXJBbGxvY2F0aW9ufSANCgkJ
CQkgPSB0b1JlZ2lzdGVyTWVtTG9jIHttZW1sb2MgPSBtLA0KCQkJCQkJICAgICBzaXplID0gc2l6
ZSwNCgkJCQkJCSAgICAgbW92ZSA9IG1vdmUsDQoJCQkJCQkgICAgIHN1cHBvcnRzID0gc3VwcG9y
dHMsDQoJCQkJCQkgICAgIHNhdmVzID0gc2F2ZXMsDQoJCQkJCQkgICAgIGZvcmNlID0gZm9yY2Us
DQoJCQkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgICA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCSAgICAgaW4NCgkJCSAgICAgICB7b3BlcmFuZCA9IE9wZXJhbmQuUmVnaXN0
ZXIgcmVnaXN0ZXIsDQoJCQkJYXNzZW1ibHkgPSBhc3NlbWJseSwNCgkJCQlyZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgIGVuZA0KCQllbHNlIGlmIHJlZ2lz
dGVyDQoJCSAgdGhlbiBsZXQNCgkJCSB2YWwge3JlZ2lzdGVyLCBhc3NlbWJseSwgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJICAgPSB0b1JlZ2lzdGVyTWVtTG9jIHttZW1sb2MgPSBtLA0KCQkJCQkg
ICAgICAgc2l6ZSA9IHNpemUsDQoJCQkJCSAgICAgICBtb3ZlID0gbW92ZSwNCgkJCQkJICAgICAg
IHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgICAgICBzYXZlcyA9IHNhdmVzLA0KCQkJCQkg
ICAgICAgZm9yY2UgPSBmb3JjZSwNCgkJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkgICAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgICBpbg0KCQkJIHtvcGVyYW5k
ID0gT3BlcmFuZC5SZWdpc3RlciByZWdpc3RlciwNCgkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseSwN
CgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAg
ZW5kDQoJCWVsc2UgaWYgYWRkcmVzcw0KCQkgIHRoZW4gbGV0DQoJCQkgdmFsIHJlZ2lzdGVyQWxs
b2NhdGlvbg0KCQkJICAgPSB2YWx1ZU1hcCB7bWFwIA0KCQkJCSAgICAgICA9IGZuIHZhbHVlIGFz
IHtyZWdpc3RlciwNCgkJCQkJCSAgICAgIG1lbWxvYywNCgkJCQkJCSAgICAgIHdlaWdodCwNCgkJ
CQkJCSAgICAgIHN5bmMsDQoJCQkJCQkgICAgICBjb21taXR9DQoJCQkJICAgICAgICAgID0+IGlm
IE1lbUxvYy5lcShtZW1sb2MsIG0pDQoJCQkJCSAgICAgICB0aGVuIHtyZWdpc3RlciA9IHJlZ2lz
dGVyLCANCgkJCQkJCSAgICAgbWVtbG9jID0gbWVtbG9jLCANCgkJCQkJCSAgICAgd2VpZ2h0ID0g
d2VpZ2h0LCANCgkJCQkJCSAgICAgc3luYyA9IHN5bmMsIA0KCQkJCQkJICAgICBjb21taXQgPSBS
RU1PVkUgMH0NCgkJCQkJICAgICAgIGVsc2UgdmFsdWUsDQoJCQkJICAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICANCgkJCSB2YWwge2Fzc2VtYmx5
ID0gYXNzZW1ibHlfY29tbWl0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAg
PSBjb21taXRSZWdpc3RlcnMge3N1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgICAgIHNhdmVz
ID0gc2F2ZXMsDQoJCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICAgICAgPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCSB2YWwge2FkZHJlc3MsIGFzc2VtYmx5LCByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCQkgICA9IHRvQWRkcmVzc01lbUxvYyB7bWVtbG9jID0gbSwNCgkJCQkJ
ICAgICAgc2l6ZSA9IHNpemUsDQoJCQkJCSAgICAgIHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJ
CSAgICAgIHNhdmVzID0gc2F2ZXMsDQoJCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkgICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGluDQoJCQkge29wZXJhbmQg
PSBPcGVyYW5kLkFkZHJlc3MgYWRkcmVzcywNCgkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseV9jb21t
aXQgQCBhc3NlbWJseSwNCgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkgICAgICAgZW5kDQoJCWVsc2UgRXJyb3IuYnVnICJhbGxvY2F0ZU9wZXJhbmQ6IG9w
ZXJhbmQ6TWVtTG9jIg0KCSAgICAgfCBfID0+IEVycm9yLmJ1ZyAiYWxsb2NhdGVPcGVyYW5kOiBv
cGVyYW5kIg0KDQogICAgICBmdW4gYWxsb2NhdGVGbHRPcGVyYW5kIHtvcGVyYW5kOiBPcGVyYW5k
LnQsDQoJCQkgICAgICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyOiBib29sLA0KCQkJCQkgYWRkcmVz
czogYm9vbH0sDQoJCQkgICAgICBpbmZvIGFzIHtkZWFkLCANCgkJCQkgICAgICAgY29tbWl0LA0K
CQkJCSAgICAgICByZW1vdmUsDQoJCQkJICAgICAgIC4uLn06IExpdmVuZXNzLnQsDQoJCQkgICAg
ICBzaXplOiBTaXplLnQsDQoJCQkgICAgICBtb3ZlOiBib29sLA0KCQkJICAgICAgc3VwcG9ydHM6
IE9wZXJhbmQudCBsaXN0LA0KCQkJICAgICAgc2F2ZXM6IE9wZXJhbmQudCBsaXN0LA0KCQkJICAg
ICAgdG9wOiBib29sIG9wdGlvbiwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0gOg0K
CSAgICAgICAgICAgICAgICAgICAgIHtvcGVyYW5kOiBPcGVyYW5kLnQsDQoJCQkgICAgICBhc3Nl
bWJseTogQXNzZW1ibHkudCBsaXN0LA0KCQkJICAgICAgcmVuYW1lOiBGbHRSZWdpc3Rlci50IC0+
IEZsdFJlZ2lzdGVyLnQsDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSBjYXNl
IG9wZXJhbmQNCgkgICAgb2YgT3BlcmFuZC5MYWJlbCBsDQoJICAgICA9PiBpZiBhZGRyZXNzDQoJ
CSAgdGhlbiBsZXQNCgkJCSB2YWwgYWRkcmVzcw0KCQkJICAgPSBBZGRyZXNzLlQge2Rpc3AgPSBT
T01FIChJbW1lZGlhdGUubGFiZWwgbCksDQoJCQkJCWJhc2UgPSBOT05FLA0KCQkJCQlpbmRleCA9
IE5PTkUsDQoJCQkJCXNjYWxlID0gTk9ORX0NCgkJICAgICAgIGluDQoJCQkge29wZXJhbmQgPSBP
cGVyYW5kLmFkZHJlc3MgYWRkcmVzcywNCgkJCSAgYXNzZW1ibHkgPSBbXSwNCgkJCSAgcmVuYW1l
ID0gRmx0UmVnaXN0ZXIuaWQsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJICAgICAgIGVuZA0KCQllbHNlIEVycm9yLmJ1ZyAiYWxsb2NhdGVGbHRPcGVy
YW5kOiBvcGVyYW5kOkxhYmVsIg0KCSAgICAgfCBPcGVyYW5kLk1lbUxvYyBtDQoJICAgICA9PiBp
ZiBmbHRyZWdpc3RlciBhbmRhbHNvIGFkZHJlc3MNCgkJICB0aGVuIGNhc2UgZmx0YWxsb2NhdGVk
IHttZW1sb2MgPSBtLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJCSBvZiBOT05FIA0KCQkJICA9PiBpZiBMaXN0LmNvbnRhaW5zKGRl
YWQsDQoJCQkJCSAgICAgIG0sDQoJCQkJCSAgICAgIE1lbUxvYy5lcSkNCgkJCSAgICAgICAgb3Jl
bHNlIA0KCQkJCUxpc3QuY29udGFpbnMocmVtb3ZlLA0KCQkJCQkgICAgICBtLA0KCQkJCQkgICAg
ICBNZW1Mb2MuZXEpDQoJCQkgICAgICAgdGhlbiBsZXQNCgkJCQkgICAgICB2YWwge2FkZHJlc3Ms
IA0KCQkJCQkgICBhc3NlbWJseSwgDQoJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJ
PSB0b0FkZHJlc3NNZW1Mb2MgDQoJCQkJCSAge21lbWxvYyA9IG0sDQoJCQkJCSAgIHNpemUgPSBz
aXplLA0KCQkJCQkgICBzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCQkgICBzYXZlcyA9IHNhdmVz
LA0KCQkJCQkgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkJICAgIGluDQoJCQkJICAgICAge29wZXJhbmQgPSBPcGVyYW5kLkFkZHJlc3MgYWRk
cmVzcywNCgkJCQkgICAgICAgYXNzZW1ibHkgPSBhc3NlbWJseSwNCgkJCQkgICAgICAgcmVuYW1l
ID0gRmx0UmVnaXN0ZXIuaWQsDQoJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJCQkgICAgZW5kDQoJCQkgICAgICAgZWxzZSBsZXQNCgkJCQkgICAg
ICB2YWwge2ZsdHJlZ2lzdGVyLCANCgkJCQkJICAgYXNzZW1ibHksIA0KCQkJCQkgICByZW5hbWUs
DQoJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJPSB0b0ZsdFJlZ2lzdGVyTWVtTG9j
IA0KCQkJCQkgIHttZW1sb2MgPSBtLA0KCQkJCQkgICBzaXplID0gc2l6ZSwNCgkJCQkJICAgbW92
ZSA9IG1vdmUsDQoJCQkJCSAgIHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgIHNhdmVzID0g
c2F2ZXMsDQoJCQkJCSAgIHRvcCA9IHRvcCwNCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJ
CQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgICBpbg0KCQkJCSAgICAgIHtvcGVy
YW5kIA0KCQkJCSAgICAgICA9IE9wZXJhbmQuRmx0UmVnaXN0ZXIgZmx0cmVnaXN0ZXIsDQoJCQkJ
ICAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHksDQoJCQkJICAgICAgIHJlbmFtZSA9IHJlbmFtZSwN
CgkJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJ
CSAgICBlbmQNCgkgICAgICAgICAgICAgICAgICB8IFNPTUUgXw0KCQkJICA9PiBsZXQNCgkJCSAg
ICAgICB2YWwge2ZsdHJlZ2lzdGVyLCANCgkJCQkgICAgYXNzZW1ibHksIA0KCQkJCSAgICByZW5h
bWUsDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgPSB0b0ZsdFJlZ2lzdGVyTWVt
TG9jIHttZW1sb2MgPSBtLA0KCQkJCQkJCXNpemUgPSBzaXplLA0KCQkJCQkJCW1vdmUgPSBtb3Zl
LA0KCQkJCQkJCXN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCQkJc2F2ZXMgPSBzYXZlcywNCgkJ
CQkJCQl0b3AgPSB0b3AsDQoJCQkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCQkJPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCQkgICAgIGluDQoJCQkgICAgICAge29wZXJhbmQgPSBPcGVyYW5k
LkZsdFJlZ2lzdGVyIGZsdHJlZ2lzdGVyLA0KCQkJCWFzc2VtYmx5ID0gYXNzZW1ibHksDQoJCQkJ
cmVuYW1lID0gcmVuYW1lLA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJCSAgICAgZW5kDQoJCWVsc2UgaWYgZmx0cmVnaXN0ZXINCgkJICB0aGVuIGxldA0K
CQkJIHZhbCB7Zmx0cmVnaXN0ZXIsIA0KCQkJICAgICAgYXNzZW1ibHksIA0KCQkJICAgICAgcmVu
YW1lLCANCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgID0gdG9GbHRSZWdpc3Rl
ck1lbUxvYyB7bWVtbG9jID0gbSwNCgkJCQkJCSAgc2l6ZSA9IHNpemUsDQoJCQkJCQkgIG1vdmUg
PSBtb3ZlLA0KCQkJCQkJICBzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCQkJICBzYXZlcyA9IHNh
dmVzLA0KCQkJCQkJICB0b3AgPSB0b3AsDQoJCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGluDQoJCQkge29wZXJhbmQgPSBP
cGVyYW5kLkZsdFJlZ2lzdGVyIGZsdHJlZ2lzdGVyLA0KCQkJICBhc3NlbWJseSA9IGFzc2VtYmx5
LA0KCQkJICByZW5hbWUgPSByZW5hbWUsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGVuZA0KCQllbHNlIGlmIGFkZHJlc3MNCgkJICB0aGVu
IGxldA0KCQkJIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgID0gZmx0dmFsdWVNYXAge21h
cCANCgkJCQkJICA9IGZuIHZhbHVlIGFzIHtmbHRyZWdpc3RlciwNCgkJCQkJCQkgbWVtbG9jLA0K
CQkJCQkJCSB3ZWlnaHQsDQoJCQkJCQkJIHN5bmMsDQoJCQkJCQkJIGNvbW1pdH0NCgkJCQkgICAg
ICAgICAgICAgPT4gaWYgTWVtTG9jLmVxKG1lbWxvYywgbSkNCgkJCQkJCSAgdGhlbiB7Zmx0cmVn
aXN0ZXIgDQoJCQkJCQkJPSBmbHRyZWdpc3RlciwgDQoJCQkJCQkJbWVtbG9jID0gbWVtbG9jLCAN
CgkJCQkJCQl3ZWlnaHQgPSB3ZWlnaHQsIA0KCQkJCQkJCXN5bmMgPSBzeW5jLCANCgkJCQkJCQlj
b21taXQgPSBSRU1PVkUgMH0NCgkJCQkJCSAgZWxzZSB2YWx1ZSwNCgkJCQkgICAgICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgIA0K
CQkJIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXQsDQoJCQkgICAgICByZW5hbWUgPSBy
ZW5hbWVfY29tbWl0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgPSBjb21t
aXRGbHRSZWdpc3RlcnMge3N1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCQkgc2F2ZXMgPSBzYXZl
cywNCgkJCQkJCSByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCQkgPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJCSB2YWwge2FkZHJlc3MsIGFzc2VtYmx5LCByZWdpc3RlckFsbG9jYXRpb259DQoJ
CQkgICA9IHRvQWRkcmVzc01lbUxvYyB7bWVtbG9jID0gbSwNCgkJCQkJICAgICAgc2l6ZSA9IHNp
emUsDQoJCQkJCSAgICAgIHN1cHBvcnRzID0gc3VwcG9ydHMsDQoJCQkJCSAgICAgIHNhdmVzID0g
c2F2ZXMsDQoJCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgICAgICA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJICAgICAgIGluDQoJCQkge29wZXJhbmQgPSBPcGVyYW5kLkFkZHJl
c3MgYWRkcmVzcywNCgkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseSwNCgkJCSAgcmVuYW1lID0gcmVu
YW1lX2NvbW1pdCwNCgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkgICAgICAgZW5kDQoJCWVsc2UgRXJyb3IuYnVnICJhbGxvY2F0ZUZsdE9wZXJhbmQ6IG9w
ZXJhbmQ6TWVtTG9jIg0KCSAgICAgfCBfID0+IEVycm9yLmJ1ZyAiYWxsb2NhdGVGbHRPcGVyYW5k
OiBvcGVyYW5kIg0KDQogICAgICBsb2NhbCANCglmdW4gYWxsb2NhdGVGbHRTdGFja09wZXJhbmRz
JyB7Zmx0cmVnaXN0ZXJfdG9wOiBGbHRSZWdpc3Rlci50LA0KCQkJCSAgICAgICBmbHRyZWdpc3Rl
cl9vbmU6IEZsdFJlZ2lzdGVyLnQsDQoJCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0g
Og0KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthc3NlbWJseTogQXNzZW1ibHkudCBs
aXN0LA0KCQkJCSAgICAgICByZW5hbWU6IEZsdFJlZ2lzdGVyLnQgLT4gRmx0UmVnaXN0ZXIudCwN
CgkJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fQ0KCSAgPSBjYXNlIChmbHRyZWdpc3Rl
cl90b3AsIGZsdHJlZ2lzdGVyX29uZSkNCgkgICAgICBvZiAoRmx0UmVnaXN0ZXIuVCAwLCBGbHRS
ZWdpc3Rlci5UIDEpDQoJICAgICAgID0+IHthc3NlbWJseSA9IFtdLA0KCQkgICByZW5hbWUgPSBG
bHRSZWdpc3Rlci5pZCwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCSAgICAgICB8IChGbHRSZWdpc3Rlci5UIDEsIEZsdFJlZ2lzdGVyLlQgMCkNCgkgICAg
ICAgPT4gbGV0DQoJCSAgICB2YWwge3JlbmFtZSA9IHJlbmFtZSwNCgkJCSByZWdpc3RlckFsbG9j
YXRpb259DQoJCSAgICAgID0gZmx0eGNoMSB7cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkgIGluDQoJCSAgICB7YXNzZW1ibHkgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rp
b25fZnhjaCANCgkJCQkge3NyYyA9IE9wZXJhbmQuZmx0cmVnaXN0ZXIgDQoJCQkJICAgICAgICAo
Rmx0UmVnaXN0ZXIuVCAxKX1dLA0KCQkgICAgIHJlbmFtZSA9IHJlbmFtZSwNCgkJICAgICByZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgZW5kDQoJICAgICAgIHwg
KEZsdFJlZ2lzdGVyLlQgMCwgRmx0UmVnaXN0ZXIuVCBqKQ0KCSAgICAgICA9PiBsZXQNCgkJICAg
IHZhbCB7cmVuYW1lID0gcmVuYW1lLA0KCQkJIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAg
PSBmbHR4Y2gxIHtyZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJ
ICAgIHZhbCB7cmVuYW1lID0gcmVuYW1lJywNCgkJCSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICAgID0gZmx0eGNoJyB7Zmx0cmVnaXN0ZXIgPSBGbHRSZWdpc3Rlci5UIGosDQoJCQkJIHJlZ2lz
dGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgICAgdmFsIHtyZW5hbWUg
PSByZW5hbWUnJywNCgkJCSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgID0gZmx0eGNoMSB7
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgIGluDQoJCSAgICB7
YXNzZW1ibHkgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZnhjaCANCgkJCQkge3NyYyA9IE9wZXJh
bmQuZmx0cmVnaXN0ZXIgDQoJCQkJICAgICAgICAoRmx0UmVnaXN0ZXIuVCAxKX0sDQoJCQkJIEFz
c2VtYmx5Lmluc3RydWN0aW9uX2Z4Y2ggDQoJCQkJIHtzcmMgPSBPcGVyYW5kLmZsdHJlZ2lzdGVy
IA0KCQkJCSAgICAgICAgKEZsdFJlZ2lzdGVyLlQgail9LA0KCQkJCSBBc3NlbWJseS5pbnN0cnVj
dGlvbl9meGNoIA0KCQkJCSB7c3JjID0gT3BlcmFuZC5mbHRyZWdpc3RlciANCgkJCQkgICAgICAg
IChGbHRSZWdpc3Rlci5UIDEpfV0sDQoJCSAgICAgcmVuYW1lID0gcmVuYW1lJycgbyByZW5hbWUn
IG8gcmVuYW1lLA0KCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJICBlbmQNCgkgICAgICAgfCAoRmx0UmVnaXN0ZXIuVCAxLCBGbHRSZWdpc3Rlci5UIGop
DQoJICAgICAgID0+IGxldA0KCQkgICAgdmFsIHtyZW5hbWUgPSByZW5hbWUsDQoJCQkgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICA9IGZsdHhjaCcge2ZsdHJlZ2lzdGVyID0gRmx0UmVnaXN0
ZXIuVCBqLA0KCQkJCSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoN
CgkJICAgIHZhbCB7cmVuYW1lID0gcmVuYW1lJywNCgkJCSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CSAgICAgID0gZmx0eGNoMSB7cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkgIGluDQoJCSAgICB7YXNzZW1ibHkgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZnhjaCAN
CgkJCQkge3NyYyA9IE9wZXJhbmQuZmx0cmVnaXN0ZXIgDQoJCQkJICAgICAgICAoRmx0UmVnaXN0
ZXIuVCBqKX0sDQoJCQkJIEFzc2VtYmx5Lmluc3RydWN0aW9uX2Z4Y2ggDQoJCQkJIHtzcmMgPSBP
cGVyYW5kLmZsdHJlZ2lzdGVyIA0KCQkJCSAgICAgICAgKEZsdFJlZ2lzdGVyLlQgMSl9XSwNCgkJ
ICAgICByZW5hbWUgPSByZW5hbWUnIG8gcmVuYW1lLA0KCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICBlbmQNCgkgICAgICAgfCAoRmx0UmVnaXN0ZXIu
VCBpLCBGbHRSZWdpc3Rlci5UIDEpDQoJICAgICAgID0+IGxldA0KCQkgICAgdmFsIHtyZW5hbWUg
PSByZW5hbWUsDQoJCQkgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICA9IGZsdHhjaCcge2Zs
dHJlZ2lzdGVyID0gRmx0UmVnaXN0ZXIuVCBpLA0KCQkJCSByZWdpc3RlckFsbG9jYXRpb24gPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCSAgaW4NCgkJICAgIHthc3NlbWJseSA9IFtBc3NlbWJseS5p
bnN0cnVjdGlvbl9meGNoIA0KCQkJCSB7c3JjID0gT3BlcmFuZC5mbHRyZWdpc3RlciANCgkJCQkg
ICAgICAgIChGbHRSZWdpc3Rlci5UIGkpfV0sDQoJCSAgICAgcmVuYW1lID0gcmVuYW1lLA0KCQkg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICBlbmQNCgkg
ICAgICAgfCAoRmx0UmVnaXN0ZXIuVCBpLCBGbHRSZWdpc3Rlci5UIDApDQoJICAgICAgID0+IGxl
dA0KCQkgICAgdmFsIHtyZW5hbWUgPSByZW5hbWUsDQoJCQkgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkgICAgICA9IGZsdHhjaDEge3JlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCg0KCQkgICAgdmFsIHtyZW5hbWUgPSByZW5hbWUnLA0KCQkJIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJICAgICAgPSBmbHR4Y2gnIHtmbHRyZWdpc3RlciA9IEZsdFJlZ2lzdGVyLlQgaSwNCgkJ
CQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgIGluDQoJCSAg
ICB7YXNzZW1ibHkgPSBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZnhjaCANCgkJCQkge3NyYyA9IE9w
ZXJhbmQuZmx0cmVnaXN0ZXIgDQoJCQkJICAgICAgICAoRmx0UmVnaXN0ZXIuVCAxKX0sDQoJCQkJ
IEFzc2VtYmx5Lmluc3RydWN0aW9uX2Z4Y2ggDQoJCQkJIHtzcmMgPSBPcGVyYW5kLmZsdHJlZ2lz
dGVyIA0KCQkJCSAgICAgICAgKEZsdFJlZ2lzdGVyLlQgaSl9XSwNCgkJICAgICByZW5hbWUgPSBy
ZW5hbWUnIG8gcmVuYW1lLA0KCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJICBlbmQNCgkgICAgICAgfCAoRmx0UmVnaXN0ZXIuVCBpLCBGbHRSZWdpc3Rl
ci5UIGopDQoJICAgICAgID0+IGxldA0KCQkgICAgdmFsIHtyZW5hbWUgPSByZW5hbWUsDQoJCQkg
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICA9IGZsdHhjaCcge2ZsdHJlZ2lzdGVyID0gRmx0
UmVnaXN0ZXIuVCBqLA0KCQkJCSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICAgIHZhbCB7cmVuYW1lID0gcmVuYW1lJywNCgkJCSByZWdpc3RlckFsbG9jYXRp
b259DQoJCSAgICAgID0gZmx0eGNoMSB7cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KCQkgICAgICANCgkJICAgIHZhbCB7cmVuYW1lID0gcmVuYW1lJycsDQoJCQkgcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICA9IGZsdHhjaCcge2ZsdHJlZ2lzdGVyID0gRmx0UmVn
aXN0ZXIuVCBqLA0KCQkJCSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgaW4NCgkJICAgIHthc3NlbWJseSA9IFtBc3NlbWJseS5pbnN0cnVjdGlvbl9meGNoIA0K
CQkJCSB7c3JjID0gT3BlcmFuZC5mbHRyZWdpc3RlciANCgkJCQkgICAgICAgIChGbHRSZWdpc3Rl
ci5UIGopfSwNCgkJCQkgQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZnhjaCANCgkJCQkge3NyYyA9IE9w
ZXJhbmQuZmx0cmVnaXN0ZXIgDQoJCQkJICAgICAgICAoRmx0UmVnaXN0ZXIuVCAxKX0sDQoJCQkJ
IEFzc2VtYmx5Lmluc3RydWN0aW9uX2Z4Y2ggDQoJCQkJIHtzcmMgPSBPcGVyYW5kLmZsdHJlZ2lz
dGVyIA0KCQkJCSAgICAgICAgKEZsdFJlZ2lzdGVyLlQgaSl9XSwNCgkJICAgICByZW5hbWUgPSBy
ZW5hbWUnJyBvIHJlbmFtZScgbyByZW5hbWUsDQoJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgIGVuZA0KICAgICAgaW4NCglmdW4gYWxsb2NhdGVGbHRT
dGFja09wZXJhbmRzIHtvcGVyYW5kX3RvcDogT3BlcmFuZC50LA0KCQkJCSAgICAgIHNpemVfdG9w
OiBTaXplLnQsDQoJCQkJICAgICAgbW92ZV90b3A6IGJvb2wsDQoJCQkJICAgICAgb3BlcmFuZF9v
bmU6IE9wZXJhbmQudCwNCgkJCQkgICAgICBtb3ZlX29uZTogYm9vbCwNCgkJCQkgICAgICBzaXpl
X29uZTogU2l6ZS50LA0KCQkJCSAgICAgIGluZm86IExpdmVuZXNzLnQsDQoJCQkJICAgICAgc3Vw
cG9ydHM6IE9wZXJhbmQudCBsaXN0LA0KCQkJCSAgICAgIHNhdmVzOiBPcGVyYW5kLnQgbGlzdCwN
CgkJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb246IHR9IDoNCgkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHtvcGVyYW5kX3RvcDogT3BlcmFuZC50LA0KCQkJCSAgICAgIG9wZXJhbmRfb25l
OiBPcGVyYW5kLnQsDQoJCQkJICAgICAgYXNzZW1ibHk6IEFzc2VtYmx5LnQgbGlzdCwNCgkJCQkg
ICAgICByZW5hbWU6IEZsdFJlZ2lzdGVyLnQgLT4gRmx0UmVnaXN0ZXIudCwNCgkJCQkgICAgICBy
ZWdpc3RlckFsbG9jYXRpb246IHR9DQoJICA9IGlmIE9wZXJhbmQuZXEob3BlcmFuZF90b3AsIG9w
ZXJhbmRfb25lKQ0KCSAgICAgIHRoZW4gbGV0DQoJCSAgICAgdmFsIHthc3NlbWJseSA9IGFzc2Vt
Ymx5X2ZyZWUsDQoJCQkgIHJlbmFtZSA9IHJlbmFtZV9mcmVlLA0KCQkJICByZWdpc3RlckFsbG9j
YXRpb259DQoJCSAgICAgICA9IGZyZWVGbHRSZWdpc3RlciB7c2l6ZSA9IHNpemVfdG9wLA0KCQkJ
CQkgIHN1cHBvcnRzID0gb3BlcmFuZF90b3A6OnN1cHBvcnRzLA0KCQkJCQkgIHNhdmVzID0gc2F2
ZXMsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICAgICB2YWwge29wZXJhbmQgPSBvcGVyYW5kX2FsbG9jYXRlX3RvcF9vbmUsDQoJ
CQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfYWxsb2NhdGVfdG9wX29uZSwNCgkJCSAgcmVuYW1lID0g
cmVuYW1lX2FsbG9jYXRlX3RvcF9vbmUsDQoJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAg
ICAgID0gYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkgICAgICAgICB7b3BlcmFuZCA9IG9wZXJhbmRf
dG9wLA0KCQkJICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkgICAgIGFkZHJl
c3MgPSBmYWxzZX0sDQoJCQkgIGluZm8gPSBpbmZvLA0KCQkJICBzaXplID0gc2l6ZV90b3AsDQoJ
CQkgIG1vdmUgPSBtb3ZlX3RvcCwNCgkJCSAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCSAgc2F2
ZXMgPSBzYXZlcywNCgkJCSAgdG9wID0gU09NRSB0cnVlLA0KCQkJICByZWdpc3RlckFsbG9jYXRp
b24gDQoJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgICAgdmFsIHRlbXANCgkJICAg
ICAgID0gTWVtTG9jLmltbQ0KCQkgICAgICAgICB7YmFzZSA9IEltbWVkaWF0ZS5jb25zdF9pbnQg
MCwNCgkJCSAgaW5kZXggPSBJbW1lZGlhdGUuY29uc3RfaW50IDAsDQoJCQkgIHNjYWxlID0gU2Nh
bGUuT25lLA0KCQkJICBzaXplID0gU2l6ZS5EQkxFLA0KCQkJICBjb21taXQgPSBNZW1Mb2MuQ29t
bWl0IHtpc1RlbXAgPSB0cnVlLA0KCQkJCQkJICBvbkZsdXNoID0gZmFsc2V9LA0KCQkJICBjbGFz
cyA9IE1lbUxvYy5SdW50aW1lfQ0KDQoJCSAgICAgdmFsIHtyZW5hbWUgPSByZW5hbWVfcHVzaCwN
CgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAgPSBmbHRwdXNoIHt2YWx1ZSA9IHtm
bHRyZWdpc3RlciA9IEZsdFJlZ2lzdGVyLnRvcCwNCgkJCQkJICAgbWVtbG9jID0gdGVtcCwNCgkJ
CQkJICAgd2VpZ2h0ID0gMCwNCgkJCQkJICAgc3luYyA9IHRydWUsDQoJCQkJCSAgIGNvbW1pdCA9
IE5PfSwNCgkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
ICAgaW4NCgkJICAgICB7b3BlcmFuZF90b3AgPSBPcGVyYW5kLkZsdFJlZ2lzdGVyIEZsdFJlZ2lz
dGVyLnRvcCwNCgkJICAgICAgb3BlcmFuZF9vbmUgPSBPcGVyYW5kLkZsdFJlZ2lzdGVyIEZsdFJl
Z2lzdGVyLm9uZSwNCgkJICAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9mcmVlIEANCgkJICAgICAg
ICAgICAgICAgICBhc3NlbWJseV9hbGxvY2F0ZV90b3Bfb25lIEANCgkJICAgICAgICAgICAgICAg
ICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb25fZmxkDQoJCQkJICB7c3JjID0gT3BlcmFuZC5GbHRSZWdp
c3RlciBGbHRSZWdpc3Rlci50b3AsDQoJCQkJICAgc2l6ZSA9IHNpemVfdG9wfV0sDQoJCSAgICAg
IHJlbmFtZSA9IHJlbmFtZV9wdXNoIG8NCgkJICAgICAgICAgICAgICAgcmVuYW1lX2FsbG9jYXRl
X3RvcF9vbmUgbw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmFtZV9mcmVlLA0K
CQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgIGVu
ZA0KCSAgICAgIGVsc2UgbGV0DQoJCSAgICAgdmFsIHtvcGVyYW5kID0gb3BlcmFuZF9hbGxvY2F0
ZV9vbmUsDQoJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfYWxsb2NhdGVfb25lLA0KCQkJICByZW5h
bWUgPSByZW5hbWVfYWxsb2NhdGVfb25lLA0KCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICAgICA9IGNhc2Ugb3BlcmFuZF9vbmUNCgkJCSAgIG9mIChPcGVyYW5kLk1lbUxvYyBtZW1sb2Nf
b25lKQ0KCQkJICAgID0+IChjYXNlIGZsdGFsbG9jYXRlZCB7bWVtbG9jID0gbWVtbG9jX29uZSwN
CgkJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkJCSAgb2YgU09NRSB2YWx1ZV9vbmUNCgkJCQkgICAgPT4ge29wZXJhbmQgPSBPcGVy
YW5kLkZsdFJlZ2lzdGVyIA0KCQkJCQkgICAgICAgICAgKCNmbHRyZWdpc3RlciB2YWx1ZV9vbmUp
LA0KCQkJCQlhc3NlbWJseSA9IFtdLA0KCQkJCQlyZW5hbWUgPSBGbHRSZWdpc3Rlci5pZCwNCgkJ
CQkJcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkg
ICAgfCBOT05FDQoJCQkJICAgID0+IGFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICAgICAge29w
ZXJhbmQgPSBvcGVyYW5kX29uZSwNCgkJCQkJb3B0aW9ucyA9IHtmbHRyZWdpc3RlciA9IHRydWUs
DQoJCQkJCQkgICBhZGRyZXNzID0gZmFsc2V9LA0KCQkJCQlpbmZvID0gaW5mbywNCgkJCQkJc2l6
ZSA9IHNpemVfb25lLA0KCQkJCQltb3ZlID0gbW92ZV9vbmUsDQoJCQkJCXN1cHBvcnRzID0gc3Vw
cG9ydHMsDQoJCQkJCXNhdmVzID0gb3BlcmFuZF90b3A6OnNhdmVzLA0KCQkJCQl0b3AgPSBTT01F
IHRydWUsDQoJCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJPSByZWdpc3RlckFsbG9jYXRp
b259KQ0KCQkJICAgIHwgXyA9PiBhbGxvY2F0ZUZsdE9wZXJhbmQgDQoJCSAgICAgICAgICAgICAg
ICAgICB7b3BlcmFuZCA9IG9wZXJhbmRfb25lLA0KCQkJCSAgICBvcHRpb25zID0ge2ZsdHJlZ2lz
dGVyID0gdHJ1ZSwNCgkJCQkJICAgICAgIGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJICAgIGluZm8g
PSBpbmZvLA0KCQkJCSAgICBzaXplID0gc2l6ZV9vbmUsDQoJCQkJICAgIG1vdmUgPSBtb3ZlX29u
ZSwNCgkJCQkgICAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkgICAgc2F2ZXMgPSBvcGVyYW5k
X3RvcDo6c2F2ZXMsDQoJCQkJICAgIHRvcCA9IFNPTUUgdHJ1ZSwNCgkJCQkgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgICAgdmFsIHtvcGVyYW5kID0g
b3BlcmFuZF9hbGxvY2F0ZV90b3AsDQoJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfYWxsb2NhdGVf
dG9wLA0KCQkJICByZW5hbWUgPSByZW5hbWVfYWxsb2NhdGVfdG9wLA0KCQkJICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICAgICA9IGNhc2Ugb3BlcmFuZF90b3ANCgkJCSAgIG9mIChPcGVyYW5k
Lk1lbUxvYyBtZW1sb2NfdG9wKQ0KCQkJICAgID0+IChjYXNlIGZsdGFsbG9jYXRlZCB7bWVtbG9j
ID0gbWVtbG9jX3RvcCwNCgkJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgb2YgU09NRSB2YWx1ZV90b3ANCgkJCQkgICAgPT4g
e29wZXJhbmQgPSBPcGVyYW5kLkZsdFJlZ2lzdGVyIA0KCQkJCQkgICAgICAgICAgKCNmbHRyZWdp
c3RlciB2YWx1ZV90b3ApLA0KCQkJCQlhc3NlbWJseSA9IFtdLA0KCQkJCQlyZW5hbWUgPSBGbHRS
ZWdpc3Rlci5pZCwNCgkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQk9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCQkgICAgfCBOT05FDQoJCQkgICAgICAgICAgICA9PiBhbGxvY2F0ZUZsdE9w
ZXJhbmQgDQoJCQkJICAgICAgIHtvcGVyYW5kID0gb3BlcmFuZF90b3AsDQoJCQkJCW9wdGlvbnMg
PSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJICAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCQkJ
aW5mbyA9IGluZm8sDQoJCQkJCXNpemUgPSBzaXplX3RvcCwNCgkJCQkJbW92ZSA9IG1vdmVfdG9w
LA0KCQkJCQlzdXBwb3J0cyA9IHN1cHBvcnRzLA0KCQkJCQlzYXZlcyA9IG9wZXJhbmRfdG9wOjpz
YXZlcywNCgkJCQkJdG9wID0gU09NRSB0cnVlLA0KCQkJCQlyZWdpc3RlckFsbG9jYXRpb24gDQoJ
CQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufSkNCgkJCSAgICB8IF8gPT4gYWxsb2NhdGVGbHRPcGVy
YW5kIA0KCQkJICAgICAgICAgICB7b3BlcmFuZCA9IG9wZXJhbmRfdG9wLA0KCQkJCSAgICBvcHRp
b25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJICAgICAgIGFkZHJlc3MgPSBmYWxzZX0s
DQoJCQkJICAgIGluZm8gPSBpbmZvLA0KCQkJCSAgICBzaXplID0gc2l6ZV90b3AsDQoJCQkJICAg
IG1vdmUgPSBtb3ZlX3RvcCwNCgkJCQkgICAgc3VwcG9ydHMgPSBzdXBwb3J0cywNCgkJCQkgICAg
c2F2ZXMgPSBvcGVyYW5kX3RvcDo6c2F2ZXMsDQoJCQkJICAgIHRvcCA9IFNPTUUgdHJ1ZSwNCgkJ
CQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgICAg
dmFsIGZsdHJlZ2lzdGVyX29uZQ0KCQkgICAgICAgPSBjYXNlIG9wZXJhbmRfYWxsb2NhdGVfb25l
DQoJCQkgICBvZiBPcGVyYW5kLkZsdFJlZ2lzdGVyIGYgPT4gZg0KCQkJICAgIHwgXyA9PiBFcnJv
ci5idWcgImFsbG9jYXRlRmx0U3RhY2tPcGVyYW5kIg0KCQkgICAgIHZhbCBmbHRyZWdpc3Rlcl9v
bmUgPSByZW5hbWVfYWxsb2NhdGVfdG9wIGZsdHJlZ2lzdGVyX29uZQ0KDQoJCSAgICAgdmFsIGZs
dHJlZ2lzdGVyX3RvcA0KCQkgICAgICAgPSBjYXNlIG9wZXJhbmRfYWxsb2NhdGVfdG9wDQoJCQkg
ICBvZiBPcGVyYW5kLkZsdFJlZ2lzdGVyIGYgPT4gZg0KCQkJICAgIHwgXyA9PiBFcnJvci5idWcg
ImFsbG9jYXRlRmx0U3RhY2tPcGVyYW5kIg0KDQoJCSAgICAgdmFsIHthc3NlbWJseSwNCgkJCSAg
cmVuYW1lLA0KCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgICA9IGFsbG9jYXRlRmx0
U3RhY2tPcGVyYW5kcycNCgkJICAgICAgIHtmbHRyZWdpc3Rlcl90b3AgPSBmbHRyZWdpc3Rlcl90
b3AsDQoJCQlmbHRyZWdpc3Rlcl9vbmUgPSBmbHRyZWdpc3Rlcl9vbmUsDQoJCQlyZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgIGluDQoJCSAgICAge29wZXJhbmRf
dG9wID0gT3BlcmFuZC5GbHRSZWdpc3RlciBGbHRSZWdpc3Rlci50b3AsDQoJCSAgICAgIG9wZXJh
bmRfb25lID0gT3BlcmFuZC5GbHRSZWdpc3RlciBGbHRSZWdpc3Rlci5vbmUsDQoJCSAgICAgIGFz
c2VtYmx5ID0gYXNzZW1ibHlfYWxsb2NhdGVfb25lIEANCgkJICAgICAgICAgICAgICAgICBhc3Nl
bWJseV9hbGxvY2F0ZV90b3AgQA0KCQkJCSBhc3NlbWJseSwNCgkJICAgICAgcmVuYW1lID0gcmVu
YW1lIG8NCgkJICAgICAgICAgICAgICAgcmVuYW1lX2FsbG9jYXRlX3RvcCBvDQoJCQkgICAgICAg
cmVuYW1lX2FsbG9jYXRlX29uZSwNCgkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICBlbmQNCiAgICAgIGVuZA0KDQogICAgICBmdW4gcmVuYW1lTGlm
dCByZW5hbWUgDQoJPSBmbiBPcGVyYW5kLkZsdFJlZ2lzdGVyIGYNCgkgICA9PiBPcGVyYW5kLkZs
dFJlZ2lzdGVyIChyZW5hbWUgZikNCgkgICB8IG9wZXJhbmQgPT4gb3BlcmFuZA0KDQogICAgICBm
dW4gcmVzZXQge3JlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IHthc3NlbWJseSA9IFtdLA0KCSAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiA9IGVtcHR5ICgpfQ0KDQoNCiAgICAgIGZ1biByZXNlcnZlIHty
ZWdpc3RlcjogUmVnaXN0ZXIudCwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0ge2VudHJpZXMs
IHJlc2VydmVkLCBmbHRzdGFja306IHR9DQoJPSB7YXNzZW1ibHkgPSBbXSwNCgkgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSB7ZW50cmllcyA9IGVudHJpZXMsDQoJCQkJIHJlc2VydmVkID0gcmVnaXN0
ZXI6OnJlc2VydmVkLA0KCQkJCSBmbHRzdGFjayA9IGZsdHN0YWNrfX0NCg0KICAgICAgZnVuIHVu
cmVzZXJ2ZSB7cmVnaXN0ZXI6IFJlZ2lzdGVyLnQsDQoJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
ID0ge2VudHJpZXMsIHJlc2VydmVkLCBmbHRzdGFja306IHR9DQoJPSB7YXNzZW1ibHkgPSBbXSwN
CgkgICByZWdpc3RlckFsbG9jYXRpb24gPSB7ZW50cmllcyA9IGVudHJpZXMsDQoJCQkJIHJlc2Vy
dmVkID0gTGlzdC5yZW1vdmVBbGwNCgkJCQkgICAgICAgICAgICAocmVzZXJ2ZWQsDQoJCQkJCSAg
ICAgZm4gcmVnaXN0ZXInIA0KCQkJCQkgICAgID0+IFJlZ2lzdGVyLmVxKHJlZ2lzdGVyLCANCgkJ
CQkJCQkgICAgcmVnaXN0ZXInKSksDQoJCQkJIGZsdHN0YWNrID0gZmx0c3RhY2t9fQ0KDQogICAg
ICBmdW4gY2FjaGUge3JlZ2lzdGVyOiBSZWdpc3Rlci50LCANCgkJIG1lbWxvYzogTWVtTG9jLnQs
IA0KCQkgcmVzZXJ2ZTogYm9vbCwgDQoJCSByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSBsZXQN
CgkgICAgdmFsIHtyZWdpc3RlciwNCgkJIGFzc2VtYmx5ID0gYXNzZW1ibHlfcmVnaXN0ZXIsDQoJ
CSByZWdpc3RlckFsbG9jYXRpb24gYXMge2VudHJpZXMsIHJlc2VydmVkLCBmbHRzdGFja319DQoJ
ICAgICAgPSB0b1JlZ2lzdGVyTWVtTG9jIA0KCSAgICAgICAge21lbWxvYyA9IG1lbWxvYywgDQoJ
CSBzaXplID0gUmVnaXN0ZXIuc2l6ZSByZWdpc3RlciwgDQoJCSBtb3ZlID0gdHJ1ZSwNCgkJIHN1
cHBvcnRzID0gW10sDQoJCSBzYXZlcyA9IFtdLCANCgkJIGZvcmNlID0gW3JlZ2lzdGVyXSwgDQoJ
CSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAgdmFsIHJl
c2VydmVkID0gaWYgcmVzZXJ2ZQ0KCQkJICAgICB0aGVuIHJlZ2lzdGVyOjpyZXNlcnZlZA0KCQkJ
ICAgICBlbHNlIHJlc2VydmVkDQoJICBpbg0KCSAgICB7YXNzZW1ibHkgPSBhc3NlbWJseV9yZWdp
c3RlciwNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHtlbnRyaWVzID0gZW50cmllcywNCgkJ
CQkgICByZXNlcnZlZCA9IHJlc2VydmVkLA0KCQkJCSAgIGZsdHN0YWNrID0gZmx0c3RhY2t9fQ0K
CSAgZW5kDQoNCiAgICAgIGZ1biBhc3N1bWUge3JlZ2lzdGVyOiBSZWdpc3Rlci50LCANCgkJICBt
ZW1sb2M6IE1lbUxvYy50LCANCgkJICB3ZWlnaHQ6IGludCwNCgkJICBzeW5jOiBib29sLA0KCQkg
IHJlc2VydmU6IGJvb2wsIA0KCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbjogdH0NCgk9IGxldA0KCSAg
ICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uIGFzIHtlbnRyaWVzLCByZXNlcnZlZCwgZmx0c3RhY2t9
DQoJICAgICAgPSB1cGRhdGUNCiAgICAgICAgICAgICAgICB7dmFsdWUgPSB7cmVnaXN0ZXIgPSBy
ZWdpc3RlciwNCgkJCSAgbWVtbG9jID0gbWVtbG9jLA0KCQkJICB3ZWlnaHQgPSB3ZWlnaHQsDQoJ
CQkgIHN5bmMgPSBzeW5jLA0KCQkJICBjb21taXQgPSBOT30sDQoJCSByZWdpc3RlckFsbG9jYXRp
b24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAgdmFsIHJlc2VydmVkDQoJICAgICAgPSBp
ZiByZXNlcnZlDQoJCSAgdGhlbiByZWdpc3Rlcjo6cmVzZXJ2ZWQNCgkJICBlbHNlIHJlc2VydmVk
DQoJICBpbg0KCSAgICB7YXNzZW1ibHkgPSBbXSwNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHtlbnRyaWVzID0gZW50cmllcywNCgkJCQkgICByZXNlcnZlZCA9IHJlc2VydmVkLA0KCQkJCSAg
IGZsdHN0YWNrID0gZmx0c3RhY2t9fQ0KCSAgZW5kDQoNCiAgICAgIGZ1biBmbHVzaCB7cmVnaXN0
ZXJBbGxvY2F0aW9uOiB0fQ0KCT0gbGV0DQoJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkg
ICAgICA9IHZhbHVlTWFwIHttYXAgPSBmbiB2YWx1ZSBhcyB7cmVnaXN0ZXIsDQoJCQkJCSAgICAg
bWVtbG9jLA0KCQkJCQkgICAgIHdlaWdodCwNCgkJCQkJICAgICBzeW5jLA0KCQkJCQkgICAgIGNv
bW1pdH0NCgkJCQkgPT4gaWYgTWVtTG9jLm9uRmx1c2ggbWVtbG9jDQoJCQkJICAgICAgdGhlbiB7
cmVnaXN0ZXIgPSByZWdpc3RlciwgDQoJCQkJCSAgICBtZW1sb2MgPSBtZW1sb2MsIA0KCQkJCQkg
ICAgd2VpZ2h0ID0gd2VpZ2h0LCANCgkJCQkJICAgIHN5bmMgPSBzeW5jLCANCgkJCQkJICAgIGNv
bW1pdCA9IENPTU1JVCAwfQ0KCQkJCSAgICAgIGVsc2UgdmFsdWUsDQoJCQkgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwgcmVnaXN0ZXJBbGxvY2F0
aW9uDQoJICAgICAgPSBmbHR2YWx1ZU1hcCB7bWFwID0gZm4gdmFsdWUgYXMge2ZsdHJlZ2lzdGVy
LA0KCQkJCQkJbWVtbG9jLA0KCQkJCQkJd2VpZ2h0LA0KCQkJCQkJc3luYywNCgkJCQkJCWNvbW1p
dH0NCgkJCQkgICAgPT4ge2ZsdHJlZ2lzdGVyID0gZmx0cmVnaXN0ZXIsIA0KCQkJCQltZW1sb2Mg
PSBtZW1sb2MsIA0KCQkJCQl3ZWlnaHQgPSB3ZWlnaHQsIA0KCQkJCQlzeW5jID0gc3luYywgDQoJ
CQkJCWNvbW1pdCA9IFJFTU9WRSAwfSwNCgkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXRfZmx0
cmVnaXN0ZXJzLA0KCQkgcmVuYW1lID0gcmVuYW1lX2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJCSBy
ZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgPSBjb21taXRGbHRSZWdpc3RlcnMge3N1cHBvcnRz
ID0gW10sDQoJCQkJICAgIHNhdmVzID0gW10sDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfY29t
bWl0X3JlZ2lzdGVycywNCgkJIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgICA9IGNvbW1pdFJl
Z2lzdGVycyB7c3VwcG9ydHMgPSBbXSwNCgkJCQkgc2F2ZXMgPSBbXSwNCgkJCQkgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAgaW4NCgkgICAge2Fzc2VtYmx5ID0g
YXNzZW1ibHlfY29tbWl0X3JlZ2lzdGVycyBADQogICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
bWJseV9jb21taXRfZmx0cmVnaXN0ZXJzLA0KCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCSAgZW5kDQoNCiAgICAgIGZ1biBjbGVhciB7cmVnaXN0ZXJBbGxv
Y2F0aW9uOiB0fQ0KCT0gbGV0DQoJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkgICAgICA9
IHZhbHVlTWFwIHttYXAgPSBmbiB2YWx1ZSBhcyB7cmVnaXN0ZXIsDQoJCQkJCSAgICAgbWVtbG9j
LA0KCQkJCQkgICAgIHdlaWdodCwNCgkJCQkJICAgICBzeW5jLA0KCQkJCQkgICAgIGNvbW1pdH0N
CgkJCQkgPT4gaWYgTGlzdC5jb250YWlucw0KCQkJICAgICAgICAgICAgICAgKFJlZ2lzdGVyLmNh
bGxlclNhdmVSZWdpc3RlcnMsDQoJCQkJCXJlZ2lzdGVyLA0KCQkJCQlSZWdpc3Rlci5lcSkNCgkJ
CQkgICAgICB0aGVuIHtyZWdpc3RlciA9IHJlZ2lzdGVyLCANCgkJCQkJICAgIG1lbWxvYyA9IG1l
bWxvYywgDQoJCQkJCSAgICB3ZWlnaHQgPSB3ZWlnaHQsIA0KCQkJCQkgICAgc3luYyA9IHN5bmMs
IA0KCQkJCQkgICAgY29tbWl0ID0gUkVNT1ZFIDB9DQoJCQkJICAgICAgZWxzZSB2YWx1ZSwNCgkJ
CSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCBy
ZWdpc3RlckFsbG9jYXRpb24NCgkgICAgICA9IGZsdHZhbHVlTWFwIHttYXAgPSBmbiB2YWx1ZSBh
cyB7Zmx0cmVnaXN0ZXIsDQoJCQkJCQltZW1sb2MsDQoJCQkJCQl3ZWlnaHQsDQoJCQkJCQlzeW5j
LA0KCQkJCQkJY29tbWl0fQ0KCQkJICAgICAgICAgICAgPT4ge2ZsdHJlZ2lzdGVyID0gZmx0cmVn
aXN0ZXIsIA0KCQkJCQltZW1sb2MgPSBtZW1sb2MsIA0KCQkJCQl3ZWlnaHQgPSB3ZWlnaHQsIA0K
CQkJCQlzeW5jID0gc3luYywgDQoJCQkJCWNvbW1pdCA9IFJFTU9WRSAwfSwNCgkJCSAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZhbCB7YXNzZW1i
bHkgPSBhc3NlbWJseV9jb21taXRfZmx0cmVnaXN0ZXJzLA0KCQkgcmVuYW1lID0gcmVuYW1lX2Nv
bW1pdF9mbHRyZWdpc3RlcnMsDQoJCSByZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgPSBjb21t
aXRGbHRSZWdpc3RlcnMge3N1cHBvcnRzID0gW10sDQoJCQkJICAgIHNhdmVzID0gW10sDQoJCQkJ
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwg
e2Fzc2VtYmx5ID0gYXNzZW1ibHlfY29tbWl0X3JlZ2lzdGVycywNCgkJIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkgICAgICA9IGNvbW1pdFJlZ2lzdGVycyB7c3VwcG9ydHMgPSBbXSwNCgkJCQkgc2F2
ZXMgPSBbXSwNCgkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CSAgaW4NCgkgICAge2Fzc2VtYmx5ID0gYXNzZW1ibHlfY29tbWl0X3JlZ2lzdGVycyBADQoJICAg
ICAgICAgICAgICAgIGFzc2VtYmx5X2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJICAgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICBlbmQNCg0KICAgICAgZnVuIGVq
ZWN0IHttZW1sb2NzOiBNZW1Mb2MudCBsaXN0LA0KCQkgcmVnaXN0ZXJBbGxvY2F0aW9uOiB0fQ0K
CT0gKGNhc2UgbWVtbG9jcw0KCSAgICAgb2YgW10gPT4ge2Fzc2VtYmx5ID0gW10sDQoJCSAgICAg
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgfCBfDQoJ
ICAgICAgPT4gbGV0DQoJCSAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJICAgICA9IHZhbHVl
TWFwIHttYXAgDQoJCQkJID0gZm4gdmFsdWUgYXMge3JlZ2lzdGVyLA0KCQkJCQkJbWVtbG9jLA0K
CQkJCQkJd2VpZ2h0LA0KCQkJCQkJc3luYywNCgkJCQkJCWNvbW1pdH0NCgkJCSAgICAgICAgICAg
ID0+IGlmIExpc3QuY29udGFpbnMobWVtbG9jcywNCgkJCQkJCQltZW1sb2MsDQoJCQkJCQkJTWVt
TG9jLmVxKQ0KCQkJCQkgdGhlbiB7cmVnaXN0ZXIgPSByZWdpc3RlciwgDQoJCQkJCSAgICAgICBt
ZW1sb2MgPSBtZW1sb2MsIA0KCQkJCQkgICAgICAgd2VpZ2h0ID0gd2VpZ2h0LCANCgkJCQkJICAg
ICAgIHN5bmMgPSB0cnVlLCANCgkJCQkJICAgICAgIGNvbW1pdCA9IFJFTU9WRSAwfQ0KCQkJCQkg
ZWxzZSB2YWx1ZSwNCgkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCSA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCg0KCQkgICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCSAgICAgPSBmbHR2YWx1
ZU1hcCB7bWFwIA0KCQkJCSAgICA9IGZuIHZhbHVlIGFzIHtmbHRyZWdpc3RlciwNCgkJCQkJCSAg
IG1lbWxvYywNCgkJCQkJCSAgIHdlaWdodCwNCgkJCQkJCSAgIHN5bmMsDQoJCQkJCQkgICBjb21t
aXR9DQoJCQkgICAgICAgICAgICAgICA9PiBpZiBMaXN0LmNvbnRhaW5zKG1lbWxvY3MsDQoJCQkJ
CQkJICAgbWVtbG9jLA0KCQkJCQkJCSAgIE1lbUxvYy5lcSkNCgkJCQkJICAgIHRoZW4ge2ZsdHJl
Z2lzdGVyID0gZmx0cmVnaXN0ZXIsIA0KCQkJCQkJICBtZW1sb2MgPSBtZW1sb2MsIA0KCQkJCQkJ
ICB3ZWlnaHQgPSB3ZWlnaHQsIA0KCQkJCQkJICBzeW5jID0gdHJ1ZSwgDQoJCQkJCQkgIGNvbW1p
dCA9IFJFTU9WRSAwfQ0KCQkJCQkgICAgZWxzZSB2YWx1ZSwNCgkJCQkgICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uIA0KCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgICB2YWwge2Fzc2Vt
Ymx5ID0gYXNzZW1ibHlfY29tbWl0X2ZsdHJlZ2lzdGVycywNCgkJCXJlbmFtZSA9IHJlbmFtZV9j
b21taXRfZmx0cmVnaXN0ZXJzLA0KCQkJcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgID0gY29t
bWl0Rmx0UmVnaXN0ZXJzIHtzdXBwb3J0cyA9IFtdLA0KCQkJCQkgICBzYXZlcyA9IFtdLA0KCQkJ
CQkgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
DQoJCSAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXRfcmVnaXN0ZXJzLA0KCQkJcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgID0gY29tbWl0UmVnaXN0ZXJzIHtzdXBwb3J0cyA9IFtd
LA0KCQkJCQlzYXZlcyA9IFtdLA0KCQkJCQlyZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCT0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkgaW4NCgkJICAge2Fzc2VtYmx5ID0gYXNzZW1ibHlfY29tbWl0
X3JlZ2lzdGVycyBADQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZW1ibHlfY29t
bWl0X2ZsdHJlZ2lzdGVycywNCgkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJIGVuZCkNCg0KICAgICAgZnVuIGNvbW1pdCB7bWVtbG9jczogTWVtTG9jLnQg
bGlzdCwNCgkJICByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSAoY2FzZSBtZW1sb2NzDQoJICAg
ICBvZiBbXSA9PiB7YXNzZW1ibHkgPSBbXSwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAgICB8IF8NCgkgICAgICA9PiBsZXQNCgkJICAgdmFs
IHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkgICAgID0gdmFsdWVNYXAge21hcCANCgkJCQkgPSBmbiB2
YWx1ZSBhcyB7cmVnaXN0ZXIsDQoJCQkJCQltZW1sb2MsDQoJCQkJCQl3ZWlnaHQsDQoJCQkJCQlz
eW5jLA0KCQkJCQkJY29tbWl0fQ0KCQkJICAgICAgICAgICAgPT4gaWYgTGlzdC5jb250YWlucyht
ZW1sb2NzLA0KCQkJCQkJCW1lbWxvYywNCgkJCQkJCQlNZW1Mb2MuZXEpDQoJCQkJCSB0aGVuIHty
ZWdpc3RlciA9IHJlZ2lzdGVyLCANCgkJCQkJICAgICAgIG1lbWxvYyA9IG1lbWxvYywgDQoJCQkJ
CSAgICAgICB3ZWlnaHQgPSB3ZWlnaHQsIA0KCQkJCQkgICAgICAgc3luYyA9IHN5bmMsIA0KCQkJ
CQkgICAgICAgY29tbWl0ID0gQ09NTUlUIDB9DQoJCQkJCSBlbHNlIHZhbHVlLA0KCQkJCSByZWdp
c3RlckFsbG9jYXRpb24gDQoJCQkJID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgIHZhbCBy
ZWdpc3RlckFsbG9jYXRpb24NCgkJICAgICA9IGZsdHZhbHVlTWFwIHttYXAgDQoJCQkJICAgID0g
Zm4gdmFsdWUgYXMge2ZsdHJlZ2lzdGVyLA0KCQkJCQkJICAgbWVtbG9jLA0KCQkJCQkJICAgd2Vp
Z2h0LA0KCQkJCQkJICAgc3luYywNCgkJCQkJCSAgIGNvbW1pdH0NCgkJCSAgICAgICAgICAgICAg
ID0+IGlmIExpc3QuY29udGFpbnMobWVtbG9jcywNCgkJCQkJCQkgICBtZW1sb2MsDQoJCQkJCQkJ
ICAgTWVtTG9jLmVxKQ0KCQkJCQkgICAgdGhlbiB7Zmx0cmVnaXN0ZXIgPSBmbHRyZWdpc3Rlciwg
DQoJCQkJCQkgIG1lbWxvYyA9IG1lbWxvYywgDQoJCQkJCQkgIHdlaWdodCA9IHdlaWdodCwgDQoJ
CQkJCQkgIHN5bmMgPSBzeW5jLCANCgkJCQkJCSAgY29tbWl0ID0gQ09NTUlUIDB9DQoJCQkJCSAg
ICBlbHNlIHZhbHVlLA0KCQkJCSAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJICAgID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9jb21taXRf
Zmx0cmVnaXN0ZXJzLA0KCQkJcmVuYW1lID0gcmVuYW1lX2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJ
CQlyZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgPSBjb21taXRGbHRSZWdpc3RlcnMge3N1cHBv
cnRzID0gW10sDQoJCQkJCSAgIHNhdmVzID0gW10sDQoJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlv
biANCgkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICAgdmFsIHthc3NlbWJseSA9
IGFzc2VtYmx5X2NvbW1pdF9yZWdpc3RlcnMsDQoJCQlyZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICAgPSBjb21taXRSZWdpc3RlcnMge3N1cHBvcnRzID0gW10sDQoJCQkJCXNhdmVzID0gW10sDQoJ
CQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJ
IGluDQoJCSAgIHthc3NlbWJseSA9IGFzc2VtYmx5X2NvbW1pdF9yZWdpc3RlcnMgQA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VtYmx5X2NvbW1pdF9mbHRyZWdpc3RlcnMsDQoJ
CSAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSBlbmQpDQoN
CiAgICAgIGZ1biByZXR1cm4ge21lbWxvYyA9IHJldHVybl9tZW1sb2MsDQoJCSAgaW5mbzogTGl2
ZW5lc3MudCwNCgkJICByZWdpc3RlckFsbG9jYXRpb246IHR9DQoJPSBsZXQNCgkgICAgdmFsIGtp
bGxlZF92YWx1ZXMNCgkgICAgICA9IHZhbHVlRmlsdGVyIHtmaWx0ZXIgPSBmbiB2YWx1ZSBhcyB7
bWVtbG9jLC4uLn0NCgkJCSAgICAgICAgICAgICAgID0+IExpc3QuZXhpc3RzDQoJCQkgICAgICAg
ICAgICAgICAgICAoTWVtTG9jLnV0aWxpemVkIG1lbWxvYywNCgkJCQkJICAgZm4gbWVtbG9jJw0K
CQkJCQkgICAgPT4gTWVtTG9jLmVxKG1lbWxvYycsDQoJCQkJCQkJIHJldHVybl9tZW1sb2MpKQ0K
CQkJCQkgIG9yZWxzZQ0KCQkJCQkgIE1lbUxvYy5tYXlBbGlhcyhyZXR1cm5fbWVtbG9jLA0KCQkJ
CQkJCSAgbWVtbG9jKSwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KCSAgICB2YWwga2lsbGVkX21lbWxvY3MgPSBMaXN0Lm1hcChraWxsZWRfdmFsdWVz
LCAjbWVtbG9jKQ0KDQoJICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkgICAgICA9IHJlbW92
ZXMge21lbWxvY3MgPSBraWxsZWRfbWVtbG9jcywNCgkJCSByZWdpc3RlckFsbG9jYXRpb24gPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoNCgkgICAgdmFsIHJldHVybl9yZWdpc3RlciA9IFJlZ2lzdGVy
LnJldHVybiAoTWVtTG9jLnNpemUgcmV0dXJuX21lbWxvYykNCgkgICAgdmFsIHJlZ2lzdGVyQWxs
b2NhdGlvbg0KCSAgICAgID0gdXBkYXRlDQogICAgICAgICAgICAgICAge3ZhbHVlID0ge3JlZ2lz
dGVyID0gcmV0dXJuX3JlZ2lzdGVyLA0KCQkJICBtZW1sb2MgPSByZXR1cm5fbWVtbG9jLA0KCQkJ
ICB3ZWlnaHQgPSAxMDI0LA0KCQkJICBzeW5jID0gZmFsc2UsDQoJCQkgIGNvbW1pdCA9IE5PfSwN
CgkJIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCSAgICB2YWwg
e2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgICAg
ICA9IHBvc3Qge3VzZXMgPSBbXSwNCgkJICAgICAgZmluYWxfdXNlcyA9IFtdLA0KCQkgICAgICBk
ZWZzID0gW09wZXJhbmQubWVtbG9jIHJldHVybl9tZW1sb2NdLA0KCQkgICAgICBmaW5hbF9kZWZz
ID0gW09wZXJhbmQucmVnaXN0ZXIgcmV0dXJuX3JlZ2lzdGVyXSwNCgkJICAgICAgaW5mbyA9IGlu
Zm8sDQoJCSAgICAgIG9wZXIgPSBJbnN0cnVjdGlvbi5Ob3JtYWwsDQoJCSAgICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkgIGluDQoJICAgIHthc3NlbWJseSA9
IGFzc2VtYmx5X3Bvc3QsDQoJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9j
YXRpb259DQoJICBlbmQNCg0KICAgICAgZnVuIGZsdHJldHVybiB7bWVtbG9jID0gcmV0dXJuX21l
bWxvYywNCgkJICAgICBpbmZvOiBMaXZlbmVzcy50LA0KCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bjogdH0NCgk9IGxldA0KCSAgICB2YWwgcmV0dXJuX3JlZ2lzdGVyID0gRmx0UmVnaXN0ZXIucmV0
dXJuDQoNCgkgICAgdmFsIHtyZW5hbWUgPSByZW5hbWVfcHVzaCwNCgkJIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkgICAgICA9IGZsdHB1c2gNCiAgICAgICAgICAgICAgICB7dmFsdWUgPSB7Zmx0cmVn
aXN0ZXIgPSByZXR1cm5fcmVnaXN0ZXIsDQoJCQkgIG1lbWxvYyA9IHJldHVybl9tZW1sb2MsDQoJ
CQkgIHdlaWdodCA9IDEwMjQsDQoJCQkgIHN5bmMgPSBmYWxzZSwNCgkJCSAgY29tbWl0ID0gTk99
LA0KCQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICAgIHZh
bCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCQkgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCSAg
ICAgID0gcG9zdCB7dXNlcyA9IFtdLA0KCQkgICAgICBmaW5hbF91c2VzID0gW10sDQoJCSAgICAg
IGRlZnMgPSBbT3BlcmFuZC5tZW1sb2MgcmV0dXJuX21lbWxvY10sDQoJCSAgICAgIGZpbmFsX2Rl
ZnMgPSBbT3BlcmFuZC5mbHRyZWdpc3RlciByZXR1cm5fcmVnaXN0ZXJdLA0KCQkgICAgICBpbmZv
ID0gaW5mbywNCgkJICAgICAgb3BlciA9IEluc3RydWN0aW9uLk5vcm1hbCwNCgkJICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJICBpbg0KCSAgICB7YXNz
ZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCSAgZW5kDQogICAgZW5kDQoNCiAgc3RydWN0dXJlIEluc3RydWN0aW9u
ID0NCiAgICBzdHJ1Y3QNCiAgICAgIHN0cnVjdHVyZSBSQSA9IFJlZ2lzdGVyQWxsb2NhdGlvbg0K
ICAgICAgb3BlbiBJbnN0cnVjdGlvbg0KDQogICAgICAoKg0KICAgICAgICogUmVxdWlyZSBzcmMv
ZHN0IG9wZXJhbmRzIGFzIGZvbGxvd3M6DQogICAgICAgKg0KICAgICAgICogICAgICAgICAgICAg
IGRzdA0KICAgICAgICogICAgICAgICAgcmVnIGltbSBsYWIgYWRkIA0KICAgICAgICogICAgICBy
ZWcgIFggICAgICAgICAgIFgNCiAgICAgICAqICBzcmMgaW1tICBYICAgICAgICAgICBYDQogICAg
ICAgKiAgICAgIGxhYg0KICAgICAgICogICAgICBhZGQgIFgNCiAgICAgICAqKQ0KICAgICAgZnVu
IGFsbG9jYXRlU3JjRHN0IHtzcmM6IE9wZXJhbmQudCwNCgkJCSAgZHN0OiBPcGVyYW5kLnQsDQoJ
CQkgIG1vdmVfZHN0OiBib29sLA0KCQkJICBzaXplOiBTaXplLnQsDQoJCQkgIGluZm8gYXMge2Rl
YWQsIGNvbW1pdCwgcmVtb3ZlLCAuLi59OiBMaXZlbmVzcy50LA0KCQkJICByZWdpc3RlckFsbG9j
YXRpb246IFJlZ2lzdGVyQWxsb2NhdGlvbi50fQ0KCT0gaWYgT3BlcmFuZC5lcShzcmMsIGRzdCkN
CgkgICAgdGhlbiBsZXQNCgkJICAgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjX2RzdCwgDQoJCQlh
c3NlbWJseSA9IGFzc2VtYmx5X3NyY19kc3QsDQoJCQlyZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQgDQoJCSAgICAgICB7b3BlcmFuZCA9IHNyYywNCgkJCW9w
dGlvbnMgPSB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCSAgIGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJ
CSAgIGxhYmVsID0gZmFsc2UsDQoJCQkJICAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCWluZm8gPSBp
bmZvLA0KCQkJc2l6ZSA9IHNpemUsDQoJCQltb3ZlID0gdHJ1ZSwNCgkJCXN1cHBvcnRzID0gW10s
DQoJCQlzYXZlcyA9IFtdLA0KCQkJZm9yY2UgPSBbXSwNCgkJCXJlZ2lzdGVyQWxsb2NhdGlvbiAN
CgkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgaW4NCgkJICAge2ZpbmFsX3NyYyA9IGZpbmFs
X3NyY19kc3QsDQoJCSAgICBmaW5hbF9kc3QgPSBmaW5hbF9zcmNfZHN0LA0KCQkgICAgYXNzZW1i
bHlfc3JjX2RzdCA9IGFzc2VtYmx5X3NyY19kc3QsDQoJCSAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoJCSBlbmQNCgkgICAgZWxzZSBjYXNlIChzcmMsIGRzdCkN
CgkJICAgb2YgKE9wZXJhbmQuTWVtTG9jIG1lbWxvY19zcmMsDQoJCSAgICAgICBPcGVyYW5kLk1l
bUxvYyBtZW1sb2NfZHN0KQ0KCQkgICAgPT4gaWYgTGlzdC5jb250YWlucyhkZWFkLA0KCQkJCQlt
ZW1sb2NfZHN0LA0KCQkJCQlNZW1Mb2MuZXEpDQoJCSAgICAgICAgICBvcmVsc2UNCgkJCSAgTGlz
dC5jb250YWlucyhyZW1vdmUsDQoJCQkJCW1lbWxvY19kc3QsDQoJCQkJCU1lbUxvYy5lcSkNCgkJ
CSB0aGVuIGxldA0KCQkJCXZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJCQkgICAgIGFzc2Vt
Ymx5ID0gYXNzZW1ibHlfZHN0LA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAg
PSBSQS5hbGxvY2F0ZU9wZXJhbmQgDQoJCQkJICAgIHtvcGVyYW5kID0gZHN0LA0KCQkJCSAgICAg
b3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQlpbW1lZGlhdGUgPSBmYWxzZSwNCgkJ
CQkJCWxhYmVsID0gZmFsc2UsDQoJCQkJCQlhZGRyZXNzID0gdHJ1ZX0sDQoJCQkJICAgICBpbmZv
ID0gaW5mbywNCgkJCQkgICAgIHNpemUgPSBzaXplLA0KCQkJCSAgICAgbW92ZSA9IG1vdmVfZHN0
LA0KCQkJCSAgICAgc3VwcG9ydHMgPSBbc3JjXSwNCgkJCQkgICAgIHNhdmVzID0gW10sDQoJCQkJ
ICAgICBmb3JjZSA9IFtdLA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCSAgICAg
PSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCQl2YWwgb3B0aW9uc19zcmMNCgkJCQkgID0gY2Fz
ZSBmaW5hbF9kc3QNCgkJCQkgICAgICBvZiBPcGVyYW5kLlJlZ2lzdGVyIF8NCgkJCQkgICAgICAg
PT4ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJICAgaW1tZWRpYXRlID0gdHJ1ZSwNCgkJCQkJICAg
bGFiZWwgPSBmYWxzZSwNCgkJCQkJICAgYWRkcmVzcyA9IHRydWV9DQoJCQkJICAgICAgIHwgXyAN
CgkJCQkgICAgICAgPT4ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJICAgaW1tZWRpYXRlID0gdHJ1
ZSwNCgkJCQkJICAgbGFiZWwgPSBmYWxzZSwNCgkJCQkJICAgYWRkcmVzcyA9IGZhbHNlfQ0KIA0K
CQkJCXZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYywgDQoJCQkJICAgICBhc3NlbWJseSA9IGFzc2Vt
Ymx5X3NyYywNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgID0gUkEuYWxsb2Nh
dGVPcGVyYW5kIA0KCQkJCSAgICB7b3BlcmFuZCA9IHNyYywNCgkJCQkgICAgIG9wdGlvbnMgPSBv
cHRpb25zX3NyYywNCgkJCQkgICAgIGluZm8gPSBpbmZvLA0KCQkJCSAgICAgc2l6ZSA9IHNpemUs
DQoJCQkJICAgICBtb3ZlID0gdHJ1ZSwNCgkJCQkgICAgIHN1cHBvcnRzID0gW10sDQoJCQkJICAg
ICBzYXZlcyA9IFtkc3QsZmluYWxfZHN0XSwNCgkJCQkgICAgIGZvcmNlID0gW10sDQoJCQkJICAg
ICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
CSAgICAgIGluDQoJCQkJe2ZpbmFsX3NyYyA9IGZpbmFsX3NyYywNCgkJCQkgZmluYWxfZHN0ID0g
ZmluYWxfZHN0LA0KCQkJCSBhc3NlbWJseV9zcmNfZHN0IA0KCQkJCSA9IGFzc2VtYmx5X2RzdCBA
IGFzc2VtYmx5X3NyYywNCgkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkJICAgICAgZW5kDQogCQkJIGVsc2UgbGV0DQoJCQkJdmFsIHtvcGVyYW5kID0gZmlu
YWxfc3JjLCANCgkJCQkgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjLA0KCQkJCSAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQgDQoJCQkJICAgIHtv
cGVyYW5kID0gc3JjLA0KCQkJCSAgICAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJ
CQlpbW1lZGlhdGUgPSB0cnVlLA0KCQkJCQkJbGFiZWwgPSBmYWxzZSwNCgkJCQkJCWFkZHJlc3Mg
PSB0cnVlfSwNCgkJCQkgICAgIGluZm8gPSBpbmZvLA0KCQkJCSAgICAgc2l6ZSA9IHNpemUsDQoJ
CQkJICAgICBtb3ZlID0gdHJ1ZSwNCgkJCQkgICAgIHN1cHBvcnRzID0gW2RzdF0sDQoJCQkJICAg
ICBzYXZlcyA9IFtdLA0KCQkJCSAgICAgZm9yY2UgPSBbXSwNCgkJCQkgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiANCgkJCQkgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkJdmFsIHtvcGVy
YW5kID0gZmluYWxfZHN0LA0KCQkJCSAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9kc3QsDQoJCQkJ
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJ
CQkgICAge29wZXJhbmQgPSBkc3QsDQoJCQkJICAgICBvcHRpb25zID0ge3JlZ2lzdGVyID0gdHJ1
ZSwNCgkJCQkJCWltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJbGFiZWwgPSBmYWxzZSwNCgkJCQkJ
CWFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJICAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgIHNpemUg
PSBzaXplLA0KCQkJCSAgICAgbW92ZSA9IG1vdmVfZHN0LA0KCQkJCSAgICAgc3VwcG9ydHMgPSBb
XSwNCgkJCQkgICAgIHNhdmVzID0gW3NyYyxmaW5hbF9zcmNdLA0KCQkJCSAgICAgZm9yY2UgPSBb
XSwNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkgICAgID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KCQkJICAgICAgaW4NCgkJCQl7ZmluYWxfc3JjID0gZmluYWxfc3JjLA0KCQkJCSBm
aW5hbF9kc3QgPSBmaW5hbF9kc3QsDQoJCQkJIGFzc2VtYmx5X3NyY19kc3QgDQoJCQkJID0gYXNz
ZW1ibHlfc3JjIEAgYXNzZW1ibHlfZHN0LA0KCQkJCSByZWdpc3RlckFsbG9jYXRpb24gPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCQkgICAgICBlbmQNCgkJICAgIHwgXw0KCQkgICAgPT4gbGV0DQoJ
CQkgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjLCANCgkJCSAgICAgIGFzc2VtYmx5ID0gYXNzZW1i
bHlfc3JjLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgPSBSQS5hbGxvY2F0
ZU9wZXJhbmQgDQoJCQkgICAgIHtvcGVyYW5kID0gc3JjLA0KCQkJICAgICAgb3B0aW9ucyA9IHty
ZWdpc3RlciA9IHRydWUsDQoJCQkJCSBpbW1lZGlhdGUgPSB0cnVlLA0KCQkJCQkgbGFiZWwgPSBm
YWxzZSwNCgkJCQkJIGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJ
CSAgICAgIHNpemUgPSBzaXplLA0KCQkJICAgICAgbW92ZSA9IHRydWUsDQoJCQkgICAgICBzdXBw
b3J0cyA9IFtkc3RdLA0KCQkJICAgICAgc2F2ZXMgPSBbXSwNCgkJCSAgICAgIGZvcmNlID0gW10s
DQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkgICAgICA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCg0KCQkJIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJCSAgICAgIGFzc2VtYmx5
ID0gYXNzZW1ibHlfZHN0LA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgPSBS
QS5hbGxvY2F0ZU9wZXJhbmQgDQoJCQkgICAgIHtvcGVyYW5kID0gZHN0LA0KCQkJICAgICAgb3B0
aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCSBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCQkJ
IGxhYmVsID0gZmFsc2UsDQoJCQkJCSBhZGRyZXNzID0gdHJ1ZX0sDQoJCQkgICAgICBpbmZvID0g
aW5mbywNCgkJCSAgICAgIHNpemUgPSBzaXplLA0KCQkJICAgICAgbW92ZSA9IG1vdmVfZHN0LA0K
CQkJICAgICAgc3VwcG9ydHMgPSBbXSwNCgkJCSAgICAgIHNhdmVzID0gW3NyYyxmaW5hbF9zcmNd
LA0KCQkJICAgICAgZm9yY2UgPSBbXSwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJ
CSAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICAgaW4NCgkJCSB7ZmluYWxfc3Jj
ID0gZmluYWxfc3JjLA0KCQkJICBmaW5hbF9kc3QgPSBmaW5hbF9kc3QsDQoJCQkgIGFzc2VtYmx5
X3NyY19kc3QgDQoJCQkgID0gYXNzZW1ibHlfc3JjIEAgYXNzZW1ibHlfZHN0LA0KCQkJICByZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgICBlbmQNCg0KICAg
ICAgKCogDQogICAgICAgKiBSZXF1aXJlIHNyYzEvc3JjMiBvcGVyYW5kcyBhcyBmb2xsb3dzOg0K
ICAgICAgICoNCiAgICAgICAqICAgICAgICAgICAgICAgc3JjMg0KICAgICAgICogICAgICAgICAg
IHJlZyBpbW0gbGFiIGFkZCANCiAgICAgICAqICAgICAgIHJlZyAgWCAgIFggICAgICAgWA0KICAg
ICAgICogIHNyYzEgaW1tDQogICAgICAgKiAgICAgICBsYWINCiAgICAgICAqICAgICAgIGFkZCAg
WCAgIFgNCiAgICAgICAqKQ0KICAgICAgZnVuIGFsbG9jYXRlU3JjMVNyYzIge3NyYzE6IE9wZXJh
bmQudCwNCgkJCSAgICBzcmMyOiBPcGVyYW5kLnQsDQoJCQkgICAgc2l6ZTogU2l6ZS50LA0KCQkJ
ICAgIGluZm8gYXMge2RlYWQsIGNvbW1pdCwgcmVtb3ZlLCAuLi59OiBMaXZlbmVzcy50LA0KCQkJ
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogUmVnaXN0ZXJBbGxvY2F0aW9uLnR9DQoJPSBpZiBPcGVy
YW5kLmVxKHNyYzEsIHNyYzIpDQoJICAgIHRoZW4gbGV0DQoJCSAgIHZhbCB7b3BlcmFuZCA9IGZp
bmFsX3NyYzFfc3JjMiwgDQoJCQlhc3NlbWJseSA9IGFzc2VtYmx5X3NyYzFfc3JjMiwNCgkJCXJl
Z2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJICAgICAg
IHtvcGVyYW5kID0gc3JjMSwNCgkJCW9wdGlvbnMgPSB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCSAg
IGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCSAgIGxhYmVsID0gZmFsc2UsDQoJCQkJICAgYWRkcmVz
cyA9IGZhbHNlfSwNCgkJCWluZm8gPSBpbmZvLA0KCQkJc2l6ZSA9IHNpemUsDQoJCQltb3ZlID0g
dHJ1ZSwNCgkJCXN1cHBvcnRzID0gW10sDQoJCQlzYXZlcyA9IFtdLA0KCQkJZm9yY2UgPSBbXSwN
CgkJCXJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgaW4N
CgkJICAge2ZpbmFsX3NyYzEgPSBmaW5hbF9zcmMxX3NyYzIsDQoJCSAgICBmaW5hbF9zcmMyID0g
ZmluYWxfc3JjMV9zcmMyLA0KCQkgICAgYXNzZW1ibHlfc3JjMV9zcmMyID0gYXNzZW1ibHlfc3Jj
MV9zcmMyLA0KCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkgZW5kDQoJICAgIGVsc2UgbGV0DQoJCSAgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYzEsDQoJ
CQlhc3NlbWJseSA9IGFzc2VtYmx5X3NyYzEsDQoJCQlyZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQgDQoJCSAgICAgICB7b3BlcmFuZCA9IHNyYzEsDQoJCQlv
cHRpb25zID0ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJ
CQkgICBsYWJlbCA9IGZhbHNlLA0KCQkJCSAgIGFkZHJlc3MgPSB0cnVlfSwNCgkJCWluZm8gPSBp
bmZvLA0KCQkJc2l6ZSA9IHNpemUsDQoJCQltb3ZlID0gdHJ1ZSwNCgkJCXN1cHBvcnRzID0gW3Ny
YzJdLA0KCQkJc2F2ZXMgPSBbXSwNCgkJCWZvcmNlID0gW10sDQoJCQlyZWdpc3RlckFsbG9jYXRp
b24gDQoJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgICB2YWwgb3B0aW9uc19zcmMyDQoJ
CSAgICAgPSBjYXNlIGZpbmFsX3NyYzENCgkJCSBvZiBPcGVyYW5kLlJlZ2lzdGVyIF8NCgkJCSAg
PT4ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCSAgICAgIGltbWVkaWF0ZSA9IHRydWUsDQoJCQkgICAg
ICBsYWJlbCA9IGZhbHNlLA0KCQkJICAgICAgYWRkcmVzcyA9IHRydWV9DQoJCQkgIHwgXyANCgkJ
CSAgPT4ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCSAgICAgIGltbWVkaWF0ZSA9IHRydWUsDQoJCQkg
ICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJICAgICAgYWRkcmVzcyA9IGZhbHNlfQ0KIA0KCQkgICB2
YWwge29wZXJhbmQgPSBmaW5hbF9zcmMyLCANCgkJCWFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjMiwN
CgkJCXJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJ
ICAgICAgIHtvcGVyYW5kID0gc3JjMiwNCgkJCW9wdGlvbnMgPSBvcHRpb25zX3NyYzIsDQoJCQlp
bmZvID0gaW5mbywNCgkJCXNpemUgPSBzaXplLA0KCQkJbW92ZSA9IHRydWUsDQoJCQlzdXBwb3J0
cyA9IFtdLA0KCQkJc2F2ZXMgPSBbc3JjMSxmaW5hbF9zcmMxXSwNCgkJCWZvcmNlID0gW10sDQoJ
CQlyZWdpc3RlckFsbG9jYXRpb24gDQoJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJIGluDQoJ
CSAgIHtmaW5hbF9zcmMxID0gZmluYWxfc3JjMSwNCgkJICAgIGZpbmFsX3NyYzIgPSBmaW5hbF9z
cmMyLA0KCQkgICAgYXNzZW1ibHlfc3JjMV9zcmMyID0gYXNzZW1ibHlfc3JjMSBAIGFzc2VtYmx5
X3NyYzIsDQoJCSAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CSBlbmQNCg0KICAgICAgZnVuIHJlbW92YWJsZSB7bWVtbG9jLA0KCQkgICAgIGluZm8gYXMge2Rl
YWQsIGNvbW1pdCwgcmVtb3ZlLCAuLi59OiBMaXZlbmVzcy50LA0KCQkgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgk9IExpc3QuY29udGFpbnMoZGVhZCwNCgkJCW1lbWxvYywNCgkJCU1lbUxvYy5l
cSkNCgkgIG9yZWxzZQ0KCSAgKExpc3QuY29udGFpbnMocmVtb3ZlLA0KCQkJIG1lbWxvYywNCgkJ
CSBNZW1Mb2MuZXEpDQoJICAgYW5kYWxzbw0KCSAgIChjYXNlIFJBLmZsdGFsbG9jYXRlZCB7bWVt
bG9jID0gbWVtbG9jLA0KCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCSAgICAgIG9mIFNPTUUge3N5bmMsLi4ufSA9PiBzeW5jDQoJICAgICAgIHwgTk9ORSA9
PiB0cnVlKSkNCg0KICAgICAgZnVuIGFsbG9jYXRlUmVnaXN0ZXJzIHtpbnN0cnVjdGlvbjogdCwN
CgkJCSAgICAgaW5mbyBhcyB7ZGVhZCwgY29tbWl0LCByZW1vdmUsIC4uLn06IExpdmVuZXNzLnQs
DQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbjogUmVnaXN0ZXJBbGxvY2F0aW9uLnR9DQoJPSBj
YXNlIGluc3RydWN0aW9uDQoJICAgIG9mIEJpbkFMIHtvcGVyLCBzcmMsIGRzdCwgc2l6ZX0NCgkg
ICAgICAgKCogSW50ZWdlciBiaW5hcnkgYXJpdGhtZXRpYyh3L28gbXVsdCAmIGRpdikvbG9naWMg
aW5zdHJ1Y3Rpb25zLg0KCQkqIFJlcXVpcmUgc3JjL2RzdCBvcGVyYW5kcyBhcyBmb2xsb3dzOg0K
CQkqDQoJCSogICAgICAgICAgICAgIGRzdA0KCQkqICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZCAN
CgkJKiAgICAgIHJlZyAgWCAgICAgICAgICAgWA0KCQkqICBzcmMgaW1tICBYICAgICAgICAgICBY
DQoJCSogICAgICBsYWINCgkJKiAgICAgIGFkZCAgWA0KCQkqKQ0KCSAgICAgPT4gbGV0DQoJCSAg
dmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2ls
bHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJ
ICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5m
byA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICB2YWwge2ZpbmFsX3NyYywNCgkJICAgICAgIGZpbmFsX2RzdCwNCgkJICAgICAg
IGFzc2VtYmx5X3NyY19kc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9
IGFsbG9jYXRlU3JjRHN0IHtzcmMgPSBzcmMsDQoJCQkJICAgICAgZHN0ID0gZHN0LA0KCQkJCSAg
ICAgIG1vdmVfZHN0ID0gdHJ1ZSwNCgkJCQkgICAgICBzaXplID0gc2l6ZSwNCgkJCQkgICAgICBp
bmZvID0gaW5mbywNCgkJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9j
YXRpb259DQoNCg0KCQkgIHZhbCBpbnN0cnVjdGlvbiANCgkJICAgID0gSW5zdHJ1Y3Rpb24uQmlu
QUwNCgkJICAgICAge29wZXIgPSBvcGVyLA0KCQkgICAgICAgc3JjID0gZmluYWxfc3JjLA0KCQkg
ICAgICAgZHN0ID0gZmluYWxfZHN0LA0KCQkgICAgICAgc2l6ZSA9IHNpemV9DQoNCgkJICB2YWwg
e3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsDQoJCSAgICAg
ICAuLi59DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0K
DQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFs
X3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZp
bmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAg
IG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fz
c2VtYmx5X3ByZSwNCgkJCQkgICBhc3NlbWJseV9zcmNfZHN0LA0KCQkJCSAgIFtBc3NlbWJseS5p
bnN0cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5kDQoJICAgICB8IHBN
RCB7b3BlciwgZHN0LCBzcmMsIHNpemV9DQoJICAgICAgICgqIEludGVnZXIgbXVsdGlwbGljYXRp
b24gYW5kIGRpdmlzaW9uLg0KCQkqIFJlcXVpcmUgc3JjIG9wZXJhbmQgYXMgZm9sbG93czoNCgkJ
Kg0KCQkqICAgICAgICAgICAgICAgc3JjDQoJCSogICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZA0K
CQkqICAgICAgICAgICAgWCAgICAgICAgICAgWA0KCQkqKQ0KCSAgICAgPT4gbGV0DQoJCSAgdmFs
IHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMg
aW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJICAg
ICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5mbyA9
IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoNCgkJICB2YWwgKGhpLGxvKSANCgkJICAgID0gY2FzZSBzaXplDQoJCQlvZiBTaXplLkJZVEUg
DQoJCQk9PiAoUmVnaXN0ZXIuVCB7cmVnID0gUmVnaXN0ZXIuRUFYLCBwYXJ0ID0gUmVnaXN0ZXIu
SH0sDQoJCQkgICAgUmVnaXN0ZXIuVCB7cmVnID0gUmVnaXN0ZXIuRUFYLCBwYXJ0ID0gUmVnaXN0
ZXIuTH0pDQoJCQl8IFNpemUuV09SRCANCgkJCT0+IChSZWdpc3Rlci5UIHtyZWcgPSBSZWdpc3Rl
ci5FRFgsIHBhcnQgPSBSZWdpc3Rlci5YfSwNCgkJCSAgICBSZWdpc3Rlci5UIHtyZWcgPSBSZWdp
c3Rlci5FQVgsIHBhcnQgPSBSZWdpc3Rlci5YfSkNCgkJCXwgU2l6ZS5MT05HDQoJCQk9PiAoUmVn
aXN0ZXIuVCB7cmVnID0gUmVnaXN0ZXIuRURYLCBwYXJ0ID0gUmVnaXN0ZXIuRX0sDQoJCQkgICAg
UmVnaXN0ZXIuVCB7cmVnID0gUmVnaXN0ZXIuRUFYLCBwYXJ0ID0gUmVnaXN0ZXIuRX0pDQoJCQl8
IF8gPT4gRXJyb3IuYnVnICJhbGxvY2F0ZVJlZ2lzdGVyczogcE1ELCBzaXplIg0KDQoJCSAgdmFs
IHtyZWdpc3RlciwNCgkJICAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfY2xlYXIsDQoJCSAgICAg
ICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmZyZWVSZWdpc3RlciANCgkJICAgICAg
e3NpemUgPSBzaXplLA0KCQkgICAgICAgc3VwcG9ydHMgPSBbc3JjLGRzdF0sDQoJCSAgICAgICBz
YXZlcyA9IFtdLCANCgkJICAgICAgIGZvcmNlID0gW2hpXSwNCgkJICAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCByZWdpc3RlckFsbG9jYXRp
b24NCgkJICAgID0gUkEuZGVsZXRlIHtyZWdpc3RlciA9IGhpLA0KCQkJCSByZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwge2ZpbmFsX3NyYywNCgkJICAg
ICAgIGZpbmFsX2RzdCwNCgkJICAgICAgIGFzc2VtYmx5X3NyY19kc3QsDQoJCSAgICAgICByZWdp
c3RlckFsbG9jYXRpb259DQoJCSAgICA9IGlmIE9wZXJhbmQuZXEoc3JjLCBkc3QpDQoJCQl0aGVu
IGxldA0KCQkJICAgICAgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyY19kc3QsDQoJCQkJICAgIGFz
c2VtYmx5ID0gYXNzZW1ibHlfc3JjX2RzdCwNCgkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJCQkgICB7
b3BlcmFuZCA9IGRzdCwNCgkJCQkgICAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJ
CSAgICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCQkJICAgICAgIGxhYmVsID0gZmFsc2UsDQoJ
CQkJCSAgICAgICBhZGRyZXNzID0gZmFsc2V9LA0KCQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkg
ICAgc2l6ZSA9IHNpemUsDQoJCQkJICAgIG1vdmUgPSB0cnVlLA0KCQkJCSAgICBzdXBwb3J0cyA9
IFtdLA0KCQkJCSAgICBzYXZlcyA9IFtPcGVyYW5kLnJlZ2lzdGVyIGhpXSwNCgkJCQkgICAgZm9y
Y2UgPSBbbG9dLA0KCQkJCSAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJICAgID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICBpbg0KCQkJICAgICAgIHtmaW5hbF9zcmMgPSBmaW5hbF9z
cmNfZHN0LA0KCQkJCWZpbmFsX2RzdCA9IGZpbmFsX3NyY19kc3QsDQoJCQkJYXNzZW1ibHlfc3Jj
X2RzdCA9IGFzc2VtYmx5X3NyY19kc3QsDQoJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICBlbmQNCgkJCWVsc2UgbGV0DQoJCQkgICAgICAgdmFsIHtv
cGVyYW5kID0gZmluYWxfZHN0LA0KCQkJCSAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2RzdCwNCgkJ
CQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSA9IFJB
LmFsbG9jYXRlT3BlcmFuZCANCgkJCQkgICB7b3BlcmFuZCA9IGRzdCwNCgkJCQkgICAgb3B0aW9u
cyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCSAgICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJ
CQkJICAgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCSAgICAgICBhZGRyZXNzID0gZmFsc2V9LA0K
CQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgc2l6ZSA9IHNpemUsDQoJCQkJICAgIG1vdmUg
PSB0cnVlLA0KCQkJCSAgICBzdXBwb3J0cyA9IFtzcmNdLA0KCQkJCSAgICBzYXZlcyA9IFtPcGVy
YW5kLnJlZ2lzdGVyIGhpXSwNCgkJCQkgICAgZm9yY2UgPSBbbG9dLA0KCQkJCSAgICByZWdpc3Rl
ckFsbG9jYXRpb24gDQoJCQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQkgICAgICAg
dmFsIGZvcmNlX3NyYyANCgkJCQkgPSBMaXN0LmtlZXBBbGwNCgkJCQkgICAoUmVnaXN0ZXIucmVn
aXN0ZXJzIHNpemUsDQoJCQkJICAgIGZuIHIgPT4gbm90IChSZWdpc3Rlci5lcShyLCBoaSkgb3Jl
bHNlIA0KCQkJCQkJIFJlZ2lzdGVyLmVxKHIsIGxvKSkpDQoNCgkJCSAgICAgICB2YWwge29wZXJh
bmQgPSBmaW5hbF9zcmMsIA0KCQkJCSAgICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYywNCgkJCQkg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJCQkg
ICB7b3BlcmFuZCA9IHNyYywNCgkJCQkgICAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJ
CQkJCSAgICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCQkJICAgICAgIGxhYmVsID0gZmFsc2Us
DQoJCQkJCSAgICAgICBhZGRyZXNzID0gdHJ1ZX0sIA0KCQkJCSAgICBpbmZvID0gaW5mbywNCgkJ
CQkgICAgc2l6ZSA9IHNpemUsDQoJCQkJICAgIG1vdmUgPSB0cnVlLA0KCQkJCSAgICBzdXBwb3J0
cyA9IFtdLA0KCQkJCSAgICBzYXZlcyA9IFtPcGVyYW5kLnJlZ2lzdGVyIGhpLA0KCQkJCQkgICAg
IGRzdCxmaW5hbF9kc3RdLA0KCQkJCSAgICBmb3JjZSA9IGZvcmNlX3NyYywNCgkJCQkgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgICAg
aW4NCgkJCSAgICAgICB7ZmluYWxfc3JjID0gZmluYWxfc3JjLA0KCQkJCWZpbmFsX2RzdCA9IGZp
bmFsX2RzdCwNCgkJCQlhc3NlbWJseV9zcmNfZHN0ID0gYXNzZW1ibHlfZHN0IEAgYXNzZW1ibHlf
c3JjLA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAg
ICAgZW5kDQoNCgkJICB2YWwgb3BlcicgDQoJCSAgICA9IGNhc2Ugb3Blcg0KCQkJb2YgSW5zdHJ1
Y3Rpb24uSU1VTCA9PiBJbnN0cnVjdGlvbi5JTVVMDQoJCQkgfCBJbnN0cnVjdGlvbi5NVUwgPT4g
SW5zdHJ1Y3Rpb24uTVVMDQoJCQkgfCBJbnN0cnVjdGlvbi5JRElWID0+IEluc3RydWN0aW9uLklE
SVYNCgkJCSB8IEluc3RydWN0aW9uLkRJViA9PiBJbnN0cnVjdGlvbi5ESVYNCgkJCSB8IEluc3Ry
dWN0aW9uLklNT0QgPT4gSW5zdHJ1Y3Rpb24uSURJVg0KCQkJIHwgSW5zdHJ1Y3Rpb24uTU9EID0+
IEluc3RydWN0aW9uLkRJVg0KDQoJCSAgdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkgICAgPSBp
ZiBvcGVyID0gSW5zdHJ1Y3Rpb24uSU1PRCBvcmVsc2UNCgkJICAgICAgICAgb3BlciA9IEluc3Ry
dWN0aW9uLk1PRA0KCQkJdGhlbiBjYXNlIFJBLnZhbHVlc1JlZ2lzdGVyIHtyZWdpc3RlciA9IGxv
LA0KCQkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgICAgPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCQkgICAgICAgb2YgW3ZhbHVlIGFzIHtyZWdpc3RlciwNCgkJCQkJICAgICBt
ZW1sb2MsDQoJCQkJCSAgICAgd2VpZ2h0LA0KCQkJCQkgICAgIHN5bmMsDQoJCQkJCSAgICAgY29t
bWl0fV0NCgkJCQk9PiBsZXQNCgkJCQkgICAgIHZhbCByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkg
ICAgICAgPSBSQS5kZWxldGUge3JlZ2lzdGVyID0gbG8sDQoJCQkJCQkgICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uDQoJCQkJCQkgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCQkgICAgIHZhbCBy
ZWdpc3RlckFsbG9jYXRpb24NCgkJCQkgICAgICAgPSBSQS51cGRhdGUge3ZhbHVlID0ge3JlZ2lz
dGVyID0gaGksDQoJCQkJCQkJICAgICBtZW1sb2MgPSBtZW1sb2MsDQoJCQkJCQkJICAgICB3ZWln
aHQgPSB3ZWlnaHQsDQoJCQkJCQkJICAgICBzeW5jID0gc3luYywNCgkJCQkJCQkgICAgIGNvbW1p
dCA9IGNvbW1pdH0sDQoJCQkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgIGluDQoJCQkJICAgICByZWdpc3RlckFsbG9jYXRp
b24NCgkJCQkgICBlbmQNCgkJCQl8IF8gPT4gRXJyb3IuYnVnICJhbGxvY2F0ZVJlZ2lzdGVyczog
cE1ELCBsbyINCgkJCWVsc2UgcmVnaXN0ZXJBbGxvY2F0aW9uDQoNCgkJICB2YWwgaW5zdHJ1Y3Rp
b24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uTUQNCgkJICAgICAge29wZXIgPSBvcGVyJywNCgkJICAg
ICAgIHNyYyA9IGZpbmFsX3NyYywNCgkJICAgICAgIHNpemUgPSBzaXplfQ0KDQoJCSAgdmFsIHt1
c2VzID0gZmluYWxfdXNlcywNCgkJICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJCSAgICAg
ICAuLi59DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0K
DQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFs
X3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZp
bmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAg
IG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fz
c2VtYmx5X3ByZSwNCgkJCQkgICBhc3NlbWJseV9jbGVhciwNCgkJCQkgICBhc3NlbWJseV9zcmNf
ZHN0LA0KCQkJCSAgIFtpZiBvcGVyID0gSW5zdHJ1Y3Rpb24uSU1VTCBvcmVsc2UNCgkJCQkgICAg
ICAgb3BlciA9IEluc3RydWN0aW9uLklESVYgb3JlbHNlDQoJCQkJICAgICAgIG9wZXIgPSBJbnN0
cnVjdGlvbi5JTU9EDQoJCQkJICAgICAgdGhlbiBBc3NlbWJseS5pbnN0cnVjdGlvbl9jeA0KICAg
ICAgIAkJCQkJICAge3NpemUgPSBzaXplfQ0KCQkJCSAgICAgIGVsc2UgQXNzZW1ibHkuaW5zdHJ1
Y3Rpb25fYmluYWwNCgkJCQkgICAgICAgICAgIHtvcGVyID0gSW5zdHJ1Y3Rpb24uWE9SLA0KCQkJ
CQkgICAgZHN0ID0gT3BlcmFuZC5yZWdpc3RlciBoaSwNCgkJCQkJICAgIHNyYyA9IE9wZXJhbmQu
cmVnaXN0ZXIgaGksDQoJCQkJCSAgICBzaXplID0gc2l6ZX0sDQoJCQkJICAgIEFzc2VtYmx5Lmlu
c3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCiAgICAgICAg
ICAgICAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVu
ZA0KCSAgICAgfCBVbkFMIHtvcGVyLCBkc3QsIHNpemV9DQoJICAgICAgICgqIEludGVnZXIgdW5h
cnkgYXJpdGhtZXRpYy9sb2dpYyBpbnN0cnVjdGlvbnMuDQoJCSogUmVxdWlyZSBkc3Qgb3BlcmFu
ZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICBkc3QNCgkJKiAgICAgICAgICAg
cmVnIGltbSBsYWIgYWRkDQoJCSogICAgICAgICAgICBYICAgICAgICAgICBYDQoJCSopDQoJICAg
ICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9u
LnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJs
eV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNl
cyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMs
DQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJICAg
ICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfZHN0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQge29wZXJh
bmQgPSBkc3QsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAg
IGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkJICAg
ICBhZGRyZXNzID0gdHJ1ZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IHNp
emUsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbXSwNCgkJCQkJICBz
YXZlcyA9IFtdLA0KCQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9u
IA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJ
CSAgICA9IEluc3RydWN0aW9uLlVuQUwNCgkJICAgICAge29wZXIgPSBvcGVyLA0KCQkgICAgICAg
ZHN0ID0gZmluYWxfZHN0LA0KCQkgICAgICAgc2l6ZSA9IHNpemV9DQoNCgkJICB2YWwge3VzZXMg
PSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4u
Ln0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJ
ICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNl
cyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxf
ZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3Bl
ciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9j
YXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5IA0KCQkgICA9IExpc3QuZmxhdHRlbiBbYXNzZW1i
bHlfcHJlLA0KCQkJCSAgIGFzc2VtYmx5X2RzdCwNCgkJCQkgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rp
b24gaW5zdHJ1Y3Rpb25dLA0KCQkJCSAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KCSAgICAgfCBTUkFMIHtvcGVy
LCBjb3VudCwgZHN0LCBzaXplfQ0KCSAgICAgICAoKiBJbnRlZ2VyIHNoaWZ0L3JvdGF0ZSBhcml0
aG1ldGljL2xvZ2ljIGluc3RydWN0aW9ucy4NCgkJKiBSZXF1aXJlIGNvdW50IG9wZXJhbmQgYXMg
Zm9sbG93czoNCgkJKg0KCQkqICAgICAgICAgICAgICBjb3VudA0KCQkqICAgICAgICAgICByZWcg
aW1tIGxhYiBhZGQNCgkJKiAgICAgICAgICAgICogICBYDQoJCSogICogb25seSByZWdpc3RlciAl
Y2wNCgkJKg0KCQkqIFJlcXVpcmUgZHN0IG9wZXJhbmQgYXMgZm9sbG93czoNCgkJKg0KCQkqICAg
ICAgICAgICAgICAgZHN0DQoJCSogICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZA0KCQkqICAgICAg
ICAgICAgWCAgICAgICAgICAgWA0KCQkqKQ0KCSAgICAgPT4gbGV0DQoJCSAgdmFsIHt1c2VzLGRl
ZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rp
b24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgZGVmcyA9
IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5mbyA9IGluZm8sDQoJ
CQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2
YWwge2ZpbmFsX2NvdW50LA0KCQkgICAgICAgYXNzZW1ibHlfY291bnQsDQoJCSAgICAgICBmaW5h
bF9kc3QsDQoJCSAgICAgICBhc3NlbWJseV9kc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRp
b259DQoJCSAgICA9IGlmIE9wZXJhbmQuZXEoY291bnQsZHN0KQ0KCQkJdGhlbiBsZXQNCgkJCSAg
ICAgICB2YWwge29wZXJhbmQgPSBmaW5hbF9jb3VudCwgDQoJCQkJICAgIGFzc2VtYmx5ID0gYXNz
ZW1ibHlfY291bnQsDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgPSBSQS5hbGxv
Y2F0ZU9wZXJhbmQgDQoJCQkJICAge29wZXJhbmQgPSBjb3VudCwNCgkJCQkgICAgb3B0aW9ucyA9
IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCSAgICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCQkJ
ICAgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCSAgICAgICBhZGRyZXNzID0gZmFsc2V9LCANCgkJ
CQkgICAgaW5mbyA9IGluZm8sDQoJCQkJICAgIHNpemUgPSBzaXplLA0KCQkJCSAgICBtb3ZlID0g
dHJ1ZSwNCgkJCQkgICAgc3VwcG9ydHMgPSBbXSwNCgkJCQkgICAgc2F2ZXMgPSBbXSwNCgkJCQkg
ICAgZm9yY2UgDQoJCQkJICAgID0gW1JlZ2lzdGVyLlQge3JlZyA9IFJlZ2lzdGVyLkVDWCwNCgkJ
CQkJCSAgIHBhcnQgPSBSZWdpc3Rlci5MfSwNCgkJCQkgICAgICAgUmVnaXN0ZXIuVCB7cmVnID0g
UmVnaXN0ZXIuRUNYLA0KCQkJCQkJICAgcGFydCA9IFJlZ2lzdGVyLlh9LA0KCQkJCSAgICAgICBS
ZWdpc3Rlci5UIHtyZWcgPSBSZWdpc3Rlci5FQ1gsDQoJCQkJCQkgICBwYXJ0ID0gUmVnaXN0ZXIu
RX1dLA0KCQkJCSAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJICAgID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KDQoJCQkgICAgICAgdmFsIGZpbmFsX2RzdCA9IGZpbmFsX2NvdW50DQoJCQkgICAg
ICAgdmFsIGFzc2VtYmx5X2RzdCA9IFtdDQoJCQkgICAgIGluDQoJCQkgICAgICAge2ZpbmFsX2Nv
dW50ID0gZmluYWxfY291bnQsDQoJCQkJYXNzZW1ibHlfY291bnQgPSBhc3NlbWJseV9jb3VudCwN
CgkJCQlmaW5hbF9kc3QgPSBmaW5hbF9kc3QsDQoJCQkJYXNzZW1ibHlfZHN0ID0gYXNzZW1ibHlf
ZHN0LA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAg
ICAgZW5kDQoJCQllbHNlIGxldA0KCQkJICAgICAgIHZhbCBjb3VudF9zaXplID0gY2FzZSBPcGVy
YW5kLnNpemUgY291bnQNCgkJCQkJCSAgb2YgTk9ORSA9PiBTaXplLkJZVEUNCgkJCQkJCSAgIHwg
U09NRSBzaXplID0+IHNpemUNCg0KCQkJICAgICAgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2NvdW50
LCANCgkJCQkgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9jb3VudCwNCgkJCQkgICAgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJCSA9IFJBLmFsbG9jYXRlT3BlcmFuZCANCgkJCQkgICB7b3BlcmFuZCA9
IGNvdW50LA0KCQkJCSAgICBvcHRpb25zID0ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJICAgICAg
IGltbWVkaWF0ZSA9IHRydWUsDQoJCQkJCSAgICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkgICAg
ICAgYWRkcmVzcyA9IGZhbHNlfSwgDQoJCQkJICAgIGluZm8gPSBpbmZvLA0KCQkJCSAgICBzaXpl
ID0gY291bnRfc2l6ZSwNCgkJCQkgICAgbW92ZSA9IHRydWUsDQoJCQkJICAgIHN1cHBvcnRzID0g
W2RzdF0sDQoJCQkJICAgIHNhdmVzID0gW10sDQoJCQkJICAgIGZvcmNlIA0KCQkJCSAgICA9IFtS
ZWdpc3Rlci5UIHtyZWcgPSBSZWdpc3Rlci5FQ1gsDQoJCQkJCQkgICBwYXJ0ID0gUmVnaXN0ZXIu
TH0sDQoJCQkJICAgICAgIFJlZ2lzdGVyLlQge3JlZyA9IFJlZ2lzdGVyLkVDWCwNCgkJCQkJCSAg
IHBhcnQgPSBSZWdpc3Rlci5YfSwNCgkJCQkgICAgICAgUmVnaXN0ZXIuVCB7cmVnID0gUmVnaXN0
ZXIuRUNYLA0KCQkJCQkJICAgcGFydCA9IFJlZ2lzdGVyLkV9XSwNCgkJCQkgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uIA0KCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJICAgICAgIHZh
bCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJCQkgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9kc3Qs
DQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkg
PSBSQS5hbGxvY2F0ZU9wZXJhbmQgDQoJCQkJICAge29wZXJhbmQgPSBkc3QsDQoJCQkJICAgIG9w
dGlvbnMgPSB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkgICAgICAgaW1tZWRpYXRlID0gZmFsc2Us
DQoJCQkJCSAgICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkgICAgICAgYWRkcmVzcyA9IHRydWV9
LA0KCQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgc2l6ZSA9IHNpemUsDQoJCQkJICAgIG1v
dmUgPSB0cnVlLA0KCQkJCSAgICBzdXBwb3J0cyA9IFtdLA0KCQkJCSAgICBzYXZlcyA9IFtjb3Vu
dCxmaW5hbF9jb3VudF0sDQoJCQkJICAgIGZvcmNlID0gW10sDQoJCQkJICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiANCgkJCQkgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgIGluDQoJCQkg
ICAgICAge2ZpbmFsX2NvdW50ID0gZmluYWxfY291bnQsDQoJCQkJYXNzZW1ibHlfY291bnQgPSBh
c3NlbWJseV9jb3VudCwNCgkJCQlmaW5hbF9kc3QgPSBmaW5hbF9kc3QsDQoJCQkJYXNzZW1ibHlf
ZHN0ID0gYXNzZW1ibHlfZHN0LA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCSAgICAgZW5kDQoNCgkJICB2YWwgZmluYWxfY291bnQNCgkJICAgID0gY2Fz
ZSBmaW5hbF9jb3VudA0KCQkJb2YgT3BlcmFuZC5SZWdpc3RlciBfIA0KCQkJID0+IE9wZXJhbmQu
cmVnaXN0ZXIgDQoJCQkgICAgKFJlZ2lzdGVyLlQge3JlZyA9IFJlZ2lzdGVyLkVDWCwNCgkJCQkJ
IHBhcnQgPSBSZWdpc3Rlci5MfSkNCgkJICAgICAgICAgfCBfID0+IGZpbmFsX2NvdW50DQoNCgkJ
ICB2YWwgaW5zdHJ1Y3Rpb24gDQoJCSAgICA9IEluc3RydWN0aW9uLlNSQUwNCgkJICAgICAge29w
ZXIgPSBvcGVyLA0KCQkgICAgICAgY291bnQgPSBmaW5hbF9jb3VudCwNCgkJICAgICAgIGRzdCA9
IGZpbmFsX2RzdCwNCgkJICAgICAgIHNpemUgPSBzaXplfQ0KDQoJCSAgdmFsIHt1c2VzID0gZmlu
YWxfdXNlcywNCgkJICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJCSAgICAgICAuLi59DQoJ
CSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCSAgdmFs
IHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBm
aW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMg
PSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBO
b3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fzc2VtYmx5X3By
ZSwNCgkJCQkgICBhc3NlbWJseV9jb3VudCwNCgkJCQkgICBhc3NlbWJseV9kc3QsDQoJCQkJICAg
W0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0
XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQN
CiAgICAgICAgICAgICB8IENNUCB7c3JjMiwgc3JjMSwgc2l6ZX0NCgkgICAgICAgKCogQXJpdGht
ZXRpYyBjb21wYXJlOyAgcC4gMTE2DQoJCSogUmVxdWlyZSBzcmMxL3NyYzIgb3BlcmFuZHMgYXMg
Zm9sbG93czoNCgkJKg0KCQkqICAgICAgICAgICAgICAgc3JjMg0KCQkqICAgICAgICAgICByZWcg
aW1tIGxhYiBhZGQgDQoJCSogICAgICAgcmVnICBYICAgWCAgICAgICBYDQoJCSogIHNyYzEgaW1t
DQoJCSogICAgICAgbGFiDQoJCSogICAgICAgYWRkICBYICAgWA0KCQkqKQ0KCSAgICAgPT4gbGV0
DQoJCSAgdmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2Rl
ZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0K
CQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2Vz
LA0KCQkJICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAg
ICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoNCgkJICB2YWwge2ZpbmFsX3NyYzEsDQoJCSAgICAgICBmaW5hbF9zcmMyLA0K
CQkgICAgICAgYXNzZW1ibHlfc3JjMV9zcmMyLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkgICAgPSBhbGxvY2F0ZVNyYzFTcmMyIA0KCQkgICAgICB7c3JjMSA9IHNyYzEsDQoJCSAg
ICAgICBzcmMyID0gc3JjMiwNCgkJICAgICAgIHNpemUgPSBzaXplLA0KCQkgICAgICAgaW5mbyA9
IGluZm8sDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uQ01QIA0KCQkgICAg
ICB7c3JjMSA9IGZpbmFsX3NyYzEsDQoJCSAgICAgICBzcmMyID0gZmluYWxfc3JjMiwNCgkJICAg
ICAgIHNpemUgPSBzaXplfQ0KDQoJCSAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJICAgICAg
IGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJCSAgICAgICAuLi59DQoJCSAgICA9IEluc3RydWN0aW9u
LnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2Vt
Ymx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qg
e3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAg
ICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJ
ICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3Nl
bWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICBhc3NlbWJs
eV9zcmMxX3NyYzIsDQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwN
CgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCiAgICAgICAgICAgICB8IFRFU1Qge3NyYzIsIHNyYzEsIHNp
emV9DQoJICAgICAgICgqIExvZ2ljYWwgY29tcGFyZTsgcC4gNzI4DQoJCSogUmVxdWlyZSBzcmMx
L3NyYzIgb3BlcmFuZHMgYXMgZm9sbG93czoNCgkJKg0KCQkqICAgICAgICAgICAgICAgc3JjMg0K
CQkqICAgICAgICAgICByZWcgaW1tIGxhYiBhZGQgDQoJCSogICAgICAgcmVnICBYICAgWCAgICAg
ICBYDQoJCSogIHNyYzEgaW1tICANCgkJKiAgICAgICBsYWINCgkJKiAgICAgICBhZGQgIFggICBY
ICAgIA0KCQkqKQ0KICAgICAgICAgICAgID0+IGxldA0KCQkgIHZhbCB7dXNlcyxkZWZzLGtpbGxz
fSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAg
dmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJCSAgICAgIGRlZnMgPSBkZWZzLA0K
CQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtmaW5h
bF9zcmMxLA0KCQkgICAgICAgZmluYWxfc3JjMiwNCgkJICAgICAgIGFzc2VtYmx5X3NyYzFfc3Jj
MiwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gYWxsb2NhdGVTcmMxU3Jj
MiANCgkJICAgICAge3NyYzEgPSBzcmMxLA0KCQkgICAgICAgc3JjMiA9IHNyYzIsDQoJCSAgICAg
ICBzaXplID0gc2l6ZSwNCgkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkgICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJ
CSAgICA9IEluc3RydWN0aW9uLlRFU1QNCgkJICAgICAge3NyYzEgPSBmaW5hbF9zcmMxLA0KCQkg
ICAgICAgc3JjMiA9IGZpbmFsX3NyYzIsDQoJCSAgICAgICBzaXplID0gc2l6ZX0NCg0KCQkgIHZh
bCB7dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAgICAgICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkg
ICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rp
b24NCg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wb3N0IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBm
aW5hbF91c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAg
ICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAg
ICAgICBvcGVyID0gTm9ybWFsLA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7YXNzZW1ibHkgDQoJCSAgID0gTGlzdC5mbGF0dGVu
IFthc3NlbWJseV9wcmUsDQoJCQkJICAgYXNzZW1ibHlfc3JjMV9zcmMyLA0KCQkJCSAgIFtBc3Nl
bWJseS5pbnN0cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJICAgYXNzZW1ibHlfcG9zdF0sDQoJ
CSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5kDQoJICAg
ICB8IFNFVGNjIHtjb25kaXRpb24sIGRzdCwgc2l6ZX0NCgkgICAgICAgKCogU2V0IGJ5dGUgb24g
Y29uZGl0aW9uOyBwLiA2NzINCgkJKiBSZXF1aXJlIGRzdCBvcGVyYW5kIGFzIGZvbGxvd3M6DQoJ
CSoNCgkJKiAgICAgICAgICAgICAgICBkc3QNCgkJKiAgICAgICAgICAgIHJlZyBpbW0gbGFiIGFk
ZA0KCQkqICAgICAgICAgICAgICogICAgICAgICAgIFgNCgkJKiAgKiBvbmx5IGJ5dGUgcmVnaXN0
ZXJzDQoJCSopDQoJICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAg
ICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNz
ZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAg
IGtpbGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZp
bmFsX2RzdCwNCgkJICAgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfZHN0LA0KCQkgICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0
ZU9wZXJhbmQge29wZXJhbmQgPSBkc3QsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRy
dWUsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZh
bHNlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gZmFsc2V9LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0K
CQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1vdmUgPSBmYWxzZSwNCgkJCQkJICBzdXBwb3J0
cyA9IFtdLA0KCQkJCQkgIHNhdmVzID0gW10sDQoJCQkJCSAgZm9yY2UgDQoJCQkJCSAgPSBSZWdp
c3Rlci53aXRoTG93UGFydCAoc2l6ZSwgDQoJCQkJCQkJCSAgU2l6ZS5CWVRFKSwNCgkJCQkJICBy
ZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2
YWwge3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJ
ICAgICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzDQoJCSAgICAg
IChJbnN0cnVjdGlvbi5TRVRjYyB7Y29uZGl0aW9uID0gY29uZGl0aW9uLA0KCQkJCQkgIGRzdCA9
IGZpbmFsX2RzdCwNCgkJCQkJICBzaXplID0gc2l6ZX0pDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0g
YXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEu
cG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJ
CQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMs
DQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwg
dGVtcF9yZWcNCgkJICAgID0gY2FzZSBmaW5hbF9kc3QNCgkJCW9mIE9wZXJhbmQuUmVnaXN0ZXIg
ciANCgkJCSA9PiBSZWdpc3Rlci5sb3dQYXJ0T2YgKHIsIFNpemUuQllURSkNCgkJCSB8IF8gDQoJ
CQkgPT4gRXJyb3IuYnVnICJhbGxvY2F0ZVJlZ2lzdGVyczogU0VUY2MsIHRlbXBfcmVnIg0KCQlp
bg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fzc2VtYmx5X3ByZSwNCgkJ
CQkgICBhc3NlbWJseV9kc3QsDQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uX3NldGNjDQoJ
CQkJICAgIHtjb25kaXRpb24gPSBjb25kaXRpb24sDQoJCQkJICAgICBkc3QgPSBPcGVyYW5kLnJl
Z2lzdGVyIHRlbXBfcmVnLA0KCQkJCSAgICAgc2l6ZSA9IFNpemUuQllURX1dLA0KCQkJCSAgIGlm
IHNpemUgPSBTaXplLkJZVEUNCgkJCQkgICAgIHRoZW4gW10NCgkJCQkgICAgIGVsc2UgW0Fzc2Vt
Ymx5Lmluc3RydWN0aW9uX21vdngNCgkJCQkJICAge29wZXIgPSBJbnN0cnVjdGlvbi5NT1ZaWCwN
CgkJCQkJICAgIGRzdCA9IGZpbmFsX2RzdCwNCgkJCQkJICAgIHNyYyA9IE9wZXJhbmQucmVnaXN0
ZXIgdGVtcF9yZWcsDQoJCQkJCSAgICBkc3RzaXplID0gc2l6ZSwNCgkJCQkJICAgIHNyY3NpemUg
PSBTaXplLkJZVEV9XSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCiAgICAgICAgICAgICB8IEpNUCB7
dGFyZ2V0LCBhYnNvbHV0ZX0NCgkgICAgICAgKCogSnVtcDsgcC4gMzczDQoJCSogUmVxdWlyZSB0
YXJnZXQgb3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICB0YXJnZXQN
CgkJKiAgICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZA0KCQkqICAgICAgICAgICAgIFggICBYICAg
WCAgIFgNCgkJKikNCgkgICAgID0+IGxldA0KCQkgIHZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJ
ICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAgdmFsIHth
c3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
ICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJCSAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAg
ICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtvcGVyYW5kID0g
ZmluYWxfdGFyZ2V0LA0KCQkgICAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV90YXJnZXQsDQoJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IHRhcmdldCwNCgkJCQkJICBvcHRpb25zID0ge3Jl
Z2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0gdHJ1ZSwNCgkJCQkJCSAgICAg
bGFiZWwgPSB0cnVlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0sDQoJCQkJCSAgaW5mbyA9
IGluZm8sDQoJCQkJCSAgc2l6ZSA9IFNpemUuTE9ORywNCgkJCQkJICBtb3ZlID0gdHJ1ZSwNCgkJ
CQkJICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkgIHNhdmVzID0gW10sDQoJCQkJCSAgZm9yY2UgPSBb
XSwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uSk1QDQoJCSAg
ICAgIHt0YXJnZXQgPSBmaW5hbF90YXJnZXQsDQoJCSAgICAgICBhYnNvbHV0ZSA9IGFic29sdXRl
fQ0KDQoJCSAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJICAgICAgIGRlZnMgPSBmaW5hbF9k
ZWZzLCAgDQoJCSAgICAgICAuLi59DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxs
cyBpbnN0cnVjdGlvbg0KDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0K
CQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZz
LA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBp
bmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0
aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBM
aXN0LmZsYXR0ZW4gW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICBhc3NlbWJseV90YXJnZXQsDQoJCQkJ
ICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9w
b3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQll
bmQNCgkgICAgIHwgSmNjIHtjb25kaXRpb24sIHRhcmdldH0NCgkgICAgICAgKCogSnVtcCBpZiBj
b25kaXRpb24gaXMgbWV0OyBwLiAzNjkNCgkJKiBSZXF1aXJlIHRhcmdldCBvcGVyYW5kIGFzIGZv
bGxvd3M6DQoJCSoNCgkJKiAgICAgICAgICAgICAgIHRhcmdldA0KCQkqICAgICAgICAgICAgcmVn
IGltbSBsYWIgYWRkDQoJCSogICAgICAgICAgICAgICAgIFggICBYDQoJCSopDQoJICAgICA9PiBs
ZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNf
ZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUs
DQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9IHVz
ZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMsDQoJCQkg
ICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3RhcmdldCwNCgkJICAgICAg
IGFzc2VtYmx5ID0gYXNzZW1ibHlfdGFyZ2V0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQge29wZXJh
bmQgPSB0YXJnZXQsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IGZhbHNlLA0KCQkJCQkJ
ICAgICBpbW1lZGlhdGUgPSB0cnVlLA0KCQkJCQkJICAgICBsYWJlbCA9IHRydWUsDQoJCQkJCQkg
ICAgIGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9
IFNpemUuTE9ORywNCgkJCQkJICBtb3ZlID0gdHJ1ZSwNCgkJCQkJICBzdXBwb3J0cyA9IFtdLA0K
CQkJCQkgIHNhdmVzID0gW10sDQoJCQkJCSAgZm9yY2UgPSBbXSwNCgkJCQkJICByZWdpc3RlckFs
bG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwgaW5zdHJ1
Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uSmNjDQoJCSAgICAgIHtjb25kaXRpb24gPSBjb25k
aXRpb24sDQoJCSAgICAgICB0YXJnZXQgPSBmaW5hbF90YXJnZXR9DQoNCgkJICB2YWwge3VzZXMg
PSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4u
Ln0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJ
ICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNl
cyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxf
ZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3Bl
ciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9j
YXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5IA0KCQkgICA9IExpc3QuZmxhdHRlbiBbYXNzZW1i
bHlfcHJlLA0KCQkJCSAgIGFzc2VtYmx5X3RhcmdldCwNCgkJCQkgICBbQXNzZW1ibHkuaW5zdHJ1
Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0KCQkJCSAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KICAgICAgICAgICAgIHwg
Q0FMTCB7dGFyZ2V0LCBhYnNvbHV0ZX0NCgkgICAgICAgKCogQ2FsbCBwcm9jZWR1cmU7IHAuIDkz
IA0KCQkqIFJlcXVpcmUgdGFyZ2V0IG9wZXJhbmQgYXMgZm9sbG93czoNCgkJKg0KCQkqICAgICAg
ICAgICAgICAgdGFyZ2V0DQoJCSogICAgICAgICAgICByZWcgaW1tIGxhYiBhZGQNCgkJKiAgICAg
ICAgICAgICBYICAgWCAgIFggICBYDQoJCSopDQoJICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMs
ZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVj
dGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZz
ID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywN
CgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkg
IHZhbCB7b3BlcmFuZCA9IGZpbmFsX3RhcmdldCwNCgkJICAgICAgIGFzc2VtYmx5ID0gYXNzZW1i
bHlfdGFyZ2V0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQge29wZXJhbmQgPSB0YXJnZXQsDQoJCQkJ
CSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IHRy
dWUsDQoJCQkJCQkgICAgIGxhYmVsID0gdHJ1ZSwNCgkJCQkJCSAgICAgYWRkcmVzcyA9IHRydWV9
LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBTaXplLkxPTkcsDQoJCQkJCSAg
bW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbXSwNCgkJCQkJICBzYXZlcyA9IFtdLA0K
CQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJCSAgICA9IEluc3Ry
dWN0aW9uLkNBTEwNCgkJICAgICAge3RhcmdldCA9IGZpbmFsX3RhcmdldCwNCgkJICAgICAgIGFi
c29sdXRlID0gYWJzb2x1dGV9DQoNCgkJICB2YWwge3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAg
ICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rp
b24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNz
ZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucG9z
dCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkg
ICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJ
CQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAgICAg
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJCSAge2Fz
c2VtYmx5IA0KCQkgICA9IExpc3QuZmxhdHRlbiBbYXNzZW1ibHlfcHJlLA0KCQkJCSAgIGFzc2Vt
Ymx5X3RhcmdldCwNCgkJCQkgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0K
CQkJCSAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCWVuZA0KICAgICAgICAgICAgIHwgUkVUIHtzcmMgPSBTT01FIHNyY30N
CgkgICAgICAgKCogUmV0dXJuIGZyb20gcHJvY2VkdXJlOyBwLiA2NDggDQoJCSogUmVxdWlyZSBv
cHRpb25hbCBzcmMgb3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICAg
c3JjDQoJCSogICAgICAgICAgICByZWcgaW1tIGxhYiBhZGQNCgkJKiAgICAgICAgICAgICAgICAg
WCAgIA0KCQkqKQ0KICAgICAgICAgICAgID0+IGxldA0KCQkgIHZhbCB7dXNlcyxkZWZzLGtpbGxz
fSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAg
dmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJCSAgICAgIGRlZnMgPSBkZWZzLA0K
CQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtvcGVy
YW5kID0gZmluYWxfc3JjLA0KCQkgICAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9zcmMsDQoJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IHNyYywNCgkJCQkJICBvcHRpb25zID0ge3JlZ2lz
dGVyID0gZmFsc2UsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IHRydWUsDQoJCQkJCQkgICAgIGxh
YmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJCSAgaW5mbyA9
IGluZm8sDQoJCQkJCSAgc2l6ZSA9IFNpemUuTE9ORywNCgkJCQkJICBtb3ZlID0gdHJ1ZSwNCgkJ
CQkJICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkgIHNhdmVzID0gW10sDQoJCQkJCSAgZm9yY2UgPSBb
XSwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uUkVUDQoJCSAg
ICAgIHtzcmMgPSBTT01FIGZpbmFsX3NyY30NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFsX3VzZXMs
DQoJCSAgICAgICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJ
bnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCg0KCQkgIHZhbCB7YXNzZW1i
bHkgPSBhc3NlbWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAg
PSBSQS5wb3N0IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmluYWxfdXNl
cywNCgkJCSAgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0gZmluYWxf
ZGVmcywNCgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9ybWFsLA0K
CQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJaW4N
CgkJICB7YXNzZW1ibHkgDQoJCSAgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUsDQoJCQkJ
ICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9w
b3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQll
bmQNCiAgICAgICAgICAgICB8IFJFVCB7c3JjID0gTk9ORX0NCgkgICAgID0+IGxldA0KCQkgIHZh
bCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxz
IGluc3RydWN0aW9uDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJCSAg
ICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGluZm8g
PSBpbmZvLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJCSAgICA9IEluc3RydWN0aW9uLlJFVA0KCQkgICAg
ICB7c3JjID0gTk9ORX0NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAgICAgICBk
ZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVjdGlvbi51
c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJs
eV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wb3N0IHt1
c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAg
ICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJCSAg
ICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9ybWFsLA0KCQkJICAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7YXNzZW1i
bHkgDQoJCSAgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUsDQoJCQkJICAgW0Fzc2VtYmx5
Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAg
cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCgkgICAgIHwg
cE1PViB7b3Blciwgc3JjLCBkc3QsIHNpemV9DQoJICAgICAgICgqIFBzZXVkbyBtb3ZlOyBwLiA0
NDIgDQoJCSogUmVxdWlyZSBzcmMvZHN0IG9wZXJhbmRzIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAg
ICAgICAgICAgICAgZHN0DQoJCSogICAgICAgICAgcmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAg
cmVnICBYICAgICAgICAgICBYDQoJCSogIHNyYyBpbW0gIFggICAgICAgICAgIFgNCgkJKiAgICAg
IGxhYg0KCQkqICAgICAgYWRkICBYDQoJCSopDQoJICAgICA9PiBsZXQNCgkJICBmdW4gZGVmYXVs
dCAoKQ0KCQkgICAgPSBsZXQNCgkJCXZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJCSAgPSBJbnN0
cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJCXZhbCB7YXNzZW1ibHkgPSBh
c3NlbWJseV9wcmUsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgPSBSQS5wcmUg
e3VzZXMgPSB1c2VzLA0KCQkJCSAgICBkZWZzID0gZGVmcywNCgkJCQkgICAga2lsbHMgPSBraWxs
cywNCgkJCQkgICAgaW5mbyA9IGluZm8sDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJdmFsIGFzc2VtYmx5X3ByZQ0KCQkJICA9IGFzc2VtYmx5
X3ByZSANCgkJCSAgDQoJCQl2YWwge2ZpbmFsX3NyYywNCgkJCSAgICAgZmluYWxfZHN0LA0KCQkJ
ICAgICBhc3NlbWJseV9zcmNfZHN0LA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkg
ID0gYWxsb2NhdGVTcmNEc3QNCgkJCSAgICB7c3JjID0gc3JjLA0KCQkJICAgICBkc3QgPSBkc3Qs
DQoJCQkgICAgIG1vdmVfZHN0ID0gZmFsc2UsDQoJCQkgICAgIHNpemUgPSBzaXplLA0KCQkJICAg
ICBpbmZvID0gaW5mbywNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KDQoJCQl2YWwgYXNzZW1ibHlfc3JjX2RzdA0KCQkJICA9IGFzc2VtYmx5X3NyY19k
c3QNCgkNCgkJCXZhbCBpc0NvbnN0MA0KCQkJICA9IGZuIEltbWVkaWF0ZS5DaGFyICMiXDAwMCIg
PT4gdHJ1ZQ0KCQkJICAgICB8IEltbWVkaWF0ZS5JbnQgMCA9PiB0cnVlDQoJCQkgICAgIHwgSW1t
ZWRpYXRlLldvcmQgMHd4MCA9PiB0cnVlDQoJCQkgICAgIHwgXyA9PiBmYWxzZQ0KDQoJCQkoKiBz
cGVjaWFsIGNhc2UgbW92aW5nIDAgDQoJCQkgKiB0byBhIHJlZ2lzdGVyDQoJCQkgKikNCgkJCXZh
bCBpbnN0cnVjdGlvbg0KCQkJICA9IGNhc2UgKGZpbmFsX3NyYywgZmluYWxfZHN0KQ0KCQkJICAg
ICAgb2YgKE9wZXJhbmQuSW1tZWRpYXRlIChJbW1lZGlhdGUuQ29uc3QgYyksDQoJCQkJICBPcGVy
YW5kLlJlZ2lzdGVyIF8pDQoJCQkgICAgICAgPT4gaWYgaXNDb25zdDAgYw0KCQkJCSAgICB0aGVu
IEluc3RydWN0aW9uLkJpbkFMDQoJCQkJICAgICAgICAge29wZXIgPSBYT1IsDQoJCQkJCSAgc3Jj
ID0gZmluYWxfZHN0LA0KCQkJCQkgIGRzdCA9IGZpbmFsX2RzdCwNCgkJCQkJICBzaXplID0gc2l6
ZX0NCgkJCQkgICAgZWxzZSBJbnN0cnVjdGlvbi5NT1YNCgkJCQkgICAgICAgICB7c3JjID0gZmlu
YWxfc3JjLA0KCQkJCQkgIGRzdCA9IGZpbmFsX2RzdCwNCgkJCQkJICBzaXplID0gc2l6ZX0NCgkJ
CSAgICAgICB8IF8gPT4gSW5zdHJ1Y3Rpb24uTU9WDQoJCQkJICAgICAge3NyYyA9IGZpbmFsX3Ny
YywNCgkJCQkgICAgICAgZHN0ID0gZmluYWxfZHN0LA0KCQkJCSAgICAgICBzaXplID0gc2l6ZX0N
Cg0KCQkJdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAgZGVmcyA9IGZpbmFsX2RlZnMs
ICANCgkJCSAgICAgLi4ufQ0KCQkJICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0
cnVjdGlvbg0KDQoJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJCSAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJCSAgICAg
ZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJICAgICBkZWZzID0gZGVmcywNCgkJCQkgICAg
IGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJCSAgICAgaW5mbyA9IGluZm8sDQoJCQkJICAg
ICBvcGVyID0gb3BlciwNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCSAgDQoJCQl2YWwgYXNzZW1ibHlfcG9zdA0KCQkJICA9IGFzc2VtYmx5X3Bv
c3QgDQoJCSAgICAgIGluDQoJCQl7YXNzZW1ibHkgDQoJCQkgPSBMaXN0LmZsYXR0ZW4gW2Fzc2Vt
Ymx5X3ByZSwNCgkJCQkJIGFzc2VtYmx5X3NyY19kc3QsDQoJCQkJCSBbQXNzZW1ibHkuaW5zdHJ1
Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0KCQkJCQkgYXNzZW1ibHlfcG9zdF0sDQoJCQkgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICBlbmQNCgkJaW4NCgkJICBj
YXNlIChzcmMsZHN0KQ0KCQkgICAgb2YgKE9wZXJhbmQuTWVtTG9jIG1lbWxvY19zcmMsIE9wZXJh
bmQuTWVtTG9jIG1lbWxvY19kc3QpDQoJCSAgICAgPT4gKGNhc2UgKFJBLmFsbG9jYXRlZA0KCQkJ
ICAgICAgIHttZW1sb2MgPSBtZW1sb2Nfc3JjLA0KCQkJCXJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJl
Z2lzdGVyQWxsb2NhdGlvbn0sDQoJCQkgICAgICAgUkEuYWxsb2NhdGVkDQoJCQkgICAgICAge21l
bWxvYyA9IG1lbWxvY19kc3QsDQoJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufSkNCgkJCSAgIG9mIChTT01FIHtyZWdpc3RlciA9IHJlZ2lzdGVyX3NyYywNCgkJCQkg
ICAgIHN5bmMgPSBzeW5jX3NyYywNCgkJCQkgICAgIGNvbW1pdCA9IGNvbW1pdF9zcmMsDQoJCQkJ
ICAgICAuLi59LA0KCQkJICAgICAgIE5PTkUpDQoJCQkgICAgPT4gaWYgTGlzdC5jb250YWlucyhk
ZWFkLG1lbWxvY19zcmMsTWVtTG9jLmVxKQ0KCQkJICAgICAgICAgIG9yZWxzZQ0KCQkJCSAgKExp
c3QuY29udGFpbnMocmVtb3ZlLG1lbWxvY19zcmMsTWVtTG9jLmVxKQ0KCQkJCSAgIGFuZGFsc28N
CgkJCQkgICBzeW5jX3NyYykNCgkJCQkgdGhlbiBsZXQNCgkJCQkJdmFsIHt1c2VzLGRlZnMsa2ls
bHN9IA0KCQkJCQkgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIA0KCQkJCQkgICAgaW5z
dHJ1Y3Rpb24NCgkJCQkJdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJCQkJICAgICBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCSAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJCQkJ
ICAgIGRlZnMgPSBkZWZzLA0KCQkJCQkJICAgIGtpbGxzID0ga2lsbHMsDQoJCQkJCQkgICAgaW5m
byA9IGluZm8sDQoJCQkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICANCgkJCQkJdmFsIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkgID0gUkEudXBkYXRlIA0KCQkJCQkgICAge3ZhbHVlID0ge3JlZ2lzdGVyID0gcmVnaXN0ZXJf
c3JjLA0KCQkJCQkJICAgICAgbWVtbG9jID0gbWVtbG9jX2RzdCwNCgkJCQkJCSAgICAgIHdlaWdo
dCA9IDEwMjQsDQoJCQkJCQkgICAgICBzeW5jID0gZmFsc2UsDQoJCQkJCQkgICAgICBjb21taXQg
PSBjb21taXRfc3JjfSwNCgkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgICAg
PSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCQkJdmFsIGZpbmFsX3VzZXMgPSBbXQ0KCQkJCQl2
YWwgZmluYWxfZGVmcyANCgkJCQkJICA9IFtPcGVyYW5kLnJlZ2lzdGVyIHJlZ2lzdGVyX3NyY10N
Cg0KCQkJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJCQkJICAgICByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCQkJCSAgPSBSQS5wb3N0IHt1c2VzID0gdXNlcywNCgkJCQkJCSAgICAg
ZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJCQkgICAgIGRlZnMgPSBkZWZzLA0KCQkJCQkJ
ICAgICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJCQkJCSAgICAgaW5mbyA9IGluZm8sDQoJ
CQkJCQkgICAgIG9wZXIgPSBvcGVyLA0KCQkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJ
CQkJCQkgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgICAgIGluDQoJCQkJCXthc3Nl
bWJseSANCgkJCQkJID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUsDQoJCQkJCQkJIGFzc2Vt
Ymx5X3Bvc3RdLA0KCQkJCQkgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCQkJICAgICAgZW5kDQoJCQkJIGVsc2UgZGVmYXVsdCAoKQ0KCQkJICAgIHwg
XyA9PiBkZWZhdWx0ICgpKQ0KCQkgICAgIHwgXyA9PiBkZWZhdWx0ICgpDQoJCWVuZA0KICAgICAg
ICAgICAgIHwgQ01PVmNjIHtjb25kaXRpb24sIHNyYywgZHN0LCBzaXplfQ0KICAgICAgICAgICAg
ICAgKCogQ29uZGl0aW9uYWwgbW92ZTsgcC4gMTEyDQoJCSogUmVxdWlyZSBzcmMvZHN0IG9wZXJh
bmRzIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAgICAgICAgICAgICAgZHN0DQoJCSogICAgICAgICAg
cmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAgcmVnICBYDQoJCSogIHNyYyBpbW0gICAgICAgICAg
IA0KCQkqICAgICAgbGFiDQoJCSogICAgICBhZGQgIFgNCgkJKikNCgkgICAgID0+IGxldA0KCQkg
IHZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tp
bGxzIGluc3RydWN0aW9uDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJ
CSAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGlu
Zm8gPSBpbmZvLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KDQoJCSAgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjLCANCgkJICAgICAgIGFzc2VtYmx5
ID0gYXNzZW1ibHlfc3JjLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBS
QS5hbGxvY2F0ZU9wZXJhbmQge29wZXJhbmQgPSBzcmMsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdp
c3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBs
YWJlbCA9IGZhbHNlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0sIA0KCQkJCQkgIGluZm8g
PSBpbmZvLA0KCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1vdmUgPSB0cnVlLA0KCQkJCQkg
IHN1cHBvcnRzID0gW2RzdF0sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICBmb3JjZSA9IFtd
LA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJICAgICAgIGFzc2VtYmx5ID0g
YXNzZW1ibHlfZHN0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQge29wZXJhbmQgPSBkc3QsDQoJCQkJ
CSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IGZh
bHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gZmFs
c2V9LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1v
dmUgPSBmYWxzZSwNCgkJCQkJICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkgIHNhdmVzID0gW3NyYyxm
aW5hbF9zcmNdLA0KCQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9u
IA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJ
CSAgICA9IEluc3RydWN0aW9uLkNNT1ZjYyANCgkJICAgICAge2NvbmRpdGlvbiA9IGNvbmRpdGlv
biwNCgkJICAgICAgIHNyYyA9IGZpbmFsX3NyYywNCgkJICAgICAgIGRzdCA9IGZpbmFsX2RzdCwN
CgkJICAgICAgIHNpemUgPSBzaXplfQ0KDQoJCSAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJ
ICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJCSAgICAgICAuLi59DQoJCSAgICA9IEluc3Ry
dWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCSAgdmFsIHthc3NlbWJseSA9
IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0K
CQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZz
LA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkg
ICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkg
IHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICBh
c3NlbWJseV9zcmMsDQoJCQkJICAgYXNzZW1ibHlfZHN0LA0KCQkJCSAgIFtBc3NlbWJseS5pbnN0
cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lz
dGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5kDQogICAgICAgICAgICAg
fCBYQ0hHIHtzcmMsIGRzdCwgc2l6ZX0NCiAgICAgICAJICAgICAgICgqIEV4Y2hhbmdlIHJlZ2lz
dGVyL21lbW9yeSB3aXRoIHJlZ2lzdGVyOyBwLiA3NTQNCgkJKiBSZXF1aXJlIHNyYy9kc3Qgb3Bl
cmFuZHMgYXMgZm9sbG93czoNCgkJKg0KCQkqICAgICAgICAgICAgICBkc3QNCgkJKiAgICAgICAg
ICByZWcgaW1tIGxhYiBhZGQgDQoJCSogICAgICByZWcgIFggICAgICAgICAgIFgNCgkJKiAgc3Jj
IGltbSAgICAgICAgICAgDQoJCSogICAgICBsYWINCgkJKiAgICAgIGFkZCAgWA0KCQkqKQ0KCSAg
ICAgPT4gbGV0DQoJCSAgdmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlv
bi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1i
bHlfcHJlLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3Vz
ZXMgPSB1c2VzLA0KCQkJICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxz
LA0KCQkJICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwge2ZpbmFsX3NyYywNCgkJICAgICAgIGZpbmFs
X2RzdCwNCgkJICAgICAgIGFzc2VtYmx5X3NyY19kc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9j
YXRpb259DQoJCSAgICA9IGFsbG9jYXRlU3JjRHN0IHtzcmMgPSBzcmMsDQoJCQkJICAgICAgZHN0
ID0gZHN0LA0KCQkJCSAgICAgIG1vdmVfZHN0ID0gdHJ1ZSwNCgkJCQkgICAgICBzaXplID0gc2l6
ZSwNCgkJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5z
dHJ1Y3Rpb24uWENIRw0KCQkgICAgICB7c3JjID0gZmluYWxfc3JjLA0KCQkgICAgICAgZHN0ID0g
ZmluYWxfZHN0LA0KCQkgICAgICAgc2l6ZSA9IHNpemV9DQoNCgkJICB2YWwge3VzZXMgPSBmaW5h
bF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4uLn0NCgkJ
ICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJICB2YWwg
e2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZp
bmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9
IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5v
cm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCWluDQoJCSAge2Fzc2VtYmx5IA0KCQkgICA9IExpc3QuZmxhdHRlbiBbYXNzZW1ibHlfcHJl
LA0KCQkJCSAgIGFzc2VtYmx5X3NyY19kc3QsDQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9u
IGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCiAgICAgICAgICAgICB8IHBQVVNI
IHtzcmMsIGJhc2UsIHNpemV9DQogIAkgICAgICAgKCogUHNldWRvIHB1c2ggYSB2YWx1ZSBvbnRv
IHRoZSBzdGFjazsgcC4gNjIxDQoJCSogUmVxdWlyZSBzcmMgb3BlcmFuZCBhcyBmb2xsb3dzOg0K
CQkqDQoJCSogICAgICAgICAgICAgICBzcmMNCgkJKiAgICAgICAgICAgcmVnIGltbSBsYWIgYWRk
DQoJCSogICAgICAgICAgICAqICAgWCAgICAgICBYDQoJCSogICAqIG9ubHkgd29yZCBvciBsb25n
IHJlZ2lzdGVycw0KCQkqDQoJCSogICAgICAgICAgICAgICBiYXNlDQoJCSogICAgICAgICAgIHJl
ZyBpbW0gbGFiIGFkZA0KCQkqICAgICAgICAgICAgKg0KCQkqICAgKiBvbmx5ICVlc3ANCgkJKikN
CiAgICAgICAgICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9
IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1i
bHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9
IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtp
bGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFs
X2Jhc2UsDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Jhc2UsDQoJCSAgICAgICByZWdp
c3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IGJh
c2UsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGltbWVk
aWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkJICAgICBhZGRy
ZXNzID0gZmFsc2V9LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBTaXplLkxP
TkcsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbc3JjXSwNCgkJCQkJ
ICBzYXZlcyA9IFtdLA0KCQkJCQkgIGZvcmNlID0gW1JlZ2lzdGVyLmVzcF0sDQoJCQkJCSAgcmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFs
IG9wdGlvbnMNCgkJICAgID0gY2FzZSBzaXplDQoJCQlvZiBTaXplLldPUkQNCgkJCSA9PiB7cmVn
aXN0ZXIgPSB0cnVlLA0KCQkJICAgICBpbW1lZGlhdGUgPSB0cnVlLA0KCQkJICAgICBsYWJlbCA9
IGZhbHNlLA0KCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0NCgkJCSB8IFNpemUuTE9ORw0KCQkJID0+
IHtyZWdpc3RlciA9IHRydWUsDQoJCQkgICAgIGltbWVkaWF0ZSA9IHRydWUsDQoJCQkgICAgIGxh
YmVsID0gZmFsc2UsDQoJCQkgICAgIGFkZHJlc3MgPSB0cnVlfQ0KCQkJIHwgXw0KCQkJID0+IHty
ZWdpc3RlciA9IGZhbHNlLA0KCQkJICAgICBpbW1lZGlhdGUgPSB0cnVlLA0KCQkJICAgICBsYWJl
bCA9IGZhbHNlLA0KCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9
IGZpbmFsX3NyYywgDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYywNCgkJICAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEuYWxsb2NhdGVPcGVyYW5kIHtvcGVyYW5k
ID0gc3JjLA0KCQkJCQkgIG9wdGlvbnMgPSBvcHRpb25zLA0KCQkJCQkgIGluZm8gPSBpbmZvLA0K
CQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1vdmUgPSB0cnVlLA0KCQkJCQkgIHN1cHBvcnRz
ID0gW10sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICBmb3JjZSA9IFtdLA0KCQkJCQkgIHJl
Z2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZh
bCBpbnN0cnVjdGlvbg0KCQkgICAgPSBJbnN0cnVjdGlvbi5QVVNIDQoJCSAgICAgIHtzcmMgPSBm
aW5hbF9zcmMsDQoJCSAgICAgICBzaXplID0gc2l6ZX0NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFs
X3VzZXMsDQoJCSAgICAgICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAgICAgLi4ufQ0KCQkg
ICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCg0KCQkgIHZhbCB7
YXNzZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkgICAgPSBSQS5wb3N0IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmlu
YWxfdXNlcywNCgkJCSAgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0g
ZmluYWxfZGVmcywNCgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9y
bWFsLA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJaW4NCgkJICB7YXNzZW1ibHkgDQoJCSAgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUs
DQoJCQkJICAgYXNzZW1ibHlfYmFzZSwNCgkJCQkgICBhc3NlbWJseV9zcmMsDQoJCQkJICAgW0Fz
c2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwN
CgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCiAg
ICAgICAgICAgICB8IHBQT1Age2RzdCwgYmFzZSwgc2l6ZX0NCgkgICAgICAgKCogUHNldWRvIHBv
cCBhIHZhbHVlIGZyb20gdGhlIHN0YWNrOyBwLiA1NzENCgkJKiBSZXF1aXJlIGRzdCBvcGVyYW5k
IGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAgICAgICAgICAgICAgIGRzdA0KCQkqICAgICAgICAgICBy
ZWcgaW1tIGxhYiBhZGQNCgkJKiAgICAgICAgICAgICogICAgICAgICAgIFgNCgkJKiAgICogb25s
eSB3b3JkIG9yIGxvbmcgcmVnaXN0ZXJzDQoJCSogICAgICAgICAgICAgICBiYXNlDQoJCSogICAg
ICAgICAgIHJlZyBpbW0gbGFiIGFkZA0KCQkqICAgICAgICAgICAgKg0KCQkqICAgKiBvbmx5ICVl
c3ANCgkJKikNCiAgICAgICAgICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30g
DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZh
bCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJ
CSAgICAgIGtpbGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFu
ZCA9IGZpbmFsX2Jhc2UsDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Jhc2UsDQoJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCB7b3Bl
cmFuZCA9IGJhc2UsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkg
ICAgIGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkJ
ICAgICBhZGRyZXNzID0gZmFsc2V9LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUg
PSBTaXplLkxPTkcsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbZHN0
XSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkgIGZvcmNlID0gW1JlZ2lzdGVyLmVzcF0sDQoJ
CQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
DQoJCSAgdmFsIG9wdGlvbnMNCgkJICAgID0gY2FzZSBzaXplDQoJCQlvZiBTaXplLldPUkQNCgkJ
CSA9PiB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCSAg
ICAgbGFiZWwgPSBmYWxzZSwNCgkJCSAgICAgYWRkcmVzcyA9IHRydWV9DQoJCQkgfCBTaXplLkxP
TkcNCgkJCSA9PiB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJICAgICBpbW1lZGlhdGUgPSBmYWxzZSwN
CgkJCSAgICAgbGFiZWwgPSBmYWxzZSwNCgkJCSAgICAgYWRkcmVzcyA9IHRydWV9DQoJCQkgfCBf
DQoJCQkgPT4ge3JlZ2lzdGVyID0gZmFsc2UsDQoJCQkgICAgIGltbWVkaWF0ZSA9IGZhbHNlLA0K
CQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0NCg0KCQkgIHZh
bCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwgDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Rz
dCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEuYWxsb2NhdGVPcGVy
YW5kIHtvcGVyYW5kID0gZHN0LA0KCQkJCQkgIG9wdGlvbnMgPSBvcHRpb25zLA0KCQkJCQkgIGlu
Zm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1vdmUgPSBmYWxzZSwNCgkJ
CQkJICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkgIHNhdmVzID0gW10sDQoJCQkJCSAgZm9yY2UgPSBb
XSwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uUE9QDQoJCSAg
ICAgIHtkc3QgPSBmaW5hbF9kc3QsDQoJCSAgICAgICBzaXplID0gc2l6ZX0NCg0KCQkgIHZhbCB7
dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAgICAgICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAg
ICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24N
Cg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wb3N0IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5h
bF91c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBm
aW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAg
ICBvcGVyID0gTm9ybWFsLA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7YXNzZW1ibHkgDQoJCSAgID0gTGlzdC5mbGF0dGVuIFth
c3NlbWJseV9wcmUsDQoJCQkJICAgYXNzZW1ibHlfYmFzZSwNCgkJCQkgICBhc3NlbWJseV9kc3Qs
DQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3Nl
bWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQllbmQNCiAgICAgICAgICAgICB8IE1PVlgge29wZXIsIHNyYywgZHN0LCBzcmNzaXplLCBk
c3RzaXplfQ0KCSAgICAgICAoKiBNb3ZlIHdpdGggZXh0ZW50aW9uLg0KCQkqIFJlcXVpcmUgc3Jj
L2RzdCBvcGVyYW5kcyBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgIGRzdA0KCQkq
ICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZCANCgkJKiAgICAgIHJlZyAgWA0KCQkqICBzcmMgaW1t
DQoJCSogICAgICBsYWINCgkJKiAgICAgIGFkZCAgWA0KCQkqKQ0KCSAgICAgPT4gbGV0DQoJCSAg
dmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2ls
bHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJ
ICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5m
byA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRp
b259DQoNCgkJICB2YWwge29wZXJhbmQgPSBmaW5hbF9zcmMsIA0KCQkgICAgICAgYXNzZW1ibHkg
PSBhc3NlbWJseV9zcmMsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IHNyYywNCgkJCQkJICBvcHRpb25zID0ge3JlZ2lz
dGVyID0gdHJ1ZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0gZmFsc2UsDQoJCQkJCQkgICAgIGxh
YmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSB0cnVlfSwgDQoJCQkJCSAgaW5mbyA9
IGluZm8sDQoJCQkJCSAgc2l6ZSA9IHNyY3NpemUsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJ
CSAgc3VwcG9ydHMgPSBbZHN0XSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkgIGZvcmNlID0g
W10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KDQoJCSAgdmFsIHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkgICAgICAgYXNzZW1ibHkg
PSBhc3NlbWJseV9kc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IGRzdCwNCgkJ
CQkJICBvcHRpb25zID0ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0g
ZmFsc2UsDQoJCQkJCQkgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSBm
YWxzZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IGRzdHNpemUsDQoJCQkJ
CSAgbW92ZSA9IGZhbHNlLA0KCQkJCQkgIHN1cHBvcnRzID0gW10sDQoJCQkJCSAgc2F2ZXMgPSBb
c3JjLGZpbmFsX3NyY10sDQoJCQkJCSAgZm9yY2UgPSBbXSwNCgkJCQkJICByZWdpc3RlckFsbG9j
YXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwgaW5zdHJ1Y3Rp
b24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uTU9WWA0KCQkgICAgICB7b3BlciA9IG9wZXIsDQoJCSAg
ICAgICBzcmMgPSBmaW5hbF9zcmMsDQoJCSAgICAgICBkc3QgPSBmaW5hbF9kc3QsDQoJCSAgICAg
ICBzcmNzaXplID0gc3Jjc2l6ZSwNCgkJICAgICAgIGRzdHNpemUgPSBkc3RzaXplfQ0KDQoJCSAg
dmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJ
CSAgICAgICAuLi59DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVj
dGlvbg0KDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdp
c3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAg
IGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAg
ICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJ
ICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0
ZW4gW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICBhc3NlbWJseV9zcmMsDQoJCQkJICAgYXNzZW1ibHlf
ZHN0LA0KCQkJCSAgIFtBc3NlbWJseS5pbnN0cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJICAg
YXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJZW5kDQogICAgICAgICAgICAgfCBYVk9NIHtzcmMsIGRzdCwgc3Jjc2l6ZSwgZHN0
c2l6ZX0NCgkgICAgICAgKCogTW92ZSB3aXRoIGNvbnRyYWN0aW9uLg0KCQkqIFJlcXVpcmUgc3Jj
L2RzdCBvcGVyYW5kcyBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgIGRzdA0KCQkq
ICAgICAgICAgIHJlZyBpbW0gbGFiIGFkZCANCgkJKiAgICAgIHJlZyAgWCAgICAgICAgICAgWA0K
CQkqICBzcmMgaW1tDQoJCSogICAgICBsYWINCgkJKiAgICAgIGFkZA0KCQkqKQ0KCSAgICAgPT4g
bGV0DQoJCSAgdmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2Vz
X2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJl
LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1
c2VzLA0KCQkJICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJ
ICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3Rl
ckFsbG9jYXRpb259DQoNCgkJICB2YWwge29wZXJhbmQgPSBmaW5hbF9zcmMsIA0KCQkgICAgICAg
YXNzZW1ibHkgPSBhc3NlbWJseV9zcmMsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJ
CSAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9IHNyYywNCgkJCQkJICBvcHRpb25z
ID0ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0gZmFsc2UsDQoJCQkJ
CQkgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSBmYWxzZX0sIA0KCQkJ
CQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBzcmNzaXplLA0KCQkJCQkgIG1vdmUgPSB0
cnVlLA0KCQkJCQkgIHN1cHBvcnRzID0gW2RzdF0sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJ
ICBmb3JjZSANCgkJCQkJICA9IFJlZ2lzdGVyLndpdGhMb3dQYXJ0IChzcmNzaXplLA0KCQkJCQkJ
CQkgIGRzdHNpemUpLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJICAgICAg
IGFzc2VtYmx5ID0gYXNzZW1ibHlfZHN0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZU9wZXJhbmQge29wZXJhbmQg
PSBkc3QsDQoJCQkJCSAgb3B0aW9ucyA9IHtyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGlt
bWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9IGZhbHNlLA0KCQkJCQkJICAgICBh
ZGRyZXNzID0gdHJ1ZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IGRzdHNp
emUsDQoJCQkJCSAgbW92ZSA9IGZhbHNlLA0KCQkJCQkgIHN1cHBvcnRzID0gW10sDQoJCQkJCSAg
c2F2ZXMgPSBbc3JjLGZpbmFsX3NyY10sDQoJCQkJCSAgZm9yY2UgPSBbXSwNCgkJCQkJICByZWdp
c3RlckFsbG9jYXRpb24gDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwg
e3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAg
ICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzDQoJCSAgICAgIChJ
bnN0cnVjdGlvbi5YVk9NDQoJCSAgICAgICB7c3JjID0gZmluYWxfc3JjLA0KCQkJZHN0ID0gZmlu
YWxfZHN0LA0KCQkJc3Jjc2l6ZSA9IHNyY3NpemUsDQoJCQlkc3RzaXplID0gZHN0c2l6ZX0pDQoN
CgkJICB2YWwgdGVtcF9yZWcNCgkJICAgID0gY2FzZSBmaW5hbF9zcmMNCgkJCW9mIE9wZXJhbmQu
UmVnaXN0ZXIgciANCgkJCSA9PiBSZWdpc3Rlci5sb3dQYXJ0T2YgKHIsIFNpemUuQllURSkNCgkJ
CSB8IF8gDQoJCQkgPT4gRXJyb3IuYnVnICJhbGxvY2F0ZVJlZ2lzdGVyczogWFZPTSwgdGVtcF9y
ZWciDQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgICA9IEluc3RydWN0aW9uLk1PVg0KCQkg
ICAgICAge3NyYyA9IE9wZXJhbmQucmVnaXN0ZXIgdGVtcF9yZWcsDQoJCQlkc3QgPSBmaW5hbF9k
c3QsDQoJCQlzaXplID0gZHN0c2l6ZX0NCg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9w
b3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wb3N0IHt1c2Vz
ID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAgICBk
ZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJCSAgICAg
ICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9ybWFsLA0KCQkJICAgICAgIHJlZ2lz
dGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7YXNzZW1ibHkg
DQoJCSAgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUsDQoJCQkJICAgYXNzZW1ibHlfc3Jj
LA0KCQkJCSAgIGFzc2VtYmx5X2RzdCwNCgkJCQkgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb24gaW5z
dHJ1Y3Rpb25dLA0KCQkJCSAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFsbG9jYXRp
b24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KICAgICAgICAgICAgIHwgTEVBIHtzcmMs
IGRzdCwgc2l6ZX0NCgkgICAgICAgKCogTG9hZCBlZmZlY3RpdmUgYWRkcmVzczsgcC4gMzkzDQoJ
CSogUmVxdWlyZSBzcmMvZHN0IG9wZXJhbmRzIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAgICAgICAg
ICAgICAgZHN0DQoJCSogICAgICAgICAgcmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAgcmVnDQoJ
CSogIHNyYyBpbW0NCgkJKiAgICAgIGxhYg0KCQkqICAgICAgYWRkICBYDQoJCSopDQoJICAgICA9
PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9uLnVz
ZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9w
cmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9
IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMsDQoJ
CQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYywgDQoJCSAgICAg
ICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYywNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJICAgID0gUkEuYWxsb2NhdGVPcGVyYW5kIHtvcGVyYW5kID0gc3JjLA0KCQkJCQkgIG9wdGlv
bnMgPSB7cmVnaXN0ZXIgPSBmYWxzZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0gZmFsc2UsDQoJ
CQkJCQkgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSB0cnVlfSwgDQoJ
CQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IHNpemUsDQoJCQkJCSAgbW92ZSA9IHRy
dWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbZHN0XSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkg
IGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkgICAgICAg
YXNzZW1ibHkgPSBhc3NlbWJseV9kc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlT3BlcmFuZCB7b3BlcmFuZCA9
IGRzdCwNCgkJCQkJICBvcHRpb25zID0ge3JlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAgICAgaW1t
ZWRpYXRlID0gZmFsc2UsDQoJCQkJCQkgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFk
ZHJlc3MgPSBmYWxzZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IHNpemUs
DQoJCQkJCSAgbW92ZSA9IGZhbHNlLAkNCgkJCQkJICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkgIHNh
dmVzID0gW3NyYyxmaW5hbF9zcmNdLA0KCQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0
ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGlu
c3RydWN0aW9uDQoJCSAgICA9IEluc3RydWN0aW9uLkxFQQ0KCQkgICAgICB7c3JjID0gZmluYWxf
c3JjLA0KCQkgICAgICAgZHN0ID0gZmluYWxfZHN0LA0KCQkgICAgICAgc2l6ZSA9IHNpemV9DQoN
CgkJICB2YWwge3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMs
ICANCgkJICAgICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGlu
c3RydWN0aW9uDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkg
ICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJ
CQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8s
DQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5IA0KCQkgICA9IExpc3Qu
ZmxhdHRlbiBbYXNzZW1ibHlfcHJlLA0KCQkJCSAgIGFzc2VtYmx5X3NyYywNCgkJCQkgICBhc3Nl
bWJseV9kc3QsDQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJ
CQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQllbmQNCgkgICAgIHwgcEZNT1Yge29wZXIsIHNyYywgZHN0LCBzaXplfQ0K
CSAgICAgICAoKiBQc2V1ZG8gZmxvYXRpbmctcG9pbnQgbW92ZS4NCgkJKikNCgkgICAgID0+IGxl
dA0KCQkgIGZ1biBkZWZhdWx0ICgpDQoJCSAgICA9IGxldA0KCQkJdmFsIHt1c2VzLGRlZnMsa2ls
bHN9IA0KCQkJICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkJ
dmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
fQ0KCQkJICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkJICAgIGRlZnMgPSBkZWZzLA0KCQkJ
CSAgICBraWxscyA9IGtpbGxzLA0KCQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgcmVnaXN0
ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCQl2YWwge29wZXJhbmQgPSBm
aW5hbF9zcmMsDQoJCQkgICAgIGFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjLA0KCQkJICAgICByZW5h
bWUgPSByZW5hbWVfc3JjLA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEu
YWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJICAgIHtvcGVyYW5kID0gc3JjLA0KCQkJICAgICBvcHRp
b25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJYWRkcmVzcyA9IHRydWV9LA0KCQkJICAg
ICBpbmZvID0gaW5mbywNCgkJCSAgICAgc2l6ZSA9IHNpemUsDQoJCQkgICAgIG1vdmUgPSB0cnVl
LA0KCQkJICAgICBzdXBwb3J0cyA9IFtkc3RdLA0KCQkJICAgICBzYXZlcyA9IFtdLA0KCQkJICAg
ICB0b3AgPSBTT01FIGZhbHNlLA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCSAgICAg
PSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCXZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJ
CSAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9kc3QsDQoJCQkgICAgIHJlbmFtZSA9IHJlbmFtZV9k
c3QsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgPSBSQS5hbGxvY2F0ZUZsdE9w
ZXJhbmQgDQoJCQkgICAge29wZXJhbmQgPSBkc3QsDQoJCQkgICAgIG9wdGlvbnMgPSB7Zmx0cmVn
aXN0ZXIgPSB0cnVlLA0KCQkJCQlhZGRyZXNzID0gZmFsc2V9LA0KCQkJICAgICBpbmZvID0gaW5m
bywNCgkJCSAgICAgc2l6ZSA9IHNpemUsDQoJCQkgICAgIG1vdmUgPSBmYWxzZSwNCgkJCSAgICAg
c3VwcG9ydHMgPSBbXSwNCgkJCSAgICAgc2F2ZXMgPSBbc3JjLGZpbmFsX3NyY10sDQoJCQkgICAg
IHRvcCA9IE5PTkUsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJICAgICA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCg0KCQkJdmFsIGZpbmFsX3NyYyA9IChSQS5yZW5hbWVMaWZ0IHJlbmFt
ZV9kc3QpIGZpbmFsX3NyYw0KDQoJCQl2YWwgaW5zdHJ1Y3Rpb24NCgkJCSAgPSBJbnN0cnVjdGlv
bi5GTEQNCgkJCSAgICB7c3JjID0gZmluYWxfc3JjLA0KCQkJICAgICBzaXplID0gc2l6ZX0NCg0K
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAg
ZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJCSAgICAgLi4ufQ0KCQkJICA9IEluc3RydWN0aW9uLnVz
ZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlf
cG9zdCwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnBvc3Qge3VzZXMg
PSB1c2VzLA0KCQkJCSAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJICAgICBkZWZz
ID0gZGVmcywNCgkJCQkgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJCSAgICAgaW5m
byA9IGluZm8sDQoJCQkJICAgICBvcGVyID0gb3BlciwNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgaW4NCgkJCXthc3NlbWJseSA9IExp
c3QuZmxhdHRlbg0KCQkJICAgICAgICAgICAgW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICAgIGFzc2Vt
Ymx5X3NyYywJDQoJCQkJICAgICBhc3NlbWJseV9kc3QsDQoJCQkJICAgICBbQXNzZW1ibHkuaW5z
dHJ1Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0KCQkJCSAgICAgYXNzZW1ibHlfcG9zdF0sDQoJCQkgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICBlbmQNCg0KCQkg
IGZ1biBkZWZhdWx0JyAoKQ0KCQkgICAgPSBsZXQNCgkJCXZhbCB7dXNlcyxkZWZzLGtpbGxzfSAN
CgkJCSAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJCXZhbCB7
YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
CSAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJCSAgICBkZWZzID0gZGVmcywNCgkJCQkgICAg
a2lsbHMgPSBraWxscywNCgkJCQkgICAgaW5mbyA9IGluZm8sDQoJCQkJICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJdmFsIHtvcGVyYW5kID0gZmluYWxf
c3JjLA0KCQkJICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYywNCgkJCSAgICAgcmVuYW1lID0g
cmVuYW1lX3NyYywNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLmFsbG9j
YXRlRmx0T3BlcmFuZCANCgkJCSAgICB7b3BlcmFuZCA9IHNyYywNCgkJCSAgICAgb3B0aW9ucyA9
IHtmbHRyZWdpc3RlciA9IHRydWUsDQoJCQkJCWFkZHJlc3MgPSBmYWxzZX0sDQoJCQkgICAgIGlu
Zm8gPSBpbmZvLA0KCQkJICAgICBzaXplID0gc2l6ZSwNCgkJCSAgICAgbW92ZSA9IHRydWUsDQoJ
CQkgICAgIHN1cHBvcnRzID0gW2RzdF0sDQoJCQkgICAgIHNhdmVzID0gW10sDQoJCQkgICAgIHRv
cCA9IFNPTUUgdHJ1ZSwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxv
Y2F0aW9ufQ0KDQoJCQl2YWwge29wZXJhbmQgPSBmaW5hbF9kc3QsDQoJCQkgICAgIGFzc2VtYmx5
ID0gYXNzZW1ibHlfZHN0LA0KCQkJICAgICByZW5hbWUgPSByZW5hbWVfZHN0LA0KCQkJICAgICBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJICAg
IHtvcGVyYW5kID0gZHN0LA0KCQkJICAgICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gZmFsc2Us
DQoJCQkJCWFkZHJlc3MgPSB0cnVlfSwNCgkJCSAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgIHNp
emUgPSBzaXplLA0KCQkJICAgICBtb3ZlID0gZmFsc2UsDQoJCQkgICAgIHN1cHBvcnRzID0gW10s
DQoJCQkgICAgIHNhdmVzID0gW3NyYyxmaW5hbF9zcmNdLA0KCQkJICAgICB0b3AgPSBTT01FIGZh
bHNlLA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CQkgICAgDQoJCQl2YWwgZmluYWxfc3JjID0gKFJBLnJlbmFtZUxpZnQgcmVuYW1lX2RzdCkgZmlu
YWxfc3JjDQoNCgkJCXZhbCBpbnN0cnVjdGlvbg0KCQkJICA9IEluc3RydWN0aW9uLkZTVA0KCQkJ
ICAgIHtkc3QgPSBmaW5hbF9kc3QsDQoJCQkgICAgIHNpemUgPSBzaXplLA0KCQkJICAgICBwb3Ag
PSB0cnVlfQ0KCQkJICAgIA0KCQkJdmFsIHtyZW5hbWUgPSByZW5hbWVfcG9wLA0KCQkJICAgICBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEuZmx0cG9wIHtyZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgDQoJCQl2YWwge3VzZXMgPSBmaW5hbF91c2Vz
LA0KCQkJICAgICBkZWZzID0gZmluYWxfZGVmcywNCgkJCSAgICAgLi4ufQ0KCQkJICA9IEluc3Ry
dWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgICAgDQoJCQl2YWwgZmluYWxf
dXNlcw0KCQkJICA9IExpc3QubWFwKGZpbmFsX3VzZXMsIFJBLnJlbmFtZUxpZnQgcmVuYW1lX3Bv
cCkNCgkJCXZhbCBmaW5hbF9kZWZzDQoJCQkgID0gTGlzdC5tYXAoZmluYWxfZGVmcywgUkEucmVu
YW1lTGlmdCByZW5hbWVfcG9wKQ0KDQoJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwN
CgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnBvc3Qge3VzZXMgPSB1c2Vz
LA0KCQkJCSAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJICAgICBkZWZzID0gZGVm
cywNCgkJCQkgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJCSAgICAgaW5mbyA9IGlu
Zm8sDQoJCQkJICAgICBvcGVyID0gb3BlciwNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgaW4NCgkJCXthc3NlbWJseSA9IExpc3QuZmxh
dHRlbiANCgkJCSAgICAgICAgICAgIFthc3NlbWJseV9wcmUsDQoJCQkJICAgICBhc3NlbWJseV9z
cmMsDQoJCQkJICAgICBhc3NlbWJseV9kc3QsDQoJCQkJICAgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rp
b24gaW5zdHJ1Y3Rpb25dLA0KCQkJCSAgICAgYXNzZW1ibHlfcG9zdF0sDQoJCQkgcmVnaXN0ZXJB
bGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICBlbmQNCgkJaW4NCgkJICBj
YXNlIChzcmMsZHN0KQ0KCQkgICAgb2YgKE9wZXJhbmQuTWVtTG9jIG1lbWxvY19zcmMsDQoJCQlP
cGVyYW5kLk1lbUxvYyBtZW1sb2NfZHN0KQ0KCQkgICAgID0+IChjYXNlIChSQS5mbHRhbGxvY2F0
ZWQge21lbWxvYyA9IG1lbWxvY19zcmMsDQoJCQkJCQlyZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJ
CQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0sDQoJCQkgICAgICAgUkEuZmx0YWxsb2NhdGVkIHttZW1s
b2MgPSBtZW1sb2NfZHN0LA0KCQkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJPSByZWdp
c3RlckFsbG9jYXRpb259KQ0KCQkJICAgb2YgKFNPTUUge2ZsdHJlZ2lzdGVyID0gZmx0cmVnaXN0
ZXJfc3JjLCANCgkJCQkgICAgIHN5bmMgPSBzeW5jX3NyYywNCgkJCQkgICAgIGNvbW1pdCA9IGNv
bW1pdF9zcmMsIA0KCQkJCSAgICAgLi4ufSwNCgkJCSAgICAgICBOT05FKQ0KCQkJICAgID0+IGlm
IExpc3QuY29udGFpbnMoZGVhZCxtZW1sb2Nfc3JjLE1lbUxvYy5lcSkNCgkJCSAgICAgICAgICBv
cmVsc2UNCgkJCQkgIChMaXN0LmNvbnRhaW5zKHJlbW92ZSxtZW1sb2Nfc3JjLE1lbUxvYy5lcSkN
CgkJCQkgICBhbmRhbHNvDQoJCQkJICAgc3luY19zcmMpDQoJCQkJIHRoZW4gaWYgTGlzdC5jb250
YWlucyhyZW1vdmUsDQoJCQkJCQkgICAgICAgbWVtbG9jX2RzdCwNCgkJCQkJCSAgICAgICBNZW1M
b2MuZXEpDQoJCQkJCXRoZW4gZGVmYXVsdCcgKCkNCgkJCQkJZWxzZSBsZXQNCgkJCQkJICAgICAg
IHZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJCQkJCSA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19r
aWxscw0KCQkJCQkJICAgaW5zdHJ1Y3Rpb24NCgkJCQkJICAgICAgIHZhbCB7YXNzZW1ibHkgPSBh
c3NlbWJseV9wcmUsDQoJCQkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkJID0gUkEu
cHJlIA0KCQkJCQkJICAge3VzZXMgPSB1c2VzLA0KCQkJCQkJICAgIGRlZnMgPSBkZWZzLA0KCQkJ
CQkJICAgIGtpbGxzID0ga2lsbHMsDQoJCQkJCQkgICAgaW5mbyA9IGluZm8sDQoJCQkJCQkgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJ
CQkJCSAgICAgICB2YWwgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCQkgPSBSQS5mbHR1cGRhdGUg
DQoJCQkJCQkgICB7dmFsdWUgPSB7Zmx0cmVnaXN0ZXIgDQoJCQkJCQkJICAgICA9IGZsdHJlZ2lz
dGVyX3NyYywNCgkJCQkJCQkgICAgIG1lbWxvYyANCgkJCQkJCQkgICAgID0gbWVtbG9jX2RzdCwN
CgkJCQkJCQkgICAgIHdlaWdodCA9IDEwMjQsDQoJCQkJCQkJICAgICBzeW5jID0gZmFsc2UsDQoJ
CQkJCQkJICAgICBjb21taXQgDQoJCQkJCQkJICAgICA9IGNvbW1pdF9zcmN9LA0KCQkJCQkJICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0K
CQkJCQkgICAgICAgdmFsIGZpbmFsX3VzZXMgPSBbXQ0KCQkJCQkgICAgICAgdmFsIGZpbmFsX2Rl
ZnMgDQoJCQkJCQkgPSBbT3BlcmFuZC5mbHRyZWdpc3RlciANCgkJCQkJCSAgICBmbHRyZWdpc3Rl
cl9zcmNdDQoNCgkJCQkJICAgICAgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wb3N0LA0KCQkJ
CQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJCSA9IFJBLnBvc3QgDQoJCQkJCQkgICB7
dXNlcyA9IHVzZXMsDQoJCQkJCQkgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJCQkg
ICAgZGVmcyA9IGRlZnMsDQoJCQkJCQkgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkJ
CQkgICAgaW5mbyA9IGluZm8sDQoJCQkJCQkgICAgb3BlciA9IG9wZXIsDQoJCQkJCQkgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkg
ICAgIGluDQoJCQkJCSAgICAgICB7YXNzZW1ibHkgPSBMaXN0LmZsYXR0ZW4gDQoJCQkJCQkgICAg
ICAgICAgIFthc3NlbWJseV9wcmUsDQoJCQkJCQkJICAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkJCQkJ
cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCSAg
ICAgZW5kDQoJCQkJIGVsc2UgZGVmYXVsdCAoKQ0KCQkJICAgIHwgXyA9PiBkZWZhdWx0ICgpKQ0K
ICAgICAgICAgICAgICAgICAgICAgfCBfID0+IGRlZmF1bHQgKCkNCgkJZW5kDQogICAgICAgICAg
ICAgfCBwRkxEQyB7b3BlciwgZHN0LCBzaXplfQ0KICAgICAgICAgICAgICgqIFBzZXVkbyBmbG9h
dGluZy1wb2ludCBsb2FkIGNvbnN0YW50Lg0KCSAgICAgICopDQogICAgICAgICAgICAgPT4gbGV0
DQoJCSAgdmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2Rl
ZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0K
CQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2Vz
LA0KCQkJICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAg
ICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoNCgkJICB2YWwge29wZXJhbmQgPSBmaW5hbF9kc3QsDQoJCSAgICAgICBhc3Nl
bWJseSA9IGFzc2VtYmx5X2RzdCwNCgkJICAgICAgIHJlbmFtZSA9IHJlbmFtZV9kc3QsDQoJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCB7
b3BlcmFuZCA9IGRzdCwNCgkJCQkJICAgICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwN
CgkJCQkJCQlhZGRyZXNzID0gZmFsc2V9LA0KCQkJCQkgICAgIGluZm8gPSBpbmZvLA0KCQkJCQkg
ICAgIHNpemUgPSBzaXplLA0KCQkJCQkgICAgIG1vdmUgPSBmYWxzZSwNCgkJCQkJICAgICBzdXBw
b3J0cyA9IFtdLA0KCQkJCQkgICAgIHNhdmVzID0gW10sDQoJCQkJCSAgICAgdG9wID0gTk9ORSwN
CgkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICAgICA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCg0KCQkgIHZhbCBpbnN0cnVjdGlvbg0KCQkgICAgPSBJbnN0cnVjdGlvbi5GTERDDQoJ
CSAgICAgIHtvcGVyID0gb3Blcn0NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAg
ICAgICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVj
dGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBh
c3NlbWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5w
b3N0IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmluYWxfdXNlcywNCgkJ
CSAgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywN
CgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9ybWFsLA0KCQkJICAg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7
YXNzZW1ibHkgPSBMaXN0LmZsYXR0ZW4NCgkJICAgICAgICAgICAgICBbYXNzZW1ibHlfcHJlLA0K
CQkJICAgICAgIGFzc2VtYmx5X2RzdCwNCgkJCSAgICAgICBbQXNzZW1ibHkuaW5zdHJ1Y3Rpb24g
aW5zdHJ1Y3Rpb25dLA0KCQkJICAgICAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KCSAgICAgfCBwRk1PVkZJIHtv
cGVyLCBzcmMsIGRzdCwgc3Jjc2l6ZSwgZHN0c2l6ZX0NCgkgICAgICgqIFBzZXVkbyBmbG9hdGlu
Zy1wb2ludCBmcm9tIGludGVnZXIuDQoJICAgICAgKikNCgkgICAgID0+IGxldA0KCQkgIHZhbCB7
dXNlcyxkZWZzLGtpbGxzfSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGlu
c3RydWN0aW9uDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwNCgkJICAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNlcywNCgkJCSAgICAg
IGRlZnMgPSBkZWZzLA0KCQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAgICAgIGluZm8gPSBp
bmZvLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
DQoJCSAgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjLA0KCQkgICAgICAgYXNzZW1ibHkgPSBhc3Nl
bWJseV9zcmMsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9j
YXRlT3BlcmFuZCB7b3BlcmFuZCA9IHNyYywNCgkJCQkJICBvcHRpb25zID0ge3JlZ2lzdGVyID0g
ZmFsc2UsDQoJCQkJCQkgICAgIGltbWVkaWF0ZSA9IGZhbHNlLA0KCQkJCQkJICAgICBsYWJlbCA9
IGZhbHNlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gdHJ1ZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8s
DQoJCQkJCSAgc2l6ZSA9IHNyY3NpemUsDQoJCQkJCSAgbW92ZSA9IHRydWUsCQ0KCQkJCQkgIHN1
cHBvcnRzID0gW2RzdF0sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICBmb3JjZSA9IFtdLA0K
CQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
DQoJCSAgdmFsIHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkgICAgICAgYXNzZW1ibHkgPSBhc3Nl
bWJseV9kc3QsDQoJCSAgICAgICByZW5hbWUgPSByZW5hbWVfZHN0LA0KCQkgICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZUZsdE9wZXJhbmQge29wZXJhbmQgPSBk
c3QsDQoJCQkJCSAgICAgb3B0aW9ucyA9IHtmbHRyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkJYWRk
cmVzcyA9IGZhbHNlfSwNCgkJCQkJICAgICBpbmZvID0gaW5mbywNCgkJCQkJICAgICBzaXplID0g
ZHN0c2l6ZSwNCgkJCQkJICAgICBtb3ZlID0gZmFsc2UsCQ0KCQkJCQkgICAgIHN1cHBvcnRzID0g
W10sDQoJCQkJCSAgICAgc2F2ZXMgPSBbc3JjLGZpbmFsX3NyY10sDQoJCQkJCSAgICAgdG9wID0g
Tk9ORSwNCgkJCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICAgICA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCg0KCQkgIHZhbCBpbnN0cnVjdGlvbg0KCQkgICAgPSBJbnN0cnVjdGlvbi5G
SUxEDQogICAgICAgICAgICAgICAgICAgICAge3NyYyA9IGZpbmFsX3NyYywNCgkJICAgICAgIHNp
emUgPSBTaXplLnRvRlBJIHNyY3NpemV9DQoNCgkJICB2YWwge3VzZXMgPSBmaW5hbF91c2VzLA0K
CQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4uLn0NCgkJICAgID0gSW5z
dHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJICB2YWwge2Fzc2VtYmx5
ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0g
UkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMs
DQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2Rl
ZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJ
CSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJ
CSAge2Fzc2VtYmx5ID0gTGlzdC5mbGF0dGVuDQoJCSAgICAgICAgICAgICAgW2Fzc2VtYmx5X3By
ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlbWJseV9zcmMsDQoJCQkgICAg
ICAgYXNzZW1ibHlfZHN0LA0KCQkJICAgICAgIFtBc3NlbWJseS5pbnN0cnVjdGlvbiBpbnN0cnVj
dGlvbl0sDQoJCQkgICAgICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5kDQoJICAgICB8IHBGTU9WVEkge29wZXIsIHNy
YywgZHN0LCBzcmNzaXplLCBkc3RzaXplfQ0KCSAgICAgKCogUHNldWRvIGZsb2F0aW5nLXBvaW50
IHRvIGludGVnZXIuDQoJICAgICAgKikNCgkgICAgID0+IGxldA0KCQkgIGZ1biBkZWZhdWx0ICgp
DQoJCSAgICA9IGxldA0KCQkJdmFsIHt1c2VzLGRlZnMsa2lsbHN9IA0KCQkJICA9IEluc3RydWN0
aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkJdmFsIHthc3NlbWJseSA9IGFzc2Vt
Ymx5X3ByZSwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnByZSB7dXNl
cyA9IHVzZXMsDQoJCQkJICAgIGRlZnMgPSBkZWZzLA0KCQkJCSAgICBraWxscyA9IGtpbGxzLA0K
CQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KDQoJCQl2YWwge29wZXJhbmQgPSBmaW5hbF9zcmMsDQoJCQkgICAgIGFz
c2VtYmx5ID0gYXNzZW1ibHlfc3JjLA0KCQkJICAgICByZW5hbWUgPSByZW5hbWVfc3JjLA0KCQkJ
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0K
CQkJICAgIHtvcGVyYW5kID0gc3JjLA0KCQkJICAgICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0g
dHJ1ZSwNCgkJCQkJYWRkcmVzcyA9IGZhbHNlfSwNCgkJCSAgICAgaW5mbyA9IGluZm8sDQoJCQkg
ICAgIHNpemUgPSBzcmNzaXplLA0KCQkJICAgICBtb3ZlID0gdHJ1ZSwNCgkJCSAgICAgc3VwcG9y
dHMgPSBbZHN0XSwNCgkJCSAgICAgc2F2ZXMgPSBbXSwNCgkJCSAgICAgdG9wID0gU09NRSB0cnVl
LA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJ
CXZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwNCgkJCSAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9k
c3QsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgPSBSQS5hbGxvY2F0ZU9wZXJh
bmQgDQoJCQkgICAge29wZXJhbmQgPSBkc3QsDQoJCQkgICAgIG9wdGlvbnMgPSB7cmVnaXN0ZXIg
PSBmYWxzZSwNCgkJCQkJaW1tZWRpYXRlID0gZmFsc2UsDQoJCQkJCWxhYmVsID0gZmFsc2UsDQoJ
CQkJCWFkZHJlc3MgPSB0cnVlfSwNCgkJCSAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgIHNpemUg
PSBkc3RzaXplLA0KCQkJICAgICBtb3ZlID0gZmFsc2UsDQoJCQkgICAgIHN1cHBvcnRzID0gW10s
DQoJCQkgICAgIHNhdmVzID0gW3NyYyxmaW5hbF9zcmNdLA0KCQkJICAgICBmb3JjZSA9IFtdLA0K
CQkJICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCXZh
bCBpbnN0cnVjdGlvbg0KCQkJICA9IEluc3RydWN0aW9uLkZJU1QNCgkJCSAgICB7ZHN0ID0gZmlu
YWxfZHN0LA0KCQkJICAgICBzaXplID0gU2l6ZS50b0ZQSSBkc3RzaXplLA0KCQkJICAgICBwb3Ag
PSBmYWxzZX0NCg0KCQkJdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJCSAgICAgZGVmcyA9IGZp
bmFsX2RlZnMsICANCgkJCSAgICAgLi4ufQ0KCQkJICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19r
aWxscyBpbnN0cnVjdGlvbg0KDQoJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJ
CSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0K
CQkJCSAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJICAgICBkZWZzID0gZGVmcywN
CgkJCQkgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJCSAgICAgaW5mbyA9IGluZm8s
DQoJCQkJICAgICBvcGVyID0gTm9ybWFsLA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICBpbg0KCQkJe2Fzc2VtYmx5ID0gTGlzdC5mbGF0
dGVuDQoJCQkgICAgICAgICAgICBbYXNzZW1ibHlfcHJlLA0KCQkJCSAgICAgYXNzZW1ibHlfc3Jj
LA0KCQkJCSAgICAgYXNzZW1ibHlfZHN0LA0KCQkJCSAgICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9u
IGluc3RydWN0aW9uXSwNCgkJCQkgICAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkJIHJlZ2lzdGVyQWxs
b2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgZW5kDQoNCgkJICBmdW4gZGVm
YXVsdCcgKCkNCgkJICAgID0gbGV0DQoJCQl2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCQkgID0g
SW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCQl2YWwge2Fzc2VtYmx5
ID0gYXNzZW1ibHlfcHJlLA0KCQkJICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEu
cHJlIHt1c2VzID0gdXNlcywNCgkJCQkgICAgZGVmcyA9IGRlZnMsDQoJCQkJICAgIGtpbGxzID0g
a2lsbHMsDQoJCQkJICAgIGluZm8gPSBpbmZvLA0KCQkJCSAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCXZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYywNCgkJ
CSAgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9zcmMsDQoJCQkgICAgIHJlbmFtZSA9IHJlbmFtZV9z
cmMsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCSAgPSBSQS5hbGxvY2F0ZUZsdE9w
ZXJhbmQgDQoJCQkgICAge29wZXJhbmQgPSBzcmMsDQoJCQkgICAgIG9wdGlvbnMgPSB7Zmx0cmVn
aXN0ZXIgPSB0cnVlLA0KCQkJCQlhZGRyZXNzID0gZmFsc2V9LA0KCQkJICAgICBpbmZvID0gaW5m
bywNCgkJCSAgICAgc2l6ZSA9IHNyY3NpemUsDQoJCQkgICAgIG1vdmUgPSB0cnVlLA0KCQkJICAg
ICBzdXBwb3J0cyA9IFtkc3RdLA0KCQkJICAgICBzYXZlcyA9IFtdLA0KCQkJICAgICB0b3AgPSBT
T01FIHRydWUsDQoJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCg0KCQkJdmFsIHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkJICAgICBhc3NlbWJseSA9IGFz
c2VtYmx5X2RzdCwNCgkJCSAgICAgcmVuYW1lID0gcmVuYW1lX2RzdCwNCgkJCSAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCSAgICB7b3Bl
cmFuZCA9IGRzdCwNCgkJCSAgICAgb3B0aW9ucyA9IHtmbHRyZWdpc3RlciA9IGZhbHNlLA0KCQkJ
CQlhZGRyZXNzID0gdHJ1ZX0sDQoJCQkgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICBzaXplID0g
ZHN0c2l6ZSwNCgkJCSAgICAgbW92ZSA9IGZhbHNlLA0KCQkJICAgICBzdXBwb3J0cyA9IFtdLA0K
CQkJICAgICBzYXZlcyA9IFtzcmMsZmluYWxfc3JjXSwNCgkJCSAgICAgdG9wID0gU09NRSBmYWxz
ZSwNCgkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJ
CQl2YWwgZmluYWxfc3JjIA0KCQkJICA9IChSQS5yZW5hbWVMaWZ0IHJlbmFtZV9kc3QpIGZpbmFs
X3NyYw0KDQoJCQl2YWwgaW5zdHJ1Y3Rpb24NCgkJCSAgPSBJbnN0cnVjdGlvbi5GSVNUDQoJCQkg
ICAge2RzdCA9IGZpbmFsX2RzdCwNCgkJCSAgICAgc2l6ZSA9IFNpemUudG9GUEkgZHN0c2l6ZSwN
CgkJCSAgICAgcG9wID0gdHJ1ZX0NCg0KCQkJdmFsIHtyZW5hbWUgPSByZW5hbWVfcG9wLA0KCQkJ
ICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgID0gUkEuZmx0cG9wIHtyZWdpc3RlckFsbG9j
YXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJCXZhbCB7dXNlcyA9IGZpbmFsX3VzZXMs
DQoJCQkgICAgIGRlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAuLi59DQoJCQkgID0gSW5zdHJ1
Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQogDQoJCQl2YWwgZmluYWxfdXNlcw0K
CQkJICA9IExpc3QubWFwKGZpbmFsX3VzZXMsIFJBLnJlbmFtZUxpZnQgcmVuYW1lX3BvcCkNCgkJ
CXZhbCBmaW5hbF9kZWZzDQoJCQkgID0gTGlzdC5tYXAoZmluYWxfZGVmcywgUkEucmVuYW1lTGlm
dCByZW5hbWVfcG9wKQ0KDQoJCQl2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJCSAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJ
CSAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkJICAgICBkZWZzID0gZGVmcywNCgkJ
CQkgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJCSAgICAgaW5mbyA9IGluZm8sDQoJ
CQkJICAgICBvcGVyID0gb3BlciwNCgkJCQkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkg
ICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgICBpbg0KCQkJe2Fzc2VtYmx5ID0gTGlz
dC5mbGF0dGVuIA0KCQkJICAgICAgICAgICAgW2Fzc2VtYmx5X3ByZSwNCgkJCQkgICAgIGFzc2Vt
Ymx5X3NyYywNCgkJCQkgICAgIGFzc2VtYmx5X2RzdCwNCgkJCQkgICAgIFtBc3NlbWJseS5pbnN0
cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJICAgICBhc3NlbWJseV9wb3N0XSwNCgkJCSByZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICAgIGVuZA0KCQlpbg0K
CQkgIGNhc2Ugc3JjDQoJCSAgICBvZiBPcGVyYW5kLk1lbUxvYyBtZW1sb2Nfc3JjDQoJCSAgICAg
PT4gaWYgcmVtb3ZhYmxlIHttZW1sb2MgPSBtZW1sb2Nfc3JjLA0KCQkJCSAgICAgIGluZm8gPSBp
bmZvLA0KCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCSAgICAgID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJICB0aGVuIGRlZmF1bHQnICgpDQoJCQkgIGVsc2UgZGVmYXVsdCAoKQ0K
CQkgICAgIHwgXyA9PiBkZWZhdWx0ICgpDQoJCWVuZA0KCSAgICAgfCBwRkNPTSB7c3JjMSwgc3Jj
Miwgc2l6ZX0NCgkgICAgICAgKCogRmxvYXRpbmctcG9pbnQgY29tcGFyZSByZWFsOyBwLiAyMjAN
CgkgICAgICAgICogUmVxdWlyZSBzcmMgb3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAg
ICAgICAgICAgICBzcmMNCgkJKiAgICAgICAgICAgZmx0cmVnIGFkZCANCgkJKiAgICAgICAgICAg
ICAqICAgICBYDQoJCSogICAqIG9ubHkgc3QoMSkgaWYgcG9wIGFuZCBwb3AnDQoJICAgICAgICAq
DQoJCSogUmVxdWlyZSBzaXplIG1vZGlmaWVyIGNsYXNzIGFzIGZvbGxvd3M6IEZMVChTTkdMLERC
TEUpDQoJCSopDQoJICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAg
ICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNz
ZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAg
IGtpbGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgIA0KCQkgIHZhbCB7ZmluYWxf
c3JjMSwNCgkJICAgICAgIGZpbmFsX3NyYzIsDQoJCSAgICAgICBhc3NlbWJseV9zcmMxX3NyYzIs
DQoJCSAgICAgICByZW5hbWVfc3JjMV9zcmMyLA0KCQkgICAgICAgcG9wLA0KCQkgICAgICAgcG9w
JywNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gaWYgT3BlcmFuZC5lcShz
cmMxLHNyYzIpDQoJCQl0aGVuIGxldA0KCQkJICAgICAgIGZ1biBkZWZhdWx0IGINCgkJCQkgPSBs
ZXQNCgkJCQkgICAgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYzFfc3JjMiwNCgkJCQkJICBhc3Nl
bWJseSA9IGFzc2VtYmx5X3NyYzFfc3JjMiwNCgkJCQkJICByZW5hbWUgPSByZW5hbWVfc3JjMV9z
cmMyLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAgICAgPSBSQS5hbGxvY2F0
ZUZsdE9wZXJhbmQgDQoJCQkJICAgICAgICAge29wZXJhbmQgPSBzcmMxLA0KCQkJCQkgIG9wdGlv
bnMgPSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJICAgICBhZGRyZXNzID0gZmFsc2V9LA0K
CQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBzaXplLA0KCQkJCQkgIG1vdmUgPSB0
cnVlLA0KCQkJCQkgIHN1cHBvcnRzID0gW10sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICB0
b3AgPSBTT01FIHRydWUsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCQkJICAgaW4NCgkJCQkgICAgIHtmaW5hbF9zcmMxID0gZmluYWxf
c3JjMV9zcmMyLA0KCQkJCSAgICAgIGZpbmFsX3NyYzIgPSBmaW5hbF9zcmMxX3NyYzIsDQoJCQkJ
ICAgICAgYXNzZW1ibHlfc3JjMV9zcmMyID0gYXNzZW1ibHlfc3JjMV9zcmMyLA0KCQkJCSAgICAg
IHJlbmFtZV9zcmMxX3NyYzIgPSByZW5hbWVfc3JjMV9zcmMyLA0KCQkJCSAgICAgIHBvcCA9IGIs
DQoJCQkJICAgICAgcG9wJyA9IGZhbHNlLA0KCQkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICBlbmQNCgkJCSAgICAgaW4NCgkJCSAgICAgICBj
YXNlIHNyYzENCgkJCQkgb2YgT3BlcmFuZC5NZW1Mb2MgbWVtbG9jX3NyYzENCgkJCQkgID0+IGlm
IHJlbW92YWJsZSB7bWVtbG9jID0gbWVtbG9jX3NyYzEsDQoJCQkJCQkgICBpbmZvID0gaW5mbywN
CgkJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkJICAgICAgIHRoZW4gZGVmYXVsdCB0cnVlDQoJCQkJICAgICAgIGVsc2UgZGVmYXVs
dCBmYWxzZQ0KCQkJCSAgfCBfID0+IGRlZmF1bHQgZmFsc2UNCgkJCSAgICAgZW5kDQoJCQllbHNl
IGxldA0KCQkJICAgICAgIGZ1biBkZWZhdWx0IGINCgkJCQkgPSBsZXQNCgkJCQkgICAgIHZhbCB7
b3BlcmFuZCA9IGZpbmFsX3NyYzIsDQoJCQkJCSAgYXNzZW1ibHkgPSBhc3NlbWJseV9zcmMyLA0K
CQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9zcmMyLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJCQkgICAgICAgPSBSQS5hbGxvY2F0ZUZsdE9wZXJhbmQgDQoJCQkJICAgICAgICAge29wZXJh
bmQgPSBzcmMyLA0KCQkJCQkgIG9wdGlvbnMgPSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJ
ICAgICBhZGRyZXNzID0gdHJ1ZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9
IHNpemUsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbc3JjMV0sDQoJ
CQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICB0b3AgPSBTT01FIGZhbHNlLA0KCQkJCQkgIHJlZ2lz
dGVyQWxsb2NhdGlvbg0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkgDQoJCQkJ
ICAgICB2YWwge29wZXJhbmQgPSBmaW5hbF9zcmMxLA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1i
bHlfc3JjMSwNCgkJCQkJICByZW5hbWUgPSByZW5hbWVfc3JjMSwNCgkJCQkJICByZWdpc3RlckFs
bG9jYXRpb259DQoJCQkJICAgICAgID0gUkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJCSAgICAg
ICB7b3BlcmFuZCA9IHNyYzEsDQoJCQkJCW9wdGlvbnMgPSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0K
CQkJCQkJICAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCQkJaW5mbyA9IGluZm8sDQoJCQkJCXNpemUg
PSBzaXplLA0KCQkJCQltb3ZlID0gdHJ1ZSwJDQoJCQkJCXN1cHBvcnRzID0gW10sDQoJCQkJCXNh
dmVzID0gW3NyYzIsZmluYWxfc3JjMl0sDQoJCQkJCXRvcCA9IFNPTUUgdHJ1ZSwNCgkJCQkJcmVn
aXN0ZXJBbGxvY2F0aW9uDQoJCQkJCT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgDQoJCQkJ
ICAgICB2YWwgZmluYWxfc3JjMiANCgkJCQkgICAgICAgPSAoUkEucmVuYW1lTGlmdCByZW5hbWVf
c3JjMSkgZmluYWxfc3JjMg0KCQkJCSAgIGluDQoJCQkJICAgICB7ZmluYWxfc3JjMSA9IGZpbmFs
X3NyYzEsDQoJCQkJICAgICAgZmluYWxfc3JjMiA9IGZpbmFsX3NyYzIsDQoJCQkJICAgICAgYXNz
ZW1ibHlfc3JjMV9zcmMyID0gYXNzZW1ibHlfc3JjMiBADQoJCQkJICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZW1ibHlfc3JjMSwNCgkJCQkgICAgICByZW5hbWVfc3JjMV9zcmMyID0gcmVu
YW1lX3NyYzEgbyANCgkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgcmVuYW1lX3NyYzIsDQoJ
CQkJICAgICAgcG9wID0gYiwNCgkJCQkgICAgICBwb3AnID0gZmFsc2UsDQoJCQkJICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgIGVuZA0KDQoJCQkg
ICAgICAgZnVuIGRlZmF1bHQnICgpDQoJCQkJID0gbGV0DQoJCQkJICAgICB2YWwge29wZXJhbmRf
dG9wID0gZmluYWxfc3JjMSwNCgkJCQkJICBvcGVyYW5kX29uZSA9IGZpbmFsX3NyYzIsDQoJCQkJ
CSAgYXNzZW1ibHkgPSBhc3NlbWJseV9zcmMxX3NyYzIsDQoJCQkJCSAgcmVuYW1lID0gcmVuYW1l
X3NyYzFfc3JjMiwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgID0gUkEu
YWxsb2NhdGVGbHRTdGFja09wZXJhbmRzDQoJCQkJICAgICAgICAge29wZXJhbmRfdG9wID0gc3Jj
MSwNCgkJCQkJICBtb3ZlX3RvcCA9IHRydWUsDQoJCQkJCSAgc2l6ZV90b3AgPSBzaXplLA0KCQkJ
CQkgIG9wZXJhbmRfb25lID0gc3JjMiwNCgkJCQkJICBtb3ZlX29uZSA9IHRydWUsDQoJCQkJCSAg
c2l6ZV9vbmUgPSBzaXplLA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHN1cHBvcnRzID0g
W10sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJ
CSAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgaW4NCgkJCQkgICAgIHtmaW5hbF9zcmMx
ID0gZmluYWxfc3JjMSwNCgkJCQkgICAgICBmaW5hbF9zcmMyID0gZmluYWxfc3JjMiwNCgkJCQkg
ICAgICBhc3NlbWJseV9zcmMxX3NyYzIgPSBhc3NlbWJseV9zcmMxX3NyYzIsDQoJCQkJICAgICAg
cmVuYW1lX3NyYzFfc3JjMiA9IHJlbmFtZV9zcmMxX3NyYzIsDQoJCQkJICAgICAgcG9wID0gdHJ1
ZSwNCgkJCQkgICAgICBwb3AnID0gdHJ1ZSwNCgkJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgZW5kDQoJCQkgICAgIGluDQoJCQkgICAgICAg
Y2FzZSAoc3JjMSxzcmMyKQ0KCQkJCSBvZiAoT3BlcmFuZC5NZW1Mb2MgbWVtbG9jX3NyYzEsDQoJ
CQkJICAgICBPcGVyYW5kLk1lbUxvYyBtZW1sb2Nfc3JjMikNCgkJCQkgID0+IGlmIHJlbW92YWJs
ZSB7bWVtbG9jID0gbWVtbG9jX3NyYzEsDQoJCQkJCQkgICBpbmZvID0gaW5mbywNCgkJCQkJCSAg
IHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJ
ICAgICAgIHRoZW4gY2FzZSBSQS5mbHRhbGxvY2F0ZWQNCgkJCQkJICAgICAgICAge21lbWxvYyA9
IG1lbWxvY19zcmMyLA0KCQkJCQkJICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJCSAgPSByZWdp
c3RlckFsbG9jYXRpb259DQoJCQkJCSAgICAgIG9mIFNPTUUge3N5bmMsLi4ufQ0KCQkJCQkgICAg
ICAgPT4gaWYgTGlzdC5jb250YWlucw0KCQkJCQkJICAgICAoZGVhZCwNCgkJCQkJCSAgICAgIG1l
bWxvY19zcmMyLA0KCQkJCQkJICAgICAgTWVtTG9jLmVxKQ0KCQkJCQkJICAgICBvcmVsc2UNCgkJ
CQkJCSAgICAgKExpc3QuY29udGFpbnMNCgkJCQkJCSAgICAgIChyZW1vdmUsDQoJCQkJCQkgICAg
ICAgbWVtbG9jX3NyYzIsDQoJCQkJCQkgICAgICAgTWVtTG9jLmVxKQ0KCQkJCQkJICAgICAgYW5k
YWxzbw0KCQkJCQkJICAgICAgc3luYykNCgkJCQkJCSAgICB0aGVuIGRlZmF1bHQnICgpDQoJCQkJ
CQkgICAgZWxzZSBkZWZhdWx0IHRydWUNCgkJCQkJICAgICAgIHwgTk9ORQ0KCQkJCQkgICAgICAg
PT4gZGVmYXVsdCB0cnVlDQoJCQkJICAgICAgIGVsc2UgZGVmYXVsdCBmYWxzZQ0KCQkJCSAgfCAo
T3BlcmFuZC5NZW1Mb2MgbWVtbG9jX3NyYzEsIF8pDQoJCQkJICA9PiBpZiByZW1vdmFibGUge21l
bWxvYyA9IG1lbWxvY19zcmMxLA0KCQkJCQkJICAgaW5mbyA9IGluZm8sDQoJCQkJCQkgICByZWdp
c3RlckFsbG9jYXRpb24NCgkJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgICAg
ICB0aGVuIGRlZmF1bHQgdHJ1ZQ0KCQkJCSAgICAgICBlbHNlIGRlZmF1bHQgZmFsc2UNCgkJCQkg
IHwgXyA9PiBkZWZhdWx0IGZhbHNlDQoJCQkgICAgIGVuZA0KIA0KCQkgIHZhbCBpbnN0cnVjdGlv
bg0KCQkgICAgPSBJbnN0cnVjdGlvbi5GQ09NDQoJCSAgICAgIHtzcmMgPSBmaW5hbF9zcmMyLA0K
CQkgICAgICAgc2l6ZSA9IHNpemUsDQoJCSAgICAgICBwb3AgPSBwb3AsDQoJCSAgICAgICBwb3An
ID0gcG9wJ30NCgkJCSAgICANCgkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCSAgICAg
ICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IGlmIHBvcA0KCQkJdGhlbiBpZiBwb3AnDQoJ
CQkgICAgICAgdGhlbiBsZXQNCgkJCQkgICAgICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJ
CQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJPSBSQS5mbHRwb3Age3JlZ2lzdGVyQWxs
b2NhdGlvbiANCgkJCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgdmFs
IHtyZW5hbWUgPSByZW5hbWVfcG9wJywNCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJ
CQk9IFJBLmZsdHBvcCB7cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgICA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCgkJCQkgICAgaW4NCgkJCQkgICAgICB7cmVuYW1lID0gcmVuYW1lX3BvcCcg
byByZW5hbWVfcG9wLA0KCQkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb249IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCQkgICAgZW5kDQoJCQkgICAgICAgZWxzZSBsZXQNCgkJCQkgICAgICB2YWwg
e3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJ
PSBSQS5mbHRwb3Age3JlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICAgPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCQkJICAgIGluDQoJCQkJICAgICAge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJ
CQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkg
ICAgZW5kDQoJCQllbHNlIHtyZW5hbWUgPSBGbHRSZWdpc3Rlci5pZCwNCgkJCSAgICAgIHJlZ2lz
dGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7dXNlcyA9IGZp
bmFsX3VzZXMsDQoJCSAgICAgICBkZWZzID0gZmluYWxfZGVmcywNCgkJICAgICAgIC4uLn0NCgkJ
ICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAgICANCgkJ
ICB2YWwgZmluYWxfdXNlcw0KCQkgICAgPSBMaXN0Lm1hcChmaW5hbF91c2VzLCBSQS5yZW5hbWVM
aWZ0IHJlbmFtZV9wb3ApDQoJCSAgdmFsIGZpbmFsX2RlZnMNCgkJICAgID0gTGlzdC5tYXAoZmlu
YWxfZGVmcywgUkEucmVuYW1lTGlmdCByZW5hbWVfcG9wKQ0KDQoJCSAgdmFsIHthc3NlbWJseSA9
IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0K
CQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZz
LA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkg
ICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkg
IHthc3NlbWJseSA9IExpc3QuZmxhdHRlbiBbYXNzZW1ibHlfcHJlLA0KCQkJCQkgICAgYXNzZW1i
bHlfc3JjMV9zcmMyLA0KCQkJCQkgICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9u
XSwNCgkJCQkJICAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFsbG9jYXRpb24gPSBy
ZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KCSAgICAgfCBwRlVDT00ge3NyYzEsIHNyYzIsIHNp
emV9DQoJICAgICAgICgqIEZsb2F0aW5nLXBvaW50IHVub3JkZXJlZCBjb21wYXJlIHJlYWw7IHAu
IDMwNw0KCSAgICAgICAgKiBSZXF1aXJlIHNyYyBvcGVyYW5kIGFzIGZvbGxvd3M6DQoJCSoNCgkJ
KiAgICAgICAgICAgICAgIHNyYw0KCQkqICAgICAgICAgICBmbHRyZWcgYWRkIA0KCQkqICAgICAg
ICAgICAgICoNCgkJKiAgICogb25seSBzdCgxKSBpZiBwb3AgYW5kIHBvcCcNCgkJKikNCgkgICAg
ID0+IGxldA0KCQkgIHZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJICAgID0gSW5zdHJ1Y3Rpb24u
dXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5
X3ByZSwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucHJlIHt1c2Vz
ID0gdXNlcywNCgkJCSAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAga2lsbHMgPSBraWxscywN
CgkJCSAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtmaW5hbF9zcmMxLA0KCQkgICAgICAgZmluYWxf
c3JjMiwNCgkJICAgICAgIGFzc2VtYmx5X3NyYzFfc3JjMiwNCgkJICAgICAgIHJlbmFtZV9zcmMx
X3NyYzIsDQoJCSAgICAgICBwb3AsDQoJCSAgICAgICBwb3AnLA0KCQkgICAgICAgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkgICAgPSBpZiBPcGVyYW5kLmVxKHNyYzEsc3JjMikNCgkJCXRoZW4gbGV0
DQoJCQkgICAgICAgZnVuIGRlZmF1bHQgYg0KCQkJCSA9IGxldA0KCQkJCSAgICAgdmFsIHtvcGVy
YW5kID0gZmluYWxfc3JjMV9zcmMyLA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjMV9z
cmMyLA0KCQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9zcmMxX3NyYzIsDQoJCQkJCSAgcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJCSAgICAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICAg
ICAgICB7b3BlcmFuZCA9IHNyYzEsDQoJCQkJCSAgb3B0aW9ucyA9IHtmbHRyZWdpc3RlciA9IHRy
dWUsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJ
CQkJCSAgc2l6ZSA9IHNpemUsDQoJCQkJCSAgbW92ZSA9IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMg
PSBbXSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkgIHRvcCA9IFNPTUUgdHJ1ZSwNCgkJCQkJ
ICByZWdpc3RlckFsbG9jYXRpb24NCgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkg
ICBpbg0KCQkJCSAgICAge2ZpbmFsX3NyYzEgPSBmaW5hbF9zcmMxX3NyYzIsDQoJCQkJICAgICAg
ZmluYWxfc3JjMiA9IGZpbmFsX3NyYzFfc3JjMiwNCgkJCQkgICAgICBhc3NlbWJseV9zcmMxX3Ny
YzIgPSBhc3NlbWJseV9zcmMxX3NyYzIsDQoJCQkJICAgICAgcmVuYW1lX3NyYzFfc3JjMiA9IHJl
bmFtZV9zcmMxX3NyYzIsDQoJCQkJICAgICAgcG9wID0gYiwNCgkJCQkgICAgICBwb3AnID0gZmFs
c2UsDQoJCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgIGVuZA0KCQkJICAgICBpbg0KCQkJICAgICAgIGNhc2Ugc3JjMQ0KCQkJCSBvZiBPcGVy
YW5kLk1lbUxvYyBtZW1sb2Nfc3JjMQ0KCQkJCSAgPT4gaWYgcmVtb3ZhYmxlIHttZW1sb2MgPSBt
ZW1sb2Nfc3JjMSwNCgkJCQkJCSAgIGluZm8gPSBpbmZvLA0KCQkJCQkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uDQoJCQkJCQkgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAgICAgdGhlbiBk
ZWZhdWx0IHRydWUNCgkJCQkgICAgICAgZWxzZSBkZWZhdWx0IGZhbHNlDQoJCQkJICB8IF8gPT4g
ZGVmYXVsdCBmYWxzZQ0KCQkJICAgICBlbmQNCgkJCWVsc2UgbGV0DQoJCQkgICAgICAgZnVuIGRl
ZmF1bHQgYg0KCQkJCSA9IGxldA0KCQkJCSAgICAgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjMiwN
CgkJCQkJICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYzIsDQoJCQkJCSAgcmVuYW1lID0gcmVuYW1l
X3NyYzIsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgICAgICA9IFJBLmFsbG9j
YXRlRmx0T3BlcmFuZCANCgkJCQkgICAgICAgICB7b3BlcmFuZCA9IHNyYzIsDQoJCQkJCSAgb3B0
aW9ucyA9IHtmbHRyZWdpc3RlciA9IHRydWUsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSBmYWxzZX0s
DQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IHNpemUsDQoJCQkJCSAgbW92ZSA9
IHRydWUsDQoJCQkJCSAgc3VwcG9ydHMgPSBbc3JjMV0sDQoJCQkJCSAgc2F2ZXMgPSBbXSwNCgkJ
CQkJICB0b3AgPSBTT01FIGZhbHNlLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkg
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQkgDQoJCQkJICAgICB2YWwge29wZXJhbmQgPSBm
aW5hbF9zcmMxLA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjMSwNCgkJCQkJICByZW5h
bWUgPSByZW5hbWVfc3JjMSwNCgkJCQkJICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAg
ID0gUkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJCSAgICAgICB7b3BlcmFuZCA9IHNyYzEsDQoJ
CQkJCW9wdGlvbnMgPSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJICAgYWRkcmVzcyA9IGZh
bHNlfSwNCgkJCQkJaW5mbyA9IGluZm8sDQoJCQkJCXNpemUgPSBzaXplLA0KCQkJCQltb3ZlID0g
dHJ1ZSwJDQoJCQkJCXN1cHBvcnRzID0gW10sDQoJCQkJCXNhdmVzID0gW3NyYzIsZmluYWxfc3Jj
Ml0sDQoJCQkJCXRvcCA9IFNPTUUgdHJ1ZSwNCgkJCQkJcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJ
CT0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgDQoJCQkJICAgICB2YWwgZmluYWxfc3JjMiAN
CgkJCQkgICAgICAgPSAoUkEucmVuYW1lTGlmdCByZW5hbWVfc3JjMSkgZmluYWxfc3JjMg0KCQkJ
CSAgIGluDQoJCQkJICAgICB7ZmluYWxfc3JjMSA9IGZpbmFsX3NyYzEsDQoJCQkJICAgICAgZmlu
YWxfc3JjMiA9IGZpbmFsX3NyYzIsDQoJCQkJICAgICAgYXNzZW1ibHlfc3JjMV9zcmMyID0gYXNz
ZW1ibHlfc3JjMiBADQoJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZW1ibHlfc3Jj
MSwNCgkJCQkgICAgICByZW5hbWVfc3JjMV9zcmMyID0gcmVuYW1lX3NyYzEgbyANCgkJCQkgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVuYW1lX3NyYzIsDQoJCQkJICAgICAgcG9wID0gYiwNCgkJ
CQkgICAgICBwb3AnID0gZmFsc2UsDQoJCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCSAgIGVuZA0KCQkJICAgICBpbg0KCQkJICAgICAgIGNhc2Ug
KHNyYzEsc3JjMikNCgkJCQkgb2YgKE9wZXJhbmQuTWVtTG9jIG1lbWxvY19zcmMxLA0KCQkJCSAg
ICAgT3BlcmFuZC5NZW1Mb2MgbWVtbG9jX3NyYzIpDQoJCQkJICA9PiBsZXQNCgkJCQkgICAgICAg
ZnVuIGRlZmF1bHQnICgpDQoJCQkJCSA9IGNhc2UgUkEuZmx0YWxsb2NhdGVkIA0KCQkJCQkgICAg
ICAgIHttZW1sb2MgPSBtZW1sb2Nfc3JjMiwNCgkJCQkJCSByZWdpc3RlckFsbG9jYXRpb24NCgkJ
CQkJCSA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJICAgICBvZiBTT01FIF8NCgkJCQkJICAg
ICAgPT4gbGV0DQoJCQkJCQkgICB2YWwge29wZXJhbmRfdG9wIA0KCQkJCQkJCT0gZmluYWxfc3Jj
MSwNCgkJCQkJCQlvcGVyYW5kX29uZSANCgkJCQkJCQk9IGZpbmFsX3NyYzIsDQoJCQkJCQkJYXNz
ZW1ibHkgDQoJCQkJCQkJPSBhc3NlbWJseV9zcmMxX3NyYzIsDQoJCQkJCQkJcmVuYW1lIA0KCQkJ
CQkJCT0gcmVuYW1lX3NyYzFfc3JjMiwNCgkJCQkJCQlyZWdpc3RlckFsbG9jYXRpb259DQoJCQkJ
CQkgICAgID0gUkEuYWxsb2NhdGVGbHRTdGFja09wZXJhbmRzDQoJCQkJCQkgICAgICAge29wZXJh
bmRfdG9wID0gc3JjMSwNCgkJCQkJCQltb3ZlX3RvcCA9IHRydWUsDQoJCQkJCQkJc2l6ZV90b3Ag
PSBzaXplLA0KCQkJCQkJCW9wZXJhbmRfb25lID0gc3JjMiwNCgkJCQkJCQltb3ZlX29uZSA9IHRy
dWUsDQoJCQkJCQkJc2l6ZV9vbmUgPSBzaXplLA0KCQkJCQkJCWluZm8gPSBpbmZvLA0KCQkJCQkJ
CXN1cHBvcnRzID0gW10sDQoJCQkJCQkJc2F2ZXMgPSBbXSwNCgkJCQkJCQlyZWdpc3RlckFsbG9j
YXRpb24gDQoJCQkJCQkJPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJCQkgaW4NCgkJCQkJCSAg
IHtmaW5hbF9zcmMxID0gZmluYWxfc3JjMSwNCgkJCQkJCSAgICBmaW5hbF9zcmMyID0gZmluYWxf
c3JjMiwNCgkJCQkJCSAgICBhc3NlbWJseV9zcmMxX3NyYzIgDQoJCQkJCQkgICAgPSBhc3NlbWJs
eV9zcmMxX3NyYzIsDQoJCQkJCQkgICAgcmVuYW1lX3NyYzFfc3JjMiANCgkJCQkJCSAgICA9IHJl
bmFtZV9zcmMxX3NyYzIsDQoJCQkJCQkgICAgcG9wID0gdHJ1ZSwNCgkJCQkJCSAgICBwb3AnID0g
dHJ1ZSwNCgkJCQkJCSAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCQkgICAgPSByZWdpc3Rl
ckFsbG9jYXRpb259DQoJCQkJCQkgZW5kDQoJCQkJCSAgICAgIHwgTk9ORQ0KCQkJCQkgICAgICA9
PiBkZWZhdWx0IHRydWUNCgkJCQkgICAgIGluIA0KCQkJCSAgICAgICBpZiByZW1vdmFibGUgDQoJ
CQkJCSAge21lbWxvYyA9IG1lbWxvY19zcmMxLA0KCQkJCQkgICBpbmZvID0gaW5mbywNCgkJCQkJ
ICAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJ
CQkgdGhlbiBpZiByZW1vdmFibGUgDQoJCQkJCSAgICAgICAgIHttZW1sb2MgPSBtZW1sb2Nfc3Jj
MiwNCgkJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJ
CQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJCXRoZW4gZGVmYXVsdCcgKCkNCgkJCQkJ
CWVsc2UgZGVmYXVsdCB0cnVlDQoJCQkJCSBlbHNlIGRlZmF1bHQgdHJ1ZQ0KCQkJCSAgICAgZW5k
DQoJCQkJICB8IChPcGVyYW5kLk1lbUxvYyBtZW1sb2Nfc3JjMSwgXykNCgkJCQkgID0+IGlmIHJl
bW92YWJsZSB7bWVtbG9jID0gbWVtbG9jX3NyYzEsDQoJCQkJCQkgICBpbmZvID0gaW5mbywNCgkJ
CQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbg0KCQkJCQkJICAgPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCQkJICAgICAgIHRoZW4gZGVmYXVsdCB0cnVlDQoJCQkJICAgICAgIGVsc2UgZGVmYXVsdCBm
YWxzZQ0KCQkJCSAgfCBfID0+IGRlZmF1bHQgZmFsc2UNCgkJCSAgICAgZW5kDQogDQoJCSAgdmFs
IGluc3RydWN0aW9uDQoJCSAgICA9IEluc3RydWN0aW9uLkZVQ09NDQoJCSAgICAgIHtzcmMgPSBm
aW5hbF9zcmMyLA0KCQkgICAgICAgcG9wID0gcG9wLA0KCQkgICAgICAgcG9wJyA9IHBvcCd9DQoN
CgkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRp
b259DQoJCSAgICA9IGlmIHBvcA0KCQkJdGhlbiBpZiBwb3AnDQoJCQkgICAgICAgdGhlbiBsZXQN
CgkJCQkgICAgICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCQkJCSAgIHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJCQkJPSBSQS5mbHRwb3Age3JlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJCSAg
ICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAgICAgdmFsIHtyZW5hbWUgPSByZW5hbWVf
cG9wJywNCgkJCQkJICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJCQk9IFJBLmZsdHBvcCB7cmVn
aXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkg
ICAgaW4NCgkJCQkgICAgICB7cmVuYW1lID0gcmVuYW1lX3BvcCcgbyByZW5hbWVfcG9wLA0KCQkJ
CSAgICAgICByZWdpc3RlckFsbG9jYXRpb249IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAg
ZW5kDQoJCQkgICAgICAgZWxzZSBsZXQNCgkJCQkgICAgICB2YWwge3JlbmFtZSA9IHJlbmFtZV9w
b3AsDQoJCQkJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJPSBSQS5mbHRwb3Age3JlZ2lz
dGVyQWxsb2NhdGlvbiANCgkJCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkJICAg
IGluDQoJCQkJICAgICAge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCQkJICAgICAgIHJlZ2lzdGVy
QWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAgZW5kDQoJCQllbHNlIHty
ZW5hbWUgPSBGbHRSZWdpc3Rlci5pZCwNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAgICAg
ICBkZWZzID0gZmluYWxfZGVmcywNCgkJICAgICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24u
dXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAgICANCgkJICB2YWwgZmluYWxfdXNlcw0K
CQkgICAgPSBMaXN0Lm1hcChmaW5hbF91c2VzLCBSQS5yZW5hbWVMaWZ0IHJlbmFtZV9wb3ApDQoJ
CSAgdmFsIGZpbmFsX2RlZnMNCgkJICAgID0gTGlzdC5tYXAoZmluYWxfZGVmcywgUkEucmVuYW1l
TGlmdCByZW5hbWVfcG9wKQ0KDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJ
CSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2Vz
LA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBk
ZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8g
PSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSA9IExpc3Qu
ZmxhdHRlbiBbYXNzZW1ibHlfcHJlLA0KCQkJCQkgICAgYXNzZW1ibHlfc3JjMV9zcmMyLA0KCQkJ
CQkgICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9uXSwNCgkJCQkJICAgIGFzc2Vt
Ymx5X3Bvc3RdLA0KCQkgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCWVuZA0KCSAgICAgfCBwRkJpbkEge29wZXIsIHNyYywgZHN0LCBzaXplfQ0KCSAgICAgICAo
KiBGbG9hdGluZy1wb2ludCBiaW5hcnkgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMuDQoJCSogUmVx
dWlyZSBzcmMgb3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICBzcmMN
CgkJKiAgICAgICAgICAgZmx0cmVnIGFkZCANCgkJKiAgICAgICAgICAgICAqICAgICBYDQoJCSog
ICAqIG9ubHkgc3QoMCkgaWYgcG9wDQoJCSoNCgkJKiBSZXF1aXJlIGRzdCBvcGVyYW5kIGFzIGZv
bGxvd3M6DQoJCSoNCgkJKiAgICAgICAgICAgICAgIGRzdA0KCQkqICAgICAgICAgICBmbHRyZWcg
YWRkIA0KCQkqICAgICAgICAgICAgKg0KCQkqICAgKiBvbmx5IHN0KDApIGlmIHNyYyBhZGQNCgkJ
Kg0KCQkqICAgKiBvbmUgb2Ygc3JjLGRzdCBtdXN0IGJlIHN0KDApDQoJCSoNCgkJKiBSZXF1aXJl
IHNpemUgbW9kaWZpZXIgY2xhc3MgYXMgZm9sbG93czogRkxUDQoJCSopCQkNCgkgICAgID0+IGxl
dA0KCQkgIHZhbCB7dXNlcyxkZWZzLGtpbGxzfSANCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19k
ZWZzX2tpbGxzIGluc3RydWN0aW9uDQoJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3ByZSwN
CgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucHJlIHt1c2VzID0gdXNl
cywNCgkJCSAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAga2lsbHMgPSBraWxscywNCgkJCSAg
ICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHtmaW5hbF9zcmMsDQoJCSAgICAgICBmaW5hbF9kc3QsDQoJ
CSAgICAgICBhc3NlbWJseV9zcmNfZHN0LA0KCQkgICAgICAgcmVuYW1lX3NyY19kc3QsDQoJCSAg
ICAgICBwb3AsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IGlmIE9wZXJh
bmQuZXEoc3JjLGRzdCkNCgkJCXRoZW4gbGV0DQoJCQkgICAgICAgdmFsIHtvcGVyYW5kID0gZmlu
YWxfc3JjX2RzdCwNCgkJCQkgICAgYXNzZW1ibHkgPSBhc3NlbWJseV9zcmNfZHN0LA0KCQkJCSAg
ICByZW5hbWUgPSByZW5hbWVfc3JjX2RzdCwNCgkJCQkgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICB7b3BlcmFuZCA9IGRzdCwNCgkJ
CQkgICAgb3B0aW9ucyA9IHtmbHRyZWdpc3RlciA9IHRydWUsDQoJCQkJCSAgICAgICBhZGRyZXNz
ID0gZmFsc2V9LA0KCQkJCSAgICBpbmZvID0gaW5mbywNCgkJCQkgICAgc2l6ZSA9IHNpemUsDQoJ
CQkJICAgIG1vdmUgPSB0cnVlLAkNCgkJCQkgICAgc3VwcG9ydHMgPSBbXSwNCgkJCQkgICAgc2F2
ZXMgPSBbXSwNCgkJCQkgICAgdG9wID0gU09NRSB0cnVlLA0KCQkJCSAgICByZWdpc3RlckFsbG9j
YXRpb24gDQoJCQkJICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICBpbg0KCQkJICAg
ICAgIHtmaW5hbF9zcmMgPSBmaW5hbF9zcmNfZHN0LA0KCQkJCWZpbmFsX2RzdCA9IGZpbmFsX3Ny
Y19kc3QsDQoJCQkJYXNzZW1ibHlfc3JjX2RzdCA9IGFzc2VtYmx5X3NyY19kc3QsDQoJCQkJcmVu
YW1lX3NyY19kc3QgPSByZW5hbWVfc3JjX2RzdCwNCgkJCQlwb3AgPSBmYWxzZSwNCgkJCQlyZWdp
c3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgIGVuZA0KCQkJZWxz
ZSBsZXQNCgkJCSAgICAgICBmdW4gZGVmYXVsdCAoKQ0KCQkJCSA9IGxldA0KCQkJCSAgICAgdmFs
IHtvcGVyYW5kID0gZmluYWxfc3JjLA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfc3JjLA0K
CQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9zcmMsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgICAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICAgICAgICB7b3BlcmFu
ZCA9IHNyYywNCgkJCQkJICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAg
ICAgYWRkcmVzcyA9IHRydWV9LA0KCQkJCQkgIGluZm8gPSBpbmZvLA0KCQkJCQkgIHNpemUgPSBz
aXplLA0KCQkJCQkgIG1vdmUgPSB0cnVlLAkNCgkJCQkJICBzdXBwb3J0cyA9IFtkc3RdLA0KCQkJ
CQkgIHNhdmVzID0gW10sDQoJCQkJCSAgdG9wID0gU09NRSBmYWxzZSwNCgkJCQkJICByZWdpc3Rl
ckFsbG9jYXRpb24NCgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkJCSAgICAgdmFs
IHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfZHN0LA0K
CQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9kc3QsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgICAgICA9IGNhc2UgZmluYWxfc3JjDQoJCQkJCSAgIG9mIE9wZXJhbmQuQWRkcmVzcyBf
DQoJCQkJCSAgICA9PiBSQS5hbGxvY2F0ZUZsdE9wZXJhbmQgDQoJCQkJCSAgICAgICB7b3BlcmFu
ZCA9IGRzdCwNCgkJCQkJCW9wdGlvbnMgPSB7Zmx0cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJCSAg
IGFkZHJlc3MgPSBmYWxzZX0sDQoJCQkJCQlpbmZvID0gaW5mbywNCgkJCQkJCXNpemUgPSBzaXpl
LA0KCQkJCQkJbW92ZSA9IHRydWUsDQoJCQkJCQlzdXBwb3J0cyA9IFtdLA0KCQkJCQkJc2F2ZXMg
PSBbc3JjLGZpbmFsX3NyY10sDQoJCQkJCQl0b3AgPSBTT01FIHRydWUsDQoJCQkJCQlyZWdpc3Rl
ckFsbG9jYXRpb24gDQoJCQkJCQk9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICAgICAgICAg
ICB8IE9wZXJhbmQuRmx0UmVnaXN0ZXIgZg0KCQkJCSAgICAgICAgICAgID0+IGlmIEZsdFJlZ2lz
dGVyLmVxDQoJCQkJCSAgICAgICAgICAoZiwgRmx0UmVnaXN0ZXIudG9wKQ0KCQkJCQkJIHRoZW4g
UkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJCQkgICAgICAgICAgICAgIHtvcGVyYW5kID0gZHN0
LA0KCQkJCQkJICAgICAgIG9wdGlvbnMgDQoJCQkJCQkgICAgICAgPSB7Zmx0cmVnaXN0ZXIgPSB0
cnVlLA0KCQkJCQkJCSAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCQkJCSAgICAgICBpbmZvID0gaW5m
bywNCgkJCQkJCSAgICAgICBzaXplID0gc2l6ZSwNCgkJCQkJCSAgICAgICBtb3ZlID0gdHJ1ZSwN
CgkJCQkJCSAgICAgICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkJICAgICAgIHNhdmVzID0gW3NyYyxm
aW5hbF9zcmNdLA0KCQkJCQkJICAgICAgIHRvcCA9IFNPTUUgZmFsc2UsDQoJCQkJCQkgICAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkJICAgICAgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCQkJIGVsc2UgUkEuYWxsb2NhdGVGbHRPcGVyYW5kIA0KCQkJCQkJICAgICAge29wZXJhbmQg
PSBkc3QsDQoJCQkJCQkgICAgICAgb3B0aW9ucyANCgkJCQkJCSAgICAgICA9IHtmbHRyZWdpc3Rl
ciA9IHRydWUsDQoJCQkJCQkJICBhZGRyZXNzID0gZmFsc2V9LA0KCQkJCQkJICAgICAgIGluZm8g
PSBpbmZvLA0KCQkJCQkJICAgICAgIHNpemUgPSBzaXplLA0KCQkJCQkJICAgICAgIG1vdmUgPSB0
cnVlLAkNCgkJCQkJCSAgICAgICBzdXBwb3J0cyA9IFtdLA0KCQkJCQkJICAgICAgIHNhdmVzID0g
W3NyYyxmaW5hbF9zcmNdLA0KCQkJCQkJICAgICAgIHRvcCA9IFNPTUUgdHJ1ZSwNCgkJCQkJCSAg
ICAgICByZWdpc3RlckFsbG9jYXRpb24gDQoJCQkJCQkgICAgICAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkJCSAgICB8IF8NCgkJCQkgICAgICAgICAgICA9PiBFcnJvci5idWcgDQoJCQkJCSAg
ICAgICAiYWxsb2NhdGVSZWdpc3RlcnM6IHBGQmluQSwgZmluYWxfc3JjIg0KDQoJCQkJICAgICB2
YWwgZmluYWxfc3JjIA0KCQkJCSAgICAgICA9IChSQS5yZW5hbWVMaWZ0IHJlbmFtZV9kc3QpIGZp
bmFsX3NyYw0KCQkJCSAgIGluDQoJCQkJICAgICB7ZmluYWxfc3JjID0gZmluYWxfc3JjLA0KCQkJ
CSAgICAgIGZpbmFsX2RzdCA9IGZpbmFsX2RzdCwNCgkJCQkgICAgICBhc3NlbWJseV9zcmNfZHN0
ID0gYXNzZW1ibHlfc3JjIEANCgkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZW1ibHlf
ZHN0LA0KCQkJCSAgICAgIHJlbmFtZV9zcmNfZHN0ID0gcmVuYW1lX2RzdCBvDQoJCQkJICAgICAg
ICAgICAgICAgICAgICAgICByZW5hbWVfc3JjLA0KCQkJCSAgICAgIHBvcCA9IGZhbHNlLA0KCQkJ
CSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgICBl
bmQNCg0KCQkJICAgICAgIGZ1biBkZWZhdWx0JyAoKQ0KCQkJCSA9IGxldA0KCQkJCSAgICAgdmFs
IHtvcGVyYW5kID0gZmluYWxfZHN0LA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlfZHN0LA0K
CQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9kc3QsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0K
CQkJCSAgICAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICAgICAgICB7b3BlcmFu
ZCA9IGRzdCwNCgkJCQkJICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCSAg
ICAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCQkJICBpbmZvID0gaW5mbywNCgkJCQkJICBzaXplID0g
c2l6ZSwNCgkJCQkJICBtb3ZlID0gdHJ1ZSwNCgkJCQkJICBzdXBwb3J0cyA9IFtzcmNdLA0KCQkJ
CQkgIHNhdmVzID0gW10sDQoJCQkJCSAgdG9wID0gU09NRSBmYWxzZSwNCgkJCQkJICByZWdpc3Rl
ckFsbG9jYXRpb24NCgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJIA0KCQkJCSAg
ICAgdmFsIHtvcGVyYW5kID0gZmluYWxfc3JjLA0KCQkJCQkgIGFzc2VtYmx5ID0gYXNzZW1ibHlf
c3JjLA0KCQkJCQkgIHJlbmFtZSA9IHJlbmFtZV9zcmMsDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQkJCSAgICAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCANCgkJCQkgICAgICAgICB7
b3BlcmFuZCA9IHNyYywNCgkJCQkJICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJ
CQkJCSAgICAgYWRkcmVzcyA9IGZhbHNlfSwNCgkJCQkJICBpbmZvID0gaW5mbywNCgkJCQkJICBz
aXplID0gc2l6ZSwNCgkJCQkJICBtb3ZlID0gdHJ1ZSwJDQoJCQkJCSAgc3VwcG9ydHMgPSBbXSwN
CgkJCQkJICBzYXZlcyA9IFtkc3QsZmluYWxfZHN0XSwNCgkJCQkJICB0b3AgPSBTT01FIHRydWUs
DQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgPSByZWdpc3RlckFsbG9jYXRpb259
DQoJCSAgICANCgkJCQkgICAgIHZhbCBmaW5hbF9kc3QgDQoJCQkJICAgICAgID0gKFJBLnJlbmFt
ZUxpZnQgcmVuYW1lX3NyYykgZmluYWxfZHN0DQoJCQkJICAgaW4NCgkJCQkgICAgIHtmaW5hbF9z
cmMgPSBmaW5hbF9zcmMsDQoJCQkJICAgICAgZmluYWxfZHN0ID0gZmluYWxfZHN0LA0KCQkJCSAg
ICAgIGFzc2VtYmx5X3NyY19kc3QgPSBhc3NlbWJseV9kc3QgQA0KCQkJCSAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlbWJseV9zcmMsDQoJCQkJICAgICAgcmVuYW1lX3NyY19kc3QgPSByZW5h
bWVfc3JjIG8gDQoJCQkJICAgICAgICAgICAgICAgICAgICAgICByZW5hbWVfZHN0LA0KCQkJCSAg
ICAgIHBvcCA9IHRydWUsDQoJCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJB
bGxvY2F0aW9ufQ0KCQkJCSAgIGVuZA0KCQkJICAgICBpbg0KCQkJICAgICAgIGNhc2Ugc3JjDQoJ
CQkJIG9mIE9wZXJhbmQuTWVtTG9jIG1lbWxvY19zcmMNCgkJCQkgID0+IChjYXNlIFJBLmZsdGFs
bG9jYXRlZCANCgkJCQkJICAge21lbWxvYyA9IG1lbWxvY19zcmMsDQoJCQkJCSAgICByZWdpc3Rl
ckFsbG9jYXRpb24gDQoJCQkJCSAgICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkJb2YgU09N
RSB7c3luYyA9IHN5bmNfc3JjLC4uLn0NCgkJCQkJID0+IGlmIExpc3QuY29udGFpbnMoZGVhZCwN
CgkJCQkJCQkgICAgIG1lbWxvY19zcmMsDQoJCQkJCQkJICAgICBNZW1Mb2MuZXEpDQoJCQkJCSAg
ICAgICBvcmVsc2UNCgkJCQkJICAgICAgIChMaXN0LmNvbnRhaW5zKHJlbW92ZSwNCgkJCQkJCQkg
ICAgICBtZW1sb2Nfc3JjLA0KCQkJCQkJCSAgICAgIE1lbUxvYy5lcSkNCgkJCQkJCWFuZGFsc28N
CgkJCQkJCXN5bmNfc3JjKQ0KCQkJCQkgICAgICB0aGVuIGRlZmF1bHQnICgpDQoJCQkJCSAgICAg
IGVsc2UgZGVmYXVsdCAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IF8gPT4gZGVmYXVsdCAoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IF8gPT4gZGVmYXVsdCAoKQ0KCQkJICAgICBlbmQNCg0KCQkgIHZhbCBvcGVyDQoJCSAgICA9IGlm
IE9wZXJhbmQuZXEoZmluYWxfc3JjLA0KCQkJCSAgICBPcGVyYW5kLmZsdHJlZ2lzdGVyIEZsdFJl
Z2lzdGVyLnRvcCkNCgkJICAgICAgICAgYW5kYWxzbyBpc1NvbWUgKE9wZXJhbmQuZGVGbHRyZWdp
c3RlciBmaW5hbF9kc3QpDQoJCQl0aGVuIGZiaW5hX3JldmVyc2Ugb3Blcg0KCQkJZWxzZSBvcGVy
DQoNCgkJICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uRkJpbkENCgkJICAg
ICAge29wZXIgPSBvcGVyLA0KCQkgICAgICAgc3JjID0gZmluYWxfc3JjLA0KCQkgICAgICAgZHN0
ID0gZmluYWxfZHN0LA0KCQkgICAgICAgc2l6ZSA9IHNpemUsDQoJCSAgICAgICBwb3AgPSBwb3B9
DQoNCgkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCSAgICAgICByZWdpc3RlckFsbG9j
YXRpb259DQoJCSAgICA9IGlmIHBvcA0KCQkJdGhlbiBsZXQNCgkJCSAgICAgICB2YWwge3JlbmFt
ZSA9IHJlbmFtZV9wb3AsDQoJCQkJICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJCQkgPSBSQS5m
bHRwb3Age3JlZ2lzdGVyQWxsb2NhdGlvbiANCgkJCQkJICAgICAgPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkgICAgIGluDQoJCQkgICAgICAge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCQkJcmVn
aXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJICAgICBlbmQNCgkJCWVs
c2Uge3JlbmFtZSA9IEZsdFJlZ2lzdGVyLmlkLA0KCQkJICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJ
ICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVj
dGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICAgIA0KCQkgIHZhbCBmaW5hbF91
c2VzDQoJCSAgICA9IExpc3QubWFwKGZpbmFsX3VzZXMsIFJBLnJlbmFtZUxpZnQgcmVuYW1lX3Bv
cCkNCgkJICB2YWwgZmluYWxfZGVmcw0KCQkgICAgPSBMaXN0Lm1hcChmaW5hbF9kZWZzLCBSQS5y
ZW5hbWVMaWZ0IHJlbmFtZV9wb3ApDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9z
dCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9
IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVm
cyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAg
aW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5ID0g
TGlzdC5mbGF0dGVuDQoJCSAgICAgICAgICAgICAgW2Fzc2VtYmx5X3ByZSwNCgkJCSAgICAgICBh
c3NlbWJseV9zcmNfZHN0LA0KCQkJICAgICAgIFtBc3NlbWJseS5pbnN0cnVjdGlvbiBpbnN0cnVj
dGlvbl0sDQoJCQkgICAgICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlv
biA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJZW5kDQoJICAgICB8IHBGVW5BIHtvcGVyLCBkc3Qs
IHNpemV9DQoJICAgICAgICgqIEZsb2F0aW5nLXBvaW50IHVuYXJ5IGFyaXRobWV0aWMgaW5zdHJ1
Y3Rpb25zLg0KCQkqIFJlcXVpcmUgc3JjIG9wZXJhbmQgYXMgZm9sbG93czoNCgkJKg0KCQkqICAg
ICAgICAgICAgICAgc3JjDQoJCSogICAgICAgICAgIGZsdHJlZyBhZGQgDQoJCSogICAgICAgICAg
ICAqDQoJCSogICAqIG9ubHkgc3QoMCkNCgkJKg0KCQkqIFJlcXVpcmUgc2l6ZSBtb2RpZmllciBj
bGFzcyBhcyBmb2xsb3dzOiBGTFQNCgkJKikJCQ0KCSAgICAgPT4gbGV0DQoJCSAgdmFsIHt1c2Vz
LGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1
Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAgICAgcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgZGVm
cyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5mbyA9IGluZm8s
DQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJ
ICB2YWwge29wZXJhbmQgPSBmaW5hbF9kc3QsDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5
X2RzdCwNCgkJICAgICAgIHJlbmFtZSA9IHJlbmFtZV9kc3QsDQoJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLmFsbG9jYXRlRmx0T3BlcmFuZCB7b3BlcmFuZCA9IGRzdCwN
CgkJCQkJICAgICBvcHRpb25zID0ge2ZsdHJlZ2lzdGVyID0gdHJ1ZSwNCgkJCQkJCQlhZGRyZXNz
ID0gZmFsc2V9LA0KCQkJCQkgICAgIGluZm8gPSBpbmZvLA0KCQkJCQkgICAgIHNpemUgPSBzaXpl
LA0KCQkJCQkgICAgIG1vdmUgPSB0cnVlLA0KCQkJCQkgICAgIHN1cHBvcnRzID0gW10sDQoJCQkJ
CSAgICAgc2F2ZXMgPSBbXSwNCgkJCQkJICAgICB0b3AgPSBTT01FIHRydWUsDQoJCQkJCSAgICAg
cmVnaXN0ZXJBbGxvY2F0aW9uDQoJCQkJCSAgICAgPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJ
ICB2YWwgaW5zdHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uRlVuQQ0KCQkgICAgICB7b3Bl
ciA9IG9wZXJ9DQoNCgkJICB2YWwge3VzZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9
IGZpbmFsX2RlZnMsICANCgkJICAgICAgIC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19k
ZWZzX2tpbGxzIGluc3RydWN0aW9uDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9z
dCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9
IHVzZXMsDQoJCQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVm
cyA9IGRlZnMsDQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAg
aW5mbyA9IGluZm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5ID0g
TGlzdC5mbGF0dGVuDQoJCSAgICAgICAgICAgICAgW2Fzc2VtYmx5X3ByZSwNCgkJCSAgICAgICBh
c3NlbWJseV9kc3QsDQoJCQkgICAgICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9uIGluc3RydWN0aW9u
XSwNCgkJCSAgICAgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCgkgICAgIHwgcEZCaW5BUyB7b3Blciwgc3JjLCBk
c3QsIHNpemV9DQoJICAgICAgICgqIEZsb2F0aW5nLXBvaW50IGJpbmFyeSBhcml0aG1ldGljIHN0
YWNrIGluc3RydWN0aW9ucy4NCgkJKiBSZXF1aXJlIHNyYyBvcGVyYW5kIGFzIGZvbGxvd3M6DQoJ
CSoNCgkJKiAgICAgICAgICAgICAgIHNyYw0KCQkqICAgICAgICAgICBmbHRyZWcgYWRkIA0KCQkq
ICAgICAgICAgICAgICoNCgkJKiAgICogb25seSBzdCgxKQ0KCQkqDQoJCSogUmVxdWlyZSBkc3Qg
b3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICBkc3QNCgkJKiAgICAg
ICAgICAgZmx0cmVnIGFkZCANCgkJKiAgICAgICAgICAgICoNCgkJKiAgICogb25seSBzdCgwKQ0K
CQkqDQoJCSogUmVxdWlyZSBzaXplIG1vZGlmaWVyIGNsYXNzIGFzIGZvbGxvd3M6IEZMVA0KCQkq
KQkJDQoJICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IElu
c3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkg
PSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJB
LnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxz
ID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZF90b3AgPSBmaW5h
bF9kc3QsDQoJCSAgICAgICBvcGVyYW5kX29uZSA9IGZpbmFsX3NyYywNCgkJICAgICAgIGFzc2Vt
Ymx5ID0gYXNzZW1ibHlfZHN0X3NyYywNCgkJICAgICAgIHJlbmFtZSA9IHJlbmFtZV9kc3Rfc3Jj
LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5hbGxvY2F0ZUZsdFN0
YWNrT3BlcmFuZHMNCgkJICAgICAge29wZXJhbmRfdG9wID0gZHN0LA0KCQkgICAgICAgbW92ZV90
b3AgPSB0cnVlLA0KCQkgICAgICAgc2l6ZV90b3AgPSBzaXplLA0KCQkgICAgICAgb3BlcmFuZF9v
bmUgPSBzcmMsDQoJCSAgICAgICBtb3ZlX29uZSA9IHRydWUsDQoJCSAgICAgICBzaXplX29uZSA9
IHNpemUsDQoJCSAgICAgICBpbmZvID0gaW5mbywNCgkJICAgICAgIHN1cHBvcnRzID0gW10sDQoJ
CSAgICAgICBzYXZlcyA9IFtdLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJCSAgICA9IEluc3RydWN0aW9u
LkZCaW5BUw0KCQkgICAgICB7b3BlciA9IG9wZXJ9DQoNCgkJICB2YWwge3VzZXMgPSBmaW5hbF91
c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsDQoJCSAgICAgICAuLi59DQoJCSAgICA9
IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCSAgdmFsIHthc3Nl
bWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAg
ICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMgPSBmaW5hbF91
c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2RlZnMgPSBmaW5h
bF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIgPSBOb3JtYWws
DQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQlp
bg0KCQkgIHthc3NlbWJseSA9IExpc3QuZmxhdHRlbg0KCQkgICAgICAgICAgICAgIFthc3NlbWJs
eV9wcmUsDQoJCQkgICAgICAgYXNzZW1ibHlfZHN0X3NyYywNCgkJCSAgICAgICBbQXNzZW1ibHku
aW5zdHJ1Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0KCQkJICAgICAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkg
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KCSAgICAg
fCBwRkJpbkFTUCB7b3Blciwgc3JjLCBkc3QsIHNpemV9DQoJICAgICAgICgqIEZsb2F0aW5nLXBv
aW50IGJpbmFyeSBhcml0aG1ldGljIHN0YWNrIHBvcCBpbnN0cnVjdGlvbnMuDQoJCSogUmVxdWly
ZSBzcmMgb3BlcmFuZCBhcyBmb2xsb3dzOg0KCQkqDQoJCSogICAgICAgICAgICAgICBzcmMNCgkJ
KiAgICAgICAgICAgZmx0cmVnIGFkZCANCgkJKiAgICAgICAgICAgICAqDQoJCSogICAqIG9ubHkg
c3QoMCkNCgkJKg0KCQkqIFJlcXVpcmUgZHN0IG9wZXJhbmQgYXMgZm9sbG93czoNCgkJKg0KCQkq
ICAgICAgICAgICAgICAgZHN0DQoJCSogICAgICAgICAgIGZsdHJlZyBhZGQgDQoJCSogICAgICAg
ICAgICAqDQoJCSogICAqIG9ubHkgc3QoMSkNCgkJKg0KCQkqIFJlcXVpcmUgc2l6ZSBtb2RpZmll
ciBjbGFzcyBhcyBmb2xsb3dzOiBGTFQNCgkJKikJCQ0KCSAgICAgPT4gbGV0DQoJCSAgdmFsIHt1
c2VzLGRlZnMsa2lsbHN9IA0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2VzX2RlZnNfa2lsbHMgaW5z
dHJ1Y3Rpb24NCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcHJlLA0KCQkgICAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wcmUge3VzZXMgPSB1c2VzLA0KCQkJICAgICAg
ZGVmcyA9IGRlZnMsDQoJCQkgICAgICBraWxscyA9IGtpbGxzLA0KCQkJICAgICAgaW5mbyA9IGlu
Zm8sDQoJCQkgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoN
CgkJICB2YWwge29wZXJhbmRfdG9wID0gZmluYWxfc3JjLA0KCQkgICAgICAgb3BlcmFuZF9vbmUg
PSBmaW5hbF9kc3QsDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyY19kc3QsDQoJCSAg
ICAgICByZW5hbWUgPSByZW5hbWVfc3JjX2RzdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlv
bn0NCgkJICAgID0gUkEuYWxsb2NhdGVGbHRTdGFja09wZXJhbmRzDQoJCSAgICAgIHtvcGVyYW5k
X3RvcCA9IHNyYywNCgkJICAgICAgIG1vdmVfdG9wID0gdHJ1ZSwNCgkJICAgICAgIHNpemVfdG9w
ID0gc2l6ZSwNCgkJICAgICAgIG9wZXJhbmRfb25lID0gZHN0LA0KCQkgICAgICAgbW92ZV9vbmUg
PSB0cnVlLA0KCQkgICAgICAgc2l6ZV9vbmUgPSBzaXplLA0KCQkgICAgICAgaW5mbyA9IGluZm8s
CQ0KCQkgICAgICAgc3VwcG9ydHMgPSBbXSwNCgkJICAgICAgIHNhdmVzID0gW10sDQoJCSAgICAg
ICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoNCgkJICB2YWwgaW5z
dHJ1Y3Rpb24NCgkJICAgID0gSW5zdHJ1Y3Rpb24uRkJpbkFTUA0KCQkgICAgICB7b3BlciA9IG9w
ZXJ9DQoNCgkJICB2YWwge3JlbmFtZSA9IHJlbmFtZV9wb3AsDQoJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLmZsdHBvcCB7cmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIHt1c2VzID0gZmluYWxfdXNlcywNCgkJICAgICAgIGRl
ZnMgPSBmaW5hbF9kZWZzLA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVjdGlvbi51c2Vz
X2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCgkJICAgIA0KCQkgIHZhbCBmaW5hbF91c2VzDQoJCSAg
ICA9IExpc3QubWFwKGZpbmFsX3VzZXMsIFJBLnJlbmFtZUxpZnQgcmVuYW1lX3BvcCkNCgkJICB2
YWwgZmluYWxfZGVmcw0KCQkgICAgPSBMaXN0Lm1hcChmaW5hbF9kZWZzLCBSQS5yZW5hbWVMaWZ0
IHJlbmFtZV9wb3ApDQoNCgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJ
CQkgICAgICAgZmluYWxfdXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMs
DQoJCQkgICAgICAgZmluYWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGlu
Zm8sDQoJCQkgICAgICAgb3BlciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRp
b24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5ID0gTGlzdC5mbGF0
dGVuDQoJCSAgICAgICAgICAgICAgW2Fzc2VtYmx5X3ByZSwNCgkJCSAgICAgICBhc3NlbWJseV9z
cmNfZHN0LA0KCQkJICAgICAgIFtBc3NlbWJseS5pbnN0cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJ
CQkgICAgICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lz
dGVyQWxsb2NhdGlvbn0NCgkJZW5kDQoJICAgICB8IEZMRENXIHtzcmN9DQoJICAgICAgICgqIEZs
b2F0aW5nLXBvaW50IGxvYWQgY29udHJvbCB3b3JkOyBwLiAyNTINCgkJKiBSZXF1aXJlIHNyYyBv
cGVyYW5kIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAgICAgICAgICAgICAgZHN0DQoJCSogICAgICAg
ICAgcmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAgICAgICAgICAgICAgICAgICBYDQoJCSopDQoJ
ICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0
aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3Nl
bWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7
dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2ls
bHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9
IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX3NyYywgDQoJ
CSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X3NyYywNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJICAgID0gUkEuYWxsb2NhdGVPcGVyYW5kIHtvcGVyYW5kID0gc3JjLA0KCQkJCQkg
IG9wdGlvbnMgPSB7cmVnaXN0ZXIgPSBmYWxzZSwNCgkJCQkJCSAgICAgaW1tZWRpYXRlID0gZmFs
c2UsDQoJCQkJCQkgICAgIGxhYmVsID0gZmFsc2UsDQoJCQkJCQkgICAgIGFkZHJlc3MgPSB0cnVl
fSwgDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IFNpemUuV09SRCwNCgkJCQkJ
ICBtb3ZlID0gZmFsc2UsDQoJCQkJCSAgc3VwcG9ydHMgPSBbXSwNCgkJCQkJICBzYXZlcyA9IFtd
LA0KCQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAgcmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkg
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAgdmFsIGluc3RydWN0aW9uDQoJCSAgICA9IElu
c3RydWN0aW9uLkZMRENXDQoJCSAgICAgIHtzcmMgPSBmaW5hbF9zcmN9DQoNCgkJICB2YWwge3Vz
ZXMgPSBmaW5hbF91c2VzLA0KCQkgICAgICAgZGVmcyA9IGZpbmFsX2RlZnMsICANCgkJICAgICAg
IC4uLn0NCgkJICAgID0gSW5zdHJ1Y3Rpb24udXNlc19kZWZzX2tpbGxzIGluc3RydWN0aW9uDQoN
CgkJICB2YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHlfcG9zdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJICAgID0gUkEucG9zdCB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICAgZmluYWxf
dXNlcyA9IGZpbmFsX3VzZXMsDQoJCQkgICAgICAgZGVmcyA9IGRlZnMsDQoJCQkgICAgICAgZmlu
YWxfZGVmcyA9IGZpbmFsX2RlZnMsDQoJCQkgICAgICAgaW5mbyA9IGluZm8sDQoJCQkgICAgICAg
b3BlciA9IE5vcm1hbCwNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCWluDQoJCSAge2Fzc2VtYmx5IA0KCQkgICA9IExpc3QuZmxhdHRlbiBbYXNz
ZW1ibHlfcHJlLA0KCQkJCSAgIGFzc2VtYmx5X3NyYywNCgkJCQkgICBbQXNzZW1ibHkuaW5zdHJ1
Y3Rpb24gaW5zdHJ1Y3Rpb25dLA0KCQkJCSAgIGFzc2VtYmx5X3Bvc3RdLA0KCQkgICByZWdpc3Rl
ckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCWVuZA0KCSAgICAgfCBGU1RDVyB7
ZHN0LCBjaGVja30NCgkgICAgICAgKCogRmxvYXRpbmctcG9pbnQgc3RvcmUgY29udHJvbCB3b3Jk
OyBwLiAyODkNCgkJKiBSZXF1aXJlIGRzdCBvcGVyYW5kIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAg
ICAgICAgICAgICAgZHN0DQoJCSogICAgICAgICAgcmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAg
ICAgICAgICAgICAgICAgICBYDQoJCSopDQoJICAgICA9PiBsZXQNCgkJICB2YWwge3VzZXMsZGVm
cyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlv
bg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUsDQoJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9IHVzZXMsDQoJCQkgICAgICBkZWZzID0g
ZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMsDQoJCQkgICAgICBpbmZvID0gaW5mbywNCgkJ
CSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZh
bCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwgDQoJCSAgICAgICBhc3NlbWJseSA9IGFzc2VtYmx5X2Rz
dCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgID0gUkEuYWxsb2NhdGVPcGVy
YW5kIHtvcGVyYW5kID0gZHN0LA0KCQkJCQkgIG9wdGlvbnMgPSB7cmVnaXN0ZXIgPSBmYWxzZSwN
CgkJCQkJCSAgICAgaW1tZWRpYXRlID0gZmFsc2UsDQoJCQkJCQkgICAgIGxhYmVsID0gZmFsc2Us
DQoJCQkJCQkgICAgIGFkZHJlc3MgPSB0cnVlfSwgDQoJCQkJCSAgaW5mbyA9IGluZm8sDQoJCQkJ
CSAgc2l6ZSA9IFNpemUuV09SRCwNCgkJCQkJICBtb3ZlID0gZmFsc2UsDQoJCQkJCSAgc3VwcG9y
dHMgPSBbXSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkgIGZvcmNlID0gW10sDQoJCQkJCSAg
cmVnaXN0ZXJBbGxvY2F0aW9uIA0KCQkJCQkgID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KDQoJCSAg
dmFsIGluc3RydWN0aW9uDQoJCSAgICA9IEluc3RydWN0aW9uLkZTVENXDQoJCSAgICAgIHtkc3Qg
PSBmaW5hbF9kc3QsDQoJCSAgICAgICBjaGVjayA9IGNoZWNrfQ0KDQoJCSAgdmFsIHt1c2VzID0g
ZmluYWxfdXNlcywNCgkJICAgICAgIGRlZnMgPSBmaW5hbF9kZWZzLCAgDQoJCSAgICAgICAuLi59
DQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNfZGVmc19raWxscyBpbnN0cnVjdGlvbg0KDQoJCSAg
dmFsIHthc3NlbWJseSA9IGFzc2VtYmx5X3Bvc3QsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRp
b259DQoJCSAgICA9IFJBLnBvc3Qge3VzZXMgPSB1c2VzLA0KCQkJICAgICAgIGZpbmFsX3VzZXMg
PSBmaW5hbF91c2VzLA0KCQkJICAgICAgIGRlZnMgPSBkZWZzLA0KCQkJICAgICAgIGZpbmFsX2Rl
ZnMgPSBmaW5hbF9kZWZzLA0KCQkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkJICAgICAgIG9wZXIg
PSBOb3JtYWwsDQoJCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0
aW9ufQ0KCQlpbg0KCQkgIHthc3NlbWJseSANCgkJICAgPSBMaXN0LmZsYXR0ZW4gW2Fzc2VtYmx5
X3ByZSwNCgkJCQkgICBhc3NlbWJseV9kc3QsDQoJCQkJICAgW0Fzc2VtYmx5Lmluc3RydWN0aW9u
IGluc3RydWN0aW9uXSwNCgkJCQkgICBhc3NlbWJseV9wb3N0XSwNCgkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQllbmQNCgkgICAgIHwgRlNUU1cge2RzdCwg
Y2hlY2t9DQoJICAgICAgICgqIEZsb2F0aW5nLXBvaW50IHN0b3JlIHN0YXR1cyB3b3JkOyBwLiAy
OTQNCgkJKiBSZXF1aXJlIGRzdCBvcGVyYW5kIGFzIGZvbGxvd3M6DQoJCSoNCgkJKiAgICAgICAg
ICAgICAgZHN0DQoJCSogICAgICAgICAgcmVnIGltbSBsYWIgYWRkIA0KCQkqICAgICAgICAgICAq
ICAgICAgICAgICBYDQoJCSogICAqIG9ubHkgcmVnaXN0ZXIgJWF4DQoJCSopDQoJICAgICA9PiBs
ZXQNCgkJICB2YWwge3VzZXMsZGVmcyxraWxsc30gDQoJCSAgICA9IEluc3RydWN0aW9uLnVzZXNf
ZGVmc19raWxscyBpbnN0cnVjdGlvbg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3NlbWJseV9wcmUs
DQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCSAgICA9IFJBLnByZSB7dXNlcyA9IHVz
ZXMsDQoJCQkgICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgIGtpbGxzID0ga2lsbHMsDQoJCQkg
ICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVy
QWxsb2NhdGlvbn0NCg0KCQkgIHZhbCB7b3BlcmFuZCA9IGZpbmFsX2RzdCwgDQoJCSAgICAgICBh
c3NlbWJseSA9IGFzc2VtYmx5X2RzdCwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJ
ICAgID0gUkEuYWxsb2NhdGVPcGVyYW5kIHtvcGVyYW5kID0gZHN0LA0KCQkJCQkgIG9wdGlvbnMg
PSB7cmVnaXN0ZXIgPSB0cnVlLA0KCQkJCQkJICAgICBpbW1lZGlhdGUgPSBmYWxzZSwNCgkJCQkJ
CSAgICAgbGFiZWwgPSBmYWxzZSwNCgkJCQkJCSAgICAgYWRkcmVzcyA9IGZhbHNlfSwgDQoJCQkJ
CSAgaW5mbyA9IGluZm8sDQoJCQkJCSAgc2l6ZSA9IFNpemUuV09SRCwNCgkJCQkJICBtb3ZlID0g
ZmFsc2UsDQoJCQkJCSAgc3VwcG9ydHMgPSBbXSwNCgkJCQkJICBzYXZlcyA9IFtdLA0KCQkJCQkg
IGZvcmNlID0gW1JlZ2lzdGVyLlQgDQoJCQkJCQkgICB7cmVnID0gUmVnaXN0ZXIuRUFYLCANCgkJ
CQkJCSAgICBwYXJ0ID0gUmVnaXN0ZXIuWH1dLA0KCQkJCQkgIHJlZ2lzdGVyQWxsb2NhdGlvbiAN
CgkJCQkJICA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCg0KCQkgIHZhbCBpbnN0cnVjdGlvbg0KCQkg
ICAgPSBJbnN0cnVjdGlvbi5GU1RTVw0KCQkgICAgICB7ZHN0ID0gZmluYWxfZHN0LA0KCQkgICAg
ICAgY2hlY2sgPSBjaGVja30NCg0KCQkgIHZhbCB7dXNlcyA9IGZpbmFsX3VzZXMsDQoJCSAgICAg
ICBkZWZzID0gZmluYWxfZGVmcywgIA0KCQkgICAgICAgLi4ufQ0KCQkgICAgPSBJbnN0cnVjdGlv
bi51c2VzX2RlZnNfa2lsbHMgaW5zdHJ1Y3Rpb24NCg0KCQkgIHZhbCB7YXNzZW1ibHkgPSBhc3Nl
bWJseV9wb3N0LA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICAgPSBSQS5wb3N0
IHt1c2VzID0gdXNlcywNCgkJCSAgICAgICBmaW5hbF91c2VzID0gZmluYWxfdXNlcywNCgkJCSAg
ICAgICBkZWZzID0gZGVmcywNCgkJCSAgICAgICBmaW5hbF9kZWZzID0gZmluYWxfZGVmcywNCgkJ
CSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICBvcGVyID0gTm9ybWFsLA0KCQkJICAgICAg
IHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJaW4NCgkJICB7YXNz
ZW1ibHkgDQoJCSAgID0gTGlzdC5mbGF0dGVuIFthc3NlbWJseV9wcmUsDQoJCQkJICAgYXNzZW1i
bHlfZHN0LA0KCQkJCSAgIFtBc3NlbWJseS5pbnN0cnVjdGlvbiBpbnN0cnVjdGlvbl0sDQoJCQkJ
ICAgYXNzZW1ibHlfcG9zdF0sDQoJCSAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkJZW5kDQoJICAgICB8IF8gPT4gRXJyb3IuYnVnICJhbGxvY2F0ZVJlZ2lzdGVy
czogdW5pbXBsZW1lbnRlZCINCiAgICAgZW5kDQoNCiAgc3RydWN0dXJlIERpcmVjdGl2ZSA9DQog
ICAgc3RydWN0DQogICAgICBvcGVuIERpcmVjdGl2ZQ0KDQogICAgICBmdW4gYWxsb2NhdGVSZWdp
c3RlcnMge2RpcmVjdGl2ZSwgaW5mbywgcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCT0gbGV0IA0KCSAg
ICB2YWwge2Fzc2VtYmx5LCByZWdpc3RlckFsbG9jYXRpb259DQoJICAgICAgPSBjYXNlIGRpcmVj
dGl2ZQ0KCQkgIG9mIFJlc2V0DQoJCSAgID0+IFJlZ2lzdGVyQWxsb2NhdGlvbi5yZXNldCANCgkJ
ICAgICAge3JlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgfCBS
ZXNlcnZlIHtyZWdpc3Rlcn0NCgkJICAgPT4gUmVnaXN0ZXJBbGxvY2F0aW9uLnJlc2VydmUgDQoJ
CSAgICAgIHtyZWdpc3RlciA9IHJlZ2lzdGVyLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9u
ID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICB8IFVucmVzZXJ2ZSB7cmVnaXN0ZXJ9DQoJCSAg
ID0+IFJlZ2lzdGVyQWxsb2NhdGlvbi51bnJlc2VydmUgDQoJICAgICAgICAgICAgICB7cmVnaXN0
ZXIgPSByZWdpc3RlciwNCgkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxs
b2NhdGlvbn0NCgkgICAgICAgICAgIHwgQ2FjaGUge3JlZ2lzdGVyLCBtZW1sb2MsIHJlc2VydmV9
DQoJICAgICAgICAgICA9PiBSZWdpc3RlckFsbG9jYXRpb24uY2FjaGUgDQoJCSAgICAgIHtyZWdp
c3RlciA9IHJlZ2lzdGVyLA0KCQkgICAgICAgbWVtbG9jID0gbWVtbG9jLA0KCQkgICAgICAgcmVz
ZXJ2ZSA9IHJlc2VydmUsDQoJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFs
bG9jYXRpb259DQoJCSAgIHwgQXNzdW1lIHtyZWdpc3RlciwgbWVtbG9jLCB3ZWlnaHQsIHN5bmMs
IHJlc2VydmV9DQogICAgICAgICAgICAgICAgICAgPT4gUmVnaXN0ZXJBbGxvY2F0aW9uLmFzc3Vt
ZSANCgkJICAgICAge3JlZ2lzdGVyID0gcmVnaXN0ZXIsDQoJCSAgICAgICBtZW1sb2MgPSBtZW1s
b2MsDQoJCSAgICAgICB3ZWlnaHQgPSB3ZWlnaHQsDQoJCSAgICAgICBzeW5jID0gc3luYywNCgkJ
ICAgICAgIHJlc2VydmUgPSByZXNlcnZlLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0g
cmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICB8IEVqZWN0IHttZW1sb2NzfQ0KCQkgICA9PiBSZWdp
c3RlckFsbG9jYXRpb24uZWplY3QgDQoJCSAgICAgIHttZW1sb2NzID0gbWVtbG9jcywNCgkJICAg
ICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgfCBDb21t
aXQge21lbWxvY3N9DQoJCSAgID0+IFJlZ2lzdGVyQWxsb2NhdGlvbi5jb21taXQNCgkJICAgICAg
e21lbWxvY3MgPSBtZW1sb2NzLA0KCQkgICAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0
ZXJBbGxvY2F0aW9ufQ0KCSAgICAgICAgICAgfCBGbHVzaA0KCQkgICA9PiBSZWdpc3RlckFsbG9j
YXRpb24uZmx1c2gNCgkJICAgICAge3JlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkgICAgICAgICAgIHwgQ2xlYXINCgkJICAgPT4gUmVnaXN0ZXJBbGxvY2F0aW9uLmNs
ZWFyDQoJCSAgICAgIHtyZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CSAgIHwgUmV0dXJuIHttZW1sb2N9DQoJCSAgID0+IFJlZ2lzdGVyQWxsb2NhdGlvbi5yZXR1cm4N
CgkJICAgICAge21lbWxvYyA9IG1lbWxvYywNCgkJICAgICAgIGluZm8gPSBpbmZvLA0KCQkgICAg
ICAgcmVnaXN0ZXJBbGxvY2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkgICB8IEZsdFJl
dHVybiB7bWVtbG9jfQ0KCQkgICA9PiBSZWdpc3RlckFsbG9jYXRpb24uZmx0cmV0dXJuDQoJCSAg
ICAgIHttZW1sb2MgPSBtZW1sb2MsDQoJCSAgICAgICBpbmZvID0gaW5mbywNCgkJICAgICAgIHJl
Z2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0JCSAgICAgIA0KCQkgICAgICAN
CgkgICAgdmFsIHMgPSBEaXJlY3RpdmUudG9TdHJpbmcgZGlyZWN0aXZlDQoJICBpbg0KCSAgICB7
YXNzZW1ibHkgPSBpZiAhQ29udHJvbC5uYXRpdmVDb21tZW50ZWQgPiAwDQoJCQkgIHRoZW4gW0Fz
c2VtYmx5LmNvbW1lbnQgKCJiZWdpbiBkaXJlY3RpdmU6ICIgXiBzKV0gQA0KCQkJICAgICAgIGFz
c2VtYmx5IEANCgkJCSAgICAgICBbQXNzZW1ibHkuY29tbWVudCAoImVuZCBkaXJlY3RpdmU6ICIg
XiBzKV0NCgkJCSAgZWxzZSBhc3NlbWJseSwNCgkgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCgkgIGVuZA0KICAgIGVuZA0KDQogIHN0cnVjdHVyZSBBc3NlbWJs
eSA9DQogICAgc3RydWN0DQogICAgICBvcGVuIEFzc2VtYmx5DQoNCiAgICAgIGZ1biBhbGxvY2F0
ZVJlZ2lzdGVycyB7YXNzZW1ibHk6ICh0ICogTGl2ZW5lc3MudCkgbGlzdCwNCgkJCSAgICAgcmVn
aXN0ZXJBbGxvY2F0aW9uOiBSZWdpc3RlckFsbG9jYXRpb24udH0NCiAJPSBMaXN0LmZvbGQoYXNz
ZW1ibHksDQoJCSAgICB7YXNzZW1ibHkgPSBbXSwNCgkJICAgICByZWdpc3RlckFsbG9jYXRpb24g
PSByZWdpc3RlckFsbG9jYXRpb259LA0KCQkgICAgZm4gKChDb21tZW50IHMsaW5mbyksIHthc3Nl
bWJseSwgcmVnaXN0ZXJBbGxvY2F0aW9ufSkNCgkJICAgICA9PiB7YXNzZW1ibHkgPSBhc3NlbWJs
eSBAIFtDb21tZW50IHNdLA0KCQkJIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2Nh
dGlvbn0NCgkJICAgICB8ICgoRGlyZWN0aXZlIGQsaW5mbyksIHthc3NlbWJseSwgcmVnaXN0ZXJB
bGxvY2F0aW9ufSkNCgkJICAgICA9PiBsZXQNCgkJCSAgdmFsIHthc3NlbWJseSA9IGFzc2VtYmx5
JywNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgPSBEaXJlY3RpdmUuYWxs
b2NhdGVSZWdpc3RlcnMgDQoJCQkgICAgICB7ZGlyZWN0aXZlID0gZCwNCgkJCSAgICAgICBpbmZv
ID0gaW5mbywNCgkJCSAgICAgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRp
b259DQoJCQkgICAgICBoYW5kbGUgRmFpbCBtc2cNCgkJCSAgICAgICA9PiAocHJpbnQgKHRvU3Ry
aW5nIChEaXJlY3RpdmUgZCkpOw0KCQkJCSAgIHByaW50ICJcbiI7DQoJCQkJICAgRXJyb3IuYnVn
IG1zZykNCgkJCWluDQoJCQkgIHthc3NlbWJseQ0KCQkJICAgPSBpZiAhQ29udHJvbC5uYXRpdmVD
b21tZW50ZWQgPiAyDQoJCQkgICAgICAgdGhlbiBhc3NlbWJseSBAIA0KCQkJICAgICAgICAgICAg
W0Fzc2VtYmx5LmNvbW1lbnQgDQoJCQkJICAgICAoRGlyZWN0aXZlLnRvU3RyaW5nIGQpXSBAIA0K
CQkJCSAgICAoTGl2ZW5lc3MudG9Db21tZW50cyBpbmZvKSBAIA0KCQkJCSAgICBhc3NlbWJseScg
QA0KCQkJCSAgICAoUmVnaXN0ZXJBbGxvY2F0aW9uLnRvQ29tbWVudHMgDQoJCQkJICAgICByZWdp
c3RlckFsbG9jYXRpb24pDQoJCQkgICAgICAgZWxzZSBhc3NlbWJseSBADQoJCQkJICAgIGFzc2Vt
Ymx5JywgDQoJCQkgICByZWdpc3RlckFsbG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJ
CQllbmQNCgkJICAgICB8ICgoUHNldWRvT3AgcCxpbmZvKSwge2Fzc2VtYmx5LCByZWdpc3RlckFs
bG9jYXRpb259KQ0KCQkgICAgID0+IHthc3NlbWJseSA9IGFzc2VtYmx5IEAgW1BzZXVkb09wIHBd
LA0KCQkJIHJlZ2lzdGVyQWxsb2NhdGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICB8
ICgoTGFiZWwgbCxpbmZvKSwge2Fzc2VtYmx5LCByZWdpc3RlckFsbG9jYXRpb259KQ0KCQkgICAg
ID0+IHthc3NlbWJseSA9IGFzc2VtYmx5IEAgW0xhYmVsIGxdLA0KCQkJIHJlZ2lzdGVyQWxsb2Nh
dGlvbiA9IHJlZ2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICB8ICgoSW5zdHJ1Y3Rpb24gaSxpbmZv
KSwge2Fzc2VtYmx5LCByZWdpc3RlckFsbG9jYXRpb259KQ0KCQkgICAgID0+IGxldA0KCQkJICB2
YWwge2Fzc2VtYmx5ID0gYXNzZW1ibHknLA0KCQkJICAgICAgIHJlZ2lzdGVyQWxsb2NhdGlvbn0N
CgkJCSAgICA9IEluc3RydWN0aW9uLmFsbG9jYXRlUmVnaXN0ZXJzIA0KCQkJICAgICAge2luc3Ry
dWN0aW9uID0gaSwNCgkJCSAgICAgICBpbmZvID0gaW5mbywNCgkJCSAgICAgICByZWdpc3RlckFs
bG9jYXRpb24gPSByZWdpc3RlckFsbG9jYXRpb259DQoJCQkgICAgICBoYW5kbGUgRmFpbCBtc2cN
CgkJCSAgICAgICA9PiAocHJpbnQgKHRvU3RyaW5nIChJbnN0cnVjdGlvbiBpKSk7DQoJCQkJICAg
cHJpbnQgIlxuIjsNCgkJCQkgICBFcnJvci5idWcgbXNnKQ0KCQkJaW4NCgkJCSAge2Fzc2VtYmx5
DQoJCQkgICA9IGlmICFDb250cm9sLm5hdGl2ZUNvbW1lbnRlZCA+IDINCgkJCSAgICAgICB0aGVu
IGFzc2VtYmx5IEAgDQoJCQkgICAgICAgICAgICBbQXNzZW1ibHkuY29tbWVudCANCgkJCQkgICAg
IChJbnN0cnVjdGlvbi50b1N0cmluZyBpKV0gQCANCgkJCQkgICAgKExpdmVuZXNzLnRvQ29tbWVu
dHMgaW5mbykgQCANCgkJCQkgICAgYXNzZW1ibHknIEANCgkJCQkgICAgKFJlZ2lzdGVyQWxsb2Nh
dGlvbi50b0NvbW1lbnRzIA0KCQkJCSAgICAgcmVnaXN0ZXJBbGxvY2F0aW9uKQ0KCQkJICAgICAg
IGVsc2UgYXNzZW1ibHkgQA0KCQkJCSAgICBhc3NlbWJseScsIA0KCQkJICAgcmVnaXN0ZXJBbGxv
Y2F0aW9uID0gcmVnaXN0ZXJBbGxvY2F0aW9ufQ0KCQkJZW5kKQ0KICAgIGVuZA0KDQogIGZ1biBh
bGxvY2F0ZVJlZ2lzdGVycyB7YXNzZW1ibHkgOiBBc3NlbWJseS50IGxpc3QgbGlzdCwNCgkJCSBs
aXZlbmVzcyA6IGJvb2x9IDoNCiAgICAgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5LnQgbGlz
dCBsaXN0DQogICAgPSBMaXN0Lm1hcChhc3NlbWJseSwNCgkgICAgICAgZm4gYXNzZW1ibHkgDQoJ
ICAgICAgICA9PiBsZXQNCgkJICAgICB2YWwgYXNzZW1ibHkNCgkJICAgICAgID0gaWYgbGl2ZW5l
c3MNCgkJCSAgIHRoZW4gTGl2ZW5lc3MudG9MaXZlbmVzcyBhc3NlbWJseQ0KCQkJICAgZWxzZSBM
aXZlbmVzcy50b05vTGl2ZW5lc3MgYXNzZW1ibHkNCg0KCQkgICAgIHZhbCB7YXNzZW1ibHksIHJl
Z2lzdGVyQWxsb2NhdGlvbn0NCgkJICAgICAgID0gQXNzZW1ibHkuYWxsb2NhdGVSZWdpc3RlcnMg
DQoJCSAgICAgICAgIHthc3NlbWJseSA9IGFzc2VtYmx5LA0KCQkJICByZWdpc3RlckFsbG9jYXRp
b24gDQoJCQkgID0gUmVnaXN0ZXJBbGxvY2F0aW9uLmVtcHR5ICgpfQ0KCQkJIGhhbmRsZSBGYWls
IG1zZw0KCQkJID0+IChMaXN0LmZvcmVhY2goYXNzZW1ibHksDQoJCQkJCSAgZm4gKGFzbSxpbmZv
KQ0KCQkJCQkgICA9PiAocHJpbnQgKEFzc2VtYmx5LnRvU3RyaW5nIGFzbSk7DQoJCQkJCSAgICAg
ICBwcmludCAiXG4iOw0KCQkJCQkgICAgICAgcHJpbnQgKExpdmVuZXNzLnRvU3RyaW5nIGluZm8p
Ow0KCQkJCQkgICAgICAgcHJpbnQgIlxuIikpOw0KCQkJICAgICBFcnJvci5idWcgbXNnKQ0KCQkg
ICBpbg0KCQkgICAgIGFzc2VtYmx5DQoJCSAgIGVuZCkNCmVuZA0K

---559023410-851401618-971724703=:12960--