<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>233845</bug_id>
          
          <creation_ts>2021-12-03 16:44:28 -0800</creation_ts>
          <short_desc>Add command line `webpushtool` for daemon development and debugging</short_desc>
          <delta_ts>2021-12-04 08:10:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820356</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 16:44:28 -0800</bug_when>
    <thetext>Add command line `webpushtool` for daemon development and debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820380</commentid>
    <comment_count>1</comment_count>
      <attachid>445928</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 17:10:59 -0800</bug_when>
    <thetext>Created attachment 445928
EWS v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820382</commentid>
    <comment_count>2</comment_count>
      <attachid>445928</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-03 17:20:55 -0800</bug_when>
    <thetext>Comment on attachment 445928
EWS v1

View in context: https://bugs.webkit.org/attachment.cgi?id=445928&amp;action=review

&gt; Source/WebKit/Configurations/webpushtool.xcconfig:30
&gt; +

I think you need to sort out your INSTALL_PATH

&gt; Source/WebKit/webpushd/webpushtool/WebPushToolMain.mm:38
&gt; +    fprintf(stderr, &quot;  --Development              Connects to mach service \&quot;org.webkit.webpushtestdaemon.service\&quot; (Default)\n&quot;);

Really, leading-capitals in your command line arguments??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820394</commentid>
    <comment_count>3</comment_count>
      <attachid>445934</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 17:51:45 -0800</bug_when>
    <thetext>Created attachment 445934
EWS v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820399</commentid>
    <comment_count>4</comment_count>
      <attachid>445935</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 18:34:29 -0800</bug_when>
    <thetext>Created attachment 445935
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820400</commentid>
    <comment_count>5</comment_count>
      <attachid>445936</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 18:50:23 -0800</bug_when>
    <thetext>Created attachment 445936
PFL v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820410</commentid>
    <comment_count>6</comment_count>
      <attachid>445941</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 19:51:28 -0800</bug_when>
    <thetext>Created attachment 445941
PFL v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820422</commentid>
    <comment_count>7</comment_count>
      <attachid>445952</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 20:44:00 -0800</bug_when>
    <thetext>Created attachment 445952
PFL v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820425</commentid>
    <comment_count>8</comment_count>
      <attachid>445954</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 20:55:12 -0800</bug_when>
    <thetext>Created attachment 445954
PFL v5 (different approach from v4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820436</commentid>
    <comment_count>9</comment_count>
      <attachid>445962</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-03 23:43:20 -0800</bug_when>
    <thetext>Created attachment 445962
PFL v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820459</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-04 08:09:04 -0800</bug_when>
    <thetext>Committed r286533 (244865@main): &lt;https://commits.webkit.org/244865@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445962.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820460</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-04 08:10:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/86052852&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445928</attachid>
            <date>2021-12-03 17:10:59 -0800</date>
            <delta_ts>2021-12-03 17:51:45 -0800</delta_ts>
            <desc>EWS v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>29779</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi5iZjUxM2ZiMTgzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgVGhpcyB1dGlsaXR5
IHdpbGwgZXZlbnR1YWxseSBiZSBxdWl0ZSBmbGVzaGVkIG91dC4KKyAgICAgICAgCisgICAgICAg
IEZvciBub3csIGl0IGNhbiBhY3QgYXMgYSB0ZXJtaW5hbCB0aGF0IHByaW50cyBkZWJ1ZyBtZXNz
YWdlcyBmcm9tIHdlYnB1c2hkLgorICAgICAgICAKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy93
ZWJwdXNodG9vbC54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogUmVzb3VyY2VzL3dlYnB1c2h0
b29sLmVudGl0bGVtZW50czogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNz
Y2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lOiBBZGRlZC4KKworICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW06IEFkZGVkLgorICAg
ICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJQdXNo
VG9vbDo6bWF5YmVDb25uZWN0VG9TZXJ2aWNlKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25u
ZWN0aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpj
b25uZWN0VG9TZXJ2aWNlKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFy
dEFjdGlvbik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6c3RhcnREZWJ1Z1N0
cmVhbUFjdGlvbik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6c2VuZEF1ZGl0
VG9rZW4pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25Ecm9w
cGVkKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZWQp
OgorICAgICAgICAqIHdlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbTogQWRk
ZWQuCisgICAgICAgIChwcmludFVzYWdlQW5kVGVybWluYXRlKToKKyAgICAgICAgKG1haW4pOgor
CiAyMDIxLTEyLTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NjQzNy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjc2NjUyMDRhZmY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwpAQCAtMCww
ICsxLDMxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8g
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisv
LyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8g
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
Ky8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUg
IkJhc2VUYXJnZXQueGNjb25maWciCisKK1BST0RVQ1RfTkFNRSA9IHdlYnB1c2h0b29sOworCitP
VEhFUl9MREZMQUdTID0gLWwgV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENv
cmVGb3VuZGF0aW9uOworTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJ
Uik7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50
aXRsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRv
b2wuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50
aXRsZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjRhMGI1
NmJjNTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVz
aHRvb2wuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQg
UExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEu
MC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5w
cml2YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGIxMjA0ZTNjNDNiYi4uMTQ3ZDgwMTZkMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjIsNiArMTAyMiw4IEBACiAJCTUxN0E1
MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMEQxRjQ3
QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJ
CTUxN0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0I1RjJEMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZp
Z3VyYXRpb24uaCAqLzsgfTsKIAkJNTE3QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGMkQyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oICovOyB9OworCQk1MTdCNUY2NTI3NUE4RDdG
MDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1c2hU
b29sTWFpbi5tbSAqLzsgfTsKKwkJNTE3QjVGNjgyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hU
b29sQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxN0I1RjY3Mjc1QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENvbm5lY3Rpb24u
bW0gKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4
NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NG
MEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTQzNzUsNiArNDM3NywxMiBAQAog
CQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0
aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRD
b25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJT
V0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdCNUYyRDI3NTczODJBMDAyREMy
MkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY1QjI3NUE4RDNFMDAyREMy
MkQgLyogd2VicHVzaHRvb2wgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IHdlYnB1c2h0b29sOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHVzaFRvb2xNYWluLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyog
V2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHVzaFRvb2xDb25uZWN0aW9u
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMy
MkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gd2VicHVzaHRvb2wueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0I1RjZCMjc1QUU1MEIwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVu
dGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0b29sLmVudGl0bGVtZW50czsgcGF0aCA9IFJlc291
cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNB
NDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZD
MDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTY0Mjks
NiArNjQzNywxMyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OworCQk1MTdCNUY1ODI3NUE4RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JB
MTQgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNl
OwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTY1MjQsNiArNjUzOSw3IEBA
CiAJCQkJQ0Q5NTQ5MzUyNjE1OTAwNDAwODM3MkQ5IC8qIGxpYldlYktpdFN3aWZ0LmR5bGliICov
LAogCQkJCUExNkU2NjAwMjU4MTkzMDgwMEVFMTc0OSAvKiBNZWRpYUZvcm1hdFJlYWRlci5idW5k
bGUgKi8sCiAJCQkJOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsg
Ki8sCisJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJ
KTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02
NzY2LDYgKzY3ODIsNyBAQAogCQkJCTVDOEJDNzk2MjE4Q0I1OEEwMDgxMzg4NiAvKiBTYWZlQnJv
d3NpbmcueGNhc3NldHMgKi8sCiAJCQkJRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNv
bnRlbnRQcm9jZXNzLnhpYiAqLywKIAkJCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2Vi
S2l0LmljbnMgKi8sCisJCQkJNTE3QjVGNkIyNzVBRTUwQjAwMkRDMjJEIC8qIHdlYnB1c2h0b29s
LmVudGl0bGVtZW50cyAqLywKIAkJCSk7CiAJCQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5MTcsNiArNjkzNCw3IEBACiAJCQkJQ0QwOUZEMEEyNjE1
MkUyMzAwRTRBQ0YxIC8qIFdlYktpdFN3aWZ0LnhjY29uZmlnICovLAogCQkJCTM3MTE5QTdDMjBD
Q0I2NEUwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRDb25kaXRpb25hbHMueGNjb25maWcgKi8sCiAJ
CQkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1c2hkLnhjY29uZmlnICovLAorCQkJ
CTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtOTQwNyw2ICs5NDI1LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3QjVGNjMyNzVBOEQ1QzAwMkRDMjJEIC8qIHdlYnB1c2h0
b29sICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdC
NUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8sCisJCQkJ
NTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLywK
KwkJCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1tICovLAor
CQkJKTsKKwkJCXBhdGggPSB3ZWJwdXNodG9vbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05ODg1LDYgKzk5MTMs
NyBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0I1RjYzMjc1QThENUMwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyog
QXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBB
cHBCdW5kbGVSZXF1ZXN0Lm1tICovLAogCQkJCTVDQkI2RDREMjcxRjY3Q0MwMEZEMUE1RCAvKiBj
b20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0ICovLApAQCAtMTM5NDUsNiArMTM5NzQsMjIg
QEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJFQkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwYyAqLzsKIAkJCXByb2R1Y3RU
eXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwogCQl9OworCQk1MTdC
NUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7CisJCQlpc2EgPSBQQlhO
YXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTE3QjVGNjIyNzVBOEQz
RTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0
ICJ3ZWJwdXNodG9vbCIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1MTdCNUY1NzI3NUE4
RDNFMDAyREMyMkQgLyogU291cmNlcyAqLywKKwkJCQk1MTdCNUY1ODI3NUE4RDNFMDAyREMyMkQg
LyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gd2VicHVzaHRvb2w7CisJCQlwcm9kdWN0
TmFtZSA9IHdlYnB1c2h0b29sOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThE
M0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBs
ZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAJCTU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAv
KiBXZWJBdXRobiAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29u
ZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmln
dXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYkF1dGhuIiAqLzsKQEAgLTE0MTYz
LDYgKzE0MjA4LDkgQEAKIAkJCQlMYXN0U3dpZnRVcGRhdGVDaGVjayA9IDEzMDA7CiAJCQkJTGFz
dFVwZ3JhZGVDaGVjayA9IDExNDA7CiAJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJNTE3
QjVGNUEyNzVBOEQzRTAwMkRDMjJEID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0g
MTMuMDsKKwkJCQkJfTsKIAkJCQkJNTMyNUJEQ0QyMURGRjQ3NzAwQTBERUUxID0gewogCQkJCQkJ
Q3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMTsKIAkJCQkJCVByb3Zpc2lvbmluZ1N0eWxlID0g
QXV0b21hdGljOwpAQCAtMTQyMjAsNiArMTQyNjgsNyBAQAogCQkJCTk0MkRCMjMyMjU3RUU2RDQw
MDlCRDgwQSAvKiBFbXB0eURTVFJPT1QgKi8sCiAJCQkJNUNBRjdBOTkyNkY5M0E3NTAwMDNGMTlF
IC8qIGFkYXR0cmlidXRpb25kICovLAogCQkJCTVDMTU3OUNDMjcxNjVCMkYwMEVENTI4MCAvKiB3
ZWJwdXNoZCAqLywKKwkJCQk1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wg
Ki8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwpAQCAtMTQ5NzEs
NiArMTUwMjAsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTcyNzVBOEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8g
PSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQg
LyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGNjUy
NzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1
NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNv
dXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1
NzgzLDYgKzE1ODQxLDI3IEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJ
CTUxN0I1RjVGMjc1QThEM0UwMDJEQzIyRCAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MTdCNUY2
QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNTE3QjVGNjAyNzVB
OEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEyNzVBQTE5OTAw
MkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsK
KwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJNTE3QjVGNjEyNzVBOEQzRTAwMkRD
MjJEIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEyNzVBQTE5OTAwMkRDMjJE
IC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07
CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNTMyNUJEQ0UyMURGRjQ3ODAwQTBERUUx
IC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNl
Q29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDQjg2RjRCMTE2QUFBQ0QwMENFMjBCNyAvKiBXZWJL
aXQueGNjb25maWcgKi87CkBAIC0xNjE5Nyw2ICsxNjI3NiwxNiBAQAogCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJv
ZHVjdGlvbjsKIAkJfTsKKwkJNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNodG9vbCIgKi8gPSB7CisJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
KwkJCQk1MTdCNUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVidWcgKi8sCisJCQkJNTE3QjVGNjAy
NzVBOEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8sCisJCQkJNTE3QjVGNjEyNzVBOEQzRTAwMkRD
MjJEIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJ
fTsKIAkJNTMyNUJERDEyMURGRjQ3ODAwQTBERUUxIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlz
dCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJBcHBseSBDb25maWd1cmF0aW9uIHRvIFhDRmlsZUxp
c3RzIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hlbWUgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy93ZWJwdXNodG9vbC54
Y3NjaGVtZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ5ZDYzMWNk
NDk2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94
Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lCkBAIC0wLDAgKzEsODEg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8U2NoZW1lCisgICBM
YXN0VXBncmFkZVZlcnNpb24gPSAiMTMwMCIKKyAgIHZlcnNpb24gPSAiMS43Ij4KKyAgIDxCdWls
ZEFjdGlvbgorICAgICAgcGFyYWxsZWxpemVCdWlsZGFibGVzID0gIllFUyIKKyAgICAgIGJ1aWxk
SW1wbGljaXREZXBlbmRlbmNpZXMgPSAiWUVTIj4KKyAgICAgIDxCdWlsZEFjdGlvbkVudHJpZXM+
CisgICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQorICAgICAgICAgICAgYnVpbGRGb3JUZXN0aW5n
ID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCisgICAgICAgICAg
ICBidWlsZEZvclByb2ZpbGluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvckFyY2hpdmlu
ZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgorICAgICAg
ICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRp
ZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI1
MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IndlYnB1c2h0b29sIgorICAgICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNodG9v
bCIKKyAgICAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOldlYktp
dC54Y29kZXByb2oiPgorICAgICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICAg
ICA8L0J1aWxkQWN0aW9uRW50cnk+CisgICAgICA8L0J1aWxkQWN0aW9uRW50cmllcz4KKyAgIDwv
QnVpbGRBY3Rpb24+CisgICA8VGVzdEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0g
IkRlYnVnIgorICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdn
ZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCisgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRp
ZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKKyAgICAgIHNo
b3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIj4KKyAgICAgIDxUZXN0YWJsZXM+Cisg
ICAgICA8L1Rlc3RhYmxlcz4KKyAgIDwvVGVzdEFjdGlvbj4KKyAgIDxMYXVuY2hBY3Rpb24KKyAg
ICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJ
ZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAg
ICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9u
LkxhdW5jaGVyLkxMREIiCisgICAgICBsYXVuY2hTdHlsZSA9ICIwIgorICAgICAgdXNlQ3VzdG9t
V29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGlnbm9yZXNQZXJzaXN0ZW50U3RhdGVPbkxh
dW5jaCA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyIKKyAgICAg
IGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRlcm5hbCIKKyAgICAgIGFsbG93TG9jYXRpb25T
aW11bGF0aW9uID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAg
ICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAgICA8QnVpbGRhYmxlUmVm
ZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCisgICAg
ICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCIK
KyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wiCisgICAgICAgICAgICBC
bHVlcHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRh
aW5lciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJs
ZVJlZmVyZW5jZT4KKyAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9MYXVu
Y2hBY3Rpb24+CisgICA8UHJvZmlsZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0g
IlJlbGVhc2UiCisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyIKKyAg
ICAgIHNhdmVkVG9vbElkZW50aWZpZXIgPSAiIgorICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVj
dG9yeSA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyI+CisgICAg
ICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01v
ZGUgPSAiMCI+CisgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWls
ZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlm
aWVyID0gIjUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5h
bWUgPSAid2VicHVzaHRvb2wiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIndlYnB1c2h0
b29sIgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2ViS2l0
Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwvQnVp
bGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9Qcm9maWxlQWN0aW9uPgorICAgPEFuYWx5emVB
Y3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyI+CisgICA8L0FuYWx5emVB
Y3Rpb24+CisgICA8QXJjaGl2ZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJl
bGVhc2UiCisgICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6ZXIgPSAiWUVTIj4KKyAgIDwvQXJj
aGl2ZUFjdGlvbj4KKyAgIDxJbnN0YWxsQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24g
PSAiUmVsZWFzZSI+CisgICA8L0luc3RhbGxBY3Rpb24+Cis8L1NjaGVtZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVj
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTYxYjIyNTJk
YTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9v
bC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8eHBjL3hwYy5oPgorCitu
YW1lc3BhY2UgV2ViUHVzaFRvb2wgeworCitlbnVtIGNsYXNzIEFjdGlvbiB7CisgICAgU3RyZWFt
RGVidWdNZXNzYWdlcywKK307CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Q29ubmVjdGlvbj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRlKEFjdGlvbiwg
Ym9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgQ29ubmVjdGlvbihBY3Rpb24sIGJvb2wgcHJl
ZmVyVGVzdFNlcnZpY2UpOworCisgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7CisKK3ByaXZh
dGU6CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90KTsKKyAgICB2b2lkIGNv
bm5lY3Rpb25Ecm9wcGVkKCk7CisKKyAgICB2b2lkIHN0YXJ0QWN0aW9uKCk7CisgICAgdm9pZCBz
dGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisKKyAgICB2b2lkIHNlbmRBdWRpdFRva2VuKCk7Cisg
ICAgCisgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90
PiBtX2Nvbm5lY3Rpb247CisgICAgY29uc3QgY2hhciogbV9zZXJ2aWNlTmFtZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGY3ZWIxYmQxMDJjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24ubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0IDxib290c3Ry
YXAuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hUb29s
IHsKKworc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IENvbm5lY3Rpb246OmNyZWF0ZShBY3Rp
b24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQoreworICAgIHJldHVybiBtYWtlVW5p
cXVlPENvbm5lY3Rpb24+KGFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UpOworfQorCitzdGF0aWMg
bWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1l
KQoreworICAgIG1hY2hfcG9ydF90IGJzUG9ydDsKKyAgICB0YXNrX2dldF9ib290c3RyYXBfcG9y
dChtYWNoX3Rhc2tfc2VsZigpLCAmYnNQb3J0KTsKKworICAgIG1hY2hfcG9ydF90IHNlcnZpY2VQ
b3J0OworICAgIGtlcm5fcmV0dXJuX3QgZXJyID0gYm9vdHN0cmFwX2xvb2tfdXAoYnNQb3J0LCBz
ZXJ2aWNlTmFtZSwgJnNlcnZpY2VQb3J0KTsKKworICAgIGlmIChlcnIgPT0gS0VSTl9TVUNDRVNT
KQorICAgICAgICByZXR1cm4gc2VydmljZVBvcnQ7CisKKyAgICByZXR1cm4gTUFDSF9QT1JUX05V
TEw7Cit9CisKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFjdGlvbiwgYm9vbCBwcmVm
ZXJUZXN0U2VydmljZSkKKyAgICA6IG1fYWN0aW9uKGFjdGlvbikKK3sKKyAgICBpZiAocHJlZmVy
VGVzdFNlcnZpY2UpCisgICAgICAgIG1fc2VydmljZU5hbWUgPSAib3JnLndlYmtpdC53ZWJwdXNo
dGVzdGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBlbHNlCisgICAgICAgIG1fc2VydmljZU5hbWUgPSAi
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKKworICAgIG1fY29ubmVjdGlvbiA9
IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShtX3NlcnZpY2VOYW1l
LCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9z
ZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VS
Uk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkgeworICAgICAgICAgICAgcHJpbnRmKCJGYWlsZWQgdG8g
c3RhcnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBtYWNoIHNlcnZpY2VcbiIpOworICAg
ICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJV
UFRFRCkgeworICAgICAgICAgICAgcHJpbnRmKCJDb25uZWN0aW9uIGNsb3NlZFxuIik7CisgICAg
ICAgICAgICBjb25uZWN0aW9uRHJvcHBlZCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHhwY19nZXRfdHlwZShldmVudCkgPT0gWFBDX1RZUEVfRElDVElP
TkFSWSkgeworICAgICAgICAgICAgbWVzc2FnZVJlY2VpdmVkKGV2ZW50KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdFRvU2VydmljZSgpCit7
CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcmVz
dWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAgIGlmIChyZXN1
bHQgPT0gTUFDSF9QT1JUX05VTEwpCisgICAgICAgIHByaW50ZigiV2FpdGluZyBmb3Igc2Vydmlj
ZSAnJXMnIHRvIGJlIGF2YWlsYWJsZVxuIiwgbV9zZXJ2aWNlTmFtZSk7CisKKyAgICB3aGlsZSAo
cmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKSB7CisgICAgICAgIHVzbGVlcCgxMDAwKTsKKyAgICAg
ICAgcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAgIH0K
KworICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CisKKyAg
ICBzZW5kQXVkaXRUb2tlbigpOworICAgIHN0YXJ0QWN0aW9uKCk7Cit9CisKK3ZvaWQgQ29ubmVj
dGlvbjo6c3RhcnRBY3Rpb24oKQoreworICAgIHN3aXRjaCAobV9hY3Rpb24pIHsKKyAgICBjYXNl
IEFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczoKKyAgICAgICAgc3RhcnREZWJ1Z1N0cmVhbUFj
dGlvbigpOworICAgICAgICBicmVhazsKKyAgICB9OworfQorCit2b2lkIENvbm5lY3Rpb246OnN0
YXJ0RGVidWdTdHJlYW1BY3Rpb24oKQoreworICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0TlMo
eHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICBzdGQ6OmFy
cmF5PHVpbnQ4X3QsIDE+IGVuY29kZWRNZXNzYWdlIHsgMSB9OworICAgIHhwY19kaWN0aW9uYXJ5
X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZlcnNpb24iLCAxKTsKKyAg
ICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJtZXNzYWdlIHR5
cGUiLCA1KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0aW9uYXJ5LmdldCgpLCAi
ZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBlbmNvZGVkTWVzc2FnZS5z
aXplKCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5n
ZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7CisKKyAgICBwcmludGYoIk5vdyBzdHJlYW1pbmcgZGVi
dWcgbWVzc2FnZXNcbiIpOworfQorCit2b2lkIENvbm5lY3Rpb246OnNlbmRBdWRpdFRva2VuKCkK
K3sKKyAgICBhdWRpdF90b2tlbl90IHRva2VuID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07
CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBhdWRpdFRva2VuQ291bnQgPSBUQVNLX0FVRElU
X1RPS0VOX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGFza19pbmZvKG1hY2hf
dGFza19zZWxmKCksIFRBU0tfQVVESVRfVE9LRU4sICh0YXNrX2luZm9fdCkoJnRva2VuKSwgJmF1
ZGl0VG9rZW5Db3VudCk7CisgICAgaWYgKHJlc3VsdCAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAg
ICAgcHJpbnRmKCJVbmFibGUgdG8gZ2V0IGF1ZGl0IHRva2VuIHRvIHNlbmRcbiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjphcnJheTx1aW50OF90LCA0Mj4gZW5jb2RlZE1l
c3NhZ2U7CisgICAgZW5jb2RlZE1lc3NhZ2UuZmlsbCgwKTsKKyAgICBlbmNvZGVkTWVzc2FnZVsx
XSA9IDE7CisgICAgZW5jb2RlZE1lc3NhZ2VbMl0gPSAzMjsKKyAgICBtZW1jcHkoJmVuY29kZWRN
ZXNzYWdlWzEwXSwgJnRva2VuLCBzaXplb2YodG9rZW4pKTsKKyAgICBhdXRvIGRpY3Rpb25hcnkg
PSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7Cisg
ICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAicHJvdG9jb2wg
dmVyc2lvbiIsIDEpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5n
ZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDYpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGRp
Y3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBlbmNvZGVkTWVzc2FnZS5kYXRhKCks
IGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdl
KG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7Cit9CisKK3ZvaWQgQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQoKQoreworICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7
CisgICAgQ0ZSdW5Mb29wU3RvcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworfQorCit2b2lkIENv
bm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCh4cGNfb2JqZWN0X3QgbWVzc2FnZSkKK3sKKyAgICBj
b25zdCBjaGFyKiBkZWJ1Z01lc3NhZ2UgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1lc3Nh
Z2UsICJkZWJ1ZyBtZXNzYWdlIik7CisgICAgaWYgKCFkZWJ1Z01lc3NhZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIHByaW50ZigiJXNcbiIsIGRlYnVnTWVzc2FnZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dl
YnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uMmU2Y2JhYzIxMTYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KQEAgLTAsMCArMSw3NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViUHVzaFRvb2xD
b25uZWN0aW9uLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQg
PG9wdGlvbmFsPgorCitfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQorc3RhdGljIHZvaWQg
cHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKK3sKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzXG5cbiIsIG1lc3NhZ2UuVVRGOFN0cmluZyk7CisKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIlVzYWdlOiB3ZWJwdXNodG9vbCBbb3B0aW9uc11cbiIpOworICAgIGZwcmludGYoc3Rk
ZXJyLCAiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1EZXZlbG9wbWVudCAgICAgICAg
ICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3JnLndlYmtpdC53ZWJwdXNodGVzdGRh
ZW1vbi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1Q
cm9kdWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwiY29tLmFw
cGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAi
ICAtLVN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0gZGVidWcgbWVzc2FnZXMgZnJvbSB3
ZWJwdXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworCisgICAgZXhpdCgtMSk7
Cit9CisKK2ludCBtYWluKGludCwgY29uc3QgY2hhciAqKikKK3sKKyAgICBib29sIHByZWZlclRl
c3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYlB1c2hUb29sOjpBY3Rpb24+
IGFjdGlvbjsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBOU0FycmF5ICphcmd1
bWVudHMgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIGFyZ3VtZW50c107CisgICAgICAg
IGlmIChhcmd1bWVudHMuY291bnQgPT0gMSkKKyAgICAgICAgICAgIHByaW50VXNhZ2VBbmRUZXJt
aW5hdGUoQCJObyBhcmd1bWVudHMgcHJvdmlkZWQiKTsKKworICAgICAgICBmb3IgKE5TU3RyaW5n
ICphcmd1bWVudCBpbiBbYXJndW1lbnRzIHN1YmFycmF5V2l0aFJhbmdlOk5TTWFrZVJhbmdlKDEs
IGFyZ3VtZW50cy5jb3VudCAtIDEpXSkgeworICAgICAgICAgICAgaWYgKFthcmd1bWVudCBpc0Vx
dWFsVG9TdHJpbmc6QCItLVByb2R1Y3Rpb24iXSkKKyAgICAgICAgICAgICAgICBwcmVmZXJUZXN0
U2VydmljZSA9IGZhbHNlOworICAgICAgICAgICAgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJp
bmc6QCItLURldmVsb3BtZW50Il0pCisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNlcnZpY2Ug
PSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpA
Ii0tU3RyZWFtRGVidWdNZXNzYWdlcyJdKQorICAgICAgICAgICAgICAgIGFjdGlvbiA9IFdlYlB1
c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAlQCIsIGFyZ3VtZW50XSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWFjdGlvbikKKyAgICAgICAgcHJpbnRVc2FnZUFuZFRl
cm1pbmF0ZShAIk5vIGFjdGlvbiBwcm92aWRlZCIpOworCisgICAgYXV0byBjb25uZWN0aW9uID0g
V2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSgqYWN0aW9uLCBwcmVmZXJUZXN0U2Vydmlj
ZSk7CisgICAgY29ubmVjdGlvbi0+Y29ubmVjdFRvU2VydmljZSgpOworCisgICAgQ0ZSdW5Mb29w
UnVuKCk7CisgICAgcmV0dXJuIDA7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445934</attachid>
            <date>2021-12-03 17:51:45 -0800</date>
            <delta_ts>2021-12-03 18:34:29 -0800</delta_ts>
            <desc>EWS v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>29800</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi5iZjUxM2ZiMTgzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgVGhpcyB1dGlsaXR5
IHdpbGwgZXZlbnR1YWxseSBiZSBxdWl0ZSBmbGVzaGVkIG91dC4KKyAgICAgICAgCisgICAgICAg
IEZvciBub3csIGl0IGNhbiBhY3QgYXMgYSB0ZXJtaW5hbCB0aGF0IHByaW50cyBkZWJ1ZyBtZXNz
YWdlcyBmcm9tIHdlYnB1c2hkLgorICAgICAgICAKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy93
ZWJwdXNodG9vbC54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogUmVzb3VyY2VzL3dlYnB1c2h0
b29sLmVudGl0bGVtZW50czogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNz
Y2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lOiBBZGRlZC4KKworICAgICAgICAqIHdlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW06IEFkZGVkLgorICAg
ICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJQdXNo
VG9vbDo6bWF5YmVDb25uZWN0VG9TZXJ2aWNlKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25u
ZWN0aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpj
b25uZWN0VG9TZXJ2aWNlKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFy
dEFjdGlvbik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6c3RhcnREZWJ1Z1N0
cmVhbUFjdGlvbik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6c2VuZEF1ZGl0
VG9rZW4pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25Ecm9w
cGVkKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZWQp
OgorICAgICAgICAqIHdlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbTogQWRk
ZWQuCisgICAgICAgIChwcmludFVzYWdlQW5kVGVybWluYXRlKToKKyAgICAgICAgKG1haW4pOgor
CiAyMDIxLTEyLTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NjQzNy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTYyNGIzOTA5YzEzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwpAQCAtMCww
ICsxLDMyIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8g
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisv
LyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8g
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
Ky8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUg
IkJhc2VUYXJnZXQueGNjb25maWciCisKK1BST0RVQ1RfTkFNRSA9IHdlYnB1c2h0b29sOworU0tJ
UF9JTlNUQUxMID0gWUVTOworCitPVEhFUl9MREZMQUdTID0gLWwgV1RGIC1mcmFtZXdvcmsgRm91
bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uOworTElCUkFSWV9TRUFSQ0hfUEFUSFMg
PSAkKEJVSUxUX1BST0RVQ1RTX0RJUik7CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBSZXNv
dXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uNjRhMGI1NmJjNTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQ
VUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29t
L0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGlj
dD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CisJPHRydWUv
PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYi4uMTQ3ZDgwMTZkMjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjIs
NiArMTAyMiw4IEBACiAJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENv
bm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bk1lc3NhZ2VzLmggKi87IH07CiAJCTUxN0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNo
RGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjJEMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNo
RGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJNTE3QjVGMkYyNzU3Mzgy
QjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGMkQyNzU3Mzgy
QTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oICovOyB9
OworCQk1MTdCNUY2NTI3NUE4RDdGMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGNjQyNzVBOEQ3
RTAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5tbSAqLzsgfTsKKwkJNTE3QjVGNjgyNzVBOUE3
ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjY3Mjc1QTlBNzgwMDJEQzIyRCAvKiBX
ZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2QzAw
QzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTQxNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMjE2M0E0ODZD
MDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKQEAg
LTQzNzUsNiArNDM3NywxMiBAQAogCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1
cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hEYWVtb25D
b25uZWN0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJs
ZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2h0b29sOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2Vi
UHVzaFRvb2xNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHVzaFRvb2xNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2
NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRv
b2xDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gd2VicHVzaHRvb2wueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0b29sLmVudGl0
bGVtZW50czsgcGF0aCA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKQEAgLTY0MjksNiArNjQzNywxMyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQk1MTdCNUY1ODI3NUE4RDNFMDAy
REMyMkQgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBo
YXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1
NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
QEAgLTY1MjQsNiArNjUzOSw3IEBACiAJCQkJQ0Q5NTQ5MzUyNjE1OTAwNDAwODM3MkQ5IC8qIGxp
YldlYktpdFN3aWZ0LmR5bGliICovLAogCQkJCUExNkU2NjAwMjU4MTkzMDgwMEVFMTc0OSAvKiBN
ZWRpYUZvcm1hdFJlYWRlci5idW5kbGUgKi8sCiAJCQkJOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2
IC8qIFdlYktpdC5mcmFtZXdvcmsgKi8sCisJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8q
IHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC02NzY2LDYgKzY3ODIsNyBAQAogCQkJCTVDOEJDNzk2MjE4Q0I1
OEEwMDgxMzg4NiAvKiBTYWZlQnJvd3NpbmcueGNhc3NldHMgKi8sCiAJCQkJRTFEMjZBNEMxNzU5
NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLywKIAkJCQlFMTMzRkQ4OTE0
MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8sCisJCQkJNTE3QjVGNkIyNzVBRTUwQjAw
MkRDMjJEIC8qIHdlYnB1c2h0b29sLmVudGl0bGVtZW50cyAqLywKIAkJCSk7CiAJCQluYW1lID0g
UmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5MTcsNiArNjkzNCw3
IEBACiAJCQkJQ0QwOUZEMEEyNjE1MkUyMzAwRTRBQ0YxIC8qIFdlYktpdFN3aWZ0LnhjY29uZmln
ICovLAogCQkJCTM3MTE5QTdDMjBDQ0I2NEUwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRDb25kaXRp
b25hbHMueGNjb25maWcgKi8sCiAJCQkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1
c2hkLnhjY29uZmlnICovLAorCQkJCTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3ZWJwdXNo
dG9vbC54Y2NvbmZpZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTQwNyw2ICs5NDI1LDE2IEBACiAJCQluYW1lID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3QjVGNjMyNzVBOEQ1
QzAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xD
b25uZWN0aW9uLmggKi8sCisJCQkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hU
b29sQ29ubmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2Vi
UHVzaFRvb2xNYWluLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJwdXNodG9vbDsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5MTQyOSAv
KiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC05ODg1LDYgKzk5MTMsNyBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUyODAgLyog
d2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1MTYwRTk1
NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUxNjBFOTUz
Mjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLAogCQkJCTVDQkI2RDRE
MjcxRjY3Q0MwMEZEMUE1RCAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0ICovLApA
QCAtMTM5NDUsNiArMTM5NzQsMjIgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJFQkI0NjIw
MTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50
LnhwYyAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNl
cnZpY2UiOwogCQl9OworCQk1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wg
Ki8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25M
aXN0ID0gNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlz
dCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNodG9vbCIgKi87CisJCQlidWlsZFBoYXNlcyA9
ICgKKwkJCQk1MTdCNUY1NzI3NUE4RDNFMDAyREMyMkQgLyogU291cmNlcyAqLywKKwkJCQk1MTdC
NUY1ODI3NUE4RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1
bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gd2Vi
cHVzaHRvb2w7CisJCQlwcm9kdWN0TmFtZSA9IHdlYnB1c2h0b29sOworCQkJcHJvZHVjdFJlZmVy
ZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsKKwkJCXBy
b2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAJCTU3NDJB
MkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2
ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2MTNGMDBC
N0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldl
YkF1dGhuIiAqLzsKQEAgLTE0MTYzLDYgKzE0MjA4LDkgQEAKIAkJCQlMYXN0U3dpZnRVcGRhdGVD
aGVjayA9IDEzMDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDExNDA7CiAJCQkJVGFyZ2V0QXR0
cmlidXRlcyA9IHsKKwkJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEID0geworCQkJCQkJQ3Jl
YXRlZE9uVG9vbHNWZXJzaW9uID0gMTMuMDsKKwkJCQkJfTsKIAkJCQkJNTMyNUJEQ0QyMURGRjQ3
NzAwQTBERUUxID0gewogCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMTsKIAkJCQkJ
CVByb3Zpc2lvbmluZ1N0eWxlID0gQXV0b21hdGljOwpAQCAtMTQyMjAsNiArMTQyNjgsNyBAQAog
CQkJCTk0MkRCMjMyMjU3RUU2RDQwMDlCRDgwQSAvKiBFbXB0eURTVFJPT1QgKi8sCiAJCQkJNUNB
RjdBOTkyNkY5M0E3NTAwMDNGMTlFIC8qIGFkYXR0cmlidXRpb25kICovLAogCQkJCTVDMTU3OUND
MjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLywKKwkJCQk1MTdCNUY1QTI3NUE4RDNFMDAy
REMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qg
c2VjdGlvbiAqLwpAQCAtMTQ5NzEsNiArMTUwMjAsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTcyNzVBOEQzRTAw
MkRDMjJEIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MTdC
NUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTE3QjVGNjUyNzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5t
bSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOworCQl9OwogCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291cmNlcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKQEAgLTE1NzgzLDYgKzE1ODQxLDI3IEBACiAJCQl9OwogCQkJbmFtZSA9
IFByb2R1Y3Rpb247CiAJCX07CisJCTUxN0I1RjVGMjc1QThEM0UwMDJEQzIyRCAvKiBEZWJ1ZyAq
LyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRp
b25SZWZlcmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNj
b25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsK
KwkJfTsKKwkJNTE3QjVGNjAyNzVBOEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gNTE3QjVGNkEyNzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJ
NTE3QjVGNjEyNzVBOEQzRTAwMkRDMjJEIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3
QjVGNkEyNzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNTMy
NUJEQ0UyMURGRjQ3ODAwQTBERUUxIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDQjg2RjRCMTE2
QUFBQ0QwMENFMjBCNyAvKiBXZWJLaXQueGNjb25maWcgKi87CkBAIC0xNjE5Nyw2ICsxNjI3Niwx
NiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJNTE3QjVGNjIyNzVBOEQzRTAw
MkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3
ZWJwdXNodG9vbCIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk1MTdCNUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVi
dWcgKi8sCisJCQkJNTE3QjVGNjAyNzVBOEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8sCisJCQkJ
NTE3QjVGNjEyNzVBOEQzRTAwMkRDMjJEIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNTMyNUJERDEyMURGRjQ3ODAwQTBERUUxIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJBcHBseSBDb25m
aWd1cmF0aW9uIHRvIFhDRmlsZUxpc3RzIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wu
eGNzY2hlbWUgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hj
c2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmQ5ZDYzMWNkNDk2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhj
c2NoZW1lCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8U2NoZW1lCisgICBMYXN0VXBncmFkZVZlcnNpb24gPSAiMTMwMCIKKyAgIHZlcnNp
b24gPSAiMS43Ij4KKyAgIDxCdWlsZEFjdGlvbgorICAgICAgcGFyYWxsZWxpemVCdWlsZGFibGVz
ID0gIllFUyIKKyAgICAgIGJ1aWxkSW1wbGljaXREZXBlbmRlbmNpZXMgPSAiWUVTIj4KKyAgICAg
IDxCdWlsZEFjdGlvbkVudHJpZXM+CisgICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQorICAgICAg
ICAgICAgYnVpbGRGb3JUZXN0aW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmlu
ZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvclByb2ZpbGluZyA9ICJZRVMiCisgICAgICAg
ICAgICBidWlsZEZvckFyY2hpdmluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvckFuYWx5
emluZyA9ICJZRVMiPgorICAgICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAg
ICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgICAgQmx1
ZXByaW50SWRlbnRpZmllciA9ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAg
ICAgICBCdWlsZGFibGVOYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgICAgQmx1ZXBy
aW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWlu
ZXIgPSAiY29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgICAgPC9CdWlsZGFi
bGVSZWZlcmVuY2U+CisgICAgICAgICA8L0J1aWxkQWN0aW9uRW50cnk+CisgICAgICA8L0J1aWxk
QWN0aW9uRW50cmllcz4KKyAgIDwvQnVpbGRBY3Rpb24+CisgICA8VGVzdEFjdGlvbgorICAgICAg
YnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIgorICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50
aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCisgICAgICBz
ZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1
bmNoZXIuTExEQiIKKyAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIj4K
KyAgICAgIDxUZXN0YWJsZXM+CisgICAgICA8L1Rlc3RhYmxlcz4KKyAgIDwvVGVzdEFjdGlvbj4K
KyAgIDxMYXVuY2hBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKKyAg
ICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlv
bi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIgPSAiWGNv
ZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisgICAgICBsYXVuY2hTdHlsZSA9
ICIwIgorICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGlnbm9y
ZXNQZXJzaXN0ZW50U3RhdGVPbkxhdW5jaCA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJz
aW9uaW5nID0gIllFUyIKKyAgICAgIGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRlcm5hbCIK
KyAgICAgIGFsbG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxl
UHJvZHVjdFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+Cisg
ICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlm
aWVyID0gInByaW1hcnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1
RjVBMjc1QThEM0UwMDJEQzIyRCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVz
aHRvb2wiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAg
ICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+
CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwvQnVpbGRhYmxlUHJvZHVj
dFJ1bm5hYmxlPgorICAgPC9MYXVuY2hBY3Rpb24+CisgICA8UHJvZmlsZUFjdGlvbgorICAgICAg
YnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hl
bWVBcmdzRW52ID0gIllFUyIKKyAgICAgIHNhdmVkVG9vbElkZW50aWZpZXIgPSAiIgorICAgICAg
dXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJz
aW9uaW5nID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAgICAg
ICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAgICA8QnVpbGRhYmxlUmVmZXJl
bmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCisgICAgICAg
ICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCIKKyAg
ICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wiCisgICAgICAgICAgICBCbHVl
cHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5l
ciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJl
ZmVyZW5jZT4KKyAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9Qcm9maWxl
QWN0aW9uPgorICAgPEFuYWx5emVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJE
ZWJ1ZyI+CisgICA8L0FuYWx5emVBY3Rpb24+CisgICA8QXJjaGl2ZUFjdGlvbgorICAgICAgYnVp
bGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6
ZXIgPSAiWUVTIj4KKyAgIDwvQXJjaGl2ZUFjdGlvbj4KKyAgIDxJbnN0YWxsQWN0aW9uCisgICAg
ICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI+CisgICA8L0luc3RhbGxBY3Rpb24+Cis8
L1NjaGVtZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wv
V2ViUHVzaFRvb2xDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0
b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uZTYxYjIyNTJkYTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaApAQCAtMCwwICsx
LDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5j
bHVkZSA8eHBjL3hwYy5oPgorCituYW1lc3BhY2UgV2ViUHVzaFRvb2wgeworCitlbnVtIGNsYXNz
IEFjdGlvbiB7CisgICAgU3RyZWFtRGVidWdNZXNzYWdlcywKK307CisKK2NsYXNzIENvbm5lY3Rp
b24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4geworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVj
dGlvbj4gY3JlYXRlKEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgQ29ubmVj
dGlvbihBY3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworCisgICAgdm9pZCBjb25uZWN0
VG9TZXJ2aWNlKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoeHBjX29i
amVjdF90KTsKKyAgICB2b2lkIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisKKyAgICB2b2lkIHN0YXJ0
QWN0aW9uKCk7CisgICAgdm9pZCBzdGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisKKyAgICB2b2lk
IHNlbmRBdWRpdFRva2VuKCk7CisgICAgCisgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIFJldGFp
blB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgY29uc3QgY2hhciogbV9z
ZXJ2aWNlTmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25u
ZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGY3ZWIx
YmQxMDJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNo
dG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5o
IgorCisjaW1wb3J0IDxib290c3RyYXAuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
bmFtZXNwYWNlIFdlYlB1c2hUb29sIHsKKworc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IENv
bm5lY3Rpb246OmNyZWF0ZShBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQor
eworICAgIHJldHVybiBtYWtlVW5pcXVlPENvbm5lY3Rpb24+KGFjdGlvbiwgcHJlZmVyVGVzdFNl
cnZpY2UpOworfQorCitzdGF0aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNv
bnN0IGNoYXIqIHNlcnZpY2VOYW1lKQoreworICAgIG1hY2hfcG9ydF90IGJzUG9ydDsKKyAgICB0
YXNrX2dldF9ib290c3RyYXBfcG9ydChtYWNoX3Rhc2tfc2VsZigpLCAmYnNQb3J0KTsKKworICAg
IG1hY2hfcG9ydF90IHNlcnZpY2VQb3J0OworICAgIGtlcm5fcmV0dXJuX3QgZXJyID0gYm9vdHN0
cmFwX2xvb2tfdXAoYnNQb3J0LCBzZXJ2aWNlTmFtZSwgJnNlcnZpY2VQb3J0KTsKKworICAgIGlm
IChlcnIgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gc2VydmljZVBvcnQ7CisKKyAg
ICByZXR1cm4gTUFDSF9QT1JUX05VTEw7Cit9CisKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0
aW9uIGFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKKyAgICA6IG1fYWN0aW9uKGFjdGlv
bikKK3sKKyAgICBpZiAocHJlZmVyVGVzdFNlcnZpY2UpCisgICAgICAgIG1fc2VydmljZU5hbWUg
PSAib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBlbHNlCisgICAg
ICAgIG1fc2VydmljZU5hbWUgPSAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsK
KworICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hf
c2VydmljZShtX3NlcnZpY2VOYW1lLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisK
KyAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCks
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh4cGNfb2JqZWN0X3QgZXZlbnQp
IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkgeworICAgICAgICAg
ICAgcHJpbnRmKCJGYWlsZWQgdG8gc3RhcnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBt
YWNoIHNlcnZpY2VcbiIpOworICAgICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJS
T1JfQ09OTkVDVElPTl9JTlRFUlJVUFRFRCkgeworICAgICAgICAgICAgcHJpbnRmKCJDb25uZWN0
aW9uIGNsb3NlZFxuIik7CisgICAgICAgICAgICBjb25uZWN0aW9uRHJvcHBlZCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHhwY19nZXRfdHlwZShldmVu
dCkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSkgeworICAgICAgICAgICAgbWVzc2FnZVJlY2VpdmVk
KGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6
Y29ubmVjdFRvU2VydmljZSgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2Vydmlj
ZU5hbWUpOworICAgIGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCisgICAgICAgIHByaW50
ZigiV2FpdGluZyBmb3Igc2VydmljZSAnJXMnIHRvIGJlIGF2YWlsYWJsZVxuIiwgbV9zZXJ2aWNl
TmFtZSk7CisKKyAgICB3aGlsZSAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKSB7CisgICAgICAg
IHVzbGVlcCgxMDAwKTsKKyAgICAgICAgcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1f
c2VydmljZU5hbWUpOworICAgIH0KKworICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29u
bmVjdGlvbi5nZXQoKSk7CisKKyAgICBzZW5kQXVkaXRUb2tlbigpOworICAgIHN0YXJ0QWN0aW9u
KCk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6c3RhcnRBY3Rpb24oKQoreworICAgIHN3aXRjaCAo
bV9hY3Rpb24pIHsKKyAgICBjYXNlIEFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczoKKyAgICAg
ICAgc3RhcnREZWJ1Z1N0cmVhbUFjdGlvbigpOworICAgICAgICBicmVhazsKKyAgICB9OworfQor
Cit2b2lkIENvbm5lY3Rpb246OnN0YXJ0RGVidWdTdHJlYW1BY3Rpb24oKQoreworICAgIGF1dG8g
ZGljdGlvbmFyeSA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxw
dHIsIDApKTsKKyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDE+IGVuY29kZWRNZXNzYWdlIHsgMSB9
OworICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3Rv
Y29sIHZlcnNpb24iLCAxKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25h
cnkuZ2V0KCksICJtZXNzYWdlIHR5cGUiLCA1KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0
YShkaWN0aW9uYXJ5LmdldCgpLCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0
YSgpLCBlbmNvZGVkTWVzc2FnZS5zaXplKCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9t
ZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7CisKKyAgICBwcmlu
dGYoIk5vdyBzdHJlYW1pbmcgZGVidWcgbWVzc2FnZXNcbiIpOworfQorCit2b2lkIENvbm5lY3Rp
b246OnNlbmRBdWRpdFRva2VuKCkKK3sKKyAgICBhdWRpdF90b2tlbl90IHRva2VuID0geyAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwIH07CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBhdWRpdFRv
a2VuQ291bnQgPSBUQVNLX0FVRElUX1RPS0VOX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgcmVz
dWx0ID0gdGFza19pbmZvKG1hY2hfdGFza19zZWxmKCksIFRBU0tfQVVESVRfVE9LRU4sICh0YXNr
X2luZm9fdCkoJnRva2VuKSwgJmF1ZGl0VG9rZW5Db3VudCk7CisgICAgaWYgKHJlc3VsdCAhPSBL
RVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gZ2V0IGF1ZGl0IHRva2Vu
IHRvIHNlbmRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjphcnJheTx1
aW50OF90LCA0Mj4gZW5jb2RlZE1lc3NhZ2U7CisgICAgZW5jb2RlZE1lc3NhZ2UuZmlsbCgwKTsK
KyAgICBlbmNvZGVkTWVzc2FnZVsxXSA9IDE7CisgICAgZW5jb2RlZE1lc3NhZ2VbMl0gPSAzMjsK
KyAgICBtZW1jcHkoJmVuY29kZWRNZXNzYWdlWzEwXSwgJnRva2VuLCBzaXplb2YodG9rZW4pKTsK
KyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxs
cHRyLCBudWxscHRyLCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9u
YXJ5LmdldCgpLCAicHJvdG9jb2wgdmVyc2lvbiIsIDEpOworICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDYpOworICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9kYXRhKGRpY3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBl
bmNvZGVkTWVzc2FnZS5kYXRhKCksIGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisgICAgeHBjX2Nv
bm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQo
KSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQoKQoreworICAgIG1f
Y29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgQ0ZSdW5Mb29wU3RvcChDRlJ1bkxvb3BHZXRDdXJy
ZW50KCkpOworfQorCit2b2lkIENvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCh4cGNfb2JqZWN0
X3QgbWVzc2FnZSkKK3sKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z01lc3NhZ2UgPSB4cGNfZGljdGlv
bmFyeV9nZXRfc3RyaW5nKG1lc3NhZ2UsICJkZWJ1ZyBtZXNzYWdlIik7CisgICAgaWYgKCFkZWJ1
Z01lc3NhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHByaW50ZigiJXNcbiIsIGRlYnVnTWVz
c2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWM1Njk2YjkxN2NmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1h
aW4ubW0KQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKyNpbXBvcnQgPG9wdGlvbmFsPgorCitfX2F0dHJpYnV0ZV9fKChfX25vcmV0
dXJuX18pKQorc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVz
c2FnZSkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG5cbiIsIG1lc3NhZ2UuVVRGOFN0cmlu
Zyk7CisKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiB3ZWJwdXNodG9vbCBbb3B0aW9uc11c
biIpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
LS1kZXZlbG9wbWVudCAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3Jn
LndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIiAgLS1wcm9kdWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8g
bWFjaCBzZXJ2aWNlIFwiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOwor
ICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0g
ZGVidWcgbWVzc2FnZXMgZnJvbSB3ZWJwdXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICJc
biIpOworCisgICAgZXhpdCgtMSk7Cit9CisKK2ludCBtYWluKGludCwgY29uc3QgY2hhciAqKikK
K3sKKyAgICBib29sIHByZWZlclRlc3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYlB1c2hUb29sOjpBY3Rpb24+IGFjdGlvbjsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgewor
ICAgICAgICBOU0FycmF5ICphcmd1bWVudHMgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9d
IGFyZ3VtZW50c107CisgICAgICAgIGlmIChhcmd1bWVudHMuY291bnQgPT0gMSkKKyAgICAgICAg
ICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoQCJObyBhcmd1bWVudHMgcHJvdmlkZWQiKTsKKwor
ICAgICAgICBmb3IgKE5TU3RyaW5nICphcmd1bWVudCBpbiBbYXJndW1lbnRzIHN1YmFycmF5V2l0
aFJhbmdlOk5TTWFrZVJhbmdlKDEsIGFyZ3VtZW50cy5jb3VudCAtIDEpXSkgeworICAgICAgICAg
ICAgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXByb2R1Y3Rpb24iXSkKKyAgICAg
ICAgICAgICAgICBwcmVmZXJUZXN0U2VydmljZSA9IGZhbHNlOworICAgICAgICAgICAgaWYgKFth
cmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLWRldmVsb3BtZW50Il0pCisgICAgICAgICAgICAg
ICAgcHJlZmVyVGVzdFNlcnZpY2UgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3Vt
ZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tc3RyZWFtRGVidWdNZXNzYWdlcyJdKQorICAgICAgICAg
ICAgICAgIGFjdGlvbiA9IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0
ZShbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAl
QCIsIGFyZ3VtZW50XSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWFjdGlvbikKKyAg
ICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShAIk5vIGFjdGlvbiBwcm92aWRlZCIpOworCisg
ICAgYXV0byBjb25uZWN0aW9uID0gV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSgqYWN0
aW9uLCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgY29ubmVjdGlvbi0+Y29ubmVjdFRvU2Vydmlj
ZSgpOworCisgICAgQ0ZSdW5Mb29wUnVuKCk7CisgICAgcmV0dXJuIDA7Cit9Cg==
</data>
<flag name="review"
          id="471237"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445935</attachid>
            <date>2021-12-03 18:34:29 -0800</date>
            <delta_ts>2021-12-03 18:52:53 -0800</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31219</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi43N2Y2YjcwYzQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi41NjI0YjM5MDljMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0wLDAgKzEs
MzIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFz
ZVRhcmdldC54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gd2VicHVzaHRvb2w7CitTS0lQX0lO
U1RBTEwgPSBZRVM7CisKK09USEVSX0xERkxBR1MgPSAtbCBXVEYgLWZyYW1ld29yayBGb3VuZGF0
aW9uIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb247CitMSUJSQVJZX1NFQVJDSF9QQVRIUyA9ICQo
QlVJTFRfUFJPRFVDVFNfRElSKTsKKworQ09ERV9TSUdOX0VOVElUTEVNRU5UUyA9IFJlc291cmNl
cy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jl
c291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi42NGEwYjU2YmM1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKQEAgLTAsMCArMSw4IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJ
QyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFRE
cy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0Pgor
CTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2g8L2tleT4KKwk8dHJ1ZS8+Cis8
L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYjEyMDRlM2M0M2JiLi4zMmQ1ZGVhZWVkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQsNiArMTQs
NyBAQAogCQkJCUJDRkZDQThBMTYwRDZERUEwMDNERjMxNSAvKiBBZGQgWFBDU2VydmljZXMgc3lt
bGluayAqLywKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJNTE3QjVGNkQyNzVCMDdD
MzAwMkRDMjJEIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNUMxNTc5REYyNzE2NUUw
ODAwRUQ1MjgwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNUNBRjdBQTkyNkY5M0Y5
RjAwMDNGMTlFIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNTc0MkEyRkEyNTM1NjE5
RDAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCkBAIC0xMDIyLDYgKzEwMjMsOCBA
QAogCQk1MTdBNTMxMDFGNDdBODYyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5o
ICovOyB9OwogCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCTUxN0I1RjJGMjc1NzM4MkIwMDJEQzIyRCAv
KiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjJEMjc1NzM4MkEwMDJEQzIyRCAv
KiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKKwkJNTE3QjVG
NjUyNzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjY0Mjc1QThEN0UwMDJEQzIyRCAv
KiBXZWJQdXNoVG9vbE1haW4ubW0gKi87IH07CisJCTUxN0I1RjY4Mjc1QTlBNzgwMDJEQzIyRCAv
KiBXZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xD
b25uZWN0aW9uLm1tICovOyB9OwogCQk1MTdDRjBFMzE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAvKiBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MTdD
RjBFMzE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEU0MTYzQTQ4NkMwMEMyOTUw
RSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8q
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CkBAIC0yMTIyLDYgKzIx
MjUsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQzBDRTcyODUxMjQ3RTY2ODAwQkMw
RUM0OwogCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOwogCQl9OworCQk1MTdCNUY2
QzI3NUIwN0MzMDAyREMyMkQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBG
RTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEOworCQkJ
cmVtb3RlSW5mbyA9IHdlYnB1c2h0b29sOworCQl9OwogCQk1NzQyQTJFNzI1MzU2MTNGMDBCN0JB
MTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDM3NSw2ICs0Mzg1LDEyIEBACiAJCTUxN0E1MzBE
MUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rpb25N
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdBNTMw
RTFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNXQ2xpZW50Q29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0I1RjJEMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQ
dXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJw
dXNodG9vbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
d2VicHVzaHRvb2w7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxN0I1
RjY0Mjc1QThEN0UwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbE1haW4ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQdXNoVG9vbE1haW4ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxN0I1RjY2Mjc1QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9v
bENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHVzaFRv
b2xDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0I1RjY3Mjc1
QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQdXNoVG9vbENvbm5lY3Rpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3ZWJw
dXNodG9vbC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSB3ZWJwdXNodG9vbC54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVGNkIyNzVBRTUwQjAwMkRDMjJEIC8qIHdl
YnB1c2h0b29sLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QuZW50aXRsZW1lbnRz
OyBuYW1lID0gd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOyBwYXRoID0gUmVzb3VyY2VzL3dlYnB1
c2h0b29sLmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3Q0Yw
RTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1
MEYgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNjQyOSw2ICs2NDQ1LDEz
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CisJCTUxN0I1RjU4Mjc1QThEM0UwMDJEQzIyRCAvKiBGcmFtZXdvcmtzICovID0geworCQkJ
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTU3NDJBMkVEMjUzNTYxM0YwMEI3QkExNCAvKiBGcmFt
ZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjUyNCw2ICs2NTQ3LDcgQEAKIAkJCQlDRDk1
NDkzNTI2MTU5MDA0MDA4MzcyRDkgLyogbGliV2ViS2l0U3dpZnQuZHlsaWIgKi8sCiAJCQkJQTE2
RTY2MDAyNTgxOTMwODAwRUUxNzQ5IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmJ1bmRsZSAqLywKIAkJ
CQk4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0LmZyYW1ld29yayAqLywKKwkJCQk1
MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY3NjYsNiArNjc5
MCw3IEBACiAJCQkJNUM4QkM3OTYyMThDQjU4QTAwODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fz
c2V0cyAqLywKIAkJCQlFMUQyNkE0QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nl
c3MueGliICovLAogCQkJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyAq
LywKKwkJCQk1MTdCNUY2QjI3NUFFNTBCMDAyREMyMkQgLyogd2VicHVzaHRvb2wuZW50aXRsZW1l
bnRzICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtNjkxNyw2ICs2OTQyLDcgQEAKIAkJCQlDRDA5RkQwQTI2MTUyRTIzMDBFNEFD
RjEgLyogV2ViS2l0U3dpZnQueGNjb25maWcgKi8sCiAJCQkJMzcxMTlBN0MyMENDQjY0RTAwMkM2
REM5IC8qIFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54Y2NvbmZpZyAqLywKIAkJCQk1QzE1NzlE
RDI3MTY1QkU1MDBFRDUyODAgLyogd2VicHVzaGQueGNjb25maWcgKi8sCisJCQkJNTE3QjVGNkEy
NzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovLAogCQkJKTsKIAkJCXBh
dGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05NDA3
LDYgKzk0MzMsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQk1MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxN0I1RjY2Mjc1QTlB
NzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCAqLywKKwkJCQk1MTdCNUY2NzI3
NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tICovLAorCQkJCTUxN0I1
RjY0Mjc1QThEN0UwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbE1haW4ubW0gKi8sCisJCQkpOworCQkJ
cGF0aCA9IHdlYnB1c2h0b29sOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
NTE4RThFRjExNkIyMDhGMDAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk4ODUsNiArOTkyMSw3IEBACiAJCTVD
MTU3QTBBMjcxN0M5RjEwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE3QjVGNjMyNzVBOEQ1QzAwMkRDMjJEIC8qIHdl
YnB1c2h0b29sICovLAogCQkJCTUxNjBFOTU0Mjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVS
ZXF1ZXN0LmggKi8sCiAJCQkJNTE2MEU5NTMyNzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJl
cXVlc3QubW0gKi8sCiAJCQkJNUNCQjZENEQyNzFGNjdDQzAwRkQxQTVEIC8qIGNvbS5hcHBsZS53
ZWJraXQud2VicHVzaGQucGxpc3QgKi8sCkBAIC0xMzk0NSw2ICsxMzk4MiwyMiBAQAogCQkJcHJv
ZHVjdFJlZmVyZW5jZSA9IDM3MkVCQjQ2MjAxN0U2NDMwMDA4NTA2NCAvKiBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29t
LmFwcGxlLnByb2R1Y3QtdHlwZS54cGMtc2VydmljZSI7CiAJCX07CisJCTUxN0I1RjVBMjc1QThE
M0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdl
dDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1MTdCNUY2MjI3NUE4RDNFMDAyREMyMkQg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2h0
b29sIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTUxN0I1RjU3Mjc1QThEM0UwMDJEQzIy
RCAvKiBTb3VyY2VzICovLAorCQkJCTUxN0I1RjU4Mjc1QThEM0UwMDJEQzIyRCAvKiBGcmFtZXdv
cmtzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVz
ID0gKAorCQkJKTsKKwkJCW5hbWUgPSB3ZWJwdXNodG9vbDsKKwkJCXByb2R1Y3ROYW1lID0gd2Vi
cHVzaHRvb2w7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJE
IC8qIHdlYnB1c2h0b29sICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3Qt
dHlwZS50b29sIjsKKwkJfTsKIAkJNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1dGhu
ICovID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDU3NDJBMkYzMjUzNTYxM0YwMEI3QkExNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViQXV0aG4iICovOwpAQCAtMTQxNjMsNiArMTQyMTYs
OSBAQAogCQkJCUxhc3RTd2lmdFVwZGF0ZUNoZWNrID0gMTMwMDsKIAkJCQlMYXN0VXBncmFkZUNo
ZWNrID0gMTE0MDsKIAkJCQlUYXJnZXRBdHRyaWJ1dGVzID0geworCQkJCQk1MTdCNUY1QTI3NUE4
RDNFMDAyREMyMkQgPSB7CisJCQkJCQlDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSAxMy4wOworCQkJ
CQl9OwogCQkJCQk1MzI1QkRDRDIxREZGNDc3MDBBMERFRTEgPSB7CiAJCQkJCQlDcmVhdGVkT25U
b29sc1ZlcnNpb24gPSAxMC4xOwogCQkJCQkJUHJvdmlzaW9uaW5nU3R5bGUgPSBBdXRvbWF0aWM7
CkBAIC0xNDIyMCw2ICsxNDI3Niw3IEBACiAJCQkJOTQyREIyMzIyNTdFRTZENDAwOUJEODBBIC8q
IEVtcHR5RFNUUk9PVCAqLywKIAkJCQk1Q0FGN0E5OTI2RjkzQTc1MDAwM0YxOUUgLyogYWRhdHRy
aWJ1dGlvbmQgKi8sCiAJCQkJNUMxNTc5Q0MyNzE2NUIyRjAwRUQ1MjgwIC8qIHdlYnB1c2hkICov
LAorCQkJCTUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCSk7
CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCkBAIC0xNDk3MSw2ICsxNTAyOCwx
NSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OworCQk1MTdCNUY1NzI3NUE4RDNFMDAyREMyMkQgLyogU291cmNlcyAqLyA9IHsKKwkJCWlz
YSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKKwkJCWZpbGVzID0gKAorCQkJCTUxN0I1RjY4Mjc1QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNo
VG9vbENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTdCNUY2NTI3NUE4RDdGMDAy
REMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCTU3NDJBMkVBMjUz
NTYxM0YwMEI3QkExNCAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxk
UGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTU1MzQsNiArMTU2
MDAsMTEgQEAKIAkJCXRhcmdldCA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNCAvKiBEZXJpdmVk
IFNvdXJjZXMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDM3Rjc0MDc4MTI3MjFGNzQwMDkzODY5QiAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTUxN0I1RjZEMjc1QjA3QzMwMDJE
QzIyRCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVw
ZW5kZW5jeTsKKwkJCXRhcmdldCA9IDUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNo
dG9vbCAqLzsKKwkJCXRhcmdldFByb3h5ID0gNTE3QjVGNkMyNzVCMDdDMzAwMkRDMjJEIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNTc0MkEyRTYyNTM1NjEzRjAwQjdCQTE0
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwogCQkJdGFyZ2V0ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBLZXlj
aGFpbiAqLzsKQEAgLTE1NzgzLDYgKzE1ODU0LDI3IEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1
Y3Rpb247CiAJCX07CisJCTUxN0I1RjVGMjc1QThEM0UwMDJEQzIyRCAvKiBEZWJ1ZyAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsK
KwkJNTE3QjVGNjAyNzVBOEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3
QjVGNkEyNzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJNTE3QjVG
NjEyNzVBOEQzRTAwMkRDMjJEIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEy
NzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNTMyNUJEQ0Uy
MURGRjQ3ODAwQTBERUUxIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDQjg2RjRCMTE2QUFBQ0Qw
MENFMjBCNyAvKiBXZWJLaXQueGNjb25maWcgKi87CkBAIC0xNjE5Nyw2ICsxNjI4OSwxNiBAQAog
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJE
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNo
dG9vbCIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKKwkJCQk1MTdCNUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVidWcgKi8s
CisJCQkJNTE3QjVGNjAyNzVBOEQzRTAwMkRDMjJEIC8qIFJlbGVhc2UgKi8sCisJCQkJNTE3QjVG
NjEyNzVBOEQzRTAwMkRDMjJEIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0g
UHJvZHVjdGlvbjsKKwkJfTsKIAkJNTMyNUJERDEyMURGRjQ3ODAwQTBERUUxIC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJBcHBseSBDb25maWd1cmF0
aW9uIHRvIFhDRmlsZUxpc3RzIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hl
bWUgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1l
cy93ZWJwdXNodG9vbC54Y3NjaGVtZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmQ5ZDYzMWNkNDk2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1l
CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8U2NoZW1lCisgICBMYXN0VXBncmFkZVZlcnNpb24gPSAiMTMwMCIKKyAgIHZlcnNpb24gPSAi
MS43Ij4KKyAgIDxCdWlsZEFjdGlvbgorICAgICAgcGFyYWxsZWxpemVCdWlsZGFibGVzID0gIllF
UyIKKyAgICAgIGJ1aWxkSW1wbGljaXREZXBlbmRlbmNpZXMgPSAiWUVTIj4KKyAgICAgIDxCdWls
ZEFjdGlvbkVudHJpZXM+CisgICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQorICAgICAgICAgICAg
YnVpbGRGb3JUZXN0aW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZ
RVMiCisgICAgICAgICAgICBidWlsZEZvclByb2ZpbGluZyA9ICJZRVMiCisgICAgICAgICAgICBi
dWlsZEZvckFyY2hpdmluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvckFuYWx5emluZyA9
ICJZRVMiPgorICAgICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgICAg
QnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgICAgQmx1ZXByaW50
SWRlbnRpZmllciA9ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAgICAgICBC
dWlsZGFibGVOYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgICAgQmx1ZXByaW50TmFt
ZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAi
Y29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgICAgPC9CdWlsZGFibGVSZWZl
cmVuY2U+CisgICAgICAgICA8L0J1aWxkQWN0aW9uRW50cnk+CisgICAgICA8L0J1aWxkQWN0aW9u
RW50cmllcz4KKyAgIDwvQnVpbGRBY3Rpb24+CisgICA8VGVzdEFjdGlvbgorICAgICAgYnVpbGRD
b25maWd1cmF0aW9uID0gIkRlYnVnIgorICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCisgICAgICBzZWxlY3Rl
ZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIu
TExEQiIKKyAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIj4KKyAgICAg
IDxUZXN0YWJsZXM+CisgICAgICA8L1Rlc3RhYmxlcz4KKyAgIDwvVGVzdEFjdGlvbj4KKyAgIDxM
YXVuY2hBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNl
bGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1
Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVi
dWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisgICAgICBsYXVuY2hTdHlsZSA9ICIwIgor
ICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGlnbm9yZXNQZXJz
aXN0ZW50U3RhdGVPbkxhdW5jaCA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5n
ID0gIllFUyIKKyAgICAgIGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRlcm5hbCIKKyAgICAg
IGFsbG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVj
dFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAg
ICA8QnVpbGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0g
InByaW1hcnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1
QThEM0UwMDJEQzIyRCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wi
CisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAg
UmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+CisgICAg
ICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5h
YmxlPgorICAgPC9MYXVuY2hBY3Rpb24+CisgICA8UHJvZmlsZUFjdGlvbgorICAgICAgYnVpbGRD
b25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdz
RW52ID0gIllFUyIKKyAgICAgIHNhdmVkVG9vbElkZW50aWZpZXIgPSAiIgorICAgICAgdXNlQ3Vz
dG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5n
ID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAgICAgICBydW5u
YWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCisg
ICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCisgICAgICAgICAgICBC
bHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCIKKyAgICAgICAg
ICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wiCisgICAgICAgICAgICBCbHVlcHJpbnRO
YW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJj
b250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5j
ZT4KKyAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9Qcm9maWxlQWN0aW9u
PgorICAgPEFuYWx5emVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyI+
CisgICA8L0FuYWx5emVBY3Rpb24+CisgICA8QXJjaGl2ZUFjdGlvbgorICAgICAgYnVpbGRDb25m
aWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6ZXIgPSAi
WUVTIj4KKyAgIDwvQXJjaGl2ZUFjdGlvbj4KKyAgIDxJbnN0YWxsQWN0aW9uCisgICAgICBidWls
ZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI+CisgICA8L0luc3RhbGxBY3Rpb24+Cis8L1NjaGVt
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVz
aFRvb2xDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dl
YlB1c2hUb29sQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uZTYxYjIyNTJkYTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8
eHBjL3hwYy5oPgorCituYW1lc3BhY2UgV2ViUHVzaFRvb2wgeworCitlbnVtIGNsYXNzIEFjdGlv
biB7CisgICAgU3RyZWFtRGVidWdNZXNzYWdlcywKK307CisKK2NsYXNzIENvbm5lY3Rpb24gOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4g
Y3JlYXRlKEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgQ29ubmVjdGlvbihB
Y3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworCisgICAgdm9pZCBjb25uZWN0VG9TZXJ2
aWNlKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90
KTsKKyAgICB2b2lkIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisKKyAgICB2b2lkIHN0YXJ0QWN0aW9u
KCk7CisgICAgdm9pZCBzdGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisKKyAgICB2b2lkIHNlbmRB
dWRpdFRva2VuKCk7CisgICAgCisgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIFJldGFpblB0cjx4
cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgY29uc3QgY2hhciogbV9zZXJ2aWNl
TmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9u
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGY3ZWIxYmQxMDJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9X
ZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgorCisj
aW1wb3J0IDxib290c3RyYXAuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNw
YWNlIFdlYlB1c2hUb29sIHsKKworc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IENvbm5lY3Rp
b246OmNyZWF0ZShBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQoreworICAg
IHJldHVybiBtYWtlVW5pcXVlPENvbm5lY3Rpb24+KGFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2Up
OworfQorCitzdGF0aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNvbnN0IGNo
YXIqIHNlcnZpY2VOYW1lKQoreworICAgIG1hY2hfcG9ydF90IGJzUG9ydDsKKyAgICB0YXNrX2dl
dF9ib290c3RyYXBfcG9ydChtYWNoX3Rhc2tfc2VsZigpLCAmYnNQb3J0KTsKKworICAgIG1hY2hf
cG9ydF90IHNlcnZpY2VQb3J0OworICAgIGtlcm5fcmV0dXJuX3QgZXJyID0gYm9vdHN0cmFwX2xv
b2tfdXAoYnNQb3J0LCBzZXJ2aWNlTmFtZSwgJnNlcnZpY2VQb3J0KTsKKworICAgIGlmIChlcnIg
PT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gc2VydmljZVBvcnQ7CisKKyAgICByZXR1
cm4gTUFDSF9QT1JUX05VTEw7Cit9CisKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFj
dGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKKyAgICA6IG1fYWN0aW9uKGFjdGlvbikKK3sK
KyAgICBpZiAocHJlZmVyVGVzdFNlcnZpY2UpCisgICAgICAgIG1fc2VydmljZU5hbWUgPSAib3Jn
LndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBlbHNlCisgICAgICAgIG1f
c2VydmljZU5hbWUgPSAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKKworICAg
IG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2Vydmlj
ZShtX3NlcnZpY2VOYW1lLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisKKyAgICB4
cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
ZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkgeworICAgICAgICAgICAgcHJp
bnRmKCJGYWlsZWQgdG8gc3RhcnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBtYWNoIHNl
cnZpY2VcbiIpOworICAgICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09O
TkVDVElPTl9JTlRFUlJVUFRFRCkgeworICAgICAgICAgICAgcHJpbnRmKCJDb25uZWN0aW9uIGNs
b3NlZFxuIik7CisgICAgICAgICAgICBjb25uZWN0aW9uRHJvcHBlZCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHhwY19nZXRfdHlwZShldmVudCkgPT0g
WFBDX1RZUEVfRElDVElPTkFSWSkgeworICAgICAgICAgICAgbWVzc2FnZVJlY2VpdmVkKGV2ZW50
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVj
dFRvU2VydmljZSgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUp
OworICAgIGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCisgICAgICAgIHByaW50ZigiV2Fp
dGluZyBmb3Igc2VydmljZSAnJXMnIHRvIGJlIGF2YWlsYWJsZVxuIiwgbV9zZXJ2aWNlTmFtZSk7
CisKKyAgICB3aGlsZSAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKSB7CisgICAgICAgIHVzbGVl
cCgxMDAwKTsKKyAgICAgICAgcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2Vydmlj
ZU5hbWUpOworICAgIH0KKworICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlv
bi5nZXQoKSk7CisKKyAgICBzZW5kQXVkaXRUb2tlbigpOworICAgIHN0YXJ0QWN0aW9uKCk7Cit9
CisKK3ZvaWQgQ29ubmVjdGlvbjo6c3RhcnRBY3Rpb24oKQoreworICAgIHN3aXRjaCAobV9hY3Rp
b24pIHsKKyAgICBjYXNlIEFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczoKKyAgICAgICAgc3Rh
cnREZWJ1Z1N0cmVhbUFjdGlvbigpOworICAgICAgICBicmVhazsKKyAgICB9OworfQorCit2b2lk
IENvbm5lY3Rpb246OnN0YXJ0RGVidWdTdHJlYW1BY3Rpb24oKQoreworICAgIGF1dG8gZGljdGlv
bmFyeSA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDAp
KTsKKyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDE+IGVuY29kZWRNZXNzYWdlIHsgMSB9OworICAg
IHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZl
cnNpb24iLCAxKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0
KCksICJtZXNzYWdlIHR5cGUiLCA1KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0
aW9uYXJ5LmdldCgpLCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBl
bmNvZGVkTWVzc2FnZS5zaXplKCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdl
KG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7CisKKyAgICBwcmludGYoIk5v
dyBzdHJlYW1pbmcgZGVidWcgbWVzc2FnZXNcbiIpOworfQorCit2b2lkIENvbm5lY3Rpb246OnNl
bmRBdWRpdFRva2VuKCkKK3sKKyAgICBhdWRpdF90b2tlbl90IHRva2VuID0geyAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwIH07CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBhdWRpdFRva2VuQ291
bnQgPSBUQVNLX0FVRElUX1RPS0VOX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0g
dGFza19pbmZvKG1hY2hfdGFza19zZWxmKCksIFRBU0tfQVVESVRfVE9LRU4sICh0YXNrX2luZm9f
dCkoJnRva2VuKSwgJmF1ZGl0VG9rZW5Db3VudCk7CisgICAgaWYgKHJlc3VsdCAhPSBLRVJOX1NV
Q0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gZ2V0IGF1ZGl0IHRva2VuIHRvIHNl
bmRcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjphcnJheTx1aW50OF90
LCA0Mj4gZW5jb2RlZE1lc3NhZ2U7CisgICAgZW5jb2RlZE1lc3NhZ2UuZmlsbCgwKTsKKyAgICBl
bmNvZGVkTWVzc2FnZVsxXSA9IDE7CisgICAgZW5jb2RlZE1lc3NhZ2VbMl0gPSAzMjsKKyAgICBt
ZW1jcHkoJmVuY29kZWRNZXNzYWdlWzEwXSwgJnRva2VuLCBzaXplb2YodG9rZW4pKTsKKyAgICBh
dXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBu
dWxscHRyLCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5Lmdl
dCgpLCAicHJvdG9jb2wgdmVyc2lvbiIsIDEpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50
NjQoZGljdGlvbmFyeS5nZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDYpOworICAgIHhwY19kaWN0aW9u
YXJ5X3NldF9kYXRhKGRpY3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBlbmNvZGVk
TWVzc2FnZS5kYXRhKCksIGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisgICAgeHBjX2Nvbm5lY3Rp
b25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7Cit9
CisKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQoKQoreworICAgIG1fY29ubmVj
dGlvbiA9IG51bGxwdHI7CisgICAgQ0ZSdW5Mb29wU3RvcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkp
OworfQorCit2b2lkIENvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCh4cGNfb2JqZWN0X3QgbWVz
c2FnZSkKK3sKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z01lc3NhZ2UgPSB4cGNfZGljdGlvbmFyeV9n
ZXRfc3RyaW5nKG1lc3NhZ2UsICJkZWJ1ZyBtZXNzYWdlIik7CisgICAgaWYgKCFkZWJ1Z01lc3Nh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIHByaW50ZigiJXNcbiIsIGRlYnVnTWVzc2FnZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbSBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWM1Njk2YjkxN2NmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0K
QEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KKyNpbXBvcnQgPG9wdGlvbmFsPgorCitfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18p
KQorc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkK
K3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG5cbiIsIG1lc3NhZ2UuVVRGOFN0cmluZyk7CisK
KyAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiB3ZWJwdXNodG9vbCBbb3B0aW9uc11cbiIpOwor
ICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXZl
bG9wbWVudCAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3JnLndlYmtp
dC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgLS1wcm9kdWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBz
ZXJ2aWNlIFwiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOworICAgIGZw
cmludGYoc3RkZXJyLCAiICAtLXN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0gZGVidWcg
bWVzc2FnZXMgZnJvbSB3ZWJwdXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwor
CisgICAgZXhpdCgtMSk7Cit9CisKK2ludCBtYWluKGludCwgY29uc3QgY2hhciAqKikKK3sKKyAg
ICBib29sIHByZWZlclRlc3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYlB1
c2hUb29sOjpBY3Rpb24+IGFjdGlvbjsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAg
ICBOU0FycmF5ICphcmd1bWVudHMgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIGFyZ3Vt
ZW50c107CisgICAgICAgIGlmIChhcmd1bWVudHMuY291bnQgPT0gMSkKKyAgICAgICAgICAgIHBy
aW50VXNhZ2VBbmRUZXJtaW5hdGUoQCJObyBhcmd1bWVudHMgcHJvdmlkZWQiKTsKKworICAgICAg
ICBmb3IgKE5TU3RyaW5nICphcmd1bWVudCBpbiBbYXJndW1lbnRzIHN1YmFycmF5V2l0aFJhbmdl
Ok5TTWFrZVJhbmdlKDEsIGFyZ3VtZW50cy5jb3VudCAtIDEpXSkgeworICAgICAgICAgICAgaWYg
KFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXByb2R1Y3Rpb24iXSkKKyAgICAgICAgICAg
ICAgICBwcmVmZXJUZXN0U2VydmljZSA9IGZhbHNlOworICAgICAgICAgICAgaWYgKFthcmd1bWVu
dCBpc0VxdWFsVG9TdHJpbmc6QCItLWRldmVsb3BtZW50Il0pCisgICAgICAgICAgICAgICAgcHJl
ZmVyVGVzdFNlcnZpY2UgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlz
RXF1YWxUb1N0cmluZzpAIi0tc3RyZWFtRGVidWdNZXNzYWdlcyJdKQorICAgICAgICAgICAgICAg
IGFjdGlvbiA9IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAlQCIsIGFy
Z3VtZW50XSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWFjdGlvbikKKyAgICAgICAg
cHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShAIk5vIGFjdGlvbiBwcm92aWRlZCIpOworCisgICAgYXV0
byBjb25uZWN0aW9uID0gV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSgqYWN0aW9uLCBw
cmVmZXJUZXN0U2VydmljZSk7CisgICAgY29ubmVjdGlvbi0+Y29ubmVjdFRvU2VydmljZSgpOwor
CisgICAgQ0ZSdW5Mb29wUnVuKCk7CisgICAgcmV0dXJuIDA7Cit9Cg==
</data>
<flag name="commit-queue"
          id="471243"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445936</attachid>
            <date>2021-12-03 18:50:23 -0800</date>
            <delta_ts>2021-12-03 19:51:39 -0800</delta_ts>
            <desc>PFL v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31313</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi43N2Y2YjcwYzQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi43MzcxYTMzNzM0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0wLDAgKzEs
MzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFz
ZVRhcmdldC54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gd2VicHVzaHRvb2w7CitTS0lQX0lO
U1RBTEwgPSBZRVM7CisKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1hcHBsZXR2Kl0g
PSAqOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPXdhdGNoKl0gPSAqOworCitPVEhF
Ul9MREZMQUdTID0gLWwgV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVG
b3VuZGF0aW9uOworTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUik7
CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjRhMGI1NmJj
NTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRv
b2wuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2
YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIx
MjA0ZTNjNDNiYi4uMzJkNWRlYWVlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0LDYgKzE0LDcgQEAKIAkJCQlCQ0ZGQ0E4QTE2
MEQ2REVBMDAzREYzMTUgLyogQWRkIFhQQ1NlcnZpY2VzIHN5bWxpbmsgKi8sCiAJCQkpOwogCQkJ
ZGVwZW5kZW5jaWVzID0gKAorCQkJCTUxN0I1RjZEMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDMTU3OURGMjcxNjVFMDgwMEVENTI4MCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDQUY3QUE5MjZGOTNGOUYwMDAzRjE5RSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTU3NDJBMkZBMjUzNTYxOUQwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLApAQCAtMTAyMiw2ICsxMDIzLDggQEAKIAkJNTE3QTUzMTAxRjQ3QTg2
MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwRDFGNDdBODQzMDBEQ0RD
MEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE3QjVGMkUy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGMkQy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
ICovOyB9OwogCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggKi87IH07CisJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAv
KiBXZWJQdXNoVG9vbE1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1t
ICovOyB9OworCQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLzsgfTsK
IAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBG
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2
QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oICovOyB9OwpAQCAtMjEyMiw2ICsyMTI1LDEzIEBACiAJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNDsKIAkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJfTsKKwkJNTE3QjVGNkMyNzVCMDdDMzAwMkRDMjJEIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0
cmluZyA9IDUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRDsKKwkJCXJlbW90ZUluZm8gPSB3ZWJwdXNo
dG9vbDsKKwkJfTsKIAkJNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNzUsNiArNDM4NSwxMiBAQAogCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2h0b29sOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gd2VicHVzaHRvb2wueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVu
dHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0b29s
LmVudGl0bGVtZW50czsgcGF0aCA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTY0MjksNiArNjQ0NSwxMyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQk1MTdCNUY1ODI3NUE4
RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9
OwogCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKQEAgLTY1MjQsNiArNjU0Nyw3IEBACiAJCQkJQ0Q5NTQ5MzUyNjE1OTAwNDAwODM3MkQ5
IC8qIGxpYldlYktpdFN3aWZ0LmR5bGliICovLAogCQkJCUExNkU2NjAwMjU4MTkzMDgwMEVFMTc0
OSAvKiBNZWRpYUZvcm1hdFJlYWRlci5idW5kbGUgKi8sCiAJCQkJOERDMkVGNUIwNDg2QTY5NDAw
OThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi8sCisJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRD
MjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02NzY2LDYgKzY3OTAsNyBAQAogCQkJCTVDOEJDNzk2
MjE4Q0I1OEEwMDgxMzg4NiAvKiBTYWZlQnJvd3NpbmcueGNhc3NldHMgKi8sCiAJCQkJRTFEMjZB
NEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLywKIAkJCQlFMTMz
RkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8sCisJCQkJNTE3QjVGNkIyNzVB
RTUwQjAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLmVudGl0bGVtZW50cyAqLywKIAkJCSk7CiAJCQlu
YW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5MTcsNiAr
Njk0Miw3IEBACiAJCQkJQ0QwOUZEMEEyNjE1MkUyMzAwRTRBQ0YxIC8qIFdlYktpdFN3aWZ0Lnhj
Y29uZmlnICovLAogCQkJCTM3MTE5QTdDMjBDQ0I2NEUwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRD
b25kaXRpb25hbHMueGNjb25maWcgKi8sCiAJCQkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8q
IHdlYnB1c2hkLnhjY29uZmlnICovLAorCQkJCTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTQwNyw2ICs5NDMzLDE2IEBACiAJCQlu
YW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3QjVGNjMy
NzVBOEQ1QzAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVz
aFRvb2xDb25uZWN0aW9uLmggKi8sCisJCQkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdl
YlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJwdXNodG9vbDsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5
MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC05ODg1LDYgKzk5MjEsNyBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUy
ODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1
MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUx
NjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLAogCQkJCTVD
QkI2RDREMjcxRjY3Q0MwMEZEMUE1RCAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0
ICovLApAQCAtMTM5NDUsNiArMTM5ODIsMjIgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJF
QkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50LnhwYyAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUu
eHBjLXNlcnZpY2UiOwogCQl9OworCQk1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVz
aHRvb2wgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNodG9vbCIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQk1MTdCNUY1NzI3NUE4RDNFMDAyREMyMkQgLyogU291cmNlcyAqLywKKwkJ
CQk1MTdCNUY1ODI3NUE4RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQli
dWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gd2VicHVzaHRvb2w7CisJCQlwcm9kdWN0TmFtZSA9IHdlYnB1c2h0b29sOworCQkJcHJvZHVj
dFJlZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsK
KwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAJ
CTU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKIAkJCWlzYSA9IFBC
WE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2
MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJn
ZXQgIldlYkF1dGhuIiAqLzsKQEAgLTE0MTYzLDYgKzE0MjE2LDkgQEAKIAkJCQlMYXN0U3dpZnRV
cGRhdGVDaGVjayA9IDEzMDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDExNDA7CiAJCQkJVGFy
Z2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEID0geworCQkJ
CQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTMuMDsKKwkJCQkJfTsKIAkJCQkJNTMyNUJEQ0Qy
MURGRjQ3NzAwQTBERUUxID0gewogCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMTsK
IAkJCQkJCVByb3Zpc2lvbmluZ1N0eWxlID0gQXV0b21hdGljOwpAQCAtMTQyMjAsNiArMTQyNzYs
NyBAQAogCQkJCTk0MkRCMjMyMjU3RUU2RDQwMDlCRDgwQSAvKiBFbXB0eURTVFJPT1QgKi8sCiAJ
CQkJNUNBRjdBOTkyNkY5M0E3NTAwMDNGMTlFIC8qIGFkYXR0cmlidXRpb25kICovLAogCQkJCTVD
MTU3OUNDMjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLywKKwkJCQk1MTdCNUY1QTI3NUE4
RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFBy
b2plY3Qgc2VjdGlvbiAqLwpAQCAtMTQ5NzEsNiArMTUwMjgsMTUgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTcyNzVB
OEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGNjUyNzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29s
TWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1NTM0LDYgKzE1NjAwLDExIEBACiAJCQl0YXJnZXQg
PSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovOwogCQkJdGFy
Z2V0UHJveHkgPSAzN0Y3NDA3ODEyNzIxRjc0MDA5Mzg2OUIgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OworCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSA1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDUxN0I1RjZDMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEUx
QUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi87CkBAIC0xNTc4Myw2
ICsxNTg1NCwyNyBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQk1MTdC
NUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEyNzVB
QTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTUxN0I1RjYwMjc1QThEM0Uw
MDJEQzIyRCAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9
OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQli
YXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJ
bmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTUzMjVCRENFMjFERkY0NzgwMEEwREVFMSAvKiBE
ZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSBCQ0I4NkY0QjExNkFBQUNEMDBDRTIwQjcgLyogV2ViS2l0Lnhj
Y29uZmlnICovOwpAQCAtMTYxOTcsNiArMTYyODksMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rp
b247CiAJCX07CisJCTUxN0I1RjYyMjc1QThEM0UwMDJEQzIyRCAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaHRvb2wiICovID0geworCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJ
NTE3QjVGNUYyNzVBOEQzRTAwMkRDMjJEIC8qIERlYnVnICovLAorCQkJCTUxN0I1RjYwMjc1QThE
M0UwMDJEQzIyRCAvKiBSZWxlYXNlICovLAorCQkJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJ
CTUzMjVCREQxMjFERkY0NzgwMEEwREVFMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyIg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3No
YXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hl
bWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kOWQ2MzFjZDQ5NjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZQpAQCAtMCwwICsxLDgxIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPFNjaGVtZQorICAgTGFzdFVw
Z3JhZGVWZXJzaW9uID0gIjEzMDAiCisgICB2ZXJzaW9uID0gIjEuNyI+CisgICA8QnVpbGRBY3Rp
b24KKyAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZRVMiCisgICAgICBidWlsZEltcGxp
Y2l0RGVwZW5kZW5jaWVzID0gIllFUyI+CisgICAgICA8QnVpbGRBY3Rpb25FbnRyaWVzPgorICAg
ICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKKyAgICAgICAgICAgIGJ1aWxkRm9yVGVzdGluZyA9ICJZ
RVMiCisgICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVp
bGRGb3JQcm9maWxpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZpbmcgPSAi
WUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KKyAgICAgICAgICAg
IDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIg
PSAicHJpbWFyeSIKKyAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiNTE3QjVG
NUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJ3ZWJw
dXNodG9vbCIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAid2VicHVzaHRvb2wiCisg
ICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpXZWJLaXQueGNv
ZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgICAgPC9C
dWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJpZXM+CisgICA8L0J1aWxk
QWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1
ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisgICAgICBzaG91bGRV
c2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVzdGFibGVzPgorICAgICAg
PC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNoQWN0aW9uCisgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRp
ZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKKyAgICAgIHNl
bGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVu
Y2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAgIHVzZUN1c3RvbVdvcmtp
bmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2gg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiCisgICAgICBkZWJ1
Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxh
dGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAg
cnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5j
ZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAg
ICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAg
ICAgICAgICBCdWlsZGFibGVOYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXBy
aW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIg
PSAiY29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZl
cmVuY2U+CisgICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvTGF1bmNoQWN0
aW9uPgorICAgPFByb2ZpbGVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCisgICAgICBz
YXZlZFRvb2xJZGVudGlmaWVyID0gIiIKKyAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3Rvcnkg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgorICAgICAgPEJ1
aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0g
IjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxl
SWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9
ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIK
KyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOldlYktpdC54Y29k
ZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxkYWJs
ZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvUHJvZmlsZUFjdGlvbj4KKyAgIDxBbmFseXplQWN0aW9u
CisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciPgorICAgPC9BbmFseXplQWN0aW9u
PgorICAgPEFyY2hpdmVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNl
IgorICAgICAgcmV2ZWFsQXJjaGl2ZUluT3JnYW5pemVyID0gIllFUyI+CisgICA8L0FyY2hpdmVB
Y3Rpb24+CisgICA8SW5zdGFsbEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJl
bGVhc2UiPgorICAgPC9JbnN0YWxsQWN0aW9uPgorPC9TY2hlbWU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU2MWIyMjUyZGExYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHhwYy94cGMuaD4KKworbmFtZXNw
YWNlIFdlYlB1c2hUb29sIHsKKworZW51bSBjbGFzcyBBY3Rpb24geworICAgIFN0cmVhbURlYnVn
TWVzc2FnZXMsCit9OworCitjbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PENvbm5lY3Rpb24+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IGNyZWF0ZShBY3Rpb24sIGJvb2wg
cHJlZmVyVGVzdFNlcnZpY2UpOworICAgIENvbm5lY3Rpb24oQWN0aW9uLCBib29sIHByZWZlclRl
c3RTZXJ2aWNlKTsKKworICAgIHZvaWQgY29ubmVjdFRvU2VydmljZSgpOworCitwcml2YXRlOgor
ICAgIHZvaWQgbWVzc2FnZVJlY2VpdmVkKHhwY19vYmplY3RfdCk7CisgICAgdm9pZCBjb25uZWN0
aW9uRHJvcHBlZCgpOworCisgICAgdm9pZCBzdGFydEFjdGlvbigpOworICAgIHZvaWQgc3RhcnRE
ZWJ1Z1N0cmVhbUFjdGlvbigpOworCisgICAgdm9pZCBzZW5kQXVkaXRUb2tlbigpOworICAgIAor
ICAgIEFjdGlvbiBtX2FjdGlvbjsKKyAgICBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9j
b25uZWN0aW9uOworICAgIGNvbnN0IGNoYXIqIG1fc2VydmljZU5hbWU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJQdXNoVG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93
ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhmN2ViMWJkMTAyYwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9u
Lm1tCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8Ym9vdHN0cmFwLmg+
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJQdXNoVG9vbCB7CisK
K3N0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVhdGUoQWN0aW9uIGFj
dGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxD
b25uZWN0aW9uPihhY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsKK30KKworc3RhdGljIG1hY2hf
cG9ydF90IG1heWJlQ29ubmVjdFRvU2VydmljZShjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSkKK3sK
KyAgICBtYWNoX3BvcnRfdCBic1BvcnQ7CisgICAgdGFza19nZXRfYm9vdHN0cmFwX3BvcnQobWFj
aF90YXNrX3NlbGYoKSwgJmJzUG9ydCk7CisKKyAgICBtYWNoX3BvcnRfdCBzZXJ2aWNlUG9ydDsK
KyAgICBrZXJuX3JldHVybl90IGVyciA9IGJvb3RzdHJhcF9sb29rX3VwKGJzUG9ydCwgc2Vydmlj
ZU5hbWUsICZzZXJ2aWNlUG9ydCk7CisKKyAgICBpZiAoZXJyID09IEtFUk5fU1VDQ0VTUykKKyAg
ICAgICAgcmV0dXJuIHNlcnZpY2VQb3J0OworCisgICAgcmV0dXJuIE1BQ0hfUE9SVF9OVUxMOwor
fQorCitDb25uZWN0aW9uOjpDb25uZWN0aW9uKEFjdGlvbiBhY3Rpb24sIGJvb2wgcHJlZmVyVGVz
dFNlcnZpY2UpCisgICAgOiBtX2FjdGlvbihhY3Rpb24pCit7CisgICAgaWYgKHByZWZlclRlc3RT
ZXJ2aWNlKQorICAgICAgICBtX3NlcnZpY2VOYW1lID0gIm9yZy53ZWJraXQud2VicHVzaHRlc3Rk
YWVtb24uc2VydmljZSI7CisgICAgZWxzZQorICAgICAgICBtX3NlcnZpY2VOYW1lID0gImNvbS5h
cHBsZS53ZWJraXQud2VicHVzaGQuc2VydmljZSI7CisKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9w
dE5TKHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9zZXJ2aWNlTmFtZSwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2
ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfV0oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9D
T05ORUNUSU9OX0lOVkFMSUQpIHsKKyAgICAgICAgICAgIHByaW50ZigiRmFpbGVkIHRvIHN0YXJ0
IGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMgdG8gbWFjaCBzZXJ2aWNlXG4iKTsKKyAgICAgICAg
ICAgIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQp
IHsKKyAgICAgICAgICAgIHByaW50ZigiQ29ubmVjdGlvbiBjbG9zZWRcbiIpOworICAgICAgICAg
ICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkp
IHsKKyAgICAgICAgICAgIG1lc3NhZ2VSZWNlaXZlZChldmVudCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0pOworfQorCit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQoreworICAg
IGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlc3VsdCA9
IG1heWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICBpZiAocmVzdWx0ID09
IE1BQ0hfUE9SVF9OVUxMKQorICAgICAgICBwcmludGYoIldhaXRpbmcgZm9yIHNlcnZpY2UgJyVz
JyB0byBiZSBhdmFpbGFibGVcbiIsIG1fc2VydmljZU5hbWUpOworCisgICAgd2hpbGUgKHJlc3Vs
dCA9PSBNQUNIX1BPUlRfTlVMTCkgeworICAgICAgICB1c2xlZXAoMTAwMCk7CisgICAgICAgIHJl
c3VsdCA9IG1heWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICB9CisKKyAg
ICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworCisgICAgc2Vu
ZEF1ZGl0VG9rZW4oKTsKKyAgICBzdGFydEFjdGlvbigpOworfQorCit2b2lkIENvbm5lY3Rpb246
OnN0YXJ0QWN0aW9uKCkKK3sKKyAgICBzd2l0Y2ggKG1fYWN0aW9uKSB7CisgICAgY2FzZSBBY3Rp
b246OlN0cmVhbURlYnVnTWVzc2FnZXM6CisgICAgICAgIHN0YXJ0RGVidWdTdHJlYW1BY3Rpb24o
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzdGFydERl
YnVnU3RyZWFtQWN0aW9uKCkKK3sKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19k
aWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgc3RkOjphcnJheTx1
aW50OF90LCAxPiBlbmNvZGVkTWVzc2FnZSB7IDEgfTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRf
dWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CisgICAgeHBj
X2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAibWVzc2FnZSB0eXBlIiwg
NSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVuY29k
ZWQgbWVzc2FnZSIsIGVuY29kZWRNZXNzYWdlLmRhdGEoKSwgZW5jb2RlZE1lc3NhZ2Uuc2l6ZSgp
KTsKKworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCks
IGRpY3Rpb25hcnkuZ2V0KCkpOworCisgICAgcHJpbnRmKCJOb3cgc3RyZWFtaW5nIGRlYnVnIG1l
c3NhZ2VzXG4iKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tlbigpCit7Cisg
ICAgYXVkaXRfdG9rZW5fdCB0b2tlbiA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OworICAg
IG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgYXVkaXRUb2tlbkNvdW50ID0gVEFTS19BVURJVF9UT0tF
Tl9DT1VOVDsKKyAgICBrZXJuX3JldHVybl90IHJlc3VsdCA9IHRhc2tfaW5mbyhtYWNoX3Rhc2tf
c2VsZigpLCBUQVNLX0FVRElUX1RPS0VOLCAodGFza19pbmZvX3QpKCZ0b2tlbiksICZhdWRpdFRv
a2VuQ291bnQpOworICAgIGlmIChyZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSB7CisgICAgICAgIHBy
aW50ZigiVW5hYmxlIHRvIGdldCBhdWRpdCB0b2tlbiB0byBzZW5kXG4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNDI+IGVuY29kZWRNZXNzYWdl
OworICAgIGVuY29kZWRNZXNzYWdlLmZpbGwoMCk7CisgICAgZW5jb2RlZE1lc3NhZ2VbMV0gPSAx
OworICAgIGVuY29kZWRNZXNzYWdlWzJdID0gMzI7CisgICAgbWVtY3B5KCZlbmNvZGVkTWVzc2Fn
ZVsxMF0sICZ0b2tlbiwgc2l6ZW9mKHRva2VuKSk7CisgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRv
cHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZlcnNp
b24iLCAxKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCks
ICJtZXNzYWdlIHR5cGUiLCA2KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0aW9u
YXJ5LmdldCgpLCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBlbmNv
ZGVkTWVzc2FnZS5zaXplKCkpOworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nv
bm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnkuZ2V0KCkpOworfQorCit2b2lkIENvbm5lY3Rpb246
OmNvbm5lY3Rpb25Ecm9wcGVkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAg
IENGUnVuTG9vcFN0b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKK30KKwordm9pZCBDb25uZWN0
aW9uOjptZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90IG1lc3NhZ2UpCit7CisgICAgY29uc3Qg
Y2hhciogZGVidWdNZXNzYWdlID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtZXNzYWdlLCAi
ZGVidWcgbWVzc2FnZSIpOworICAgIGlmICghZGVidWdNZXNzYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBwcmludGYoIiVzXG4iLCBkZWJ1Z01lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJQdXNoVG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNo
dG9vbC9XZWJQdXNoVG9vbE1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0
b29sL1dlYlB1c2hUb29sTWFpbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmFjNTY5NmI5MTdjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVj
dGlvbi5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxvcHRp
b25hbD4KKworX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3N0YXRpYyB2b2lkIHByaW50
VXNhZ2VBbmRUZXJtaW5hdGUoTlNTdHJpbmcgKm1lc3NhZ2UpCit7CisgICAgZnByaW50ZihzdGRl
cnIsICIlc1xuXG4iLCBtZXNzYWdlLlVURjhTdHJpbmcpOworCisgICAgZnByaW50ZihzdGRlcnIs
ICJVc2FnZTogd2VicHVzaHRvb2wgW29wdGlvbnNdXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IlxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tZGV2ZWxvcG1lbnQgICAgICAgICAgICAg
IENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcIm9yZy53ZWJraXQud2VicHVzaHRlc3RkYWVtb24u
c2VydmljZVwiIChEZWZhdWx0KVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcHJvZHVj
dGlvbiAgICAgICAgICAgICAgIENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcImNvbS5hcHBsZS53
ZWJraXQud2VicHVzaGQuc2VydmljZVwiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1z
dHJlYW1EZWJ1Z01lc3NhZ2VzICAgICAgU3RyZWFtIGRlYnVnIG1lc3NhZ2VzIGZyb20gd2VicHVz
aGRcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKworICAgIGV4aXQoLTEpOworfQor
CitpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIgKiopCit7CisgICAgYm9vbCBwcmVmZXJUZXN0U2Vy
dmljZSA9IHRydWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJQdXNoVG9vbDo6QWN0aW9uPiBhY3Rp
b247CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgTlNBcnJheSAqYXJndW1lbnRz
ID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBhcmd1bWVudHNdOworICAgICAgICBpZiAo
YXJndW1lbnRzLmNvdW50ID09IDEpCisgICAgICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRl
KEAiTm8gYXJndW1lbnRzIHByb3ZpZGVkIik7CisKKyAgICAgICAgZm9yIChOU1N0cmluZyAqYXJn
dW1lbnQgaW4gW2FyZ3VtZW50cyBzdWJhcnJheVdpdGhSYW5nZTpOU01ha2VSYW5nZSgxLCBhcmd1
bWVudHMuY291bnQgLSAxKV0pIHsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVhbFRv
U3RyaW5nOkAiLS1wcm9kdWN0aW9uIl0pCisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNlcnZp
Y2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAi
LS1kZXZlbG9wbWVudCJdKQorICAgICAgICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gdHJ1
ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXN0
cmVhbURlYnVnTWVzc2FnZXMiXSkKKyAgICAgICAgICAgICAgICBhY3Rpb24gPSBXZWJQdXNoVG9v
bDo6QWN0aW9uOjpTdHJlYW1EZWJ1Z01lc3NhZ2VzOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCJJbnZhbGlkIG9wdGlvbiBwcm92aWRlZDogJUAiLCBhcmd1bWVudF0pOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKCFhY3Rpb24pCisgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5h
dGUoQCJObyBhY3Rpb24gcHJvdmlkZWQiKTsKKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFdlYlB1
c2hUb29sOjpDb25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UpOwor
ICAgIGNvbm5lY3Rpb24tPmNvbm5lY3RUb1NlcnZpY2UoKTsKKworICAgIENGUnVuTG9vcFJ1bigp
OworICAgIHJldHVybiAwOworfQo=
</data>
<flag name="commit-queue"
          id="471248"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445941</attachid>
            <date>2021-12-03 19:51:28 -0800</date>
            <delta_ts>2021-12-03 20:44:00 -0800</delta_ts>
            <desc>PFL v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31327</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi43N2Y2YjcwYzQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi43MzcxYTMzNzM0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0wLDAgKzEs
MzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFz
ZVRhcmdldC54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gd2VicHVzaHRvb2w7CitTS0lQX0lO
U1RBTEwgPSBZRVM7CisKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1hcHBsZXR2Kl0g
PSAqOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPXdhdGNoKl0gPSAqOworCitPVEhF
Ul9MREZMQUdTID0gLWwgV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVG
b3VuZGF0aW9uOworTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUik7
CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjRhMGI1NmJj
NTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRv
b2wuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2
YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIx
MjA0ZTNjNDNiYi4uMzJkNWRlYWVlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0LDYgKzE0LDcgQEAKIAkJCQlCQ0ZGQ0E4QTE2
MEQ2REVBMDAzREYzMTUgLyogQWRkIFhQQ1NlcnZpY2VzIHN5bWxpbmsgKi8sCiAJCQkpOwogCQkJ
ZGVwZW5kZW5jaWVzID0gKAorCQkJCTUxN0I1RjZEMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDMTU3OURGMjcxNjVFMDgwMEVENTI4MCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDQUY3QUE5MjZGOTNGOUYwMDAzRjE5RSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTU3NDJBMkZBMjUzNTYxOUQwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLApAQCAtMTAyMiw2ICsxMDIzLDggQEAKIAkJNTE3QTUzMTAxRjQ3QTg2
MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwRDFGNDdBODQzMDBEQ0RD
MEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE3QjVGMkUy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGMkQy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
ICovOyB9OwogCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggKi87IH07CisJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAv
KiBXZWJQdXNoVG9vbE1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1t
ICovOyB9OworCQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLzsgfTsK
IAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBG
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2
QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oICovOyB9OwpAQCAtMjEyMiw2ICsyMTI1LDEzIEBACiAJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNDsKIAkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJfTsKKwkJNTE3QjVGNkMyNzVCMDdDMzAwMkRDMjJEIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0
cmluZyA9IDUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRDsKKwkJCXJlbW90ZUluZm8gPSB3ZWJwdXNo
dG9vbDsKKwkJfTsKIAkJNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNzUsNiArNDM4NSwxMiBAQAogCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2h0b29sOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gd2VicHVzaHRvb2wueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVu
dHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0b29s
LmVudGl0bGVtZW50czsgcGF0aCA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTY0MjksNiArNjQ0NSwxMyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQk1MTdCNUY1ODI3NUE4
RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9
OwogCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKQEAgLTY1MjQsNiArNjU0Nyw3IEBACiAJCQkJQ0Q5NTQ5MzUyNjE1OTAwNDAwODM3MkQ5
IC8qIGxpYldlYktpdFN3aWZ0LmR5bGliICovLAogCQkJCUExNkU2NjAwMjU4MTkzMDgwMEVFMTc0
OSAvKiBNZWRpYUZvcm1hdFJlYWRlci5idW5kbGUgKi8sCiAJCQkJOERDMkVGNUIwNDg2QTY5NDAw
OThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi8sCisJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRD
MjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02NzY2LDYgKzY3OTAsNyBAQAogCQkJCTVDOEJDNzk2
MjE4Q0I1OEEwMDgxMzg4NiAvKiBTYWZlQnJvd3NpbmcueGNhc3NldHMgKi8sCiAJCQkJRTFEMjZB
NEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLywKIAkJCQlFMTMz
RkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8sCisJCQkJNTE3QjVGNkIyNzVB
RTUwQjAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLmVudGl0bGVtZW50cyAqLywKIAkJCSk7CiAJCQlu
YW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5MTcsNiAr
Njk0Miw3IEBACiAJCQkJQ0QwOUZEMEEyNjE1MkUyMzAwRTRBQ0YxIC8qIFdlYktpdFN3aWZ0Lnhj
Y29uZmlnICovLAogCQkJCTM3MTE5QTdDMjBDQ0I2NEUwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRD
b25kaXRpb25hbHMueGNjb25maWcgKi8sCiAJCQkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8q
IHdlYnB1c2hkLnhjY29uZmlnICovLAorCQkJCTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTQwNyw2ICs5NDMzLDE2IEBACiAJCQlu
YW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3QjVGNjMy
NzVBOEQ1QzAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVz
aFRvb2xDb25uZWN0aW9uLmggKi8sCisJCQkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdl
YlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJwdXNodG9vbDsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5
MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC05ODg1LDYgKzk5MjEsNyBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUy
ODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1
MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUx
NjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLAogCQkJCTVD
QkI2RDREMjcxRjY3Q0MwMEZEMUE1RCAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0
ICovLApAQCAtMTM5NDUsNiArMTM5ODIsMjIgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJF
QkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50LnhwYyAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUu
eHBjLXNlcnZpY2UiOwogCQl9OworCQk1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVz
aHRvb2wgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNodG9vbCIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQk1MTdCNUY1NzI3NUE4RDNFMDAyREMyMkQgLyogU291cmNlcyAqLywKKwkJ
CQk1MTdCNUY1ODI3NUE4RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQli
dWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gd2VicHVzaHRvb2w7CisJCQlwcm9kdWN0TmFtZSA9IHdlYnB1c2h0b29sOworCQkJcHJvZHVj
dFJlZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsK
KwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAJ
CTU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKIAkJCWlzYSA9IFBC
WE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2
MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJn
ZXQgIldlYkF1dGhuIiAqLzsKQEAgLTE0MTYzLDYgKzE0MjE2LDkgQEAKIAkJCQlMYXN0U3dpZnRV
cGRhdGVDaGVjayA9IDEzMDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDExNDA7CiAJCQkJVGFy
Z2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEID0geworCQkJ
CQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTMuMDsKKwkJCQkJfTsKIAkJCQkJNTMyNUJEQ0Qy
MURGRjQ3NzAwQTBERUUxID0gewogCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMTsK
IAkJCQkJCVByb3Zpc2lvbmluZ1N0eWxlID0gQXV0b21hdGljOwpAQCAtMTQyMjAsNiArMTQyNzYs
NyBAQAogCQkJCTk0MkRCMjMyMjU3RUU2RDQwMDlCRDgwQSAvKiBFbXB0eURTVFJPT1QgKi8sCiAJ
CQkJNUNBRjdBOTkyNkY5M0E3NTAwMDNGMTlFIC8qIGFkYXR0cmlidXRpb25kICovLAogCQkJCTVD
MTU3OUNDMjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLywKKwkJCQk1MTdCNUY1QTI3NUE4
RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFBy
b2plY3Qgc2VjdGlvbiAqLwpAQCAtMTQ5NzEsNiArMTUwMjgsMTUgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTcyNzVB
OEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGNjUyNzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29s
TWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1NTM0LDYgKzE1NjAwLDExIEBACiAJCQl0YXJnZXQg
PSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovOwogCQkJdGFy
Z2V0UHJveHkgPSAzN0Y3NDA3ODEyNzIxRjc0MDA5Mzg2OUIgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OworCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSA1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDUxN0I1RjZDMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEUx
QUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi87CkBAIC0xNTc4Myw2
ICsxNTg1NCwyNyBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQk1MTdC
NUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEyNzVB
QTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTUxN0I1RjYwMjc1QThEM0Uw
MDJEQzIyRCAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9
OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQli
YXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJ
bmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTUzMjVCRENFMjFERkY0NzgwMEEwREVFMSAvKiBE
ZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSBCQ0I4NkY0QjExNkFBQUNEMDBDRTIwQjcgLyogV2ViS2l0Lnhj
Y29uZmlnICovOwpAQCAtMTYxOTcsNiArMTYyODksMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rp
b247CiAJCX07CisJCTUxN0I1RjYyMjc1QThEM0UwMDJEQzIyRCAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaHRvb2wiICovID0geworCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJ
NTE3QjVGNUYyNzVBOEQzRTAwMkRDMjJEIC8qIERlYnVnICovLAorCQkJCTUxN0I1RjYwMjc1QThE
M0UwMDJEQzIyRCAvKiBSZWxlYXNlICovLAorCQkJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJ
CTUzMjVCREQxMjFERkY0NzgwMEEwREVFMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyIg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3No
YXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hl
bWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kOWQ2MzFjZDQ5NjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZQpAQCAtMCwwICsxLDgxIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPFNjaGVtZQorICAgTGFzdFVw
Z3JhZGVWZXJzaW9uID0gIjEzMDAiCisgICB2ZXJzaW9uID0gIjEuNyI+CisgICA8QnVpbGRBY3Rp
b24KKyAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZRVMiCisgICAgICBidWlsZEltcGxp
Y2l0RGVwZW5kZW5jaWVzID0gIllFUyI+CisgICAgICA8QnVpbGRBY3Rpb25FbnRyaWVzPgorICAg
ICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKKyAgICAgICAgICAgIGJ1aWxkRm9yVGVzdGluZyA9ICJZ
RVMiCisgICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVp
bGRGb3JQcm9maWxpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZpbmcgPSAi
WUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KKyAgICAgICAgICAg
IDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIg
PSAicHJpbWFyeSIKKyAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiNTE3QjVG
NUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJ3ZWJw
dXNodG9vbCIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAid2VicHVzaHRvb2wiCisg
ICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpXZWJLaXQueGNv
ZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgICAgPC9C
dWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJpZXM+CisgICA8L0J1aWxk
QWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1
ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisgICAgICBzaG91bGRV
c2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVzdGFibGVzPgorICAgICAg
PC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNoQWN0aW9uCisgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRp
ZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKKyAgICAgIHNl
bGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVu
Y2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAgIHVzZUN1c3RvbVdvcmtp
bmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2gg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiCisgICAgICBkZWJ1
Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxh
dGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAg
cnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5j
ZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAg
ICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAg
ICAgICAgICBCdWlsZGFibGVOYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXBy
aW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIg
PSAiY29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZl
cmVuY2U+CisgICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvTGF1bmNoQWN0
aW9uPgorICAgPFByb2ZpbGVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCisgICAgICBz
YXZlZFRvb2xJZGVudGlmaWVyID0gIiIKKyAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3Rvcnkg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgorICAgICAgPEJ1
aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0g
IjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxl
SWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9
ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIK
KyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOldlYktpdC54Y29k
ZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxkYWJs
ZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvUHJvZmlsZUFjdGlvbj4KKyAgIDxBbmFseXplQWN0aW9u
CisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciPgorICAgPC9BbmFseXplQWN0aW9u
PgorICAgPEFyY2hpdmVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNl
IgorICAgICAgcmV2ZWFsQXJjaGl2ZUluT3JnYW5pemVyID0gIllFUyI+CisgICA8L0FyY2hpdmVB
Y3Rpb24+CisgICA8SW5zdGFsbEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJl
bGVhc2UiPgorICAgPC9JbnN0YWxsQWN0aW9uPgorPC9TY2hlbWU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0ZDE1MmMwNGQwOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQ
SS5oPgorCituYW1lc3BhY2UgV2ViUHVzaFRvb2wgeworCitlbnVtIGNsYXNzIEFjdGlvbiB7Cisg
ICAgU3RyZWFtRGVidWdNZXNzYWdlcywKK307CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRl
KEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgQ29ubmVjdGlvbihBY3Rpb24s
IGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworCisgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90KTsKKyAg
ICB2b2lkIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisKKyAgICB2b2lkIHN0YXJ0QWN0aW9uKCk7Cisg
ICAgdm9pZCBzdGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisKKyAgICB2b2lkIHNlbmRBdWRpdFRv
a2VuKCk7CisgICAgCisgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIFJldGFpblB0cjx4cGNfY29u
bmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgY29uc3QgY2hhciogbV9zZXJ2aWNlTmFtZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGY3ZWIxYmQxMDJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0
IDxib290c3RyYXAuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdl
YlB1c2hUb29sIHsKKworc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IENvbm5lY3Rpb246OmNy
ZWF0ZShBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQoreworICAgIHJldHVy
biBtYWtlVW5pcXVlPENvbm5lY3Rpb24+KGFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UpOworfQor
CitzdGF0aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNlKGNvbnN0IGNoYXIqIHNl
cnZpY2VOYW1lKQoreworICAgIG1hY2hfcG9ydF90IGJzUG9ydDsKKyAgICB0YXNrX2dldF9ib290
c3RyYXBfcG9ydChtYWNoX3Rhc2tfc2VsZigpLCAmYnNQb3J0KTsKKworICAgIG1hY2hfcG9ydF90
IHNlcnZpY2VQb3J0OworICAgIGtlcm5fcmV0dXJuX3QgZXJyID0gYm9vdHN0cmFwX2xvb2tfdXAo
YnNQb3J0LCBzZXJ2aWNlTmFtZSwgJnNlcnZpY2VQb3J0KTsKKworICAgIGlmIChlcnIgPT0gS0VS
Tl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gc2VydmljZVBvcnQ7CisKKyAgICByZXR1cm4gTUFD
SF9QT1JUX05VTEw7Cit9CisKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFjdGlvbiwg
Ym9vbCBwcmVmZXJUZXN0U2VydmljZSkKKyAgICA6IG1fYWN0aW9uKGFjdGlvbikKK3sKKyAgICBp
ZiAocHJlZmVyVGVzdFNlcnZpY2UpCisgICAgICAgIG1fc2VydmljZU5hbWUgPSAib3JnLndlYmtp
dC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlIjsKKyAgICBlbHNlCisgICAgICAgIG1fc2Vydmlj
ZU5hbWUgPSAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKKworICAgIG1fY29u
bmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShtX3Nl
cnZpY2VOYW1lLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisKKyAgICB4cGNfY29u
bmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZXZlbnQg
PT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkgeworICAgICAgICAgICAgcHJpbnRmKCJG
YWlsZWQgdG8gc3RhcnQgbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucyB0byBtYWNoIHNlcnZpY2Vc
biIpOworICAgICAgICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElP
Tl9JTlRFUlJVUFRFRCkgeworICAgICAgICAgICAgcHJpbnRmKCJDb25uZWN0aW9uIGNsb3NlZFxu
Iik7CisgICAgICAgICAgICBjb25uZWN0aW9uRHJvcHBlZCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHhwY19nZXRfdHlwZShldmVudCkgPT0gWFBDX1RZ
UEVfRElDVElPTkFSWSkgeworICAgICAgICAgICAgbWVzc2FnZVJlY2VpdmVkKGV2ZW50KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdFRvU2Vy
dmljZSgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAg
IGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCisgICAgICAgIHByaW50ZigiV2FpdGluZyBm
b3Igc2VydmljZSAnJXMnIHRvIGJlIGF2YWlsYWJsZVxuIiwgbV9zZXJ2aWNlTmFtZSk7CisKKyAg
ICB3aGlsZSAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKSB7CisgICAgICAgIHVzbGVlcCgxMDAw
KTsKKyAgICAgICAgcmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUp
OworICAgIH0KKworICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQo
KSk7CisKKyAgICBzZW5kQXVkaXRUb2tlbigpOworICAgIHN0YXJ0QWN0aW9uKCk7Cit9CisKK3Zv
aWQgQ29ubmVjdGlvbjo6c3RhcnRBY3Rpb24oKQoreworICAgIHN3aXRjaCAobV9hY3Rpb24pIHsK
KyAgICBjYXNlIEFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczoKKyAgICAgICAgc3RhcnREZWJ1
Z1N0cmVhbUFjdGlvbigpOworICAgICAgICBicmVhazsKKyAgICB9OworfQorCit2b2lkIENvbm5l
Y3Rpb246OnN0YXJ0RGVidWdTdHJlYW1BY3Rpb24oKQoreworICAgIGF1dG8gZGljdGlvbmFyeSA9
IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAg
ICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDE+IGVuY29kZWRNZXNzYWdlIHsgMSB9OworICAgIHhwY19k
aWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZlcnNpb24i
LCAxKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJt
ZXNzYWdlIHR5cGUiLCA1KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0aW9uYXJ5
LmdldCgpLCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBlbmNvZGVk
TWVzc2FnZS5zaXplKCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29u
bmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7CisKKyAgICBwcmludGYoIk5vdyBzdHJl
YW1pbmcgZGVidWcgbWVzc2FnZXNcbiIpOworfQorCit2b2lkIENvbm5lY3Rpb246OnNlbmRBdWRp
dFRva2VuKCkKK3sKKyAgICBhdWRpdF90b2tlbl90IHRva2VuID0geyAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwIH07CisgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBhdWRpdFRva2VuQ291bnQgPSBU
QVNLX0FVRElUX1RPS0VOX0NPVU5UOworICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0ID0gdGFza19p
bmZvKG1hY2hfdGFza19zZWxmKCksIFRBU0tfQVVESVRfVE9LRU4sICh0YXNrX2luZm9fdCkoJnRv
a2VuKSwgJmF1ZGl0VG9rZW5Db3VudCk7CisgICAgaWYgKHJlc3VsdCAhPSBLRVJOX1NVQ0NFU1Mp
IHsKKyAgICAgICAgcHJpbnRmKCJVbmFibGUgdG8gZ2V0IGF1ZGl0IHRva2VuIHRvIHNlbmRcbiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjphcnJheTx1aW50OF90LCA0Mj4g
ZW5jb2RlZE1lc3NhZ2U7CisgICAgZW5jb2RlZE1lc3NhZ2UuZmlsbCgwKTsKKyAgICBlbmNvZGVk
TWVzc2FnZVsxXSA9IDE7CisgICAgZW5jb2RlZE1lc3NhZ2VbMl0gPSAzMjsKKyAgICBtZW1jcHko
JmVuY29kZWRNZXNzYWdlWzEwXSwgJnRva2VuLCBzaXplb2YodG9rZW4pKTsKKyAgICBhdXRvIGRp
Y3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRy
LCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAi
cHJvdG9jb2wgdmVyc2lvbiIsIDEpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGlj
dGlvbmFyeS5nZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDYpOworICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF9kYXRhKGRpY3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBlbmNvZGVkTWVzc2Fn
ZS5kYXRhKCksIGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2Vu
ZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGljdGlvbmFyeS5nZXQoKSk7Cit9CisKK3Zv
aWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQoKQoreworICAgIG1fY29ubmVjdGlvbiA9
IG51bGxwdHI7CisgICAgQ0ZSdW5Mb29wU3RvcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworfQor
Cit2b2lkIENvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCh4cGNfb2JqZWN0X3QgbWVzc2FnZSkK
K3sKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z01lc3NhZ2UgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3Ry
aW5nKG1lc3NhZ2UsICJkZWJ1ZyBtZXNzYWdlIik7CisgICAgaWYgKCFkZWJ1Z01lc3NhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIHByaW50ZigiJXNcbiIsIGRlYnVnTWVzc2FnZSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uYWM1Njk2YjkxN2NmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
KyNpbXBvcnQgPG9wdGlvbmFsPgorCitfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKQorc3Rh
dGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKK3sKKyAg
ICBmcHJpbnRmKHN0ZGVyciwgIiVzXG5cbiIsIG1lc3NhZ2UuVVRGOFN0cmluZyk7CisKKyAgICBm
cHJpbnRmKHN0ZGVyciwgIlVzYWdlOiB3ZWJwdXNodG9vbCBbb3B0aW9uc11cbiIpOworICAgIGZw
cmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1kZXZlbG9wbWVu
dCAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNlIFwib3JnLndlYmtpdC53ZWJw
dXNodGVzdGRhZW1vbi5zZXJ2aWNlXCIgKERlZmF1bHQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIiAgLS1wcm9kdWN0aW9uICAgICAgICAgICAgICAgQ29ubmVjdHMgdG8gbWFjaCBzZXJ2aWNl
IFwiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlXCJcbiIpOworICAgIGZwcmludGYo
c3RkZXJyLCAiICAtLXN0cmVhbURlYnVnTWVzc2FnZXMgICAgICBTdHJlYW0gZGVidWcgbWVzc2Fn
ZXMgZnJvbSB3ZWJwdXNoZFxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworCisgICAg
ZXhpdCgtMSk7Cit9CisKK2ludCBtYWluKGludCwgY29uc3QgY2hhciAqKikKK3sKKyAgICBib29s
IHByZWZlclRlc3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYlB1c2hUb29s
OjpBY3Rpb24+IGFjdGlvbjsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBOU0Fy
cmF5ICphcmd1bWVudHMgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIGFyZ3VtZW50c107
CisgICAgICAgIGlmIChhcmd1bWVudHMuY291bnQgPT0gMSkKKyAgICAgICAgICAgIHByaW50VXNh
Z2VBbmRUZXJtaW5hdGUoQCJObyBhcmd1bWVudHMgcHJvdmlkZWQiKTsKKworICAgICAgICBmb3Ig
KE5TU3RyaW5nICphcmd1bWVudCBpbiBbYXJndW1lbnRzIHN1YmFycmF5V2l0aFJhbmdlOk5TTWFr
ZVJhbmdlKDEsIGFyZ3VtZW50cy5jb3VudCAtIDEpXSkgeworICAgICAgICAgICAgaWYgKFthcmd1
bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXByb2R1Y3Rpb24iXSkKKyAgICAgICAgICAgICAgICBw
cmVmZXJUZXN0U2VydmljZSA9IGZhbHNlOworICAgICAgICAgICAgaWYgKFthcmd1bWVudCBpc0Vx
dWFsVG9TdHJpbmc6QCItLWRldmVsb3BtZW50Il0pCisgICAgICAgICAgICAgICAgcHJlZmVyVGVz
dFNlcnZpY2UgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxU
b1N0cmluZzpAIi0tc3RyZWFtRGVidWdNZXNzYWdlcyJdKQorICAgICAgICAgICAgICAgIGFjdGlv
biA9IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIkludmFsaWQgb3B0aW9uIHByb3ZpZGVkOiAlQCIsIGFyZ3VtZW50
XSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWFjdGlvbikKKyAgICAgICAgcHJpbnRV
c2FnZUFuZFRlcm1pbmF0ZShAIk5vIGFjdGlvbiBwcm92aWRlZCIpOworCisgICAgYXV0byBjb25u
ZWN0aW9uID0gV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSgqYWN0aW9uLCBwcmVmZXJU
ZXN0U2VydmljZSk7CisgICAgY29ubmVjdGlvbi0+Y29ubmVjdFRvU2VydmljZSgpOworCisgICAg
Q0ZSdW5Mb29wUnVuKCk7CisgICAgcmV0dXJuIDA7Cit9Cg==
</data>
<flag name="commit-queue"
          id="471262"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445952</attachid>
            <date>2021-12-03 20:44:00 -0800</date>
            <delta_ts>2021-12-03 23:43:20 -0800</delta_ts>
            <desc>PFL v4</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31373</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi43N2Y2YjcwYzQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi45NjM4Y2I3NDA2ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0wLDAgKzEs
MzYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFz
ZVRhcmdldC54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gd2VicHVzaHRvb2w7CitTS0lQX0lO
U1RBTEwgPSBZRVM7CisKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1hcHBsZXR2Kl0g
PSAqOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPXdhdGNoKl0gPSAqOworRVhDTFVE
RURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gKjsKKworT1RIRVJfTERGTEFHUyA9
IC1sIFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbjsK
K0xJQlJBUllfU0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpOworCitDT0RFX1NJ
R05fRU5USVRMRU1FTlRTID0gUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50
cyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50cwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY0YTBiNTZiYzUwMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVt
ZW50cwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4i
ICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlz
dCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQu
d2VicHVzaDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTIwNGUzYzQzYmIu
LjMyZDVkZWFlZWQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNCw2ICsxNCw3IEBACiAJCQkJQkNGRkNBOEExNjBENkRFQTAwM0RG
MzE1IC8qIEFkZCBYUENTZXJ2aWNlcyBzeW1saW5rICovLAogCQkJKTsKIAkJCWRlcGVuZGVuY2ll
cyA9ICgKKwkJCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKIAkJCQk1QzE1NzlERjI3MTY1RTA4MDBFRDUyODAgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKIAkJCQk1Q0FGN0FBOTI2RjkzRjlGMDAwM0YxOUUgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKIAkJCQk1NzQyQTJGQTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLywKQEAgLTEwMjIsNiArMTAyMyw4IEBACiAJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAv
KiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTUxN0I1RjJFMjc1NzM4MkEwMDJE
QzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjJEMjc1NzM4MkEwMDJE
QzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJ
NTE3QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3QjVGMkQyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmln
dXJhdGlvbi5oICovOyB9OworCQk1MTdCNUY2NTI3NUE4RDdGMDAyREMyMkQgLyogV2ViUHVzaFRv
b2xNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5tbSAqLzsgfTsKKwkJ
NTE3QjVGNjgyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjY3Mjc1QTlB
NzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gKi87IH07CiAJCTUxN0NGMEUz
MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCAqLzsgfTsKQEAgLTIxMjIsNiArMjEyNSwxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJp
bmcgPSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQ7CiAJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQg
U291cmNlcyI7CiAJCX07CisJCTUxN0I1RjZDMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQlj
b250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmpl
Y3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1MTdC
NUY1QTI3NUE4RDNFMDAyREMyMkQ7CisJCQlyZW1vdGVJbmZvID0gd2VicHVzaHRvb2w7CisJCX07
CiAJCTU3NDJBMkU3MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8g
PSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwg
PSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC00Mzc1
LDYgKzQzODUsMTIgQEAKIAkJNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTUxN0E1MzBFMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3QjVG
MkQyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQdXNoRGFlbW9uQ29ubmVj
dGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVG
NUIyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSB3ZWJwdXNodG9vbDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1c2hU
b29sTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlB1
c2hUb29sTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVGNjYyNzVB
OUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJQdXNoVG9vbENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29u
bmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlB1
c2hUb29sQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVG
NkEyNzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IHdlYnB1c2h0b29sLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdC
NUY2QjI3NUFFNTBCMDAyREMyMkQgLyogd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVudHM7IG5hbWUgPSB3ZWJwdXNodG9vbC5lbnRpdGxlbWVu
dHM7IHBhdGggPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
NTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CkBAIC02NDI5LDYgKzY0NDUsMTMgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTgyNzVBOEQzRTAwMkRDMjJE
IC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJNTc0MkEy
RUQyNTM1NjEzRjAwQjdCQTE0IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC02
NTI0LDYgKzY1NDcsNyBAQAogCQkJCUNEOTU0OTM1MjYxNTkwMDQwMDgzNzJEOSAvKiBsaWJXZWJL
aXRTd2lmdC5keWxpYiAqLywKIAkJCQlBMTZFNjYwMDI1ODE5MzA4MDBFRTE3NDkgLyogTWVkaWFG
b3JtYXRSZWFkZXIuYnVuZGxlICovLAogCQkJCThEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBX
ZWJLaXQuZnJhbWV3b3JrICovLAorCQkJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJw
dXNodG9vbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNjc2Niw2ICs2NzkwLDcgQEAKIAkJCQk1QzhCQzc5NjIxOENCNThBMDA4
MTM4ODYgLyogU2FmZUJyb3dzaW5nLnhjYXNzZXRzICovLAogCQkJCUUxRDI2QTRDMTc1OTYzNEUw
MDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgKi8sCiAJCQkJRTEzM0ZEODkxNDIzREQ3
RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovLAorCQkJCTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFJlc291
cmNlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02OTE3LDYgKzY5NDIsNyBAQAog
CQkJCUNEMDlGRDBBMjYxNTJFMjMwMEU0QUNGMSAvKiBXZWJLaXRTd2lmdC54Y2NvbmZpZyAqLywK
IAkJCQkzNzExOUE3QzIwQ0NCNjRFMDAyQzZEQzkgLyogV2ViS2l0VGFyZ2V0Q29uZGl0aW9uYWxz
LnhjY29uZmlnICovLAogCQkJCTVDMTU3OUREMjcxNjVCRTUwMEVENTI4MCAvKiB3ZWJwdXNoZC54
Y2NvbmZpZyAqLywKKwkJCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wu
eGNjb25maWcgKi8sCiAJCQkpOwogCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk0MDcsNiArOTQzMywxNiBAQAogCQkJbmFtZSA9IG1hYzsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0I1RjYzMjc1QThENUMwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNTE3QjVGNjYyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVj
dGlvbi5oICovLAorCQkJCTUxN0I1RjY3Mjc1QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENv
bm5lY3Rpb24ubW0gKi8sCisJCQkJNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1c2hU
b29sTWFpbi5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VicHVzaHRvb2w7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyogQXV0
aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtOTg4NSw2ICs5OTIxLDcgQEAKIAkJNUMxNTdBMEEyNzE3QzlGMTAwRUQ1MjgwIC8qIHdlYnB1
c2hkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdC
NUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkJNTE2MEU5NTQyNzRC
ODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCAqLywKIAkJCQk1MTYwRTk1MzI3NEI4
ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5tbSAqLywKIAkJCQk1Q0JCNkQ0RDI3MUY2
N0NDMDBGRDFBNUQgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5wbGlzdCAqLywKQEAgLTEz
OTQ1LDYgKzEzOTgyLDIyIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gMzcyRUJCNDYyMDE3RTY0
MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMg
Ki87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2aWNl
IjsKIAkJfTsKKwkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0g
eworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDUxN0I1RjYyMjc1QThEM0UwMDJEQzIyRCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaHRvb2wiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJ
CQkJNTE3QjVGNTcyNzVBOEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGNTgy
NzVBOEQzRTAwMkRDMjJEIC8qIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9
ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9IHdlYnB1c2h0
b29sOworCQkJcHJvZHVjdE5hbWUgPSB3ZWJwdXNodG9vbDsKKwkJCXByb2R1Y3RSZWZlcmVuY2Ug
PSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CisJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOworCQl9OwogCQk1NzQyQTJFNTI1
MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJn
ZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEzRjAwQjdCQTE0
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJBdXRo
biIgKi87CkBAIC0xNDE2Myw2ICsxNDIxNiw5IEBACiAJCQkJTGFzdFN3aWZ0VXBkYXRlQ2hlY2sg
PSAxMzAwOwogCQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAxMTQwOwogCQkJCVRhcmdldEF0dHJpYnV0
ZXMgPSB7CisJCQkJCTUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCA9IHsKKwkJCQkJCUNyZWF0ZWRP
blRvb2xzVmVyc2lvbiA9IDEzLjA7CisJCQkJCX07CiAJCQkJCTUzMjVCRENEMjFERkY0NzcwMEEw
REVFMSA9IHsKIAkJCQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDEwLjE7CiAJCQkJCQlQcm92
aXNpb25pbmdTdHlsZSA9IEF1dG9tYXRpYzsKQEAgLTE0MjIwLDYgKzE0Mjc2LDcgQEAKIAkJCQk5
NDJEQjIzMjI1N0VFNkQ0MDA5QkQ4MEEgLyogRW1wdHlEU1RST09UICovLAogCQkJCTVDQUY3QTk5
MjZGOTNBNzUwMDAzRjE5RSAvKiBhZGF0dHJpYnV0aW9uZCAqLywKIAkJCQk1QzE1NzlDQzI3MTY1
QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8sCisJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJE
IC8qIHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rp
b24gKi8KQEAgLTE0OTcxLDYgKzE1MDI4LDE1IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCTUxN0I1RjU3Mjc1QThEM0UwMDJEQzIy
RCAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJNTE3QjVGNjgy
NzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbE1haW4ubW0gaW4g
U291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKKwkJfTsKIAkJNTc0MkEyRUEyNTM1NjEzRjAwQjdCQTE0IC8qIFNvdXJjZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CkBAIC0xNTUzNCw2ICsxNTYwMCwxMSBAQAogCQkJdGFyZ2V0ID0gQzBDRTcyODUx
MjQ3RTY2ODAwQkMwRUM0IC8qIERlcml2ZWQgU291cmNlcyAqLzsKIAkJCXRhcmdldFByb3h5ID0g
MzdGNzQwNzgxMjcyMUY3NDAwOTM4NjlCIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJ
fTsKKwkJNTE3QjVGNkQyNzVCMDdDMzAwMkRDMjJEIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gNTE3QjVGNUEy
NzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovOworCQkJdGFyZ2V0UHJveHkgPSA1MTdC
NUY2QzI3NUIwN0MzMDAyREMyMkQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQk1NzQyQTJFNjI1MzU2MTNGMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBFMUFDMkUyNzIwRjdC
OTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWluICovOwpAQCAtMTU3ODMsNiArMTU4NTQsMjcg
QEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJNTE3QjVGNUYyNzVBOEQz
RTAwMkRDMjJEIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1MTdCNUY2MDI3NUE4RDNFMDAyREMyMkQgLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVz
aHRvb2wueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUg
PSBSZWxlYXNlOworCQl9OworCQk1MTdCNUY2MTI3NUE4RDNFMDAyREMyMkQgLyogUHJvZHVjdGlv
biAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3Vy
YXRpb25SZWZlcmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBQcm9k
dWN0aW9uOworCQl9OwogCQk1MzI1QkRDRTIxREZGNDc4MDBBMERFRTEgLyogRGVidWcgKi8gPSB7
CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVm
ZXJlbmNlID0gQkNCODZGNEIxMTZBQUFDRDAwQ0UyMEI3IC8qIFdlYktpdC54Y2NvbmZpZyAqLzsK
QEAgLTE2MTk3LDYgKzE2Mjg5LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJs
ZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQk1MTdCNUY2MjI3NUE4RDNFMDAyREMyMkQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2h0b29sIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTUxN0I1RjVGMjc1
QThEM0UwMDJEQzIyRCAvKiBEZWJ1ZyAqLywKKwkJCQk1MTdCNUY2MDI3NUE4RDNFMDAyREMyMkQg
LyogUmVsZWFzZSAqLywKKwkJCQk1MTdCNUY2MTI3NUE4RDNFMDAyREMyMkQgLyogUHJvZHVjdGlv
biAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1MzI1QkREMTIx
REZGNDc4MDBBMERFRTEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdh
dGVUYXJnZXQgIkFwcGx5IENvbmZpZ3VyYXRpb24gdG8gWENGaWxlTGlzdHMiICovID0gewogCQkJ
aXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hj
c2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZSBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDlkNjMxY2Q0OTY5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3Nj
aGVtZXMvd2VicHVzaHRvb2wueGNzY2hlbWUKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxTY2hlbWUKKyAgIExhc3RVcGdyYWRlVmVyc2lv
biA9ICIxMzAwIgorICAgdmVyc2lvbiA9ICIxLjciPgorICAgPEJ1aWxkQWN0aW9uCisgICAgICBw
YXJhbGxlbGl6ZUJ1aWxkYWJsZXMgPSAiWUVTIgorICAgICAgYnVpbGRJbXBsaWNpdERlcGVuZGVu
Y2llcyA9ICJZRVMiPgorICAgICAgPEJ1aWxkQWN0aW9uRW50cmllcz4KKyAgICAgICAgIDxCdWls
ZEFjdGlvbkVudHJ5CisgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgorICAgICAg
ICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmls
aW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKKyAgICAg
ICAgICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CisgICAgICAgICAgICA8QnVpbGRhYmxl
UmVmZXJlbmNlCisgICAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnki
CisgICAgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1QThEM0Uw
MDJEQzIyRCIKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wiCisg
ICAgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAg
ICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+Cisg
ICAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgICAgIDwvQnVpbGRBY3Rpb25F
bnRyeT4KKyAgICAgIDwvQnVpbGRBY3Rpb25FbnRyaWVzPgorICAgPC9CdWlsZEFjdGlvbj4KKyAg
IDxUZXN0QWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBz
ZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVi
dWdnZXIuTExEQiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRl
YnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2No
ZW1lQXJnc0VudiA9ICJZRVMiPgorICAgICAgPFRlc3RhYmxlcz4KKyAgICAgIDwvVGVzdGFibGVz
PgorICAgPC9UZXN0QWN0aW9uPgorICAgPExhdW5jaEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1
cmF0aW9uID0gIkRlYnVnIgorICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNv
ZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCisgICAgICBzZWxlY3RlZExhdW5j
aGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIK
KyAgICAgIGxhdW5jaFN0eWxlID0gIjAiCisgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5
ID0gIk5PIgorICAgICAgaWdub3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1bmNoID0gIk5PIgorICAg
ICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgorICAgICAgZGVidWdTZXJ2aWNlRXh0
ZW5zaW9uID0gImludGVybmFsIgorICAgICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24gPSAiWUVT
Ij4KKyAgICAgIDxCdWlsZGFibGVQcm9kdWN0UnVubmFibGUKKyAgICAgICAgIHJ1bm5hYmxlRGVi
dWdnaW5nTW9kZSA9ICIwIj4KKyAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAg
ICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKKyAgICAgICAgICAgIEJsdWVwcmlu
dElkZW50aWZpZXIgPSAiNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgQnVp
bGRhYmxlTmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAi
d2VicHVzaHRvb2wiCisgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5l
cjpXZWJLaXQueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAg
ICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+CisgICA8L0xhdW5jaEFjdGlvbj4KKyAgIDxQ
cm9maWxlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAg
IHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgorICAgICAgc2F2ZWRUb29sSWRl
bnRpZmllciA9ICIiCisgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgorICAg
ICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIj4KKyAgICAgIDxCdWlsZGFibGVQcm9k
dWN0UnVubmFibGUKKyAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIj4KKyAgICAg
ICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIg
PSAicHJpbWFyeSIKKyAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiNTE3QjVGNUEy
NzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJ3ZWJwdXNodG9v
bCIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAid2VicHVzaHRvb2wiCisgICAgICAgICAg
ICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpXZWJLaXQueGNvZGVwcm9qIj4KKyAg
ICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9CdWlsZGFibGVQcm9kdWN0UnVu
bmFibGU+CisgICA8L1Byb2ZpbGVBY3Rpb24+CisgICA8QW5hbHl6ZUFjdGlvbgorICAgICAgYnVp
bGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KKyAgIDwvQW5hbHl6ZUFjdGlvbj4KKyAgIDxBcmNo
aXZlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAgIHJl
dmVhbEFyY2hpdmVJbk9yZ2FuaXplciA9ICJZRVMiPgorICAgPC9BcmNoaXZlQWN0aW9uPgorICAg
PEluc3RhbGxBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIj4KKyAg
IDwvSW5zdGFsbEFjdGlvbj4KKzwvU2NoZW1lPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NGQxNTJjMDRkMDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KKworbmFt
ZXNwYWNlIFdlYlB1c2hUb29sIHsKKworZW51bSBjbGFzcyBBY3Rpb24geworICAgIFN0cmVhbURl
YnVnTWVzc2FnZXMsCit9OworCitjbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPENvbm5lY3Rpb24+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IGNyZWF0ZShBY3Rpb24sIGJv
b2wgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIENvbm5lY3Rpb24oQWN0aW9uLCBib29sIHByZWZl
clRlc3RTZXJ2aWNlKTsKKworICAgIHZvaWQgY29ubmVjdFRvU2VydmljZSgpOworCitwcml2YXRl
OgorICAgIHZvaWQgbWVzc2FnZVJlY2VpdmVkKHhwY19vYmplY3RfdCk7CisgICAgdm9pZCBjb25u
ZWN0aW9uRHJvcHBlZCgpOworCisgICAgdm9pZCBzdGFydEFjdGlvbigpOworICAgIHZvaWQgc3Rh
cnREZWJ1Z1N0cmVhbUFjdGlvbigpOworCisgICAgdm9pZCBzZW5kQXVkaXRUb2tlbigpOworICAg
IAorICAgIEFjdGlvbiBtX2FjdGlvbjsKKyAgICBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
bV9jb25uZWN0aW9uOworICAgIGNvbnN0IGNoYXIqIG1fc2VydmljZU5hbWU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJQdXNoVG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhmN2ViMWJkMTAyYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0
aW9uLm1tCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8Ym9vdHN0cmFw
Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJQdXNoVG9vbCB7
CisKK3N0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpjcmVhdGUoQWN0aW9u
IGFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1
ZTxDb25uZWN0aW9uPihhY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsKK30KKworc3RhdGljIG1h
Y2hfcG9ydF90IG1heWJlQ29ubmVjdFRvU2VydmljZShjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSkK
K3sKKyAgICBtYWNoX3BvcnRfdCBic1BvcnQ7CisgICAgdGFza19nZXRfYm9vdHN0cmFwX3BvcnQo
bWFjaF90YXNrX3NlbGYoKSwgJmJzUG9ydCk7CisKKyAgICBtYWNoX3BvcnRfdCBzZXJ2aWNlUG9y
dDsKKyAgICBrZXJuX3JldHVybl90IGVyciA9IGJvb3RzdHJhcF9sb29rX3VwKGJzUG9ydCwgc2Vy
dmljZU5hbWUsICZzZXJ2aWNlUG9ydCk7CisKKyAgICBpZiAoZXJyID09IEtFUk5fU1VDQ0VTUykK
KyAgICAgICAgcmV0dXJuIHNlcnZpY2VQb3J0OworCisgICAgcmV0dXJuIE1BQ0hfUE9SVF9OVUxM
OworfQorCitDb25uZWN0aW9uOjpDb25uZWN0aW9uKEFjdGlvbiBhY3Rpb24sIGJvb2wgcHJlZmVy
VGVzdFNlcnZpY2UpCisgICAgOiBtX2FjdGlvbihhY3Rpb24pCit7CisgICAgaWYgKHByZWZlclRl
c3RTZXJ2aWNlKQorICAgICAgICBtX3NlcnZpY2VOYW1lID0gIm9yZy53ZWJraXQud2VicHVzaHRl
c3RkYWVtb24uc2VydmljZSI7CisgICAgZWxzZQorICAgICAgICBtX3NlcnZpY2VOYW1lID0gImNv
bS5hcHBsZS53ZWJraXQud2VicHVzaGQuc2VydmljZSI7CisKKyAgICBtX2Nvbm5lY3Rpb24gPSBh
ZG9wdE5TKHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9zZXJ2aWNlTmFtZSwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0
X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJP
Ul9DT05ORUNUSU9OX0lOVkFMSUQpIHsKKyAgICAgICAgICAgIHByaW50ZigiRmFpbGVkIHRvIHN0
YXJ0IGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMgdG8gbWFjaCBzZXJ2aWNlXG4iKTsKKyAgICAg
ICAgICAgIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBU
RUQpIHsKKyAgICAgICAgICAgIHByaW50ZigiQ29ubmVjdGlvbiBjbG9zZWRcbiIpOworICAgICAg
ICAgICAgY29ubmVjdGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBFX0RJQ1RJT05B
UlkpIHsKKyAgICAgICAgICAgIG1lc3NhZ2VSZWNlaXZlZChldmVudCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0pOworfQorCit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQorewor
ICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlc3Vs
dCA9IG1heWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICBpZiAocmVzdWx0
ID09IE1BQ0hfUE9SVF9OVUxMKQorICAgICAgICBwcmludGYoIldhaXRpbmcgZm9yIHNlcnZpY2Ug
JyVzJyB0byBiZSBhdmFpbGFibGVcbiIsIG1fc2VydmljZU5hbWUpOworCisgICAgd2hpbGUgKHJl
c3VsdCA9PSBNQUNIX1BPUlRfTlVMTCkgeworICAgICAgICB1c2xlZXAoMTAwMCk7CisgICAgICAg
IHJlc3VsdCA9IG1heWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICB9CisK
KyAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworCisgICAg
c2VuZEF1ZGl0VG9rZW4oKTsKKyAgICBzdGFydEFjdGlvbigpOworfQorCit2b2lkIENvbm5lY3Rp
b246OnN0YXJ0QWN0aW9uKCkKK3sKKyAgICBzd2l0Y2ggKG1fYWN0aW9uKSB7CisgICAgY2FzZSBB
Y3Rpb246OlN0cmVhbURlYnVnTWVzc2FnZXM6CisgICAgICAgIHN0YXJ0RGVidWdTdHJlYW1BY3Rp
b24oKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzdGFy
dERlYnVnU3RyZWFtQWN0aW9uKCkKK3sKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhw
Y19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgc3RkOjphcnJh
eTx1aW50OF90LCAxPiBlbmNvZGVkTWVzc2FnZSB7IDEgfTsKKyAgICB4cGNfZGljdGlvbmFyeV9z
ZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CisgICAg
eHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAibWVzc2FnZSB0eXBl
IiwgNSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVu
Y29kZWQgbWVzc2FnZSIsIGVuY29kZWRNZXNzYWdlLmRhdGEoKSwgZW5jb2RlZE1lc3NhZ2Uuc2l6
ZSgpKTsKKworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0
KCksIGRpY3Rpb25hcnkuZ2V0KCkpOworCisgICAgcHJpbnRmKCJOb3cgc3RyZWFtaW5nIGRlYnVn
IG1lc3NhZ2VzXG4iKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tlbigpCit7
CisgICAgYXVkaXRfdG9rZW5fdCB0b2tlbiA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Owor
ICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgYXVkaXRUb2tlbkNvdW50ID0gVEFTS19BVURJVF9U
T0tFTl9DT1VOVDsKKyAgICBrZXJuX3JldHVybl90IHJlc3VsdCA9IHRhc2tfaW5mbyhtYWNoX3Rh
c2tfc2VsZigpLCBUQVNLX0FVRElUX1RPS0VOLCAodGFza19pbmZvX3QpKCZ0b2tlbiksICZhdWRp
dFRva2VuQ291bnQpOworICAgIGlmIChyZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSB7CisgICAgICAg
IHByaW50ZigiVW5hYmxlIHRvIGdldCBhdWRpdCB0b2tlbiB0byBzZW5kXG4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNDI+IGVuY29kZWRNZXNz
YWdlOworICAgIGVuY29kZWRNZXNzYWdlLmZpbGwoMCk7CisgICAgZW5jb2RlZE1lc3NhZ2VbMV0g
PSAxOworICAgIGVuY29kZWRNZXNzYWdlWzJdID0gMzI7CisgICAgbWVtY3B5KCZlbmNvZGVkTWVz
c2FnZVsxMF0sICZ0b2tlbiwgc2l6ZW9mKHRva2VuKSk7CisgICAgYXV0byBkaWN0aW9uYXJ5ID0g
YWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAg
IHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZl
cnNpb24iLCAxKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0
KCksICJtZXNzYWdlIHR5cGUiLCA2KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0
aW9uYXJ5LmdldCgpLCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBl
bmNvZGVkTWVzc2FnZS5zaXplKCkpOworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSht
X2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25hcnkuZ2V0KCkpOworfQorCit2b2lkIENvbm5lY3Rp
b246OmNvbm5lY3Rpb25Ecm9wcGVkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwor
ICAgIENGUnVuTG9vcFN0b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKK30KKwordm9pZCBDb25u
ZWN0aW9uOjptZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90IG1lc3NhZ2UpCit7CisgICAgY29u
c3QgY2hhciogZGVidWdNZXNzYWdlID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtZXNzYWdl
LCAiZGVidWcgbWVzc2FnZSIpOworICAgIGlmICghZGVidWdNZXNzYWdlKQorICAgICAgICByZXR1
cm47CisKKyAgICBwcmludGYoIiVzXG4iLCBkZWJ1Z01lc3NhZ2UpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJQdXNoVG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJw
dXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1
c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLmFjNTY5NmI5MTdjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29u
bmVjdGlvbi5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxv
cHRpb25hbD4KKworX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3N0YXRpYyB2b2lkIHBy
aW50VXNhZ2VBbmRUZXJtaW5hdGUoTlNTdHJpbmcgKm1lc3NhZ2UpCit7CisgICAgZnByaW50Zihz
dGRlcnIsICIlc1xuXG4iLCBtZXNzYWdlLlVURjhTdHJpbmcpOworCisgICAgZnByaW50ZihzdGRl
cnIsICJVc2FnZTogd2VicHVzaHRvb2wgW29wdGlvbnNdXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIlxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tZGV2ZWxvcG1lbnQgICAgICAgICAg
ICAgIENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcIm9yZy53ZWJraXQud2VicHVzaHRlc3RkYWVt
b24uc2VydmljZVwiIChEZWZhdWx0KVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcHJv
ZHVjdGlvbiAgICAgICAgICAgICAgIENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcImNvbS5hcHBs
ZS53ZWJraXQud2VicHVzaGQuc2VydmljZVwiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
LS1zdHJlYW1EZWJ1Z01lc3NhZ2VzICAgICAgU3RyZWFtIGRlYnVnIG1lc3NhZ2VzIGZyb20gd2Vi
cHVzaGRcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKworICAgIGV4aXQoLTEpOwor
fQorCitpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIgKiopCit7CisgICAgYm9vbCBwcmVmZXJUZXN0
U2VydmljZSA9IHRydWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJQdXNoVG9vbDo6QWN0aW9uPiBh
Y3Rpb247CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgTlNBcnJheSAqYXJndW1l
bnRzID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBhcmd1bWVudHNdOworICAgICAgICBp
ZiAoYXJndW1lbnRzLmNvdW50ID09IDEpCisgICAgICAgICAgICBwcmludFVzYWdlQW5kVGVybWlu
YXRlKEAiTm8gYXJndW1lbnRzIHByb3ZpZGVkIik7CisKKyAgICAgICAgZm9yIChOU1N0cmluZyAq
YXJndW1lbnQgaW4gW2FyZ3VtZW50cyBzdWJhcnJheVdpdGhSYW5nZTpOU01ha2VSYW5nZSgxLCBh
cmd1bWVudHMuY291bnQgLSAxKV0pIHsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVh
bFRvU3RyaW5nOkAiLS1wcm9kdWN0aW9uIl0pCisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNl
cnZpY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5n
OkAiLS1kZXZlbG9wbWVudCJdKQorICAgICAgICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0g
dHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCIt
LXN0cmVhbURlYnVnTWVzc2FnZXMiXSkKKyAgICAgICAgICAgICAgICBhY3Rpb24gPSBXZWJQdXNo
VG9vbDo6QWN0aW9uOjpTdHJlYW1EZWJ1Z01lc3NhZ2VzOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJJbnZhbGlkIG9wdGlvbiBwcm92aWRlZDogJUAiLCBhcmd1bWVudF0pOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKCFhY3Rpb24pCisgICAgICAgIHByaW50VXNhZ2VBbmRUZXJt
aW5hdGUoQCJObyBhY3Rpb24gcHJvdmlkZWQiKTsKKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFdl
YlB1c2hUb29sOjpDb25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2Up
OworICAgIGNvbm5lY3Rpb24tPmNvbm5lY3RUb1NlcnZpY2UoKTsKKworICAgIENGUnVuTG9vcFJ1
bigpOworICAgIHJldHVybiAwOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445954</attachid>
            <date>2021-12-03 20:55:12 -0800</date>
            <delta_ts>2021-12-03 23:43:20 -0800</delta_ts>
            <desc>PFL v5 (different approach from v4)</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31361</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMDNiNzY0YWRhMmEzLi43N2Y2YjcwYzQyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi43MzcxYTMzNzM0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0wLDAgKzEs
MzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiQmFz
ZVRhcmdldC54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gd2VicHVzaHRvb2w7CitTS0lQX0lO
U1RBTEwgPSBZRVM7CisKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1hcHBsZXR2Kl0g
PSAqOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPXdhdGNoKl0gPSAqOworCitPVEhF
Ul9MREZMQUdTID0gLWwgV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVG
b3VuZGF0aW9uOworTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUik7
CisKK0NPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRs
ZW1lbnRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjRhMGI1NmJj
NTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvd2VicHVzaHRv
b2wuZW50aXRsZW1lbnRzCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PmNvbS5hcHBsZS5wcml2
YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIx
MjA0ZTNjNDNiYi4uMzJkNWRlYWVlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0LDYgKzE0LDcgQEAKIAkJCQlCQ0ZGQ0E4QTE2
MEQ2REVBMDAzREYzMTUgLyogQWRkIFhQQ1NlcnZpY2VzIHN5bWxpbmsgKi8sCiAJCQkpOwogCQkJ
ZGVwZW5kZW5jaWVzID0gKAorCQkJCTUxN0I1RjZEMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDMTU3OURGMjcxNjVFMDgwMEVENTI4MCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTVDQUY3QUE5MjZGOTNGOUYwMDAzRjE5RSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTU3NDJBMkZBMjUzNTYxOUQwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLApAQCAtMTAyMiw2ICsxMDIzLDggQEAKIAkJNTE3QTUzMTAxRjQ3QTg2
MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwRDFGNDdBODQzMDBEQ0RD
MEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTE3QjVGMkUy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QjVGMkQy
NzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
ICovOyB9OwogCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggKi87IH07CisJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAv
KiBXZWJQdXNoVG9vbE1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQgLyogV2ViUHVzaFRvb2xNYWluLm1t
ICovOyB9OworCQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLzsgfTsK
IAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBG
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3Q0YwRTExNjNBNDg2
QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oICovOyB9OwpAQCAtMjEyMiw2ICsyMTI1LDEzIEBACiAJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNDsKIAkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJfTsKKwkJNTE3QjVGNkMyNzVCMDdDMzAwMkRDMjJEIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0
cmluZyA9IDUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRDsKKwkJCXJlbW90ZUluZm8gPSB3ZWJwdXNo
dG9vbDsKKwkJfTsKIAkJNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNzUsNiArNDM4NSwxMiBAQAogCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3QTUzMEUxRjQ3QTg0MzAwRENEQzBBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1MTdCNUYyRDI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2h0b29sOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCNUY2NzI3NUE5QTc4MDAyREMyMkQgLyogV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRvb2wueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gd2VicHVzaHRvb2wueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxN0I1RjZCMjc1QUU1MEIwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVu
dHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LmVudGl0bGVtZW50czsgbmFtZSA9IHdlYnB1c2h0b29s
LmVudGl0bGVtZW50czsgcGF0aCA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRSAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBGIC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0NhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKQEAgLTY0MjksNiArNjQ0NSwxMyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQk1MTdCNUY1ODI3NUE4
RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9
OwogCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKQEAgLTY1MjQsNiArNjU0Nyw3IEBACiAJCQkJQ0Q5NTQ5MzUyNjE1OTAwNDAwODM3MkQ5
IC8qIGxpYldlYktpdFN3aWZ0LmR5bGliICovLAogCQkJCUExNkU2NjAwMjU4MTkzMDgwMEVFMTc0
OSAvKiBNZWRpYUZvcm1hdFJlYWRlci5idW5kbGUgKi8sCiAJCQkJOERDMkVGNUIwNDg2QTY5NDAw
OThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi8sCisJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRD
MjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02NzY2LDYgKzY3OTAsNyBAQAogCQkJCTVDOEJDNzk2
MjE4Q0I1OEEwMDgxMzg4NiAvKiBTYWZlQnJvd3NpbmcueGNhc3NldHMgKi8sCiAJCQkJRTFEMjZB
NEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLywKIAkJCQlFMTMz
RkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8sCisJCQkJNTE3QjVGNkIyNzVB
RTUwQjAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLmVudGl0bGVtZW50cyAqLywKIAkJCSk7CiAJCQlu
YW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY5MTcsNiAr
Njk0Miw3IEBACiAJCQkJQ0QwOUZEMEEyNjE1MkUyMzAwRTRBQ0YxIC8qIFdlYktpdFN3aWZ0Lnhj
Y29uZmlnICovLAogCQkJCTM3MTE5QTdDMjBDQ0I2NEUwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRD
b25kaXRpb25hbHMueGNjb25maWcgKi8sCiAJCQkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8q
IHdlYnB1c2hkLnhjY29uZmlnICovLAorCQkJCTUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTQwNyw2ICs5NDMzLDE2IEBACiAJCQlu
YW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3QjVGNjMy
NzVBOEQ1QzAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdCNUY2NjI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVz
aFRvb2xDb25uZWN0aW9uLmggKi8sCisJCQkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdl
YlB1c2hUb29sQ29ubmVjdGlvbi5tbSAqLywKKwkJCQk1MTdCNUY2NDI3NUE4RDdFMDAyREMyMkQg
LyogV2ViUHVzaFRvb2xNYWluLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSB3ZWJwdXNodG9vbDsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYxMTZCMjA4RjAwMEU5
MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC05ODg1LDYgKzk5MjEsNyBAQAogCQk1QzE1N0EwQTI3MTdDOUYxMDBFRDUy
ODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1
MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUx
NjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tICovLAogCQkJCTVD
QkI2RDREMjcxRjY3Q0MwMEZEMUE1RCAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0
ICovLApAQCAtMTM5NDUsNiArMTM5ODIsMjIgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAzNzJF
QkI0NjIwMTdFNjQzMDAwODUwNjQgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50LnhwYyAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUu
eHBjLXNlcnZpY2UiOwogCQl9OworCQk1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVz
aHRvb2wgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNTE3QjVGNjIyNzVBOEQzRTAwMkRDMjJEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNodG9vbCIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQk1MTdCNUY1NzI3NUE4RDNFMDAyREMyMkQgLyogU291cmNlcyAqLywKKwkJ
CQk1MTdCNUY1ODI3NUE4RDNFMDAyREMyMkQgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQli
dWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gd2VicHVzaHRvb2w7CisJCQlwcm9kdWN0TmFtZSA9IHdlYnB1c2h0b29sOworCQkJcHJvZHVj
dFJlZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsK
KwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAJ
CTU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKIAkJCWlzYSA9IFBC
WE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2
MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJn
ZXQgIldlYkF1dGhuIiAqLzsKQEAgLTE0MTYzLDYgKzE0MjE2LDkgQEAKIAkJCQlMYXN0U3dpZnRV
cGRhdGVDaGVjayA9IDEzMDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDExNDA7CiAJCQkJVGFy
Z2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEID0geworCQkJ
CQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTMuMDsKKwkJCQkJfTsKIAkJCQkJNTMyNUJEQ0Qy
MURGRjQ3NzAwQTBERUUxID0gewogCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gMTAuMTsK
IAkJCQkJCVByb3Zpc2lvbmluZ1N0eWxlID0gQXV0b21hdGljOwpAQCAtMTQyMjAsNiArMTQyNzYs
NyBAQAogCQkJCTk0MkRCMjMyMjU3RUU2RDQwMDlCRDgwQSAvKiBFbXB0eURTVFJPT1QgKi8sCiAJ
CQkJNUNBRjdBOTkyNkY5M0E3NTAwMDNGMTlFIC8qIGFkYXR0cmlidXRpb25kICovLAogCQkJCTVD
MTU3OUNDMjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLywKKwkJCQk1MTdCNUY1QTI3NUE4
RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFBy
b2plY3Qgc2VjdGlvbiAqLwpAQCAtMTQ5NzEsNiArMTUwMjgsMTUgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTcyNzVB
OEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CQk1MTdCNUY2ODI3NUE5QTc4MDAyREMyMkQgLyogV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTE3QjVGNjUyNzVBOEQ3RjAwMkRDMjJEIC8qIFdlYlB1c2hUb29s
TWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1NTM0LDYgKzE1NjAwLDExIEBACiAJCQl0YXJnZXQg
PSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovOwogCQkJdGFy
Z2V0UHJveHkgPSAzN0Y3NDA3ODEyNzIxRjc0MDA5Mzg2OUIgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OworCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSA1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDUxN0I1RjZDMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CiAJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEUx
QUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi87CkBAIC0xNTc4Myw2
ICsxNTg1NCwyNyBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQk1MTdC
NUY1RjI3NUE4RDNFMDAyREMyMkQgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE3QjVGNkEyNzVB
QTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTUxN0I1RjYwMjc1QThEM0Uw
MDJEQzIyRCAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9
OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQli
YXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJ
bmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTUzMjVCRENFMjFERkY0NzgwMEEwREVFMSAvKiBE
ZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSBCQ0I4NkY0QjExNkFBQUNEMDBDRTIwQjcgLyogV2ViS2l0Lnhj
Y29uZmlnICovOwpAQCAtMTYxOTcsNiArMTYyODksMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rp
b247CiAJCX07CisJCTUxN0I1RjYyMjc1QThEM0UwMDJEQzIyRCAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaHRvb2wiICovID0geworCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJ
NTE3QjVGNUYyNzVBOEQzRTAwMkRDMjJEIC8qIERlYnVnICovLAorCQkJCTUxN0I1RjYwMjc1QThE
M0UwMDJEQzIyRCAvKiBSZWxlYXNlICovLAorCQkJCTUxN0I1RjYxMjc1QThEM0UwMDJEQzIyRCAv
KiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJ
CTUzMjVCREQxMjFERkY0NzgwMEEwREVFMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyIg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3No
YXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hl
bWUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kOWQ2MzFjZDQ5NjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZQpAQCAtMCwwICsxLDgxIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPFNjaGVtZQorICAgTGFzdFVw
Z3JhZGVWZXJzaW9uID0gIjEzMDAiCisgICB2ZXJzaW9uID0gIjEuNyI+CisgICA8QnVpbGRBY3Rp
b24KKyAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZRVMiCisgICAgICBidWlsZEltcGxp
Y2l0RGVwZW5kZW5jaWVzID0gIllFUyI+CisgICAgICA8QnVpbGRBY3Rpb25FbnRyaWVzPgorICAg
ICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKKyAgICAgICAgICAgIGJ1aWxkRm9yVGVzdGluZyA9ICJZ
RVMiCisgICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVp
bGRGb3JQcm9maWxpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZpbmcgPSAi
WUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KKyAgICAgICAgICAg
IDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIg
PSAicHJpbWFyeSIKKyAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiNTE3QjVG
NUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJ3ZWJw
dXNodG9vbCIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAid2VicHVzaHRvb2wiCisg
ICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpXZWJLaXQueGNv
ZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgICAgPC9C
dWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJpZXM+CisgICA8L0J1aWxk
QWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1
ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisgICAgICBzaG91bGRV
c2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVzdGFibGVzPgorICAgICAg
PC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNoQWN0aW9uCisgICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRp
ZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKKyAgICAgIHNl
bGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVu
Y2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAgIHVzZUN1c3RvbVdvcmtp
bmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2gg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiCisgICAgICBkZWJ1
Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxh
dGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAg
cnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5j
ZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAg
ICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAg
ICAgICAgICBCdWlsZGFibGVOYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXBy
aW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIg
PSAiY29udGFpbmVyOldlYktpdC54Y29kZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZl
cmVuY2U+CisgICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvTGF1bmNoQWN0
aW9uPgorICAgPFByb2ZpbGVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCisgICAgICBz
YXZlZFRvb2xJZGVudGlmaWVyID0gIiIKKyAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3Rvcnkg
PSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgorICAgICAgPEJ1
aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0g
IjAiPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxl
SWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9
ICI1MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IndlYnB1c2h0b29sIgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJ3ZWJwdXNodG9vbCIK
KyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOldlYktpdC54Y29k
ZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxkYWJs
ZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvUHJvZmlsZUFjdGlvbj4KKyAgIDxBbmFseXplQWN0aW9u
CisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciPgorICAgPC9BbmFseXplQWN0aW9u
PgorICAgPEFyY2hpdmVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNl
IgorICAgICAgcmV2ZWFsQXJjaGl2ZUluT3JnYW5pemVyID0gIllFUyI+CisgICA8L0FyY2hpdmVB
Y3Rpb24+CisgICA8SW5zdGFsbEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJl
bGVhc2UiPgorICAgPC9JbnN0YWxsQWN0aW9uPgorPC9TY2hlbWU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0ZDE1MmMwNGQwOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2Vi
UHVzaFRvb2xDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQ
SS5oPgorCituYW1lc3BhY2UgV2ViUHVzaFRvb2wgeworCitlbnVtIGNsYXNzIEFjdGlvbiB7Cisg
ICAgU3RyZWFtRGVidWdNZXNzYWdlcywKK307CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlvbj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4gY3JlYXRl
KEFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSk7CisgICAgQ29ubmVjdGlvbihBY3Rpb24s
IGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworCisgICAgdm9pZCBjb25uZWN0VG9TZXJ2aWNlKCk7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoeHBjX29iamVjdF90KTsKKyAg
ICB2b2lkIGNvbm5lY3Rpb25Ecm9wcGVkKCk7CisKKyAgICB2b2lkIHN0YXJ0QWN0aW9uKCk7Cisg
ICAgdm9pZCBzdGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisKKyAgICB2b2lkIHNlbmRBdWRpdFRv
a2VuKCk7CisgICAgCisgICAgQWN0aW9uIG1fYWN0aW9uOworICAgIFJldGFpblB0cjx4cGNfY29u
bmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgY29uc3QgY2hhciogbV9zZXJ2aWNlTmFtZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hUb29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODczOGY1OWQ2YjFlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL1NlcnZlcnNTUEkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworbmFtZXNwYWNlIFdlYlB1c2hUb29sIHsKKworc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+
IENvbm5lY3Rpb246OmNyZWF0ZShBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNl
KQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPENvbm5lY3Rpb24+KGFjdGlvbiwgcHJlZmVyVGVz
dFNlcnZpY2UpOworfQorCitzdGF0aWMgbWFjaF9wb3J0X3QgbWF5YmVDb25uZWN0VG9TZXJ2aWNl
KGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKQoreworICAgIG1hY2hfcG9ydF90IGJzUG9ydDsKKyAg
ICB0YXNrX2dldF9zcGVjaWFsX3BvcnQobWFjaF90YXNrX3NlbGYoKSwgVEFTS19CT09UU1RSQVBf
UE9SVCwgJmJzUG9ydCk7CisKKyAgICBtYWNoX3BvcnRfdCBzZXJ2aWNlUG9ydDsKKyAgICBrZXJu
X3JldHVybl90IGVyciA9IGJvb3RzdHJhcF9sb29rX3VwKGJzUG9ydCwgc2VydmljZU5hbWUsICZz
ZXJ2aWNlUG9ydCk7CisKKyAgICBpZiAoZXJyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmV0
dXJuIHNlcnZpY2VQb3J0OworCisgICAgcmV0dXJuIE1BQ0hfUE9SVF9OVUxMOworfQorCitDb25u
ZWN0aW9uOjpDb25uZWN0aW9uKEFjdGlvbiBhY3Rpb24sIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2Up
CisgICAgOiBtX2FjdGlvbihhY3Rpb24pCit7CisgICAgaWYgKHByZWZlclRlc3RTZXJ2aWNlKQor
ICAgICAgICBtX3NlcnZpY2VOYW1lID0gIm9yZy53ZWJraXQud2VicHVzaHRlc3RkYWVtb24uc2Vy
dmljZSI7CisgICAgZWxzZQorICAgICAgICBtX3NlcnZpY2VOYW1lID0gImNvbS5hcHBsZS53ZWJr
aXQud2VicHVzaGQuc2VydmljZSI7CisKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKHhwY19j
b25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9zZXJ2aWNlTmFtZSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgMCkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRs
ZXIobV9jb25uZWN0aW9uLmdldCgpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9O
X0lOVkFMSUQpIHsKKyAgICAgICAgICAgIHByaW50ZigiRmFpbGVkIHRvIHN0YXJ0IGxpc3Rlbmlu
ZyBmb3IgY29ubmVjdGlvbnMgdG8gbWFjaCBzZXJ2aWNlXG4iKTsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb25Ecm9wcGVkKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKKyAgICAg
ICAgICAgIHByaW50ZigiQ29ubmVjdGlvbiBjbG9zZWRcbiIpOworICAgICAgICAgICAgY29ubmVj
dGlvbkRyb3BwZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKKyAgICAg
ICAgICAgIG1lc3NhZ2VSZWNlaXZlZChldmVudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0pOwor
fQorCit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQoreworICAgIGlmICghbV9j
b25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlc3VsdCA9IG1heWJlQ29u
bmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICBpZiAocmVzdWx0ID09IE1BQ0hfUE9S
VF9OVUxMKQorICAgICAgICBwcmludGYoIldhaXRpbmcgZm9yIHNlcnZpY2UgJyVzJyB0byBiZSBh
dmFpbGFibGVcbiIsIG1fc2VydmljZU5hbWUpOworCisgICAgd2hpbGUgKHJlc3VsdCA9PSBNQUNI
X1BPUlRfTlVMTCkgeworICAgICAgICB1c2xlZXAoMTAwMCk7CisgICAgICAgIHJlc3VsdCA9IG1h
eWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICB9CisKKyAgICB4cGNfY29u
bmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworCisgICAgc2VuZEF1ZGl0VG9r
ZW4oKTsKKyAgICBzdGFydEFjdGlvbigpOworfQorCit2b2lkIENvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKCkKK3sKKyAgICBzd2l0Y2ggKG1fYWN0aW9uKSB7CisgICAgY2FzZSBBY3Rpb246OlN0cmVh
bURlYnVnTWVzc2FnZXM6CisgICAgICAgIHN0YXJ0RGVidWdTdHJlYW1BY3Rpb24oKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKCkKK3sKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgc3RkOjphcnJheTx1aW50OF90LCAx
PiBlbmNvZGVkTWVzc2FnZSB7IDEgfTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRp
Y3Rpb25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CisgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAibWVzc2FnZSB0eXBlIiwgNSk7CisgICAg
eHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVuY29kZWQgbWVzc2Fn
ZSIsIGVuY29kZWRNZXNzYWdlLmRhdGEoKSwgZW5jb2RlZE1lc3NhZ2Uuc2l6ZSgpKTsKKworICAg
IHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpY3Rpb25h
cnkuZ2V0KCkpOworCisgICAgcHJpbnRmKCJOb3cgc3RyZWFtaW5nIGRlYnVnIG1lc3NhZ2VzXG4i
KTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tlbigpCit7CisgICAgYXVkaXRf
dG9rZW5fdCB0b2tlbiA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OworICAgIG1hY2hfbXNn
X3R5cGVfbnVtYmVyX3QgYXVkaXRUb2tlbkNvdW50ID0gVEFTS19BVURJVF9UT0tFTl9DT1VOVDsK
KyAgICBrZXJuX3JldHVybl90IHJlc3VsdCA9IHRhc2tfaW5mbyhtYWNoX3Rhc2tfc2VsZigpLCBU
QVNLX0FVRElUX1RPS0VOLCAodGFza19pbmZvX3QpKCZ0b2tlbiksICZhdWRpdFRva2VuQ291bnQp
OworICAgIGlmIChyZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSB7CisgICAgICAgIHByaW50ZigiVW5h
YmxlIHRvIGdldCBhdWRpdCB0b2tlbiB0byBzZW5kXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNDI+IGVuY29kZWRNZXNzYWdlOworICAgIGVu
Y29kZWRNZXNzYWdlLmZpbGwoMCk7CisgICAgZW5jb2RlZE1lc3NhZ2VbMV0gPSAxOworICAgIGVu
Y29kZWRNZXNzYWdlWzJdID0gMzI7CisgICAgbWVtY3B5KCZlbmNvZGVkTWVzc2FnZVsxMF0sICZ0
b2tlbiwgc2l6ZW9mKHRva2VuKSk7CisgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNf
ZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAgIHhwY19kaWN0aW9u
YXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgInByb3RvY29sIHZlcnNpb24iLCAxKTsK
KyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksICJtZXNzYWdl
IHR5cGUiLCA2KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShkaWN0aW9uYXJ5LmdldCgp
LCAiZW5jb2RlZCBtZXNzYWdlIiwgZW5jb2RlZE1lc3NhZ2UuZGF0YSgpLCBlbmNvZGVkTWVzc2Fn
ZS5zaXplKCkpOworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24u
Z2V0KCksIGRpY3Rpb25hcnkuZ2V0KCkpOworfQorCit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rp
b25Ecm9wcGVkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgIENGUnVuTG9v
cFN0b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjptZXNz
YWdlUmVjZWl2ZWQoeHBjX29iamVjdF90IG1lc3NhZ2UpCit7CisgICAgY29uc3QgY2hhciogZGVi
dWdNZXNzYWdlID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtZXNzYWdlLCAiZGVidWcgbWVz
c2FnZSIpOworICAgIGlmICghZGVidWdNZXNzYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBw
cmludGYoIiVzXG4iLCBkZWJ1Z01lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNo
VG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQ
dXNoVG9vbE1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1
c2hUb29sTWFpbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFj
NTY5NmI5MTdjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlB1c2hUb29sQ29ubmVjdGlvbi5oIgor
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxvcHRpb25hbD4KKwor
X19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKK3N0YXRpYyB2b2lkIHByaW50VXNhZ2VBbmRU
ZXJtaW5hdGUoTlNTdHJpbmcgKm1lc3NhZ2UpCit7CisgICAgZnByaW50ZihzdGRlcnIsICIlc1xu
XG4iLCBtZXNzYWdlLlVURjhTdHJpbmcpOworCisgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTog
d2VicHVzaHRvb2wgW29wdGlvbnNdXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7Cisg
ICAgZnByaW50ZihzdGRlcnIsICIgIC0tZGV2ZWxvcG1lbnQgICAgICAgICAgICAgIENvbm5lY3Rz
IHRvIG1hY2ggc2VydmljZSBcIm9yZy53ZWJraXQud2VicHVzaHRlc3RkYWVtb24uc2VydmljZVwi
IChEZWZhdWx0KVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcHJvZHVjdGlvbiAgICAg
ICAgICAgICAgIENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcImNvbS5hcHBsZS53ZWJraXQud2Vi
cHVzaGQuc2VydmljZVwiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1zdHJlYW1EZWJ1
Z01lc3NhZ2VzICAgICAgU3RyZWFtIGRlYnVnIG1lc3NhZ2VzIGZyb20gd2VicHVzaGRcbiIpOwor
ICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKworICAgIGV4aXQoLTEpOworfQorCitpbnQgbWFp
bihpbnQsIGNvbnN0IGNoYXIgKiopCit7CisgICAgYm9vbCBwcmVmZXJUZXN0U2VydmljZSA9IHRy
dWU7CisgICAgc3RkOjpvcHRpb25hbDxXZWJQdXNoVG9vbDo6QWN0aW9uPiBhY3Rpb247CisKKyAg
ICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgTlNBcnJheSAqYXJndW1lbnRzID0gW1tOU1By
b2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBhcmd1bWVudHNdOworICAgICAgICBpZiAoYXJndW1lbnRz
LmNvdW50ID09IDEpCisgICAgICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRlKEAiTm8gYXJn
dW1lbnRzIHByb3ZpZGVkIik7CisKKyAgICAgICAgZm9yIChOU1N0cmluZyAqYXJndW1lbnQgaW4g
W2FyZ3VtZW50cyBzdWJhcnJheVdpdGhSYW5nZTpOU01ha2VSYW5nZSgxLCBhcmd1bWVudHMuY291
bnQgLSAxKV0pIHsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAi
LS1wcm9kdWN0aW9uIl0pCisgICAgICAgICAgICAgICAgcHJlZmVyVGVzdFNlcnZpY2UgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1kZXZlbG9w
bWVudCJdKQorICAgICAgICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXN0cmVhbURlYnVn
TWVzc2FnZXMiXSkKKyAgICAgICAgICAgICAgICBhY3Rpb24gPSBXZWJQdXNoVG9vbDo6QWN0aW9u
OjpTdHJlYW1EZWJ1Z01lc3NhZ2VzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJJbnZh
bGlkIG9wdGlvbiBwcm92aWRlZDogJUAiLCBhcmd1bWVudF0pOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKCFhY3Rpb24pCisgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoQCJObyBh
Y3Rpb24gcHJvdmlkZWQiKTsKKworICAgIGF1dG8gY29ubmVjdGlvbiA9IFdlYlB1c2hUb29sOjpD
b25uZWN0aW9uOjpjcmVhdGUoKmFjdGlvbiwgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIGNvbm5l
Y3Rpb24tPmNvbm5lY3RUb1NlcnZpY2UoKTsKKworICAgIENGUnVuTG9vcFJ1bigpOworICAgIHJl
dHVybiAwOworfQo=
</data>
<flag name="commit-queue"
          id="471267"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445962</attachid>
            <date>2021-12-03 23:43:20 -0800</date>
            <delta_ts>2021-12-04 08:09:05 -0800</delta_ts>
            <desc>PFL v6</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>31461</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggODc3NjkxNDk3NmIyLi41YWM4YTYzYTllNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBjb21tYW5kIGxpbmUgYHdlYnB1c2h0b29sYCBmb3IgZGFlbW9uIGRldmVs
b3BtZW50IGFuZCBkZWJ1Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICBUaGlzIHV0aWxpdHkgd2ls
bCBldmVudHVhbGx5IGJlIHF1aXRlIGZsZXNoZWQgb3V0LgorICAgICAgICAKKyAgICAgICAgRm9y
IG5vdywgaXQgY2FuIGFjdCBhcyBhIHRlcm1pbmFsIHRoYXQgcHJpbnRzIGRlYnVnIG1lc3NhZ2Vz
IGZyb20gd2VicHVzaGQuCisgICAgICAgIAorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL3dlYnB1
c2h0b29sLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wu
ZW50aXRsZW1lbnRzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvd2VicHVzaHRvb2wueGNzY2hlbWU6IEFkZGVkLgorCisgICAgICAgICogd2VicHVzaGQvd2Vi
cHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAg
IChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYlB1c2hUb29s
OjptYXliZUNvbm5lY3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rp
b246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNvbm5l
Y3RUb1NlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OnN0YXJ0QWN0
aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzdGFydERlYnVnU3RyZWFt
QWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpzZW5kQXVkaXRUb2tl
bik6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQp
OgorICAgICAgICAoV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlZCk6Cisg
ICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOiBBZGRlZC4K
KyAgICAgICAgKHByaW50VXNhZ2VBbmRUZXJtaW5hdGUpOgorICAgICAgICAobWFpbik6CisKIDIw
MjEtMTItMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU10gV2ViIGNvbnRlbnQgcHJvY2VzcyBzb21ldGltZXMgY3Jhc2hlcyB1bmRlciBXZWJQ
YWdlOjpwb3NpdGlvbkluZm9ybWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvd2VicHVzaHRvb2wueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uNzM3MWEzMzczNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwpAQCAtMCwwICsxLDM1IEBACisv
LyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8K
Ky8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8v
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
Ky8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgIkJhc2VUYXJnZXQu
eGNjb25maWciCisKK1BST0RVQ1RfTkFNRSA9IHdlYnB1c2h0b29sOworU0tJUF9JTlNUQUxMID0g
WUVTOworCitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9YXBwbGV0dipdID0gKjsKK0VY
Q0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz13YXRjaCpdID0gKjsKKworT1RIRVJfTERGTEFH
UyA9IC1sIFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlRm91bmRhdGlv
bjsKK0xJQlJBUllfU0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpOworCitDT0RF
X1NJR05fRU5USVRMRU1FTlRTID0gUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVt
ZW50cyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50cwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY0YTBiNTZiYzUwMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0
bGVtZW50cwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8v
RU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxw
bGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJr
aXQud2VicHVzaDwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxOTIwNjllY2I3
ZWIuLmUzMzkyMWUzZGVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNCw2ICsxNCw3IEBACiAJCQkJQkNGRkNBOEExNjBENkRFQTAw
M0RGMzE1IC8qIEFkZCBYUENTZXJ2aWNlcyBzeW1saW5rICovLAogCQkJKTsKIAkJCWRlcGVuZGVu
Y2llcyA9ICgKKwkJCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk1QzE1NzlERjI3MTY1RTA4MDBFRDUyODAgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk1Q0FGN0FBOTI2RjkzRjlGMDAwM0YxOUUgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk1NzQyQTJGQTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKQEAgLTEwMjMsNiArMTAyNCw4IEBACiAJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMw
QSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTUxN0I1RjJFMjc1NzM4MkEw
MDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjJEMjc1NzM4MkEw
MDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsK
IAkJNTE3QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE3QjVGMkQyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29u
ZmlndXJhdGlvbi5oICovOyB9OworCQk1MTdCNUY2NTI3NUE4RDdGMDAyREMyMkQgLyogV2ViUHVz
aFRvb2xNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1c2hUb29sTWFpbi5tbSAqLzsgfTsK
KwkJNTE3QjVGNjgyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0I1RjY3Mjc1
QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gKi87IH07CiAJCTUxN0NG
MEUzMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxN0NGMEUzMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUw
RiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLzsgfTsKQEAgLTIxMjcsNiArMjEzMCwxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSBDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQ7CiAJCQlyZW1vdGVJbmZvID0gIkRlcml2
ZWQgU291cmNlcyI7CiAJCX07CisJCTUxN0I1RjZDMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJ
CQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1
MTdCNUY1QTI3NUE4RDNFMDAyREMyMkQ7CisJCQlyZW1vdGVJbmZvID0gd2VicHVzaHRvb2w7CisJ
CX07CiAJCTU3NDJBMkU3MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0
YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC00
Mzg3LDYgKzQzOTcsMTIgQEAKIAkJNTE3QTUzMEQxRjQ3QTg0MzAwRENEQzBBIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTUxN0E1MzBFMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0Ns
aWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE3
QjVGMkQyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQdXNoRGFlbW9uQ29u
bmVjdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3
QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUi
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSB3ZWJwdXNodG9vbDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1
c2hUb29sTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YlB1c2hUb29sTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVGNjYy
NzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQdXNoVG9vbENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QjVGNjcyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29s
Q29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YlB1c2hUb29sQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3
QjVGNkEyNzVBQTE5OTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IHdlYnB1c2h0b29sLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdCNUY2QjI3NUFFNTBCMDAyREMyMkQgLyogd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC5lbnRpdGxlbWVudHM7IG5hbWUgPSB3ZWJwdXNodG9vbC5lbnRpdGxl
bWVudHM7IHBhdGggPSBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTUxN0NGMEUxMTYzQTQ4NkMwMEMyOTUwRiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNTE3Q0YwRTIxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CkBAIC02NDQ3LDYgKzY0NjMsMTMgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJNTE3QjVGNTgyNzVBOEQzRTAwMkRD
MjJEIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7
CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJNTc0
MkEyRUQyNTM1NjEzRjAwQjdCQTE0IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBA
IC02NTQyLDYgKzY1NjUsNyBAQAogCQkJCUNEOTU0OTM1MjYxNTkwMDQwMDgzNzJEOSAvKiBsaWJX
ZWJLaXRTd2lmdC5keWxpYiAqLywKIAkJCQlBMTZFNjYwMDI1ODE5MzA4MDBFRTE3NDkgLyogTWVk
aWFGb3JtYXRSZWFkZXIuYnVuZGxlICovLAogCQkJCThEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAv
KiBXZWJLaXQuZnJhbWV3b3JrICovLAorCQkJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbCAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtNjc4NCw2ICs2ODA4LDcgQEAKIAkJCQk1QzhCQzc5NjIxOENCNThB
MDA4MTM4ODYgLyogU2FmZUJyb3dzaW5nLnhjYXNzZXRzICovLAogCQkJCUUxRDI2QTRDMTc1OTYz
NEUwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgKi8sCiAJCQkJRTEzM0ZEODkxNDIz
REQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovLAorCQkJCTUxN0I1RjZCMjc1QUU1MEIwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFJl
c291cmNlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02OTM1LDYgKzY5NjAsNyBA
QAogCQkJCUNEMDlGRDBBMjYxNTJFMjMwMEU0QUNGMSAvKiBXZWJLaXRTd2lmdC54Y2NvbmZpZyAq
LywKIAkJCQkzNzExOUE3QzIwQ0NCNjRFMDAyQzZEQzkgLyogV2ViS2l0VGFyZ2V0Q29uZGl0aW9u
YWxzLnhjY29uZmlnICovLAogCQkJCTVDMTU3OUREMjcxNjVCRTUwMEVENTI4MCAvKiB3ZWJwdXNo
ZC54Y2NvbmZpZyAqLywKKwkJCQk1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRv
b2wueGNjb25maWcgKi8sCiAJCQkpOwogCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk0MjcsNiArOTQ1MywxNiBAQAogCQkJbmFtZSA9IG1h
YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxN0I1RjYzMjc1QThENUMw
MDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJNTE3QjVGNjYyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29u
bmVjdGlvbi5oICovLAorCQkJCTUxN0I1RjY3Mjc1QTlBNzgwMDJEQzIyRCAvKiBXZWJQdXNoVG9v
bENvbm5lY3Rpb24ubW0gKi8sCisJCQkJNTE3QjVGNjQyNzVBOEQ3RTAwMkRDMjJEIC8qIFdlYlB1
c2hUb29sTWFpbi5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gd2VicHVzaHRvb2w7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MThFOEVGMTE2QjIwOEYwMDBFOTE0MjkgLyog
QXV0aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtOTkwNSw2ICs5OTQxLDcgQEAKIAkJNUMxNTdBMEEyNzE3QzlGMTAwRUQ1MjgwIC8qIHdl
YnB1c2hkICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1
MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkJNTE2MEU5NTQy
NzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCAqLywKIAkJCQk1MTYwRTk1MzI3
NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5tbSAqLywKIAkJCQk1Q0JCNkQ0RDI3
MUY2N0NDMDBGRDFBNUQgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5wbGlzdCAqLywKQEAg
LTEzOTc5LDYgKzE0MDE2LDIyIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gMzcyRUJCNDYyMDE3
RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54
cGMgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2
aWNlIjsKIAkJfTsKKwkJNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICov
ID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDUxN0I1RjYyMjc1QThEM0UwMDJEQzIyRCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaHRvb2wiICovOworCQkJYnVpbGRQaGFzZXMgPSAo
CisJCQkJNTE3QjVGNTcyNzVBOEQzRTAwMkRDMjJEIC8qIFNvdXJjZXMgKi8sCisJCQkJNTE3QjVG
NTgyNzVBOEQzRTAwMkRDMjJEIC8qIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJYnVpbGRSdWxl
cyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9IHdlYnB1
c2h0b29sOworCQkJcHJvZHVjdE5hbWUgPSB3ZWJwdXNodG9vbDsKKwkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CisJCQlwcm9k
dWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOworCQl9OwogCQk1NzQyQTJF
NTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVU
YXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEzRjAwQjdC
QTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJB
dXRobiIgKi87CkBAIC0xNDE5Nyw2ICsxNDI1MCw5IEBACiAJCQkJTGFzdFN3aWZ0VXBkYXRlQ2hl
Y2sgPSAxMzAwOwogCQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAxMTQwOwogCQkJCVRhcmdldEF0dHJp
YnV0ZXMgPSB7CisJCQkJCTUxN0I1RjVBMjc1QThEM0UwMDJEQzIyRCA9IHsKKwkJCQkJCUNyZWF0
ZWRPblRvb2xzVmVyc2lvbiA9IDEzLjA7CisJCQkJCX07CiAJCQkJCTUzMjVCRENEMjFERkY0Nzcw
MEEwREVFMSA9IHsKIAkJCQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDEwLjE7CiAJCQkJCQlQ
cm92aXNpb25pbmdTdHlsZSA9IEF1dG9tYXRpYzsKQEAgLTE0MjU0LDYgKzE0MzEwLDcgQEAKIAkJ
CQk5NDJEQjIzMjI1N0VFNkQ0MDA5QkQ4MEEgLyogRW1wdHlEU1RST09UICovLAogCQkJCTVDQUY3
QTk5MjZGOTNBNzUwMDAzRjE5RSAvKiBhZGF0dHJpYnV0aW9uZCAqLywKIAkJCQk1QzE1NzlDQzI3
MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8sCisJCQkJNTE3QjVGNUEyNzVBOEQzRTAwMkRD
MjJEIC8qIHdlYnB1c2h0b29sICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTE1MDA1LDYgKzE1MDYyLDE1IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCTUxN0I1RjU3Mjc1QThEM0UwMDJE
QzIyRCAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJNTE3QjVG
NjgyNzVBOUE3ODAwMkRDMjJEIC8qIFdlYlB1c2hUb29sQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxN0I1RjY1Mjc1QThEN0YwMDJEQzIyRCAvKiBXZWJQdXNoVG9vbE1haW4ubW0g
aW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKKwkJfTsKIAkJNTc0MkEyRUEyNTM1NjEzRjAwQjdCQTE0IC8qIFNvdXJjZXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CkBAIC0xNTU3MCw2ICsxNTYzNiwxMSBAQAogCQkJdGFyZ2V0ID0gQzBDRTcy
ODUxMjQ3RTY2ODAwQkMwRUM0IC8qIERlcml2ZWQgU291cmNlcyAqLzsKIAkJCXRhcmdldFByb3h5
ID0gMzdGNzQwNzgxMjcyMUY3NDAwOTM4NjlCIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsK
IAkJfTsKKwkJNTE3QjVGNkQyNzVCMDdDMzAwMkRDMjJEIC8qIFBCWFRhcmdldERlcGVuZGVuY3kg
Ki8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gNTE3QjVG
NUEyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovOworCQkJdGFyZ2V0UHJveHkgPSA1
MTdCNUY2QzI3NUIwN0MzMDAyREMyMkQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9
OwogCQk1NzQyQTJFNjI1MzU2MTNGMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBFMUFDMkUyNzIw
RjdCOTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWluICovOwpAQCAtMTU4MTksNiArMTU4OTAs
MjcgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJNTE3QjVGNUYyNzVB
OEQzRTAwMkRDMjJEIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxN0I1RjZBMjc1QUExOTkwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJ
CQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1MTdCNUY2MDI3NUE4RDNFMDAyREMyMkQg
LyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2Vi
cHVzaHRvb2wueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5h
bWUgPSBSZWxlYXNlOworCQl9OworCQk1MTdCNUY2MTI3NUE4RDNFMDAyREMyMkQgLyogUHJvZHVj
dGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSA1MTdCNUY2QTI3NUFBMTk5MDAyREMyMkQgLyogd2VicHVzaHRv
b2wueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBQ
cm9kdWN0aW9uOworCQl9OwogCQk1MzI1QkRDRTIxREZGNDc4MDBBMERFRTEgLyogRGVidWcgKi8g
PSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gQkNCODZGNEIxMTZBQUFDRDAwQ0UyMEI3IC8qIFdlYktpdC54Y2NvbmZpZyAq
LzsKQEAgLTE2MjMzLDYgKzE2MzI1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlz
aWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9
OworCQk1MTdCNUY2MjI3NUE4RDNFMDAyREMyMkQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2h0b29sIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29u
ZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTUxN0I1RjVG
Mjc1QThEM0UwMDJEQzIyRCAvKiBEZWJ1ZyAqLywKKwkJCQk1MTdCNUY2MDI3NUE4RDNFMDAyREMy
MkQgLyogUmVsZWFzZSAqLywKKwkJCQk1MTdCNUY2MTI3NUE4RDNFMDAyREMyMkQgLyogUHJvZHVj
dGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1MzI1QkRE
MTIxREZGNDc4MDBBMERFRTEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dy
ZWdhdGVUYXJnZXQgIkFwcGx5IENvbmZpZ3VyYXRpb24gdG8gWENGaWxlTGlzdHMiICovID0gewog
CQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRh
L3hjc2NoZW1lcy93ZWJwdXNodG9vbC54Y3NjaGVtZSBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL3dlYnB1c2h0b29sLnhjc2NoZW1lCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDlkNjMxY2Q0OTY5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94
Y3NjaGVtZXMvd2VicHVzaHRvb2wueGNzY2hlbWUKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxTY2hlbWUKKyAgIExhc3RVcGdyYWRlVmVy
c2lvbiA9ICIxMzAwIgorICAgdmVyc2lvbiA9ICIxLjciPgorICAgPEJ1aWxkQWN0aW9uCisgICAg
ICBwYXJhbGxlbGl6ZUJ1aWxkYWJsZXMgPSAiWUVTIgorICAgICAgYnVpbGRJbXBsaWNpdERlcGVu
ZGVuY2llcyA9ICJZRVMiPgorICAgICAgPEJ1aWxkQWN0aW9uRW50cmllcz4KKyAgICAgICAgIDxC
dWlsZEFjdGlvbkVudHJ5CisgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgorICAg
ICAgICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUHJv
ZmlsaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKKyAg
ICAgICAgICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CisgICAgICAgICAgICA8QnVpbGRh
YmxlUmVmZXJlbmNlCisgICAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1h
cnkiCisgICAgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjUxN0I1RjVBMjc1QThE
M0UwMDJEQzIyRCIKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAid2VicHVzaHRvb2wi
CisgICAgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIndlYnB1c2h0b29sIgorICAgICAgICAg
ICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2ViS2l0Lnhjb2RlcHJvaiI+
CisgICAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgICAgIDwvQnVpbGRBY3Rp
b25FbnRyeT4KKyAgICAgIDwvQnVpbGRBY3Rpb25FbnRyaWVzPgorICAgPC9CdWlsZEFjdGlvbj4K
KyAgIDxUZXN0QWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAg
ICBzZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24u
RGVidWdnZXIuTExEQiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2Rl
LkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgc2hvdWxkVXNlTGF1bmNo
U2NoZW1lQXJnc0VudiA9ICJZRVMiPgorICAgICAgPFRlc3RhYmxlcz4KKyAgICAgIDwvVGVzdGFi
bGVzPgorICAgPC9UZXN0QWN0aW9uPgorICAgPExhdW5jaEFjdGlvbgorICAgICAgYnVpbGRDb25m
aWd1cmF0aW9uID0gIkRlYnVnIgorICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAi
WGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCisgICAgICBzZWxlY3RlZExh
dW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExE
QiIKKyAgICAgIGxhdW5jaFN0eWxlID0gIjAiCisgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0
b3J5ID0gIk5PIgorICAgICAgaWdub3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1bmNoID0gIk5PIgor
ICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgorICAgICAgZGVidWdTZXJ2aWNl
RXh0ZW5zaW9uID0gImludGVybmFsIgorICAgICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24gPSAi
WUVTIj4KKyAgICAgIDxCdWlsZGFibGVQcm9kdWN0UnVubmFibGUKKyAgICAgICAgIHJ1bm5hYmxl
RGVidWdnaW5nTW9kZSA9ICIwIj4KKyAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAg
ICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKKyAgICAgICAgICAgIEJsdWVw
cmludElkZW50aWZpZXIgPSAiNTE3QjVGNUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAg
QnVpbGRhYmxlTmFtZSA9ICJ3ZWJwdXNodG9vbCIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUg
PSAid2VicHVzaHRvb2wiCisgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRh
aW5lcjpXZWJLaXQueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgor
ICAgICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+CisgICA8L0xhdW5jaEFjdGlvbj4KKyAg
IDxQcm9maWxlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAg
ICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgorICAgICAgc2F2ZWRUb29s
SWRlbnRpZmllciA9ICIiCisgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgor
ICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIj4KKyAgICAgIDxCdWlsZGFibGVQ
cm9kdWN0UnVubmFibGUKKyAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIj4KKyAg
ICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZp
ZXIgPSAicHJpbWFyeSIKKyAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiNTE3QjVG
NUEyNzVBOEQzRTAwMkRDMjJEIgorICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJ3ZWJwdXNo
dG9vbCIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAid2VicHVzaHRvb2wiCisgICAgICAg
ICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpXZWJLaXQueGNvZGVwcm9qIj4K
KyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9CdWlsZGFibGVQcm9kdWN0
UnVubmFibGU+CisgICA8L1Byb2ZpbGVBY3Rpb24+CisgICA8QW5hbHl6ZUFjdGlvbgorICAgICAg
YnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KKyAgIDwvQW5hbHl6ZUFjdGlvbj4KKyAgIDxB
cmNoaXZlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAg
IHJldmVhbEFyY2hpdmVJbk9yZ2FuaXplciA9ICJZRVMiPgorICAgPC9BcmNoaXZlQWN0aW9uPgor
ICAgPEluc3RhbGxBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIj4K
KyAgIDwvSW5zdGFsbEFjdGlvbj4KKzwvU2NoZW1lPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NGQxNTJjMDRkMDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29s
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KKwor
bmFtZXNwYWNlIFdlYlB1c2hUb29sIHsKKworZW51bSBjbGFzcyBBY3Rpb24geworICAgIFN0cmVh
bURlYnVnTWVzc2FnZXMsCit9OworCitjbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPENvbm5lY3Rpb24+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IGNyZWF0ZShBY3Rpb24s
IGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UpOworICAgIENvbm5lY3Rpb24oQWN0aW9uLCBib29sIHBy
ZWZlclRlc3RTZXJ2aWNlKTsKKworICAgIHZvaWQgY29ubmVjdFRvU2VydmljZSgpOworCitwcml2
YXRlOgorICAgIHZvaWQgbWVzc2FnZVJlY2VpdmVkKHhwY19vYmplY3RfdCk7CisgICAgdm9pZCBj
b25uZWN0aW9uRHJvcHBlZCgpOworCisgICAgdm9pZCBzdGFydEFjdGlvbigpOworICAgIHZvaWQg
c3RhcnREZWJ1Z1N0cmVhbUFjdGlvbigpOworCisgICAgdm9pZCBzZW5kQXVkaXRUb2tlbigpOwor
ICAgIAorICAgIEFjdGlvbiBtX2FjdGlvbjsKKyAgICBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25f
dD4gbV9jb25uZWN0aW9uOworICAgIGNvbnN0IGNoYXIqIG1fc2VydmljZU5hbWU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJQdXNoVG9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJw
dXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc5MDQ0NjBhMmZhMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25u
ZWN0aW9uLm1tCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8bWFjaC9t
YWNoX2luaXQuaD4KKyNpbXBvcnQgPG1hY2gvdGFzay5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9TZXJ2ZXJzU1BJLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJQdXNoVG9vbCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBDb25uZWN0aW9uOjpj
cmVhdGUoQWN0aW9uIGFjdGlvbiwgYm9vbCBwcmVmZXJUZXN0U2VydmljZSkKK3sKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZTxDb25uZWN0aW9uPihhY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsKK30K
Kworc3RhdGljIG1hY2hfcG9ydF90IG1heWJlQ29ubmVjdFRvU2VydmljZShjb25zdCBjaGFyKiBz
ZXJ2aWNlTmFtZSkKK3sKKyAgICBtYWNoX3BvcnRfdCBic1BvcnQ7CisgICAgdGFza19nZXRfc3Bl
Y2lhbF9wb3J0KG1hY2hfdGFza19zZWxmKCksIFRBU0tfQk9PVFNUUkFQX1BPUlQsICZic1BvcnQp
OworCisgICAgbWFjaF9wb3J0X3Qgc2VydmljZVBvcnQ7CisgICAga2Vybl9yZXR1cm5fdCBlcnIg
PSBib290c3RyYXBfbG9va191cChic1BvcnQsIHNlcnZpY2VOYW1lLCAmc2VydmljZVBvcnQpOwor
CisgICAgaWYgKGVyciA9PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBzZXJ2aWNlUG9y
dDsKKworICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKK30KKworQ29ubmVjdGlvbjo6Q29ubmVj
dGlvbihBY3Rpb24gYWN0aW9uLCBib29sIHByZWZlclRlc3RTZXJ2aWNlKQorICAgIDogbV9hY3Rp
b24oYWN0aW9uKQoreworICAgIGlmIChwcmVmZXJUZXN0U2VydmljZSkKKyAgICAgICAgbV9zZXJ2
aWNlTmFtZSA9ICJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNlcnZpY2UiOworICAgIGVs
c2UKKyAgICAgICAgbV9zZXJ2aWNlTmFtZSA9ICJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNl
cnZpY2UiOworCisgICAgbV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNfY29ubmVjdGlvbl9jcmVh
dGVfbWFjaF9zZXJ2aWNlKG1fc2VydmljZU5hbWUsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IDApKTsKKworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVjdGlv
bi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKHhwY19vYmplY3Rf
dCBldmVudCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKSB7Cisg
ICAgICAgICAgICBwcmludGYoIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rp
b25zIHRvIG1hY2ggc2VydmljZVxuIik7CisgICAgICAgICAgICBjb25uZWN0aW9uRHJvcHBlZCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50ID09
IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CisgICAgICAgICAgICBwcmludGYo
IkNvbm5lY3Rpb24gY2xvc2VkXG4iKTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb25Ecm9wcGVkKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoeHBjX2dldF90
eXBlKGV2ZW50KSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZKSB7CisgICAgICAgICAgICBtZXNzYWdl
UmVjZWl2ZWQoZXZlbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9KTsKK30KKwordm9pZCBDb25u
ZWN0aW9uOjpjb25uZWN0VG9TZXJ2aWNlKCkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byByZXN1bHQgPSBtYXliZUNvbm5lY3RUb1NlcnZpY2Uo
bV9zZXJ2aWNlTmFtZSk7CisgICAgaWYgKHJlc3VsdCA9PSBNQUNIX1BPUlRfTlVMTCkKKyAgICAg
ICAgcHJpbnRmKCJXYWl0aW5nIGZvciBzZXJ2aWNlICclcycgdG8gYmUgYXZhaWxhYmxlXG4iLCBt
X3NlcnZpY2VOYW1lKTsKKworICAgIHdoaWxlIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpIHsK
KyAgICAgICAgdXNsZWVwKDEwMDApOworICAgICAgICByZXN1bHQgPSBtYXliZUNvbm5lY3RUb1Nl
cnZpY2UobV9zZXJ2aWNlTmFtZSk7CisgICAgfQorCisgICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZh
dGUobV9jb25uZWN0aW9uLmdldCgpKTsKKworICAgIHNlbmRBdWRpdFRva2VuKCk7CisgICAgc3Rh
cnRBY3Rpb24oKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzdGFydEFjdGlvbigpCit7CisgICAg
c3dpdGNoIChtX2FjdGlvbikgeworICAgIGNhc2UgQWN0aW9uOjpTdHJlYW1EZWJ1Z01lc3NhZ2Vz
OgorICAgICAgICBzdGFydERlYnVnU3RyZWFtQWN0aW9uKCk7CisgICAgICAgIGJyZWFrOworICAg
IH07Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6c3RhcnREZWJ1Z1N0cmVhbUFjdGlvbigpCit7Cisg
ICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0
ciwgbnVsbHB0ciwgMCkpOworICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMT4gZW5jb2RlZE1lc3Nh
Z2UgeyAxIH07CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgp
LCAicHJvdG9jb2wgdmVyc2lvbiIsIDEpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQo
ZGljdGlvbmFyeS5nZXQoKSwgIm1lc3NhZ2UgdHlwZSIsIDUpOworICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9kYXRhKGRpY3Rpb25hcnkuZ2V0KCksICJlbmNvZGVkIG1lc3NhZ2UiLCBlbmNvZGVkTWVz
c2FnZS5kYXRhKCksIGVuY29kZWRNZXNzYWdlLnNpemUoKSk7CisKKyAgICB4cGNfY29ubmVjdGlv
bl9zZW5kX21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBkaWN0aW9uYXJ5LmdldCgpKTsKKwor
ICAgIHByaW50ZigiTm93IHN0cmVhbWluZyBkZWJ1ZyBtZXNzYWdlc1xuIik7Cit9CisKK3ZvaWQg
Q29ubmVjdGlvbjo6c2VuZEF1ZGl0VG9rZW4oKQoreworICAgIGF1ZGl0X3Rva2VuX3QgdG9rZW4g
PSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKKyAgICBtYWNoX21zZ190eXBlX251bWJlcl90
IGF1ZGl0VG9rZW5Db3VudCA9IFRBU0tfQVVESVRfVE9LRU5fQ09VTlQ7CisgICAga2Vybl9yZXR1
cm5fdCByZXN1bHQgPSB0YXNrX2luZm8obWFjaF90YXNrX3NlbGYoKSwgVEFTS19BVURJVF9UT0tF
TiwgKHRhc2tfaW5mb190KSgmdG9rZW4pLCAmYXVkaXRUb2tlbkNvdW50KTsKKyAgICBpZiAocmVz
dWx0ICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgICBwcmludGYoIlVuYWJsZSB0byBnZXQgYXVk
aXQgdG9rZW4gdG8gc2VuZFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGQ6
OmFycmF5PHVpbnQ4X3QsIDQyPiBlbmNvZGVkTWVzc2FnZTsKKyAgICBlbmNvZGVkTWVzc2FnZS5m
aWxsKDApOworICAgIGVuY29kZWRNZXNzYWdlWzFdID0gMTsKKyAgICBlbmNvZGVkTWVzc2FnZVsy
XSA9IDMyOworICAgIG1lbWNweSgmZW5jb2RlZE1lc3NhZ2VbMTBdLCAmdG9rZW4sIHNpemVvZih0
b2tlbikpOworICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3Jl
YXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0
KGRpY3Rpb25hcnkuZ2V0KCksICJwcm90b2NvbCB2ZXJzaW9uIiwgMSk7CisgICAgeHBjX2RpY3Rp
b25hcnlfc2V0X3VpbnQ2NChkaWN0aW9uYXJ5LmdldCgpLCAibWVzc2FnZSB0eXBlIiwgNik7Cisg
ICAgeHBjX2RpY3Rpb25hcnlfc2V0X2RhdGEoZGljdGlvbmFyeS5nZXQoKSwgImVuY29kZWQgbWVz
c2FnZSIsIGVuY29kZWRNZXNzYWdlLmRhdGEoKSwgZW5jb2RlZE1lc3NhZ2Uuc2l6ZSgpKTsKKyAg
ICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBkaWN0aW9u
YXJ5LmdldCgpKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpjb25uZWN0aW9uRHJvcHBlZCgpCit7
CisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBDRlJ1bkxvb3BTdG9wKENGUnVuTG9v
cEdldEN1cnJlbnQoKSk7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVkKHhw
Y19vYmplY3RfdCBtZXNzYWdlKQoreworICAgIGNvbnN0IGNoYXIqIGRlYnVnTWVzc2FnZSA9IHhw
Y19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobWVzc2FnZSwgImRlYnVnIG1lc3NhZ2UiKTsKKyAgICBp
ZiAoIWRlYnVnTWVzc2FnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRmKCIlc1xuIiwg
ZGVidWdNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaFRvb2wKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1t
IGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYzU2OTZiOTE3Y2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1
c2hUb29sTWFpbi5tbQpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJXZWJQdXNoVG9vbENvbm5lY3Rpb24uaCIKKyNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8b3B0aW9uYWw+CisKK19fYXR0cmlidXRlX18o
KF9fbm9yZXR1cm5fXykpCitzdGF0aWMgdm9pZCBwcmludFVzYWdlQW5kVGVybWluYXRlKE5TU3Ry
aW5nICptZXNzYWdlKQoreworICAgIGZwcmludGYoc3RkZXJyLCAiJXNcblxuIiwgbWVzc2FnZS5V
VEY4U3RyaW5nKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IHdlYnB1c2h0b29sIFtv
cHRpb25zXVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworICAgIGZwcmludGYoc3Rk
ZXJyLCAiICAtLWRldmVsb3BtZW50ICAgICAgICAgICAgICBDb25uZWN0cyB0byBtYWNoIHNlcnZp
Y2UgXCJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNlcnZpY2VcIiAoRGVmYXVsdClcbiIp
OworICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXByb2R1Y3Rpb24gICAgICAgICAgICAgICBDb25u
ZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNlcnZpY2Vc
IlxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0tc3RyZWFtRGVidWdNZXNzYWdlcyAgICAg
IFN0cmVhbSBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHdlYnB1c2hkXG4iKTsKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIlxuIik7CisKKyAgICBleGl0KC0xKTsKK30KKworaW50IG1haW4oaW50LCBjb25zdCBj
aGFyICoqKQoreworICAgIGJvb2wgcHJlZmVyVGVzdFNlcnZpY2UgPSB0cnVlOworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViUHVzaFRvb2w6OkFjdGlvbj4gYWN0aW9uOworCisgICAgQGF1dG9yZWxlYXNl
cG9vbCB7CisgICAgICAgIE5TQXJyYXkgKmFyZ3VtZW50cyA9IFtbTlNQcm9jZXNzSW5mbyBwcm9j
ZXNzSW5mb10gYXJndW1lbnRzXTsKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5jb3VudCA9PSAxKQor
ICAgICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShAIk5vIGFyZ3VtZW50cyBwcm92aWRl
ZCIpOworCisgICAgICAgIGZvciAoTlNTdHJpbmcgKmFyZ3VtZW50IGluIFthcmd1bWVudHMgc3Vi
YXJyYXlXaXRoUmFuZ2U6TlNNYWtlUmFuZ2UoMSwgYXJndW1lbnRzLmNvdW50IC0gMSldKSB7Cisg
ICAgICAgICAgICBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tcHJvZHVjdGlvbiJd
KQorICAgICAgICAgICAgICAgIHByZWZlclRlc3RTZXJ2aWNlID0gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0tZGV2ZWxvcG1lbnQiXSkKKyAgICAg
ICAgICAgICAgICBwcmVmZXJUZXN0U2VydmljZSA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlm
IChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1zdHJlYW1EZWJ1Z01lc3NhZ2VzIl0pCisg
ICAgICAgICAgICAgICAgYWN0aW9uID0gV2ViUHVzaFRvb2w6OkFjdGlvbjo6U3RyZWFtRGVidWdN
ZXNzYWdlczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwcmludFVzYWdlQW5k
VGVybWluYXRlKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiSW52YWxpZCBvcHRpb24gcHJv
dmlkZWQ6ICVAIiwgYXJndW1lbnRdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghYWN0
aW9uKQorICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRlKEAiTm8gYWN0aW9uIHByb3ZpZGVk
Iik7CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y3Jl
YXRlKCphY3Rpb24sIHByZWZlclRlc3RTZXJ2aWNlKTsKKyAgICBjb25uZWN0aW9uLT5jb25uZWN0
VG9TZXJ2aWNlKCk7CisKKyAgICBDRlJ1bkxvb3BSdW4oKTsKKyAgICByZXR1cm4gMDsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>