<?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>106286</bug_id>
          
          <creation_ts>2013-01-07 18:25:36 -0800</creation_ts>
          <short_desc>[WK2] NetworkProcess should have a Keychain shim</short_desc>
          <delta_ts>2013-01-08 09:53:30 -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>WebKit2</component>
          <version>528+ (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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>801910</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-07 18:25:36 -0800</bug_when>
    <thetext>Just like WebProcess, NetworkProcess should forward Keychain calls to UI process.

&lt;rdar://problem/12882760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801916</commentid>
    <comment_count>1</comment_count>
      <attachid>181619</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-07 18:31:58 -0800</bug_when>
    <thetext>Created attachment 181619
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801945</commentid>
    <comment_count>2</comment_count>
      <attachid>181619</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-07 19:48:09 -0800</bug_when>
    <thetext>Comment on attachment 181619
proposed patch

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

&gt; Source/WebKit2/NetworkProcess/NetworkProcess.h:83
&gt;      virtual void initializeProcessName(const ChildProcessInitializationParameters&amp;) OVERRIDE;
&gt;      virtual void initializeSandbox(const ChildProcessInitializationParameters&amp;) OVERRIDE;
&gt;      virtual bool shouldTerminate() OVERRIDE;
&gt; +    virtual void initializeConnection(CoreIPC::Connection*) OVERRIDE;

Please group this with the other initialize functions above.

&gt; Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:117
&gt; -        processShimPathNSString = [[processAppExecutablePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:@&quot;PluginProcessShim.dylib&quot;];
&gt; +        processShimPathNSString = [[processAppExecutablePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:@&quot;SecItemShim.dylib&quot;];

This seems wrong. Why are you changing the plugin process shim?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802307</commentid>
    <comment_count>3</comment_count>
      <attachid>181703</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-08 09:47:45 -0800</bug_when>
    <thetext>Created attachment 181703
with feedback addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802311</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-08 09:53:30 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/139066&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181619</attachid>
            <date>2013-01-07 18:31:58 -0800</date>
            <delta_ts>2013-01-08 09:47:45 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>ShimInNetworkProcess.txt</filename>
            <type>text/plain</type>
            <size>43775</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyNCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAxLTA3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE5ldHdvcmtQcm9j
ZXNzIHNob3VsZCBoYXZlIGEgS2V5Y2hhaW4gc2hpbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBXZWJQcm9jZXNzU2hpbSB0byBTZWNJdGVt
U2hpbS4gVXNlIGl0IHdpdGggTmV0d29ya1Byb2Nlc3MsIHRvby4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
bWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0uCisgICAgICAgIFRoaXMgY29kZSBsaXZlcyBp
biBTZWNJdGVtU2hpbS5keWxpYi4KKyAgICAgICAgIkxpYnJhcnkiIGluIHRoZSBuYW1lIGlzIHRv
IGF2b2lkIGNvbmZsaWN0aW5nIHdpdGggU2VjSXRlbVNoaW0gY2xhc3MgaW4gV2ViS2l0Mi4KKwor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojpz
ZW5kU2VjSXRlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTZWNJdGVtU2hpbTo6aW5pdGlh
bGl6ZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oOgorICAgICAgICBUYWtl
IGEgQ2hpbGRQcm9jZXNzIHBvaW50ZXIgYXQgaW5pdGlhbGl6YXRpb24gaW5zdGVhZCBvZiB1c2lu
ZyB1c2luZyBXZWJQcm9jZXNzOjpzaGFyZWQoKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOiAoV2ViS2l0OjphZGREWUxERW52aXJvbm1l
bnRBZGRpdGlvbnMpOgorICAgICAgICBVc2UgU2VjSXRlbVNoaW0gd2l0aCBOZXR3b3JrUHJvY2Vz
cyB0b28uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAg
ICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxp
emVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW5EZWxlZ2F0ZTo6ZG9QcmVJbml0aWFsaXphdGlvbldv
cmspOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2lu
dHMubW06CisgICAgICAgICh3ZWJQcm9jZXNzU2VydmljZU1haW4pOgorICAgICAgICAoaW5pdGlh
bGl6ZVdlYlByb2Nlc3NGb3JXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3NTZXJ2aWNlL0luZm8ucGxpc3Q6CisKIDIwMTMtMDEtMDcgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUExBVEZPUk0o
V0lOKSAjaWZkZWZzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyNpbmNsdWRlICJT
ZWNJdGVtU2hpbS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTE0OSw2ICsxNTMsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
aW5pdGlhbGl6ZU5ldHdvcmtQcgogICAgICAgICBpdC0+dmFsdWUtPmluaXRpYWxpemUocGFyYW1l
dGVycyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0
aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKworI2lmIFVTRShTRUNVUklUWV9GUkFNRVdP
UkspCisgICAgY29ubmVjdGlvbi0+YWRkUXVldWVDbGllbnQoJlNlY0l0ZW1TaGltOjpzaGFyZWQo
KSk7CisjZW5kaWYKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKQogewogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMTM5
MDE3KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAko
d29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVTYW5kYm94
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURF
OwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1t
CShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Byb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDEwIEBACiAj
aW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyNpbXBvcnQgIlNlY0l0ZW1TaGltLmgi
CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgTlNVUkxS
ZXF1ZXN0IChEZXRhaWxzKSAKQEAgLTcxLDYgKzc1LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZU4KICAgICAgICAgUmV0YWluUHRyPE5TVVJMQ2FjaGU+IHBhcmVu
dFByb2Nlc3NVUkxDYWNoZShBZG9wdE5TLCBbW05TVVJMQ2FjaGUgYWxsb2NdIGluaXRXaXRoTWVt
b3J5Q2FwYWNpdHk6Y2FjaGVNZW1vcnlDYXBhY2l0eSBkaXNrQ2FwYWNpdHk6Y2FjaGVEaXNrQ2Fw
YWNpdHkgZGlza1BhdGg6cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnldKTsKICAgICAgICAg
W05TVVJMQ2FjaGUgc2V0U2hhcmVkVVJMQ2FjaGU6cGFyZW50UHJvY2Vzc1VSTENhY2hlLmdldCgp
XTsKICAgICB9CisKKyNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQorICAgIFNlY0l0ZW1TaGlt
OjpzaGFyZWQoKS5pbml0aWFsaXplKHRoaXMpOworI2VuZGlmCiB9CiAKIHN0YXRpYyB1aW50NjRf
dCBtZW1vcnlTaXplKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCShyZXZpc2lvbiAxMzkwMTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1TaGltLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAjaWYgVVNF
KFNFQ1VSSVRZX0ZSQU1FV09SSykKIAogI2luY2x1ZGUgIkJsb2NraW5nUmVzcG9uc2VNYXAuaCIK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJTZWNJdGVtUmVxdWVzdERhdGEu
aCIKICNpbmNsdWRlICJTZWNJdGVtUmVzcG9uc2VEYXRhLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgIlNlY0l0ZW1TaGltTGlicmFyeS5oIgogI2luY2x1ZGUgIlNlY0l0ZW1T
aGltUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NTaGltLmgiCiAjaW5jbHVk
ZSA8U2VjdXJpdHkvU2VjdXJpdHkuaD4KICNpbmNsdWRlIDxkbGZjbi5oPgogCkBAIC00NSw2ICs0
NSw4IEBAIHN0YXRpYyBCbG9ja2luZ1Jlc3BvbnNlTWFwPFNlY0l0ZW1SZXNwb24KICAgICByZXR1
cm4gKnJlc3BvbnNlTWFwOwogfQogCitzdGF0aWMgQ2hpbGRQcm9jZXNzKiBzaGFyZWRQcm9jZXNz
OworCiBTZWNJdGVtU2hpbSYgU2VjSXRlbVNoaW06OnNoYXJlZCgpCiB7CiAgICAgQXRvbWljYWxs
eUluaXRpYWxpemVkU3RhdGljKFNlY0l0ZW1TaGltKiwgcHJveHkgPSBuZXcgU2VjSXRlbVNoaW0p
OwpAQCAtNjQsNyArNjYsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVTZWNJdGVtUmVxdWVz
dElECiBzdGF0aWMgUGFzc093blB0cjxTZWNJdGVtUmVzcG9uc2VEYXRhPiBzZW5kU2VjSXRlbVJl
cXVlc3QoU2VjSXRlbVJlcXVlc3REYXRhOjpUeXBlIHJlcXVlc3RUeXBlLCBDRkRpY3Rpb25hcnlS
ZWYgcXVlcnksIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRjaCA9IDApCiB7CiAgICAg
dWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVTZWNJdGVtUmVxdWVzdElEKCk7Ci0gICAgaWYg
KCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNlY0l0
ZW1TaGltUHJveHk6OlNlY0l0ZW1SZXF1ZXN0KHJlcXVlc3RJRCwgU2VjSXRlbVJlcXVlc3REYXRh
KHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwgMCkpCisgICAgaWYgKCFz
aGFyZWRQcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNlY0l0ZW1TaGltUHJv
eHk6OlNlY0l0ZW1SZXF1ZXN0KHJlcXVlc3RJRCwgU2VjSXRlbVJlcXVlc3REYXRhKHJlcXVlc3RU
eXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwgMCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlTWFwKCkud2FpdEZvclJlc3BvbnNlKHJlcXVlc3RJ
RCk7CkBAIC0xMTQsMTYgKzExNiwxOCBAQCB2b2lkIFNlY0l0ZW1TaGltOjpzZWNJdGVtUmVzcG9u
c2UoQ29yZUlQCiAgICAgcmVzcG9uc2VNYXAoKS5kaWRSZWNlaXZlUmVzcG9uc2UocmVxdWVzdElE
LCBhZG9wdFB0cihuZXcgU2VjSXRlbVJlc3BvbnNlRGF0YShyZXNwb25zZSkpKTsKIH0KIAotdm9p
ZCBTZWNJdGVtU2hpbTo6aW5zdGFsbCgpCit2b2lkIFNlY0l0ZW1TaGltOjppbml0aWFsaXplKENo
aWxkUHJvY2VzcyogcHJvY2VzcykKIHsKLSAgICBjb25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1D
YWxsYmFja3MgY2FsbGJhY2tzID0geworICAgIHNoYXJlZFByb2Nlc3MgPSBwcm9jZXNzOworCisg
ICAgY29uc3QgU2VjSXRlbVNoaW1DYWxsYmFja3MgY2FsbGJhY2tzID0gewogICAgICAgICB3ZWJT
ZWNJdGVtQ29weU1hdGNoaW5nLAogICAgICAgICB3ZWJTZWNJdGVtQWRkLAogICAgICAgICB3ZWJT
ZWNJdGVtVXBkYXRlLAogICAgICAgICB3ZWJTZWNJdGVtRGVsZXRlCiAgICAgfTsKICAgICAKLSAg
ICBXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplRnVuYyBmdW5jID0gcmVpbnRlcnByZXRf
Y2FzdDxXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplRnVuYz4oZGxzeW0oUlRMRF9ERUZB
VUxULCAiV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZSIpKTsKKyAgICBTZWNJ
dGVtU2hpbUluaXRpYWxpemVGdW5jIGZ1bmMgPSByZWludGVycHJldF9jYXN0PFNlY0l0ZW1TaGlt
SW5pdGlhbGl6ZUZ1bmM+KGRsc3ltKFJUTERfREVGQVVMVCwgIldlYktpdFNlY0l0ZW1TaGltSW5p
dGlhbGl6ZSIpKTsKICAgICBmdW5jKGNhbGxiYWNrcyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmgJKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ2hpbGRQcm9jZXNzOwogY2xh
c3MgU2VjSXRlbVJlc3BvbnNlRGF0YTsKIAogY2xhc3MgU2VjSXRlbVNoaW0gOiBwdWJsaWMgQ29y
ZUlQQzo6Q29ubmVjdGlvbjo6UXVldWVDbGllbnQgewpAQCAtMzksNyArNDAsNyBAQCBXVEZfTUFL
RV9OT05DT1BZQUJMRShTZWNJdGVtU2hpbSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFNlY0l0ZW1T
aGltJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5zdGFsbCgpOworICAgIHZvaWQgaW5pdGlhbGl6
ZShDaGlsZFByb2Nlc3MqKTsKIAogcHJpdmF0ZToKICAgICBTZWNJdGVtU2hpbSgpOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0JKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTQsMTQgKzExNCwxOSBAQCBzdGF0aWMgdm9pZCBhZGREWUxERW52aXJvbm1lbnRB
ZGRpdGlvbnMoCiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxl
IHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiUGx1Z2luUHJvY2Vzcy5hcHAiXTsKICAgICAg
ICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxl
V2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKIAotICAgICAgICBwcm9jZXNz
U2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5RGVs
ZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAi
UGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIiXTsKKyAgICAgICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJp
bmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhD
b21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlNlY0l0ZW1TaGltLmR5
bGliIl07CiAgICAgfSBlbHNlCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogICAg
IGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6V2ViUHJv
Y2VzcykgewogICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc1BhdGggPSBbd2ViS2l0MkJ1bmRsZSBw
YXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJsZTpAIldlYlByb2Nlc3MuYXBwIl07CiAgICAgICAgIE5T
U3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQ
YXRoOnByb2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CiAKLSAgICAgICAgcHJvY2Vzc1NoaW1Q
YXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5n
TGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYlBy
b2Nlc3NTaGltLmR5bGliIl07CisgICAgICAgIHByb2Nlc3NTaGltUGF0aE5TU3RyaW5nID0gW1tw
cm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50
XSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJTZWNJdGVtU2hpbS5keWxpYiJdOwor
ICAgIH0gZWxzZSBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNo
ZXI6Ok5ldHdvcmtQcm9jZXNzKSB7CisgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3
ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiTmV0d29ya1Byb2Nlc3Mu
YXBwIl07CisgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05T
QnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CisKKyAg
ICAgICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0
aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpAIlNlY0l0ZW1TaGltLmR5bGliIl07CiAgICAgfQogCiAgICAgLy8gTWFrZSBz
dXJlIHRoYXQgdGhlIHNoaW0gbGlicmFyeSBmaWxlIGV4aXN0cyBhbmQgaW5zZXJ0IGl0LgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NQcm94eS5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2luY2x1ZGUg
IkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgpAQCAt
MzMsNyArMzUsOSBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpZiBV
U0UoU0VDVVJJVFlfRlJBTUVXT1JLKQorI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJveHkuaCIKKyNl
bmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1LDYgKzE2OSwxMCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jCiB7CiAgICAgQ2hpbGRQcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZp
ZXIpOwogCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyAgICBjb25uZWN0aW9uKCktPmFk
ZFF1ZXVlQ2xpZW50KCZTZWNJdGVtU2hpbVByb3h5OjpzaGFyZWQoKSk7CisjZW5kaWYKKwogICAg
IGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNOdWxsKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkgewogICAgICAgICAvLyBGSVhNRTogRG8gYmV0dGVyIGNsZWFudXAgaGVyZS4KICAg
ICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM5MDE5KQorKysgU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTYs
OCArMzk2LDggQEAKIAkJNTExQjI0QTcxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFz
ZVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTFCMjRBNTEzMkUwOTU3MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlUHJveHkuaCAqLzsgfTsK
IAkJNTExQjI0QUExMzJFMDk3MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFCMjRBODEzMkUwOTcy
MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlLmNwcCAqLzsgfTsKIAkJNTExQjI0QUIxMzJFMDk3
MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExQjI0QTkxMzJFMDk3MjAwMDY1QTBDIC8qIFdlYkljb25E
YXRhYmFzZS5oICovOyB9OwotCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogV2ViUHJvY2Vz
c1NoaW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBXZWJQcm9jZXNzU2hpbS5oICovOyB9OwotCQk1MTFG
OEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogV2ViUHJvY2Vzc1NoaW0ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQg
LyogV2ViUHJvY2Vzc1NoaW0ubW0gKi87IH07CisJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAv
KiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJh
cnkuaCAqLzsgfTsKKwkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGli
cmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CiAJ
CTUxMjE3NDYwMTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTIxNzQ1RTE2NEMyMEUz
MDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuY3BwICovOyB9OwogCQk1MTIxNzQ2MTE2NEMy
MEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjE3NDVGMTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFy
ZWFibGVSZXNvdXJjZS5oICovOyB9OwogCQk1MTIxNzQ2NDE2NEMyMTM3MDAzN0E1QzEgLyogV2Vi
UmVzb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEyMTc0NjIxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmNw
cCAqLzsgfTsKQEAgLTQ3Miw3ICs0NzIsNyBAQAogCQk1MTgyOURBNjE2MzdDNzBDMDAwOTUzRDYg
LyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4MjlEQTQxNjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdv
cmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCAqLzsgfTsKIAkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJC
Njk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTgzNDU5MDEzNDUzMkU4MDA5MkI2OTYgLyogV2ViSWNv
bkRhdGFiYXNlQ2xpZW50LmNwcCAqLzsgfTsKIAkJNTE4MzQ1OTMxMzQ1MzJFOTAwOTJCNjk2IC8q
IFdlYkljb25EYXRhYmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE4MzQ1OTExMzQ1MzJFODAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFz
ZUNsaWVudC5oICovOyB9OwotCQk1MTgzQjM5MjEzNzlGN0I4MDBFODc1NEUgLyogV2ViUHJvY2Vz
c1NoaW0uZHlsaWIgaW4gQ29weSBXZWIgUHJvY2VzcyBTaGltICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hp
bS5keWxpYiAqLzsgfTsKKwkJNTE4M0IzOTIxMzc5RjdCODAwRTg3NTRFIC8qIFNlY0l0ZW1TaGlt
LmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi87
IH07CiAJCTUxODNEREVDMTYzMEJERkMwMDhCRTVDNyAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
NUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87
IH07CiAJCTUxODcxQjVCMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1OTEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovOyB9OwogCQk1MTg3MUI1QzEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5oICovOyB9OwpAQCAtMTAzMCw2ICsxMDMwLDcgQEAKIAkJRTE3OTA4OEYxNjlCQUE2
QTAwNjkwNEM3IC8qIFNlY0l0ZW1TaGltLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMThFNjk0ODE2OUI3N0M4MDA5QjY2NzAgLyogU2VjSXRlbVNoaW0u
aCAqLzsgfTsKIAkJRTE3OTA4OTAxNjlCQUE3RjAwNjkwNEM3IC8qIFNlY0l0ZW1TaGltTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxOEU2OTExMTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCUUxNzkwODkxMTY5QkFBODIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MThFNjkxMjE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1NZXNzYWdlcy5oICovOyB9Owor
CQlFMTc5MDkwMTE2OUJCNEY5MDA2OTA0QzcgLyogU2VjSXRlbVNoaW0uZHlsaWIgaW4gQ29weSBT
ZWMgSXRlbSBTaGltICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDAzMUY2
MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLzsgfTsKIAkJRTE3OUZEOUMx
MzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc5RkQ5QjEzNEQzODA2MDAxNUI4ODMgLyog
QXJndW1lbnRDb2RlcnNNYWMuaCAqLzsgfTsKIAkJRTE3OUZEOUYxMzREMzgyNTAwMTVCODgzIC8q
IEFyZ3VtZW50Q29kZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE3OUZEOUUxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFj
Lm1tICovOyB9OwogCQlFMTdCRjk5NjE0RDBBNzNFMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94
RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTdCRjk5NTE0RDBBNzNFMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgg
Ki87IH07CkBAIC0xMTM2LDcgKzExMzcsNyBAQAogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2
OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwogCQkJcHJveHlUeXBlID0g
MTsKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0Owot
CQkJcmVtb3RlSW5mbyA9IFdlYlByb2Nlc3NTaGltOworCQkJcmVtb3RlSW5mbyA9IFNlY0l0ZW1T
aGltOwogCQl9OwogCQlCQ0E4RDQ2NzE1QkNFMEQ2MDA5REMxRjEgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwpAQCAtMTIwMiwx
NSArMTIwMywxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwotCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBXZWIgUHJv
Y2VzcyBTaGltICovID0geworCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMg
SXRlbSBTaGltICovID0gewogCQkJaXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlkc3RQYXRoID0gV2ViUHJvY2Vzcy5hcHAv
Q29udGVudHMvTWFjT1M7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTY7CiAJCQlmaWxlcyA9ICgK
LQkJCQk1MTgzQjM5MjEzNzlGN0I4MDBFODc1NEUgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgaW4g
Q29weSBXZWIgUHJvY2VzcyBTaGltICovLAorCQkJCTUxODNCMzkyMTM3OUY3QjgwMEU4NzU0RSAv
KiBTZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8sCiAJCQkpOwotCQkJ
bmFtZSA9ICJDb3B5IFdlYiBQcm9jZXNzIFNoaW0iOworCQkJbmFtZSA9ICJDb3B5IFNlYyBJdGVt
IFNoaW0iOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CiAJCTVEMUEyMzkwMTVFNzVCMTAwMDIzRTk4MSAvKiBDb3B5IE1lc3NhZ2UgR2VuZXJhdGlvbiBT
Y3JpcHRzICovID0gewpAQCAtMTIzNSw2ICsxMjM2LDE3IEBACiAJCQluYW1lID0gIkNvcHkgUGx1
Zy1pbiBQcm9jZXNzIFNoaW0iOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CisJCUUxNzkwOTAwMTY5QkI0RDMwMDY5MDRDNyAvKiBDb3B5IFNlYyBJdGVt
IFNoaW0gKi8gPSB7CisJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOworCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWRzdFBhdGggPSBOZXR3b3JrUHJvY2Vzcy5hcHAv
Q29udGVudHMvTWFjT1M7CisJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTY7CisJCQlmaWxlcyA9ICgK
KwkJCQlFMTc5MDkwMTE2OUJCNEY5MDA2OTA0QzcgLyogU2VjSXRlbVNoaW0uZHlsaWIgaW4gQ29w
eSBTZWMgSXRlbSBTaGltICovLAorCQkJKTsKKwkJCW5hbWUgPSAiQ29weSBTZWMgSXRlbSBTaGlt
IjsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogLyog
RW5kIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxl
UmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAgLTE2MjgsNyArMTY0MCw3IEBACiAJCTNGODdCOUJCMTU4
OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyog
QmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMDAz
MUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxp
YiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERG
RTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9
IDA7IHBhdGggPSBTZWNJdGVtU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xp
ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29u
dGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDVC
MEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNUIwRDUxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjUzLDggKzE2NjUs
OCBAQAogCQk1MTFCMjRBNTEzMkUwOTU3MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvbkRhdGFiYXNlUHJveHku
aDsgcGF0aCA9IEljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTFCMjRBODEzMkUwOTcyMDAwNjVBMEMgLyogV2ViSWNvbkRh
dGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkljb25E
YXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUIyNEE5MTMyRTA5
NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBXZWJQcm9jZXNzU2hpbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzU2hpbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogV2ViUHJvY2Vzc1NoaW0u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzU2hp
bS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExRjhBNzcxMzhCNDYwOTAwQTk1
RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTZWNJdGVtU2hpbUxpYnJhcnkuaDsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTFGOEE3
ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tOyBwYXRoID0g
Li4vLi4vV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTIxNzQ1RTE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVz
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVhYmxl
UmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTIxNzQ1RjE2NEMy
MEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2hhcmVhYmxlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyMTc0NjIxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlc291cmNlQnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NzgsNyArMjQ5MCw3IEBACiAJCQkJ
RTEzQThBMkMxNjI4NzlBQzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MuYXBwICovLAog
CQkJCThEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLywKIAkJ
CQkxQTUwREIxRTExMEEzQkRDMDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgKi8sCi0JCQkJNTEw
MDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovLAorCQkJCTUx
MDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLywKIAkJCSk7CiAJ
CQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY3MCw4
ICsyNjgyLDYgQEAKIAkJCQkxQTZGQTAxRDExRTE1MjYzMDBEQjEzNzEgLyogV2ViUHJvY2Vzc01h
aW5NYWMubW0gKi8sCiAJCQkJQkNEQzMwOEExNUZENkNEMTAwNkI2Njk1IC8qIFdlYlByb2Nlc3NT
ZXJ2aWNlRW50cnlQb2ludHMuaCAqLywKIAkJCQlCQ0RDMzA4OTE1RkQ2Q0QxMDA2QjY2OTUgLyog
V2ViUHJvY2Vzc1NlcnZpY2VFbnRyeVBvaW50cy5tbSAqLywKLQkJCQk1MTFGOEE3NzEzOEI0NjA5
MDBBOTVGNDQgLyogV2ViUHJvY2Vzc1NoaW0uaCAqLywKLQkJCQk1MTFGOEE3ODEzOEI0NjA5MDBB
OTVGNDQgLyogV2ViUHJvY2Vzc1NoaW0ubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zODQ2LDYgKzM4NTYsOCBAQAogCQkJCUUxOEU2
OTQ3MTY5Qjc3QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5jcHAgKi8sCiAJCQkJRTE4RTY5NDgx
NjlCNzdDODAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltLmggKi8sCiAJCQkJRTE4RTY5MEYxNjlCNTky
ODAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltLm1lc3NhZ2VzLmluICovLAorCQkJCTUxMUY4QTc3MTM4
QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLywKKwkJCQk1MTFGOEE3ODEz
OEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovLAogCQkJCUJDRTIzMjYy
MTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gKi8sCiAJCQkJ
QkMxMTFCNUIxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oICovLAogCQkJCUJD
MTExQjVDMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0gKi8sCkBAIC00ODk3
LDcgKzQ5MDksNyBAQAogCQkJCUJDMDMyREQ1MTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNz
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3QUQxMTI4MTc5ODgwMDk4MjdEQSAvKiBX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEQzMwOEMxNUZE
NkNEMTAwNkI2Njk1IC8qIFdlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBXZWJQcm9jZXNzU2hpbS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGlt
TGlicmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMEU0MjUxNjhCN0EyODAwNTdFNjZBIC8q
IFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4
Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
Nzk0ODQwNDE1MEMzNTA2MDBFNTJDRTkgLyogV2ViUmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtNTA2OSw3ICs1MDgxLDcgQEAKIAkJCWJ1aWxkUGhhc2VzID0gKAogCQkJCTFBNTBEQjFB
MTEwQTNCREMwMDBEM0ZFNSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJMUE1MERCMUIxMTBBM0JEQzAw
MEQzRkU1IC8qIFNvdXJjZXMgKi8sCi0JCQkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENv
cHkgV2ViIFByb2Nlc3MgU2hpbSAqLywKKwkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyog
Q29weSBTZWMgSXRlbSBTaGltICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwpA
QCAtNTA5OSw5ICs1MTExLDkgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSAxQUMyNUZCMDEyQTQ4
RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIgKi87CiAJCQlwcm9kdWN0VHlw
ZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuZHluYW1pYyI7CiAJCX07Ci0JCTUx
MDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hpbSAqLyA9IHsKKwkJNTEwMDMx
RUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICovID0gewogCQkJaXNhID0gUEJYTmF0
aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDUxMDAzMUYyMTM3OUNBQ0Iw
MEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAi
V2ViUHJvY2Vzc1NoaW0iICovOworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDUxMDAzMUYy
MTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovOwogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJNTEwMDMx
RUIxMzc5Q0FDQjAwQzhERkU0IC8qIEhlYWRlcnMgKi8sCiAJCQkJNTEwMDMxRUMxMzc5Q0FDQjAw
QzhERkU0IC8qIFNvdXJjZXMgKi8sCkBAIC01MTExLDkgKzUxMjMsOSBAQAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKIAkJCSk7Ci0JCQluYW1lID0gV2ViUHJvY2Vzc1NoaW07CisJCQluYW1l
ID0gU2VjSXRlbVNoaW07CiAJCQlwcm9kdWN0TmFtZSA9IFBsdWdpblByb2Nlc3NTaGltOwotCQkJ
cHJvZHVjdFJlZmVyZW5jZSA9IDUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNz
U2hpbS5keWxpYiAqLzsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1MTAwMzFGNjEzNzlDQUNCMDBD
OERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBw
bGUucHJvZHVjdC10eXBlLmxpYnJhcnkuZHluYW1pYyI7CiAJCX07CiAJCTUxMENDODBEMTYxM0M3
OTkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLyA9IHsKQEAgLTUxMjIsNiArNTEzNCw3IEBA
CiAJCQlidWlsZFBoYXNlcyA9ICgKIAkJCQk1MTBDQzgwQTE2MTNDNzk5MDBEMDNFRDMgLyogU291
cmNlcyAqLywKIAkJCQk1MTBDQzgwQzE2MTNDNzk5MDBEMDNFRDMgLyogUmVzb3VyY2VzICovLAor
CQkJCUUxNzkwOTAwMTY5QkI0RDMwMDY5MDRDNyAvKiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8sCiAJ
CQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CkBAIC01MjY0LDcgKzUyNzcsNyBAQAogCQkJ
CUUxM0E4QTJCMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzICovLAogCQkJ
CUMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMUFD
MjVGQUYxMkE0OEVBNzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltICovLAotCQkJCTUxMDAz
MUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hpbSAqLywKKwkJCQk1MTAwMzFFQTEz
NzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi8sCiAJCQkJQkMzREU0NjUxNUE5MTc2MzAw
OEQyNkZDIC8qIFdlYlByb2Nlc3NTZXJ2aWNlICovLAogCQkJCUJDQUU5REU4MTYwQzA5NzQwMEEz
MzIxNyAvKiBXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50ICovLAogCQkJKTsK
QEAgLTU1MDcsNyArNTUyMCw3IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk1MTFGOEE4
MTEzOEI0ODVEMDBBOTVGNDQgLyogV2ViUHJvY2Vzc1NoaW0ubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk1MTFGOEE4MTEzOEI0ODVEMDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC02MDk5LDcgKzYxMTIsNyBAQAogCQl9OwogCQk1MTgzQjM4RTEzNzlGNTQ2
MDBFODc1NEUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdl
dERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQgPSA1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQgLyogV2Vi
UHJvY2Vzc1NoaW0gKi87CisJCQl0YXJnZXQgPSA1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQgLyog
U2VjSXRlbVNoaW0gKi87CiAJCQl0YXJnZXRQcm94eSA9IDUxODNCMzhEMTM3OUY1NDYwMEU4NzU0
RSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CiAJCUJDQThENDY4MTVCQ0UwRDYw
MDlEQzFGMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewpAQCAtNjI1OSw3ICs2MjcyLDcg
QEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLzsK
IAkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9OQU1FID0gV2ViUHJvY2Vzc1NoaW07
CisJCQkJUFJPRFVDVF9OQU1FID0gU2VjSXRlbVNoaW07CiAJCQl9OwogCQkJbmFtZSA9IERlYnVn
OwogCQl9OwpAQCAtNjI2Nyw3ICs2MjgwLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MTgzQjM5MzEzNzlGODVDMDBF
ODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJP
RFVDVF9OQU1FID0gV2ViUHJvY2Vzc1NoaW07CisJCQkJUFJPRFVDVF9OQU1FID0gU2VjSXRlbVNo
aW07CiAJCQl9OwogCQkJbmFtZSA9IFJlbGVhc2U7CiAJCX07CkBAIC02Mjc1LDcgKzYyODgsNyBA
QAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOwog
CQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlQUk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsK
KwkJCQlQUk9EVUNUX05BTUUgPSBTZWNJdGVtU2hpbTsKIAkJCX07CiAJCQluYW1lID0gUHJvZHVj
dGlvbjsKIAkJfTsKQEAgLTY0OTgsNyArNjUxMSw3IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9u
OwogCQl9OwotCQk1MTAwMzFGMjEzNzlDQUNCMDBDOERGRTQgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NTaGltIiAqLyA9IHsKKwkJNTEw
MDMxRjIxMzc5Q0FDQjAwQzhERkU0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJTZWNJdGVtU2hpbSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRp
b25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKIAkJCQk1MTAwMzFGMzEzNzlDQUNC
MDBDOERGRTQgLyogRGVidWcgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAJKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw2ICsyMDgsOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzczo6
aW5pdGlhbGl6ZUNvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsK
KyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworCiAg
ICAgY29ubmVjdGlvbi0+c2V0U2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSh0cnVl
KTsKICAgICBjb25uZWN0aW9uLT5hZGRRdWV1ZUNsaWVudCgmbV9ldmVudERpc3BhdGNoZXIpOwog
ICAgIGNvbm5lY3Rpb24tPmFkZFF1ZXVlQ2xpZW50KHRoaXMpOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgJKHJldmlzaW9u
IDEzOTAxNykJKGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1No
aW0uaDoxMzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bUxpYnJhcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNp
Zm5kZWYgV2ViUHJvY2Vzc1NoaW1faAorI2RlZmluZSBXZWJQcm9jZXNzU2hpbV9oCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2FsbGJhY2tzIHsK
KyAgICBPU1N0YXR1cyAoKnNlY0l0ZW1Db3B5TWF0Y2hpbmcpKENGRGljdGlvbmFyeVJlZiBxdWVy
eSwgQ0ZUeXBlUmVmICpyZXN1bHQpOworICAgIE9TU3RhdHVzICgqc2VjSXRlbUFkZCkoQ0ZEaWN0
aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIENGVHlwZVJlZiAqcmVzdWx0KTsKKyAgICBPU1N0YXR1cyAo
KnNlY0l0ZW1VcGRhdGUpKENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0
dHJpYnV0ZXNUb1VwZGF0ZSk7CisgICAgT1NTdGF0dXMgKCpzZWNJdGVtRGVsZXRlKShDRkRpY3Rp
b25hcnlSZWYgcXVlcnkpOworfTsKKwordHlwZWRlZiB2b2lkICgqV2ViUHJvY2Vzc1NlY0l0ZW1T
aGltSW5pdGlhbGl6ZUZ1bmMpKGNvbnN0IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYg
Y2FsbGJhY2tzKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJQcm9j
ZXNzU2hpbV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hp
bUxpYnJhcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbUxpYnJhcnkuaAkocmV2aXNpb24gMTM5MDE3KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDIwICsyMiwyMCBAQAogICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCi0jaWZuZGVmIFdlYlByb2Nlc3NTaGltX2gKLSNkZWZpbmUgV2ViUHJv
Y2Vzc1NoaW1faAorI2lmbmRlZiBTZWNJdGVtU2hpbUxpYnJhcnlfaAorI2RlZmluZSBTZWNJdGVt
U2hpbUxpYnJhcnlfaAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IFdlYlByb2Nlc3NT
ZWNJdGVtU2hpbUNhbGxiYWNrcyB7CitzdHJ1Y3QgU2VjSXRlbVNoaW1DYWxsYmFja3MgewogICAg
IE9TU3RhdHVzICgqc2VjSXRlbUNvcHlNYXRjaGluZykoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBD
RlR5cGVSZWYgKnJlc3VsdCk7CiAgICAgT1NTdGF0dXMgKCpzZWNJdGVtQWRkKShDRkRpY3Rpb25h
cnlSZWYgYXR0cmlidXRlcywgQ0ZUeXBlUmVmICpyZXN1bHQpOwogICAgIE9TU3RhdHVzICgqc2Vj
SXRlbVVwZGF0ZSkoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRkRpY3Rpb25hcnlSZWYgYXR0cmli
dXRlc1RvVXBkYXRlKTsKICAgICBPU1N0YXR1cyAoKnNlY0l0ZW1EZWxldGUpKENGRGljdGlvbmFy
eVJlZiBxdWVyeSk7CiB9OwogCi10eXBlZGVmIHZvaWQgKCpXZWJQcm9jZXNzU2VjSXRlbVNoaW1J
bml0aWFsaXplRnVuYykoY29uc3QgV2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2FsbGJhY2tzJiBjYWxs
YmFja3MpOwordHlwZWRlZiB2b2lkICgqU2VjSXRlbVNoaW1Jbml0aWFsaXplRnVuYykoY29uc3Qg
U2VjSXRlbVNoaW1DYWxsYmFja3MmIGNhbGxiYWNrcyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCi0jZW5kaWYgLy8gV2ViUHJvY2Vzc1NoaW1faAorI2VuZGlmIC8vIFNlY0l0ZW1TaGltTGli
cmFyeV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxp
YnJhcnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2Vj
SXRlbVNoaW1MaWJyYXJ5Lm1tCShyZXZpc2lvbiAxMzkwMTcpCShmcm9tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tOjEzOTAxNykKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpbXBvcnQgIldlYlByb2Nlc3NTaGltLmgiCisK
KyNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgor
CisjZGVmaW5lIERZTERfSU5URVJQT1NFKF9yZXBsYWNlbWVudCxfcmVwbGFjZWUpIFwKKyAgICBf
X2F0dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdHsgY29uc3Qgdm9pZCogcmVwbGFjZW1l
bnQ7IGNvbnN0IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2VfIyNfcmVwbGFjZWUgXAorICAg
IF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50ZXJwb3NlIikpKSA9IHsgKGNv
bnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQsIChjb25zdCB2b2lkKikodW5z
aWduZWQgbG9uZykmX3JlcGxhY2VlIH07CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitleHRlcm4g
IkMiIHZvaWQgV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQ
cm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MmKTsKKworc3RhdGljIFdlYlByb2Nlc3NTZWNJdGVt
U2hpbUNhbGxiYWNrcyBzZWNJdGVtU2hpbUNhbGxiYWNrczsKKworc3RhdGljIE9TU3RhdHVzIHNo
aW1TZWNJdGVtQ29weU1hdGNoaW5nKENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZUeXBlUmVmKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIHNlY0l0ZW1TaGltQ2FsbGJhY2tzLnNlY0l0ZW1Db3B5TWF0
Y2hpbmcocXVlcnksIHJlc3VsdCk7Cit9CisKK3N0YXRpYyBPU1N0YXR1cyBzaGltU2VjSXRlbUFk
ZChDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGVHlwZVJlZiogcmVzdWx0KQoreworICAgIHJldHVy
biBzZWNJdGVtU2hpbUNhbGxiYWNrcy5zZWNJdGVtQWRkKHF1ZXJ5LCByZXN1bHQpOworfQorCitz
dGF0aWMgT1NTdGF0dXMgc2hpbVNlY0l0ZW1VcGRhdGUoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBD
RkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlc1RvVXBkYXRlKQoreworICAgIHJldHVybiBzZWNJdGVt
U2hpbUNhbGxiYWNrcy5zZWNJdGVtVXBkYXRlKHF1ZXJ5LCBhdHRyaWJ1dGVzVG9VcGRhdGUpOwor
fQorCitzdGF0aWMgT1NTdGF0dXMgc2hpbVNlY0l0ZW1EZWxldGUoQ0ZEaWN0aW9uYXJ5UmVmIHF1
ZXJ5KQoreworICAgIHJldHVybiBzZWNJdGVtU2hpbUNhbGxiYWNrcy5zZWNJdGVtRGVsZXRlKHF1
ZXJ5KTsKK30KKworRFlMRF9JTlRFUlBPU0Uoc2hpbVNlY0l0ZW1Db3B5TWF0Y2hpbmcsIFNlY0l0
ZW1Db3B5TWF0Y2hpbmcpCitEWUxEX0lOVEVSUE9TRShzaGltU2VjSXRlbUFkZCwgU2VjSXRlbUFk
ZCkKK0RZTERfSU5URVJQT1NFKHNoaW1TZWNJdGVtVXBkYXRlLCBTZWNJdGVtVXBkYXRlKQorRFlM
RF9JTlRFUlBPU0Uoc2hpbVNlY0l0ZW1EZWxldGUsIFNlY0l0ZW1EZWxldGUpCisKK19fYXR0cmli
dXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCit2b2lkIFdlYktpdFdlYlByb2Nlc3NTZWNJ
dGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2FsbGJhY2tzJiBj
YWxsYmFja3MpCit7CisgICAgc2VjSXRlbVNoaW1DYWxsYmFja3MgPSBjYWxsYmFja3M7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQkocmV2aXNpb24gMTM5MDE3KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KLSNpbXBvcnQgIldlYlByb2Nlc3NTaGltLmgi
CisjaW1wb3J0ICJTZWNJdGVtU2hpbUxpYnJhcnkuaCIKIAogI2ltcG9ydCA8U2VjdXJpdHkvU2Vj
SXRlbS5oPgogI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CkBAIC0zMyw5ICszMyw5IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1leHRlcm4gIkMiIHZvaWQgV2ViS2l0V2ViUHJvY2Vzc1NlY0l0
ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MmKTsK
K2V4dGVybiAiQyIgdm9pZCBXZWJLaXRTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgU2VjSXRl
bVNoaW1DYWxsYmFja3MmKTsKIAotc3RhdGljIFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNr
cyBzZWNJdGVtU2hpbUNhbGxiYWNrczsKK3N0YXRpYyBTZWNJdGVtU2hpbUNhbGxiYWNrcyBzZWNJ
dGVtU2hpbUNhbGxiYWNrczsKIAogc3RhdGljIE9TU3RhdHVzIHNoaW1TZWNJdGVtQ29weU1hdGNo
aW5nKENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZUeXBlUmVmKiByZXN1bHQpCiB7CkBAIC02Myw3
ICs2Myw3IEBAIERZTERfSU5URVJQT1NFKHNoaW1TZWNJdGVtVXBkYXRlLCBTZWNJdGUKIERZTERf
SU5URVJQT1NFKHNoaW1TZWNJdGVtRGVsZXRlLCBTZWNJdGVtRGVsZXRlKQogCiBfX2F0dHJpYnV0
ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQotdm9pZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRl
bVNoaW1Jbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYgY2Fs
bGJhY2tzKQordm9pZCBXZWJLaXRTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgU2VjSXRlbVNo
aW1DYWxsYmFja3MmIGNhbGxiYWNrcykKIHsKICAgICBzZWNJdGVtU2hpbUNhbGxiYWNrcyA9IGNh
bGxiYWNrczsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2Vi
UHJvY2Vzc01hYy5tbQkocmV2aXNpb24gMTM5MDE3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2UKICAgICBXS0FYUmVn
aXN0ZXJSZW1vdGVBcHAoKTsKIAogI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCi0gICAgU2Vj
SXRlbVNoaW06OnNoYXJlZCgpLmluc3RhbGwoKTsKKyAgICBTZWNJdGVtU2hpbTo6c2hhcmVkKCku
aW5pdGlhbGl6ZSh0aGlzKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQkocmV2aXNpb24gMTM5MDE3
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
Ly8gUmVtb3ZlIHRoZSBXZWJQcm9jZXNzIHNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFS
SUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bhd25lZCBieQogICAg
ICAgICAvLyB0aGUgV2ViUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBj
cmFzaC4KLSAgICAgICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0
aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9XZWJQcm9jZXNzU2hpbS5keWxpYiIp
OworICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3Ry
aW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CiAgICAg
fQogCiAgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKENvcmVJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXImIGlkZW50aWZpZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTZXJ2aWNlRW50cnlQ
b2ludHMubW0JKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5
LDcgKzc5LDcgQEAgaW50IHdlYlByb2Nlc3NTZXJ2aWNlTWFpbihpbnQgYXJnYywgY2hhcgogewog
ICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJ
QlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkK
ICAgICAvLyB0aGUgV2ViUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBj
cmFzaC4KLSAgICBXZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGlu
Z1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViUHJvY2Vzc1NoaW0uZHls
aWIiKTsKKyAgICBXZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGlu
Z1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIi
KTsKIAogICAgIHhwY19tYWluKFdlYktpdDo6V2ViUHJvY2Vzc1NlcnZpY2VFdmVudEhhbmRsZXIp
OwogICAgIHJldHVybiAwOwpAQCAtODksNyArODksNyBAQCB2b2lkIGluaXRpYWxpemVXZWJQcm9j
ZXNzRm9yV2ViUHJvY2Vzc1NlCiB7CiAgICAgLy8gUmVtb3ZlIHRoZSBXZWJQcm9jZXNzIHNoaW0g
ZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFu
eSBwcm9jZXNzZXMgc3Bhd25lZCBieQogICAgIC8vIHRoZSBXZWJQcm9jZXNzIGRvbid0IHRyeSB0
byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgIFdlYktpdDo6RW52aXJvbm1lbnRVdGls
aXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVT
IiwgIi9XZWJQcm9jZXNzU2hpbS5keWxpYiIpOworICAgIFdlYktpdDo6RW52aXJvbm1lbnRVdGls
aXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVT
IiwgIi9TZWNJdGVtU2hpbS5keWxpYiIpOwogCiAgICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0
MigpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hp
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NTaGltLmgJKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NTaGltLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0jaWZuZGVmIFdlYlByb2Nlc3NTaGltX2gKLSNkZWZpbmUgV2ViUHJvY2Vzc1NoaW1f
aAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RydWN0IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNh
bGxiYWNrcyB7Ci0gICAgT1NTdGF0dXMgKCpzZWNJdGVtQ29weU1hdGNoaW5nKShDRkRpY3Rpb25h
cnlSZWYgcXVlcnksIENGVHlwZVJlZiAqcmVzdWx0KTsKLSAgICBPU1N0YXR1cyAoKnNlY0l0ZW1B
ZGQpKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDRlR5cGVSZWYgKnJlc3VsdCk7Ci0gICAg
T1NTdGF0dXMgKCpzZWNJdGVtVXBkYXRlKShDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlv
bmFyeVJlZiBhdHRyaWJ1dGVzVG9VcGRhdGUpOwotICAgIE9TU3RhdHVzICgqc2VjSXRlbURlbGV0
ZSkoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5KTsKLX07Ci0KLXR5cGVkZWYgdm9pZCAoKldlYlByb2Nl
c3NTZWNJdGVtU2hpbUluaXRpYWxpemVGdW5jKShjb25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1D
YWxsYmFja3MmIGNhbGxiYWNrcyk7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gV2ViUHJvY2Vzc1NoaW1faApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMv
V2ViUHJvY2Vzc1NoaW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0JKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2ltcG9ydCAiV2ViUHJvY2Vzc1NoaW0uaCIKLQotI2lt
cG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgotI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+Ci0KLSNk
ZWZpbmUgRFlMRF9JTlRFUlBPU0UoX3JlcGxhY2VtZW50LF9yZXBsYWNlZSkgXAotICAgIF9fYXR0
cmlidXRlX18oKHVzZWQpKSBzdGF0aWMgc3RydWN0eyBjb25zdCB2b2lkKiByZXBsYWNlbWVudDsg
Y29uc3Qgdm9pZCogcmVwbGFjZWU7IH0gX2ludGVycG9zZV8jI19yZXBsYWNlZSBcCi0gICAgX19h
dHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qg
dm9pZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25l
ZCBsb25nKSZfcmVwbGFjZWUgfTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWV4dGVybiAiQyIg
dm9pZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplKGNvbnN0IFdlYlByb2Nl
c3NTZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwotCi1zdGF0aWMgV2ViUHJvY2Vzc1NlY0l0ZW1TaGlt
Q2FsbGJhY2tzIHNlY0l0ZW1TaGltQ2FsbGJhY2tzOwotCi1zdGF0aWMgT1NTdGF0dXMgc2hpbVNl
Y0l0ZW1Db3B5TWF0Y2hpbmcoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRlR5cGVSZWYqIHJlc3Vs
dCkKLXsKLSAgICByZXR1cm4gc2VjSXRlbVNoaW1DYWxsYmFja3Muc2VjSXRlbUNvcHlNYXRjaGlu
ZyhxdWVyeSwgcmVzdWx0KTsKLX0KLQotc3RhdGljIE9TU3RhdHVzIHNoaW1TZWNJdGVtQWRkKENG
RGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZUeXBlUmVmKiByZXN1bHQpCi17Ci0gICAgcmV0dXJuIHNl
Y0l0ZW1TaGltQ2FsbGJhY2tzLnNlY0l0ZW1BZGQocXVlcnksIHJlc3VsdCk7Ci19Ci0KLXN0YXRp
YyBPU1N0YXR1cyBzaGltU2VjSXRlbVVwZGF0ZShDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9VcGRhdGUpCi17Ci0gICAgcmV0dXJuIHNlY0l0ZW1TaGlt
Q2FsbGJhY2tzLnNlY0l0ZW1VcGRhdGUocXVlcnksIGF0dHJpYnV0ZXNUb1VwZGF0ZSk7Ci19Ci0K
LXN0YXRpYyBPU1N0YXR1cyBzaGltU2VjSXRlbURlbGV0ZShDRkRpY3Rpb25hcnlSZWYgcXVlcnkp
Ci17Ci0gICAgcmV0dXJuIHNlY0l0ZW1TaGltQ2FsbGJhY2tzLnNlY0l0ZW1EZWxldGUocXVlcnkp
OwotfQotCi1EWUxEX0lOVEVSUE9TRShzaGltU2VjSXRlbUNvcHlNYXRjaGluZywgU2VjSXRlbUNv
cHlNYXRjaGluZykKLURZTERfSU5URVJQT1NFKHNoaW1TZWNJdGVtQWRkLCBTZWNJdGVtQWRkKQot
RFlMRF9JTlRFUlBPU0Uoc2hpbVNlY0l0ZW1VcGRhdGUsIFNlY0l0ZW1VcGRhdGUpCi1EWUxEX0lO
VEVSUE9TRShzaGltU2VjSXRlbURlbGV0ZSwgU2VjSXRlbURlbGV0ZSkKLQotX19hdHRyaWJ1dGVf
XygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLXZvaWQgV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1T
aGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MmIGNhbGxi
YWNrcykKLXsKLSAgICBzZWNJdGVtU2hpbUNhbGxiYWNrcyA9IGNhbGxiYWNrczsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzU2Vydmlj
ZS9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3NTZXJ2
aWNlL0luZm8ucGxpc3QJKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3NTZXJ2aWNlL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAK
IAkJPGtleT5FbnZpcm9ubWVudFZhcmlhYmxlczwva2V5PgogCQk8ZGljdD4KIAkJCTxrZXk+RFlM
RF9JTlNFUlRfTElCUkFSSUVTPC9rZXk+Ci0JCQk8c3RyaW5nPiQoV0VCS0lUMl9GUkFNRVdPUktT
X0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVudHMvTWFjT1MvV2Vi
UHJvY2Vzc1NoaW0uZHlsaWI8L3N0cmluZz4KKwkJCTxzdHJpbmc+JChXRUJLSVQyX0ZSQU1FV09S
S1NfRElSKS9XZWJLaXQyLmZyYW1ld29yay9XZWJQcm9jZXNzLmFwcC9Db250ZW50cy9NYWNPUy9T
ZWNJdGVtU2hpbS5keWxpYjwvc3RyaW5nPgogCQk8L2RpY3Q+CiAJPC9kaWN0PgogPC9kaWN0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181703</attachid>
            <date>2013-01-08 09:47:45 -0800</date>
            <delta_ts>2013-01-08 09:49:50 -0800</delta_ts>
            <desc>with feedback addressed</desc>
            <filename>ShimInNetworkProcess.txt</filename>
            <type>text/plain</type>
            <size>43056</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyNCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAxLTA3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE5ldHdvcmtQcm9j
ZXNzIHNob3VsZCBoYXZlIGEgS2V5Y2hhaW4gc2hpbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBXZWJQcm9jZXNzU2hpbSB0byBTZWNJdGVt
U2hpbS4gVXNlIGl0IHdpdGggTmV0d29ya1Byb2Nlc3MsIHRvby4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
bWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0ubW0uCisgICAgICAgIFRoaXMgY29kZSBsaXZlcyBp
biBTZWNJdGVtU2hpbS5keWxpYi4KKyAgICAgICAgIkxpYnJhcnkiIGluIHRoZSBuYW1lIGlzIHRv
IGF2b2lkIGNvbmZsaWN0aW5nIHdpdGggU2VjSXRlbVNoaW0gY2xhc3MgaW4gV2ViS2l0Mi4KKwor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojpz
ZW5kU2VjSXRlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTZWNJdGVtU2hpbTo6aW5pdGlh
bGl6ZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oOgorICAgICAgICBUYWtl
IGEgQ2hpbGRQcm9jZXNzIHBvaW50ZXIgYXQgaW5pdGlhbGl6YXRpb24gaW5zdGVhZCBvZiB1c2lu
ZyB1c2luZyBXZWJQcm9jZXNzOjpzaGFyZWQoKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOiAoV2ViS2l0OjphZGREWUxERW52aXJvbm1l
bnRBZGRpdGlvbnMpOgorICAgICAgICBVc2UgU2VjSXRlbVNoaW0gd2l0aCBOZXR3b3JrUHJvY2Vz
cyB0b28uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAg
ICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxp
emVDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW5EZWxlZ2F0ZTo6ZG9QcmVJbml0aWFsaXphdGlvbldv
cmspOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2lu
dHMubW06CisgICAgICAgICh3ZWJQcm9jZXNzU2VydmljZU1haW4pOgorICAgICAgICAoaW5pdGlh
bGl6ZVdlYlByb2Nlc3NGb3JXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3NTZXJ2aWNlL0luZm8ucGxpc3Q6CisKIDIwMTMtMDEtMDcgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUExBVEZPUk0o
V0lOKSAjaWZkZWZzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyNpbmNsdWRlICJT
ZWNJdGVtU2hpbS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTE0OSw2ICsxNTMsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
aW5pdGlhbGl6ZU5ldHdvcmtQcgogICAgICAgICBpdC0+dmFsdWUtPmluaXRpYWxpemUocGFyYW1l
dGVycyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0
aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKworI2lmIFVTRShTRUNVUklUWV9GUkFNRVdP
UkspCisgICAgY29ubmVjdGlvbi0+YWRkUXVldWVDbGllbnQoJlNlY0l0ZW1TaGltOjpzaGFyZWQo
KSk7CisjZW5kaWYKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKQogewogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMTM5
MDE3KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAko
d29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogICAgIC8vIENoaWxkUHJv
Y2VzcwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlv
bihDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFRlcm1pbmF0ZSgpIE9WRVJSSURFOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L05ldHdvcmtQcm9jZXNzTWFjLm1tCShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTM4LDYgKzM4LDEwIEBACiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyNp
bXBvcnQgIlNlY0l0ZW1TaGltLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKSAKQEAgLTcxLDYgKzc1LDEwIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU4KICAgICAgICAgUmV0YWlu
UHRyPE5TVVJMQ2FjaGU+IHBhcmVudFByb2Nlc3NVUkxDYWNoZShBZG9wdE5TLCBbW05TVVJMQ2Fj
aGUgYWxsb2NdIGluaXRXaXRoTWVtb3J5Q2FwYWNpdHk6Y2FjaGVNZW1vcnlDYXBhY2l0eSBkaXNr
Q2FwYWNpdHk6Y2FjaGVEaXNrQ2FwYWNpdHkgZGlza1BhdGg6cGFyYW1ldGVycy5kaXNrQ2FjaGVE
aXJlY3RvcnldKTsKICAgICAgICAgW05TVVJMQ2FjaGUgc2V0U2hhcmVkVVJMQ2FjaGU6cGFyZW50
UHJvY2Vzc1VSTENhY2hlLmdldCgpXTsKICAgICB9CisKKyNpZiBVU0UoU0VDVVJJVFlfRlJBTUVX
T1JLKQorICAgIFNlY0l0ZW1TaGltOjpzaGFyZWQoKS5pbml0aWFsaXplKHRoaXMpOworI2VuZGlm
CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBtZW1vcnlTaXplKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCShyZXZpc2lvbiAxMzkwMTgpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
MTEgKzI5LDExIEBACiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKIAogI2luY2x1ZGUgIkJs
b2NraW5nUmVzcG9uc2VNYXAuaCIKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRl
ICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKICNpbmNsdWRlICJTZWNJdGVtUmVzcG9uc2VEYXRhLmgi
Ci0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlNlY0l0ZW1TaGltTGlicmFyeS5o
IgogI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBy
b2Nlc3NTaGltLmgiCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjdXJpdHkuaD4KICNpbmNsdWRlIDxk
bGZjbi5oPgogCkBAIC00NSw2ICs0NSw4IEBAIHN0YXRpYyBCbG9ja2luZ1Jlc3BvbnNlTWFwPFNl
Y0l0ZW1SZXNwb24KICAgICByZXR1cm4gKnJlc3BvbnNlTWFwOwogfQogCitzdGF0aWMgQ2hpbGRQ
cm9jZXNzKiBzaGFyZWRQcm9jZXNzOworCiBTZWNJdGVtU2hpbSYgU2VjSXRlbVNoaW06OnNoYXJl
ZCgpCiB7CiAgICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKFNlY0l0ZW1TaGltKiwgcHJv
eHkgPSBuZXcgU2VjSXRlbVNoaW0pOwpAQCAtNjQsNyArNjYsNyBAQCBzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVTZWNJdGVtUmVxdWVzdElECiBzdGF0aWMgUGFzc093blB0cjxTZWNJdGVtUmVzcG9u
c2VEYXRhPiBzZW5kU2VjSXRlbVJlcXVlc3QoU2VjSXRlbVJlcXVlc3REYXRhOjpUeXBlIHJlcXVl
c3RUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVz
VG9NYXRjaCA9IDApCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVTZWNJdGVt
UmVxdWVzdElEKCk7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1SZXF1ZXN0KHJlcXVlc3RJ
RCwgU2VjSXRlbVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0
Y2gpKSwgMCkpCisgICAgaWYgKCFzaGFyZWRQcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1SZXF1ZXN0KHJlcXVlc3RJRCwgU2VjSXRl
bVJlcXVlc3REYXRhKHJlcXVlc3RUeXBlLCBxdWVyeSwgYXR0cmlidXRlc1RvTWF0Y2gpKSwgMCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlTWFwKCkud2Fp
dEZvclJlc3BvbnNlKHJlcXVlc3RJRCk7CkBAIC0xMTQsMTYgKzExNiwxOCBAQCB2b2lkIFNlY0l0
ZW1TaGltOjpzZWNJdGVtUmVzcG9uc2UoQ29yZUlQCiAgICAgcmVzcG9uc2VNYXAoKS5kaWRSZWNl
aXZlUmVzcG9uc2UocmVxdWVzdElELCBhZG9wdFB0cihuZXcgU2VjSXRlbVJlc3BvbnNlRGF0YShy
ZXNwb25zZSkpKTsKIH0KIAotdm9pZCBTZWNJdGVtU2hpbTo6aW5zdGFsbCgpCit2b2lkIFNlY0l0
ZW1TaGltOjppbml0aWFsaXplKENoaWxkUHJvY2VzcyogcHJvY2VzcykKIHsKLSAgICBjb25zdCBX
ZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MgY2FsbGJhY2tzID0geworICAgIHNoYXJlZFBy
b2Nlc3MgPSBwcm9jZXNzOworCisgICAgY29uc3QgU2VjSXRlbVNoaW1DYWxsYmFja3MgY2FsbGJh
Y2tzID0gewogICAgICAgICB3ZWJTZWNJdGVtQ29weU1hdGNoaW5nLAogICAgICAgICB3ZWJTZWNJ
dGVtQWRkLAogICAgICAgICB3ZWJTZWNJdGVtVXBkYXRlLAogICAgICAgICB3ZWJTZWNJdGVtRGVs
ZXRlCiAgICAgfTsKICAgICAKLSAgICBXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplRnVu
YyBmdW5jID0gcmVpbnRlcnByZXRfY2FzdDxXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXpl
RnVuYz4oZGxzeW0oUlRMRF9ERUZBVUxULCAiV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5p
dGlhbGl6ZSIpKTsKKyAgICBTZWNJdGVtU2hpbUluaXRpYWxpemVGdW5jIGZ1bmMgPSByZWludGVy
cHJldF9jYXN0PFNlY0l0ZW1TaGltSW5pdGlhbGl6ZUZ1bmM+KGRsc3ltKFJUTERfREVGQVVMVCwg
IldlYktpdFNlY0l0ZW1TaGltSW5pdGlhbGl6ZSIpKTsKICAgICBmdW5jKGNhbGxiYWNrcyk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmgJKHJldmlzaW9u
IDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xh
c3MgQ2hpbGRQcm9jZXNzOwogY2xhc3MgU2VjSXRlbVJlc3BvbnNlRGF0YTsKIAogY2xhc3MgU2Vj
SXRlbVNoaW0gOiBwdWJsaWMgQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVldWVDbGllbnQgewpAQCAt
MzksNyArNDAsNyBAQCBXVEZfTUFLRV9OT05DT1BZQUJMRShTZWNJdGVtU2hpbSk7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFNlY0l0ZW1TaGltJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5zdGFsbCgp
OworICAgIHZvaWQgaW5pdGlhbGl6ZShDaGlsZFByb2Nlc3MqKTsKIAogcHJpdmF0ZToKICAgICBT
ZWNJdGVtU2hpbSgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0JKHJldmlzaW9uIDEzOTAx
NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNyArMTIxLDEyIEBAIHN0YXRpYyB2b2lk
IGFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucygKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NQ
YXRoID0gW3dlYktpdDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJXZWJQcm9j
ZXNzLmFwcCJdOwogICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoID0g
W1tOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDpwcm9jZXNzUGF0aF0gZXhlY3V0YWJsZVBhdGhdOwog
Ci0gICAgICAgIHByb2Nlc3NTaGltUGF0aE5TU3RyaW5nID0gW1twcm9jZXNzQXBwRXhlY3V0YWJs
ZVBhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJXZWJQcm9jZXNzU2hpbS5keWxpYiJdOworICAgICAgICBwcm9jZXNz
U2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5RGVs
ZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAi
U2VjSXRlbVNoaW0uZHlsaWIiXTsKKyAgICB9IGVsc2UgaWYgKGxhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpOZXR3b3JrUHJvY2VzcykgeworICAgICAgICBOU1N0
cmluZyAqcHJvY2Vzc1BhdGggPSBbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0
YWJsZTpAIk5ldHdvcmtQcm9jZXNzLmFwcCJdOworICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc0Fw
cEV4ZWN1dGFibGVQYXRoID0gW1tOU0J1bmRsZSBidW5kbGVXaXRoUGF0aDpwcm9jZXNzUGF0aF0g
ZXhlY3V0YWJsZVBhdGhdOworCisgICAgICAgIHByb2Nlc3NTaGltUGF0aE5TU3RyaW5nID0gW1tw
cm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50
XSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJTZWNJdGVtU2hpbS5keWxpYiJdOwog
ICAgIH0KIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzaGltIGxpYnJhcnkgZmlsZSBleGlz
dHMgYW5kIGluc2VydCBpdC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAxMzkwMTcp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKIAorI2lmIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCisKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzTWVzc2FnZXMuaCIKQEAgLTMzLDcgKzM1LDkgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIAotI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyNpbmNsdWRlICJT
ZWNJdGVtU2hpbVByb3h5LmgiCisjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTE2NSw2ICsxNjksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuYwogewogICAgIENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNo
ZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAorI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUksp
CisgICAgY29ubmVjdGlvbigpLT5hZGRRdWV1ZUNsaWVudCgmU2VjSXRlbVNoaW1Qcm94eTo6c2hh
cmVkKCkpOworI2VuZGlmCisKICAgICBpZiAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmll
cklzTnVsbChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKICAgICAgICAgLy8gRklYTUU6IERvIGJl
dHRlciBjbGVhbnVwIGhlcmUuCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEzOTAx
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMzk2LDggKzM5Niw4IEBACiAJCTUxMUIyNEE3MTMyRTA5NTcwMDA2
NUEwQyAvKiBXZWJJY29uRGF0YWJhc2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExQjI0QTUxMzJFMDk1NzAwMDY1QTBDIC8qIFdlYkljb25E
YXRhYmFzZVByb3h5LmggKi87IH07CiAJCTUxMUIyNEFBMTMyRTA5NzIwMDA2NUEwQyAvKiBXZWJJ
Y29uRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExQjI0QTgxMzJFMDk3MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5jcHAgKi87
IH07CiAJCTUxMUIyNEFCMTMyRTA5NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUIyNEE5MTMyRTA5
NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuaCAqLzsgfTsKLQkJNTExRjhBN0IxMzhCNDYw
OTAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NTaGltLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogV2ViUHJvY2Vz
c1NoaW0uaCAqLzsgfTsKLQkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NT
aGltLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
RjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NTaGltLm1tICovOyB9OworCQk1MTFG
OEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3NzEzOEI0NjA5MDBBOTVG
NDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggKi87IH07CisJCTUxMUY4QTgxMTM4QjQ4NUQwMEE5
NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNo
aW1MaWJyYXJ5Lm1tICovOyB9OwogCQk1MTIxNzQ2MDE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVh
YmxlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyMTc0NUUxNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmNwcCAq
LzsgfTsKIAkJNTEyMTc0NjExNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTIxNzQ1RjE2
NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCAqLzsgfTsKIAkJNTEyMTc0NjQx
NjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjE3NDYyMTY0QzIxMzcwMDM3QTVDMSAv
KiBXZWJSZXNvdXJjZUJ1ZmZlci5jcHAgKi87IH07CkBAIC00NzIsNyArNDcyLDcgQEAKIAkJNTE4
MjlEQTYxNjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODI5REE0MTYz
N0M3MEMwMDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggKi87IH07CiAJ
CTUxODM0NTkyMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4MzQ1OTAxMzQ1
MzJFODAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgKi87IH07CiAJCTUxODM0
NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODM0NTkxMTM0NTMyRTgwMDky
QjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCAqLzsgfTsKLQkJNTE4M0IzOTIxMzc5RjdC
ODAwRTg3NTRFIC8qIFdlYlByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgV2ViIFByb2Nlc3MgU2hp
bSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBD
OERGRTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87IH07CisJCTUxODNCMzkyMTM3OUY3Qjgw
MEU4NzU0RSAvKiBTZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8q
IFNlY0l0ZW1TaGltLmR5bGliICovOyB9OwogCQk1MTgzRERFQzE2MzBCREZDMDA4QkU1QzcgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MTg3MUI1QjEyN0NCODlEMDBGNzYyMzIgLyog
V2ViQ29udGV4dE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAq
LzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKQEAgLTEwMzAsNiArMTAzMCw3
IEBACiAJCUUxNzkwODhGMTY5QkFBNkEwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5NDgxNjlCNzdDODAw
OUI2NjcwIC8qIFNlY0l0ZW1TaGltLmggKi87IH07CiAJCUUxNzkwODkwMTY5QkFBN0YwMDY5MDRD
NyAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThFNjkxMTE2OUI2NjdCMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlFMTc5MDg5MTE2OUJBQTgyMDA2
OTA0QzcgLyogU2VjSXRlbVNoaW1NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5MTIxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1T
aGltTWVzc2FnZXMuaCAqLzsgfTsKKwkJRTE3OTA5MDExNjlCQjRGOTAwNjkwNEM3IC8qIFNlY0l0
ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHls
aWIgKi87IH07CiAJCUUxNzlGRDlDMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3OUZE
OUIxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi87IH07CiAJCUUxNzlG
RDlGMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4
MyAvKiBBcmd1bWVudENvZGVyc01hYy5tbSAqLzsgfTsKIAkJRTE3QkY5OTYxNEQwQTczRTAwQTVB
MDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNj
YXBlU2FuZGJveEZ1bmN0aW9ucy5oICovOyB9OwpAQCAtMTEzNiw3ICsxMTM3LDcgQEAKIAkJCWNv
bnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKIAkJCXByb3h5VHlwZSA9IDE7CiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDUxMDAz
MUVBMTM3OUNBQ0IwMEM4REZFNDsKLQkJCXJlbW90ZUluZm8gPSBXZWJQcm9jZXNzU2hpbTsKKwkJ
CXJlbW90ZUluZm8gPSBTZWNJdGVtU2hpbTsKIAkJfTsKIAkJQkNBOEQ0NjcxNUJDRTBENjAwOURD
MUYxIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5l
ckl0ZW1Qcm94eTsKQEAgLTEyMDIsMTUgKzEyMDMsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKLQkJNTE4M0IzOEYxMzc5RjU2ODAw
RTg3NTRFIC8qIENvcHkgV2ViIFByb2Nlc3MgU2hpbSAqLyA9IHsKKwkJNTE4M0IzOEYxMzc5RjU2
ODAwRTg3NTRFIC8qIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlG
aWxlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZHN0
UGF0aCA9IFdlYlByb2Nlc3MuYXBwL0NvbnRlbnRzL01hY09TOwogCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDE2OwogCQkJZmlsZXMgPSAoCi0JCQkJNTE4M0IzOTIxMzc5RjdCODAwRTg3NTRFIC8qIFdl
YlByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgV2ViIFByb2Nlc3MgU2hpbSAqLywKKwkJCQk1MTgz
QjM5MjEzNzlGN0I4MDBFODc1NEUgLyogU2VjSXRlbVNoaW0uZHlsaWIgaW4gQ29weSBTZWMgSXRl
bSBTaGltICovLAogCQkJKTsKLQkJCW5hbWUgPSAiQ29weSBXZWIgUHJvY2VzcyBTaGltIjsKKwkJ
CW5hbWUgPSAiQ29weSBTZWMgSXRlbSBTaGltIjsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwogCQk1RDFBMjM5MDE1RTc1QjEwMDAyM0U5ODEgLyogQ29w
eSBNZXNzYWdlIEdlbmVyYXRpb24gU2NyaXB0cyAqLyA9IHsKQEAgLTEyMzUsNiArMTIzNiwxNyBA
QAogCQkJbmFtZSA9ICJDb3B5IFBsdWctaW4gUHJvY2VzcyBTaGltIjsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlFMTc5MDkwMDE2OUJCNEQzMDA2
OTA0QzcgLyogQ29weSBTZWMgSXRlbSBTaGltICovID0geworCQkJaXNhID0gUEJYQ29weUZpbGVz
QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlkc3RQYXRo
ID0gTmV0d29ya1Byb2Nlc3MuYXBwL0NvbnRlbnRzL01hY09TOworCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDE2OworCQkJZmlsZXMgPSAoCisJCQkJRTE3OTA5MDExNjlCQjRGOTAwNjkwNEM3IC8qIFNl
Y0l0ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLywKKwkJCSk7CisJCQluYW1l
ID0gIkNvcHkgU2VjIEl0ZW0gU2hpbSI7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24g
Ki8KIAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0xNjI4LDcgKzE2
NDAsNyBAQAogCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2Vi
Q29sb3JDaG9vc2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29sb3JDaG9vc2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2MDE0
MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogV2ViUHJvY2Vzc1No
aW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJQ
cm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
NTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5
bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMz
QyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTA1QjBENDE2MkY3QTdBMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDVCMEQ1MTYy
RjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg7IHBhdGggPSBO
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY1Myw4ICsxNjY1LDggQEAKIAkJNTExQjI0QTUxMzJFMDk1NzAwMDY1QTBDIC8q
IFdlYkljb25EYXRhYmFzZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkljb25EYXRhYmFzZVByb3h5Lmg7IHBhdGggPSBJY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFi
YXNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExQjI0QTgxMzJFMDk3
MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTFCMjRBOTEzMkUwOTcyMDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogV2ViUHJv
Y2Vzc1NoaW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc1No
aW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExRjhBNzgxMzhCNDYwOTAwQTk1
RjQ0IC8qIFdlYlByb2Nlc3NTaGltLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc1NoaW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMUY4QTc3MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2VjSXRlbVNoaW1MaWJyYXJ5Lmg7IHBhdGggPSAu
Li8uLi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGli
cmFyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNlY0l0ZW1T
aGltTGlicmFyeS5tbTsgcGF0aCA9IC4uLy4uL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGli
cmFyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyMTc0NUUxNjRDMjBFMzAw
MzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNoYXJlYWJsZVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEyMTc0NUYxNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlYWJsZVJlc291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjE3NDYyMTY0QzIxMzcwMDM3QTVDMSAvKiBX
ZWJSZXNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJSZXNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDc4LDcgKzI0OTAsNyBAQAogCQkJCUUxM0E4QTJDMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzLmFwcCAqLywKIAkJCQk4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2Vi
S2l0Mi5mcmFtZXdvcmsgKi8sCiAJCQkJMUE1MERCMUUxMTBBM0JEQzAwMEQzRkU1IC8qIFdlYlBy
b2Nlc3MuYXBwICovLAotCQkJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNz
U2hpbS5keWxpYiAqLywKKwkJCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNo
aW0uZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTI2NzAsOCArMjY4Miw2IEBACiAJCQkJMUE2RkEwMUQxMUUxNTI2MzAw
REIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tICovLAogCQkJCUJDREMzMDhBMTVGRDZDRDEw
MDZCNjY5NSAvKiBXZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLmggKi8sCiAJCQkJQkNEQzMw
ODkxNUZENkNEMTAwNkI2Njk1IC8qIFdlYlByb2Nlc3NTZXJ2aWNlRW50cnlQb2ludHMubW0gKi8s
Ci0JCQkJNTExRjhBNzcxMzhCNDYwOTAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NTaGltLmggKi8sCi0J
CQkJNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NTaGltLm1tICovLAogCQkJ
KTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzg0Niw2
ICszODU2LDggQEAKIAkJCQlFMThFNjk0NzE2OUI3N0M4MDA5QjY2NzAgLyogU2VjSXRlbVNoaW0u
Y3BwICovLAogCQkJCUUxOEU2OTQ4MTY5Qjc3QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5oICov
LAogCQkJCUUxOEU2OTBGMTY5QjU5MjgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5tZXNzYWdlcy5p
biAqLywKKwkJCQk1MTFGOEE3NzEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5
LmggKi8sCisJCQkJNTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFy
eS5tbSAqLywKIAkJCQlCQ0UyMzI2MjEyMkM2Q0YzMDBENUMzNUEgLyogV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tICovLAogCQkJCUJDMTExQjVCMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVu
dEZhY3RvcnkuaCAqLywKIAkJCQlCQzExMUI1QzExMkY2Mjk4MDAzMzdCQUIgLyogV2ViRXZlbnRG
YWN0b3J5Lm1tICovLApAQCAtNDg5Nyw3ICs0OTA5LDcgQEAKIAkJCQlCQzAzMkRENTEwRjQzODlG
MDA1OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0FE
MTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDREMzMDhDMTVGRDZDRDEwMDZCNjY5NSAvKiBXZWJQcm9jZXNzU2VydmljZUVu
dHJ5UG9pbnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQg
LyogV2ViUHJvY2Vzc1NoaW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMUY4QTdCMTM4QjQ2MDkw
MEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTBF
NDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0MDQxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRl
ckxheWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTUwNjksNyArNTA4MSw3IEBACiAJCQlidWlsZFBo
YXNlcyA9ICgKIAkJCQkxQTUwREIxQTExMEEzQkRDMDAwRDNGRTUgLyogUmVzb3VyY2VzICovLAog
CQkJCTFBNTBEQjFCMTEwQTNCREMwMDBEM0ZFNSAvKiBTb3VyY2VzICovLAotCQkJCTUxODNCMzhG
MTM3OUY1NjgwMEU4NzU0RSAvKiBDb3B5IFdlYiBQcm9jZXNzIFNoaW0gKi8sCisJCQkJNTE4M0Iz
OEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgU2VjIEl0ZW0gU2hpbSAqLywKIAkJCSk7CiAJCQli
dWlsZFJ1bGVzID0gKAogCQkJKTsKQEAgLTUwOTksOSArNTExMSw5IEBACiAJCQlwcm9kdWN0UmVm
ZXJlbmNlID0gMUFDMjVGQjAxMkE0OEVBNzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5
bGliICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5
LmR5bmFtaWMiOwogCQl9OwotCQk1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQgLyogV2ViUHJvY2Vz
c1NoaW0gKi8gPSB7CisJCTUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbSAq
LyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSA1MTAwMzFGMjEzNzlDQUNCMDBDOERGRTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NTaGltIiAqLzsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSA1MTAwMzFGMjEzNzlDQUNCMDBDOERGRTQgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlNlY0l0ZW1TaGltIiAqLzsKIAkJCWJ1aWxk
UGhhc2VzID0gKAogCQkJCTUxMDAzMUVCMTM3OUNBQ0IwMEM4REZFNCAvKiBIZWFkZXJzICovLAog
CQkJCTUxMDAzMUVDMTM3OUNBQ0IwMEM4REZFNCAvKiBTb3VyY2VzICovLApAQCAtNTExMSw5ICs1
MTIzLDkgQEAKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCiAJCQkpOwotCQkJbmFtZSA9IFdl
YlByb2Nlc3NTaGltOworCQkJbmFtZSA9IFNlY0l0ZW1TaGltOwogCQkJcHJvZHVjdE5hbWUgPSBQ
bHVnaW5Qcm9jZXNzU2hpbTsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1MTAwMzFGNjEzNzlDQUNC
MDBDOERGRTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87CisJCQlwcm9kdWN0UmVmZXJlbmNl
ID0gNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovOwogCQkJ
cHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LmR5bmFtaWMiOwog
CQl9OwogCQk1MTBDQzgwRDE2MTNDNzk5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8gPSB7
CkBAIC01MTIyLDYgKzUxMzQsNyBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJNTEwQ0M4MEEx
NjEzQzc5OTAwRDAzRUQzIC8qIFNvdXJjZXMgKi8sCiAJCQkJNTEwQ0M4MEMxNjEzQzc5OTAwRDAz
RUQzIC8qIFJlc291cmNlcyAqLywKKwkJCQlFMTc5MDkwMDE2OUJCNEQzMDA2OTA0QzcgLyogQ29w
eSBTZWMgSXRlbSBTaGltICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwpAQCAt
NTI2NCw3ICs1Mjc3LDcgQEAKIAkJCQlFMTNBOEEyQjE2Mjg3OUFDMDAzOTI5MjkgLyogU2hhcmVk
V29ya2VyUHJvY2VzcyAqLywKIAkJCQlDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZl
ZCBTb3VyY2VzICovLAogCQkJCTFBQzI1RkFGMTJBNDhFQTcwMEJEMjY3MSAvKiBQbHVnaW5Qcm9j
ZXNzU2hpbSAqLywKLQkJCQk1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQgLyogV2ViUHJvY2Vzc1No
aW0gKi8sCisJCQkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICovLAog
CQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBXZWJQcm9jZXNzU2VydmljZSAqLywKIAkJ
CQlCQ0FFOURFODE2MEMwOTc0MDBBMzMyMTcgLyogV2ViUHJvY2Vzc1NlcnZpY2VGb3JXZWJLaXRE
ZXZlbG9wbWVudCAqLywKIAkJCSk7CkBAIC01NTA3LDcgKzU1MjAsNyBAQAogCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCi0JCQkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFdlYlByb2Nlc3NTaGlt
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTExRjhBODExMzhCNDg1RDAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjA5OSw3ICs2MTEyLDcgQEAKIAkJ
fTsKIAkJNTE4M0IzOEUxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNTEwMDMxRUEx
Mzc5Q0FDQjAwQzhERkU0IC8qIFdlYlByb2Nlc3NTaGltICovOworCQkJdGFyZ2V0ID0gNTEwMDMx
RUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICovOwogCQkJdGFyZ2V0UHJveHkgPSA1
MTgzQjM4RDEzNzlGNTQ2MDBFODc1NEUgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9
OwogCQlCQ0E4RDQ2ODE1QkNFMEQ2MDA5REMxRjEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKQEAgLTYyNTksNyArNjI3Miw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRF
IC8qIFNoaW0ueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1Rf
TkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJCVBST0RVQ1RfTkFNRSA9IFNlY0l0ZW1TaGltOwog
CQkJfTsKIAkJCW5hbWUgPSBEZWJ1ZzsKIAkJfTsKQEAgLTYyNjcsNyArNjI4MCw3IEBACiAJCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi87CiAJCQlidWls
ZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJCVBS
T0RVQ1RfTkFNRSA9IFNlY0l0ZW1TaGltOwogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9
OwpAQCAtNjI3NSw3ICs2Mjg4LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwog
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUg
LyogU2hpbS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9O
QU1FID0gV2ViUHJvY2Vzc1NoaW07CisJCQkJUFJPRFVDVF9OQU1FID0gU2VjSXRlbVNoaW07CiAJ
CQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CkBAIC02NDk4LDcgKzY1MTEsNyBAQAog
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJNTEwMDMxRjIxMzc5Q0FDQjAwQzhERkU0
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJQcm9j
ZXNzU2hpbSIgKi8gPSB7CisJCTUxMDAzMUYyMTM3OUNBQ0IwMEM4REZFNCAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2VjSXRlbVNoaW0iICovID0gewog
CQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAo
CiAJCQkJNTEwMDMxRjMxMzc5Q0FDQjAwQzhERkU0IC8qIERlYnVnICovLApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAxMzkwMTcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDgsNiArMjA4LDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25z
dAogCiB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24pCiB7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplQ29ubmVj
dGlvbihjb25uZWN0aW9uKTsKKwogICAgIGNvbm5lY3Rpb24tPnNldFNob3VsZEV4aXRPblN5bmNN
ZXNzYWdlU2VuZEZhaWx1cmUodHJ1ZSk7CiAgICAgY29ubmVjdGlvbi0+YWRkUXVldWVDbGllbnQo
Jm1fZXZlbnREaXNwYXRjaGVyKTsKICAgICBjb25uZWN0aW9uLT5hZGRRdWV1ZUNsaWVudCh0aGlz
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1T
aGltTGlicmFyeS5oCShyZXZpc2lvbiAxMzkwMTcpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLmg6MTM5MDE3KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIFdlYlByb2Nlc3NTaGltX2gKKyNkZWZpbmUgV2Vi
UHJvY2Vzc1NoaW1faAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdlYlByb2Nlc3NT
ZWNJdGVtU2hpbUNhbGxiYWNrcyB7CisgICAgT1NTdGF0dXMgKCpzZWNJdGVtQ29weU1hdGNoaW5n
KShDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGVHlwZVJlZiAqcmVzdWx0KTsKKyAgICBPU1N0YXR1
cyAoKnNlY0l0ZW1BZGQpKENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBDRlR5cGVSZWYgKnJl
c3VsdCk7CisgICAgT1NTdGF0dXMgKCpzZWNJdGVtVXBkYXRlKShDRkRpY3Rpb25hcnlSZWYgcXVl
cnksIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9VcGRhdGUpOworICAgIE9TU3RhdHVzICgq
c2VjSXRlbURlbGV0ZSkoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5KTsKK307CisKK3R5cGVkZWYgdm9p
ZCAoKldlYlByb2Nlc3NTZWNJdGVtU2hpbUluaXRpYWxpemVGdW5jKShjb25zdCBXZWJQcm9jZXNz
U2VjSXRlbVNoaW1DYWxsYmFja3MmIGNhbGxiYWNrcyk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViUHJvY2Vzc1NoaW1faApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5LmgJKHJldmlzaW9uIDEzOTAx
NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwyMCArMjIsMjAgQEAKICAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotI2lmbmRlZiBXZWJQcm9jZXNz
U2hpbV9oCi0jZGVmaW5lIFdlYlByb2Nlc3NTaGltX2gKKyNpZm5kZWYgU2VjSXRlbVNoaW1MaWJy
YXJ5X2gKKyNkZWZpbmUgU2VjSXRlbVNoaW1MaWJyYXJ5X2gKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXN0cnVjdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3Mgeworc3RydWN0IFNlY0l0
ZW1TaGltQ2FsbGJhY2tzIHsKICAgICBPU1N0YXR1cyAoKnNlY0l0ZW1Db3B5TWF0Y2hpbmcpKENG
RGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZUeXBlUmVmICpyZXN1bHQpOwogICAgIE9TU3RhdHVzICgq
c2VjSXRlbUFkZCkoQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIENGVHlwZVJlZiAqcmVzdWx0
KTsKICAgICBPU1N0YXR1cyAoKnNlY0l0ZW1VcGRhdGUpKENGRGljdGlvbmFyeVJlZiBxdWVyeSwg
Q0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXNUb1VwZGF0ZSk7CiAgICAgT1NTdGF0dXMgKCpzZWNJ
dGVtRGVsZXRlKShDRkRpY3Rpb25hcnlSZWYgcXVlcnkpOwogfTsKIAotdHlwZWRlZiB2b2lkICgq
V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZUZ1bmMpKGNvbnN0IFdlYlByb2Nlc3NTZWNJ
dGVtU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKTsKK3R5cGVkZWYgdm9pZCAoKlNlY0l0ZW1TaGlt
SW5pdGlhbGl6ZUZ1bmMpKGNvbnN0IFNlY0l0ZW1TaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFdlYlByb2Nlc3NTaGltX2gKKyNl
bmRpZiAvLyBTZWNJdGVtU2hpbUxpYnJhcnlfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQkocmV2aXNpb24gMTM5MDE3
KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5tbTox
MzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJh
cnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW1wb3J0
ICJXZWJQcm9jZXNzU2hpbS5oIgorCisjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CisjaW1w
b3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2RlZmluZSBEWUxEX0lOVEVSUE9TRShfcmVwbGFjZW1l
bnQsX3JlcGxhY2VlKSBcCisgICAgX19hdHRyaWJ1dGVfXygodXNlZCkpIHN0YXRpYyBzdHJ1Y3R7
IGNvbnN0IHZvaWQqIHJlcGxhY2VtZW50OyBjb25zdCB2b2lkKiByZXBsYWNlZTsgfSBfaW50ZXJw
b3NlXyMjX3JlcGxhY2VlIFwKKyAgICBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIl9fREFUQSxf
X2ludGVycG9zZSIpKSkgPSB7IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2Vt
ZW50LCAoY29uc3Qgdm9pZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBsYWNlZSB9OworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworZXh0ZXJuICJDIiB2b2lkIFdlYktpdFdlYlByb2Nlc3NTZWNJdGVtU2hp
bUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2FsbGJhY2tzJik7CisKK3N0
YXRpYyBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3Mgc2VjSXRlbVNoaW1DYWxsYmFja3M7
CisKK3N0YXRpYyBPU1N0YXR1cyBzaGltU2VjSXRlbUNvcHlNYXRjaGluZyhDRkRpY3Rpb25hcnlS
ZWYgcXVlcnksIENGVHlwZVJlZiogcmVzdWx0KQoreworICAgIHJldHVybiBzZWNJdGVtU2hpbUNh
bGxiYWNrcy5zZWNJdGVtQ29weU1hdGNoaW5nKHF1ZXJ5LCByZXN1bHQpOworfQorCitzdGF0aWMg
T1NTdGF0dXMgc2hpbVNlY0l0ZW1BZGQoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRlR5cGVSZWYq
IHJlc3VsdCkKK3sKKyAgICByZXR1cm4gc2VjSXRlbVNoaW1DYWxsYmFja3Muc2VjSXRlbUFkZChx
dWVyeSwgcmVzdWx0KTsKK30KKworc3RhdGljIE9TU3RhdHVzIHNoaW1TZWNJdGVtVXBkYXRlKENG
RGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXNUb1VwZGF0ZSkK
K3sKKyAgICByZXR1cm4gc2VjSXRlbVNoaW1DYWxsYmFja3Muc2VjSXRlbVVwZGF0ZShxdWVyeSwg
YXR0cmlidXRlc1RvVXBkYXRlKTsKK30KKworc3RhdGljIE9TU3RhdHVzIHNoaW1TZWNJdGVtRGVs
ZXRlKENGRGljdGlvbmFyeVJlZiBxdWVyeSkKK3sKKyAgICByZXR1cm4gc2VjSXRlbVNoaW1DYWxs
YmFja3Muc2VjSXRlbURlbGV0ZShxdWVyeSk7Cit9CisKK0RZTERfSU5URVJQT1NFKHNoaW1TZWNJ
dGVtQ29weU1hdGNoaW5nLCBTZWNJdGVtQ29weU1hdGNoaW5nKQorRFlMRF9JTlRFUlBPU0Uoc2hp
bVNlY0l0ZW1BZGQsIFNlY0l0ZW1BZGQpCitEWUxEX0lOVEVSUE9TRShzaGltU2VjSXRlbVVwZGF0
ZSwgU2VjSXRlbVVwZGF0ZSkKK0RZTERfSU5URVJQT1NFKHNoaW1TZWNJdGVtRGVsZXRlLCBTZWNJ
dGVtRGVsZXRlKQorCitfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQordm9p
ZCBXZWJLaXRXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NT
ZWNJdGVtU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKQoreworICAgIHNlY0l0ZW1TaGltQ2FsbGJh
Y2tzID0gY2FsbGJhY2tzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkubW0J
KHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0
ZW1TaGltTGlicmFyeS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaW1w
b3J0ICJXZWJQcm9jZXNzU2hpbS5oIgorI2ltcG9ydCAiU2VjSXRlbVNoaW1MaWJyYXJ5LmgiCiAK
ICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgpA
QCAtMzMsOSArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZXh0ZXJuICJDIiB2b2lk
IFdlYktpdFdlYlByb2Nlc3NTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc1Nl
Y0l0ZW1TaGltQ2FsbGJhY2tzJik7CitleHRlcm4gIkMiIHZvaWQgV2ViS2l0U2VjSXRlbVNoaW1J
bml0aWFsaXplKGNvbnN0IFNlY0l0ZW1TaGltQ2FsbGJhY2tzJik7CiAKLXN0YXRpYyBXZWJQcm9j
ZXNzU2VjSXRlbVNoaW1DYWxsYmFja3Mgc2VjSXRlbVNoaW1DYWxsYmFja3M7CitzdGF0aWMgU2Vj
SXRlbVNoaW1DYWxsYmFja3Mgc2VjSXRlbVNoaW1DYWxsYmFja3M7CiAKIHN0YXRpYyBPU1N0YXR1
cyBzaGltU2VjSXRlbUNvcHlNYXRjaGluZyhDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGVHlwZVJl
ZiogcmVzdWx0KQogewpAQCAtNjMsNyArNjMsNyBAQCBEWUxEX0lOVEVSUE9TRShzaGltU2VjSXRl
bVVwZGF0ZSwgU2VjSXRlCiBEWUxEX0lOVEVSUE9TRShzaGltU2VjSXRlbURlbGV0ZSwgU2VjSXRl
bURlbGV0ZSkKIAogX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLXZvaWQg
V2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzU2Vj
SXRlbVNoaW1DYWxsYmFja3MmIGNhbGxiYWNrcykKK3ZvaWQgV2ViS2l0U2VjSXRlbVNoaW1Jbml0
aWFsaXplKGNvbnN0IFNlY0l0ZW1TaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpCiB7CiAgICAgc2Vj
SXRlbVNoaW1DYWxsYmFja3MgPSBjYWxsYmFja3M7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0JKHJldmlzaW9uIDEzOTAxNykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVByb2NlCiAgICAgV0tBWFJlZ2lzdGVyUmVtb3RlQXBwKCk7CiAKICNpZiBVU0UoU0VDVVJJ
VFlfRlJBTUVXT1JLKQotICAgIFNlY0l0ZW1TaGltOjpzaGFyZWQoKS5pbnN0YWxsKCk7CisgICAg
U2VjSXRlbVNoaW06OnNoYXJlZCgpLmluaXRpYWxpemUodGhpcyk7CiAjZW5kaWYKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5N
YWMubW0JKHJldmlzaW9uIDEzOTAxNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWluTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20g
dGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJv
Y2Vzc2VzIHNwYXduZWQgYnkKICAgICAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRv
IGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCi0gICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVz
OjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIv
V2ViUHJvY2Vzc1NoaW0uZHlsaWIiKTsKKyAgICAgICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0
cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJ
dGVtU2hpbS5keWxpYiIpOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9u
SWRlbnRpZmllcihDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1NlcnZpY2VFbnRy
eVBvaW50cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLm1tCShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2VydmljZUVudHJ5UG9pbnRzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIGludCB3ZWJQcm9jZXNzU2VydmljZU1h
aW4oaW50IGFyZ2MsIGNoYXIKIHsKICAgICAvLyBSZW1vdmUgdGhlIFdlYlByb2Nlc3Mgc2hpbSBm
cm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55
IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgLy8gdGhlIFdlYlByb2Nlc3MgZG9uJ3QgdHJ5IHRv
IGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCi0gICAgV2ViS2l0OjpFbnZpcm9ubWVudFV0aWxp
dGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMi
LCAiL1dlYlByb2Nlc3NTaGltLmR5bGliIik7CisgICAgV2ViS2l0OjpFbnZpcm9ubWVudFV0aWxp
dGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMi
LCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CiAKICAgICB4cGNfbWFpbihXZWJLaXQ6OldlYlByb2Nl
c3NTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKICAgICByZXR1cm4gMDsKQEAgLTg5LDcgKzg5LDcgQEAg
dm9pZCBpbml0aWFsaXplV2ViUHJvY2Vzc0ZvcldlYlByb2Nlc3NTZQogewogICAgIC8vIFJlbW92
ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZp
cm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKICAgICAvLyB0aGUg
V2ViUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KLSAgICBX
ZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmco
IkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViUHJvY2Vzc1NoaW0uZHlsaWIiKTsKKyAgICBX
ZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmco
IkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIiKTsKIAogICAgIFdl
YktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc1NoaW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oCShyZXZpc2lvbiAxMzkwMTcpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2lmbmRlZiBXZWJQcm9jZXNzU2hpbV9oCi0j
ZGVmaW5lIFdlYlByb2Nlc3NTaGltX2gKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBX
ZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MgewotICAgIE9TU3RhdHVzICgqc2VjSXRlbUNv
cHlNYXRjaGluZykoQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRlR5cGVSZWYgKnJlc3VsdCk7Ci0g
ICAgT1NTdGF0dXMgKCpzZWNJdGVtQWRkKShDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQ0ZU
eXBlUmVmICpyZXN1bHQpOwotICAgIE9TU3RhdHVzICgqc2VjSXRlbVVwZGF0ZSkoQ0ZEaWN0aW9u
YXJ5UmVmIHF1ZXJ5LCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlc1RvVXBkYXRlKTsKLSAgICBP
U1N0YXR1cyAoKnNlY0l0ZW1EZWxldGUpKENGRGljdGlvbmFyeVJlZiBxdWVyeSk7Ci19OwotCi10
eXBlZGVmIHZvaWQgKCpXZWJQcm9jZXNzU2VjSXRlbVNoaW1Jbml0aWFsaXplRnVuYykoY29uc3Qg
V2ViUHJvY2Vzc1NlY0l0ZW1TaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpOwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlByb2Nlc3NTaGltX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NTaGltLm1tCShyZXZpc2lvbiAx
MzkwMTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzU2hpbS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbXBvcnQgIldl
YlByb2Nlc3NTaGltLmgiCi0KLSNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KLSNpbXBvcnQg
PHd0Zi9QbGF0Zm9ybS5oPgotCi0jZGVmaW5lIERZTERfSU5URVJQT1NFKF9yZXBsYWNlbWVudCxf
cmVwbGFjZWUpIFwKLSAgICBfX2F0dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdHsgY29u
c3Qgdm9pZCogcmVwbGFjZW1lbnQ7IGNvbnN0IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2Vf
IyNfcmVwbGFjZWUgXAotICAgIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50
ZXJwb3NlIikpKSA9IHsgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQs
IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VlIH07Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1leHRlcm4gIkMiIHZvaWQgV2ViS2l0V2ViUHJvY2Vzc1NlY0l0ZW1TaGltSW5p
dGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzU2VjSXRlbVNoaW1DYWxsYmFja3MmKTsKLQotc3RhdGlj
IFdlYlByb2Nlc3NTZWNJdGVtU2hpbUNhbGxiYWNrcyBzZWNJdGVtU2hpbUNhbGxiYWNrczsKLQot
c3RhdGljIE9TU3RhdHVzIHNoaW1TZWNJdGVtQ29weU1hdGNoaW5nKENGRGljdGlvbmFyeVJlZiBx
dWVyeSwgQ0ZUeXBlUmVmKiByZXN1bHQpCi17Ci0gICAgcmV0dXJuIHNlY0l0ZW1TaGltQ2FsbGJh
Y2tzLnNlY0l0ZW1Db3B5TWF0Y2hpbmcocXVlcnksIHJlc3VsdCk7Ci19Ci0KLXN0YXRpYyBPU1N0
YXR1cyBzaGltU2VjSXRlbUFkZChDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGVHlwZVJlZiogcmVz
dWx0KQotewotICAgIHJldHVybiBzZWNJdGVtU2hpbUNhbGxiYWNrcy5zZWNJdGVtQWRkKHF1ZXJ5
LCByZXN1bHQpOwotfQotCi1zdGF0aWMgT1NTdGF0dXMgc2hpbVNlY0l0ZW1VcGRhdGUoQ0ZEaWN0
aW9uYXJ5UmVmIHF1ZXJ5LCBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlc1RvVXBkYXRlKQotewot
ICAgIHJldHVybiBzZWNJdGVtU2hpbUNhbGxiYWNrcy5zZWNJdGVtVXBkYXRlKHF1ZXJ5LCBhdHRy
aWJ1dGVzVG9VcGRhdGUpOwotfQotCi1zdGF0aWMgT1NTdGF0dXMgc2hpbVNlY0l0ZW1EZWxldGUo
Q0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5KQotewotICAgIHJldHVybiBzZWNJdGVtU2hpbUNhbGxiYWNr
cy5zZWNJdGVtRGVsZXRlKHF1ZXJ5KTsKLX0KLQotRFlMRF9JTlRFUlBPU0Uoc2hpbVNlY0l0ZW1D
b3B5TWF0Y2hpbmcsIFNlY0l0ZW1Db3B5TWF0Y2hpbmcpCi1EWUxEX0lOVEVSUE9TRShzaGltU2Vj
SXRlbUFkZCwgU2VjSXRlbUFkZCkKLURZTERfSU5URVJQT1NFKHNoaW1TZWNJdGVtVXBkYXRlLCBT
ZWNJdGVtVXBkYXRlKQotRFlMRF9JTlRFUlBPU0Uoc2hpbVNlY0l0ZW1EZWxldGUsIFNlY0l0ZW1E
ZWxldGUpCi0KLV9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCi12b2lkIFdl
YktpdFdlYlByb2Nlc3NTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc1NlY0l0
ZW1TaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpCi17Ci0gICAgc2VjSXRlbVNoaW1DYWxsYmFja3Mg
PSBjYWxsYmFja3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzc1NlcnZpY2UvSW5mby5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzU2VydmljZS9JbmZvLnBsaXN0CShyZXZpc2lvbiAxMzkwMTcpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzU2VydmljZS9JbmZvLnBsaXN0CSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw3IEBACiAJCTxrZXk+RW52aXJvbm1lbnRWYXJpYWJsZXM8L2tleT4K
IAkJPGRpY3Q+CiAJCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwva2V5PgotCQkJPHN0cmlu
Zz4kKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrL1dlYlByb2Nlc3Mu
YXBwL0NvbnRlbnRzL01hY09TL1dlYlByb2Nlc3NTaGltLmR5bGliPC9zdHJpbmc+CisJCQk8c3Ry
aW5nPiQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vz
cy5hcHAvQ29udGVudHMvTWFjT1MvU2VjSXRlbVNoaW0uZHlsaWI8L3N0cmluZz4KIAkJPC9kaWN0
PgogCTwvZGljdD4KIDwvZGljdD4K
</data>
<flag name="review"
          id="199432"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>